@@ -26,169 +26,69 @@ public IReadOnlyList<Declaration> Load()
26
26
return AddHiddenMSFormDeclarations ( formsClassModule ) ;
27
27
}
28
28
29
- private static Declaration FormsClassModuleFromParserState ( RubberduckParserState state )
30
- {
31
- return state . AllDeclarations . LastOrDefault ( declaration => declaration . DeclarationType == DeclarationType . ClassModule
32
- && declaration . Scope == "FM20.DLL;MSForms.FormEvents" ) ;
33
- }
34
-
35
-
36
- private IReadOnlyList < Declaration > AddHiddenMSFormDeclarations ( Declaration formsClassModule )
37
- {
38
-
39
- var userFormActivateEvent = UserFormActivateEvent ( formsClassModule ) ;
40
- var userFormDeactivateEvent = UserFormDeactivateEvent ( formsClassModule ) ;
41
- var userFormInitializeEvent = UserFormInitializeEvent ( formsClassModule ) ;
42
- var userFormQueryCloseEvent = UserFormQueryCloseEvent ( formsClassModule ) ;
43
- var userFormQueryCloseEventCancelParameter = UserFormQueryCloseEventCancelParameter ( userFormQueryCloseEvent ) ;
44
- var userFormQueryCloseEventCloseModeParameter = UserFormQueryCloseEventCloseModeParameter ( userFormQueryCloseEvent ) ;
45
- var userFormResizeEvent = UserFormResizeEvent ( formsClassModule ) ;
46
- var userFormTerminateEvent = UserFormTerminateEvent ( formsClassModule ) ;
47
-
48
- return new List < Declaration >
49
- {
50
- userFormActivateEvent ,
51
- userFormDeactivateEvent ,
52
- userFormInitializeEvent ,
53
- userFormQueryCloseEvent ,
54
- userFormQueryCloseEventCancelParameter ,
55
- userFormQueryCloseEventCloseModeParameter ,
56
- userFormResizeEvent ,
57
- userFormTerminateEvent
58
- } ;
59
- }
60
-
61
- private static Declaration UserFormActivateEvent ( Declaration formsClassModule )
62
- {
63
- return new Declaration (
64
- new QualifiedMemberName (
65
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Activate" ) ,
66
- formsClassModule ,
67
- "FM20.DLL;MSForms.FormEvents" ,
68
- string . Empty ,
69
- string . Empty ,
70
- false ,
71
- false ,
72
- Accessibility . Global ,
73
- DeclarationType . Event ,
74
- false ,
75
- null ) ;
76
- }
77
-
78
- private static Declaration UserFormDeactivateEvent ( Declaration formsClassModule )
79
- {
80
- return new Declaration (
81
- new QualifiedMemberName (
82
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Deactivate" ) ,
83
- formsClassModule ,
84
- "FM20.DLL;MSForms.FormEvents" ,
85
- string . Empty ,
86
- string . Empty ,
87
- false ,
88
- false ,
89
- Accessibility . Global ,
90
- DeclarationType . Event ,
91
- false ,
92
- null ) ;
93
- }
94
-
95
- private static Declaration UserFormInitializeEvent ( Declaration formsClassModule )
96
- {
97
- return new Declaration (
98
- new QualifiedMemberName (
99
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Initialize" ) ,
100
- formsClassModule ,
101
- "FM20.DLL;MSForms.FormEvents" ,
102
- string . Empty ,
103
- string . Empty ,
104
- false ,
105
- false ,
106
- Accessibility . Global ,
107
- DeclarationType . Event ,
108
- false ,
109
- null ) ;
110
- }
29
+ private static Declaration FormsClassModuleFromParserState ( RubberduckParserState state )
30
+ {
31
+ var result = state . AllDeclarations . LastOrDefault ( declaration =>
32
+ declaration . DeclarationType == DeclarationType . ClassModule
33
+ && declaration . ProjectName == "MSForms"
34
+ && declaration . IdentifierName == "FormEvents" ) ;
111
35
112
- private static Declaration UserFormQueryCloseEvent ( Declaration formsClassModule )
113
- {
114
- return new Declaration (
115
- new QualifiedMemberName (
116
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "QueryClose" ) ,
117
- formsClassModule ,
118
- "FM20.DLL;MSForms.FormEvents" ,
119
- string . Empty ,
120
- string . Empty ,
121
- false ,
122
- false ,
123
- Accessibility . Global ,
124
- DeclarationType . Event ,
125
- false ,
126
- null ) ;
127
- }
36
+ return result ;
37
+ }
128
38
129
- private static ParameterDeclaration UserFormQueryCloseEventCancelParameter ( Declaration userFormQueryCloseEvent )
130
- {
131
- return new ParameterDeclaration (
132
- new QualifiedMemberName (
133
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Cancel" ) ,
134
- userFormQueryCloseEvent ,
135
- null ,
136
- new Selection ( ) ,
137
- "Integer" ,
138
- null ,
139
- string . Empty ,
140
- false ,
141
- true ) ;
142
- }
39
+ private IReadOnlyList < Declaration > AddHiddenMSFormDeclarations ( Declaration formsClassModule )
40
+ {
143
41
144
- private static ParameterDeclaration UserFormQueryCloseEventCloseModeParameter ( Declaration userFormQueryCloseEvent )
145
- {
146
- return new ParameterDeclaration (
147
- new QualifiedMemberName (
148
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "CloseMode" ) ,
149
- userFormQueryCloseEvent ,
150
- null ,
151
- new Selection ( ) ,
152
- "Integer" ,
153
- null ,
154
- string . Empty ,
155
- false ,
156
- true ) ;
157
- }
42
+ var userFormActivateEvent = CreateDeclaration ( formsClassModule , "Activate" ) ;
43
+ var userFormDeactivateEvent = CreateDeclaration ( formsClassModule , "Deactivate" ) ;
44
+ var userFormInitializeEvent = CreateDeclaration ( formsClassModule , "Initialize" ) ;
45
+ var userFormQueryCloseEvent = CreateDeclaration ( formsClassModule , "QueryClose" ) ;
46
+ var userFormQueryCloseEventCancelParameter = CreateParameter ( userFormQueryCloseEvent , "Cancel" , "Integer" , true ) ;
47
+ var userFormQueryCloseEventCloseModeParameter = CreateParameter ( userFormQueryCloseEvent , "CloseMode" , "Integer" , true ) ;
48
+ var userFormResizeEvent = CreateDeclaration ( formsClassModule , "Resize" ) ;
49
+ var userFormTerminateEvent = CreateDeclaration ( formsClassModule , "Terminate" ) ;
158
50
159
- private static Declaration UserFormResizeEvent ( Declaration formsClassModule )
160
- {
161
- return new Declaration (
162
- new QualifiedMemberName (
163
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Resize" ) ,
164
- formsClassModule ,
165
- "FM20.DLL;MSForms.FormEvents" ,
166
- string . Empty ,
167
- string . Empty ,
168
- false ,
169
- false ,
170
- Accessibility . Global ,
171
- DeclarationType . Event ,
172
- false ,
173
- null ) ;
174
- }
51
+ return new List < Declaration >
52
+ {
53
+ userFormActivateEvent ,
54
+ userFormDeactivateEvent ,
55
+ userFormInitializeEvent ,
56
+ userFormQueryCloseEvent ,
57
+ userFormQueryCloseEventCancelParameter ,
58
+ userFormQueryCloseEventCloseModeParameter ,
59
+ userFormResizeEvent ,
60
+ userFormTerminateEvent
61
+ } ;
62
+ }
175
63
176
- private static Declaration UserFormTerminateEvent ( Declaration formsClassModule )
177
- {
178
- return new Declaration (
179
- new QualifiedMemberName (
180
- new QualifiedModuleName ( "MSForms" , "C:\\ WINDOWS\\ system32\\ FM20.DLL" , "FormEvents" ) , "Terminate" ) ,
181
- formsClassModule ,
182
- "FM20.DLL;MSForms.FormEvents" ,
183
- string . Empty ,
184
- string . Empty ,
185
- false ,
186
- false ,
187
- Accessibility . Global ,
188
- DeclarationType . Event ,
189
- false ,
190
- null ) ;
191
- }
64
+ private static Declaration CreateDeclaration ( Declaration parent , string name )
65
+ {
66
+ return new Declaration (
67
+ new QualifiedMemberName ( parent . QualifiedName . QualifiedModuleName , name ) ,
68
+ parent ,
69
+ parent . Scope ,
70
+ string . Empty ,
71
+ string . Empty ,
72
+ false ,
73
+ false ,
74
+ Accessibility . Global ,
75
+ DeclarationType . Event ,
76
+ false ,
77
+ null ) ;
78
+ }
192
79
80
+ private static ParameterDeclaration CreateParameter ( Declaration parent , string name , string asType , bool isByRef = false , bool isOptional = false )
81
+ {
82
+ return new ParameterDeclaration (
83
+ new QualifiedMemberName ( parent . ParentDeclaration . QualifiedName . QualifiedModuleName , name ) ,
84
+ parent ,
85
+ null ,
86
+ Selection . Empty ,
87
+ asType ,
88
+ null ,
89
+ string . Empty ,
90
+ isOptional ,
91
+ isByRef ) ;
92
+ }
193
93
}
194
94
}
0 commit comments