8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "OleCreatePropertyFrame" => ["long", ["long", "long", "long", "str", "long", "ptr", "long", "ptr", "long", "long", "ptr"]],
16 "OleCreatePropertyFrameIndirect" => ["long", ["ptr"]],
17 "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
18 "SysAllocString" => ["wstr", ["str"]],
19 "SysReAllocString" => ["long", ["ptr", "str"]],
20 "SysAllocStringLen" => ["wstr", ["ptr", "long"]],
21 "SysReAllocStringLen" => ["long", ["ptr", "ptr", "long"]],
22 "SysFreeString" => ["void", ["wstr"]],
23 "SysStringLen" => ["long", ["wstr"]],
24 "VariantInit" => ["void", ["ptr"]],
25 "VariantClear" => ["long", ["ptr"]],
26 "VariantCopy" => ["long", ["ptr", "ptr"]],
27 "VariantCopyInd" => ["long", ["ptr", "ptr"]],
28 "VariantChangeType" => ["long", ["ptr", "ptr", "long", "long"]],
29 "VariantTimeToDosDateTime" => ["long", ["double", "ptr", "ptr"]],
30 "DosDateTimeToVariantTime" => ["long", ["long", "long", "ptr"]],
31 "SafeArrayCreate" => ["ptr", ["long", "long", "ptr"]],
32 "SafeArrayDestroy" => ["long", ["ptr"]],
33 "SafeArrayGetDim" => ["long", ["ptr"]],
34 "SafeArrayGetElemsize" => ["long", ["ptr"]],
35 "SafeArrayGetUBound" => ["long", ["ptr", "long", "ptr"]],
36 "SafeArrayGetLBound" => ["long", ["ptr", "long", "ptr"]],
37 "SafeArrayLock" => ["long", ["ptr"]],
38 "SafeArrayUnlock" => ["long", ["ptr"]],
39 "SafeArrayAccessData" => ["long", ["ptr", "ptr"]],
40 "SafeArrayUnaccessData" => ["long", ["ptr"]],
41 "SafeArrayGetElement" => ["long", ["ptr", "ptr", "ptr"]],
42 "SafeArrayPutElement" => ["long", ["ptr", "ptr", "ptr"]],
43 "SafeArrayCopy" => ["long", ["ptr", "ptr"]],
44 "DispGetParam" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
45 "DispGetIDsOfNames" => ["long", ["ptr", "ptr", "long", "ptr"]],
46 "DispInvoke" => ["long", ["ptr", "ptr", "long", "long", "ptr", "ptr", "ptr", "ptr"]],
47 "CreateDispTypeInfo" => ["long", ["ptr", "long", "ptr"]],
48 "CreateStdDispatch" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
49 "RegisterActiveObject" => ["long", ["ptr", "ptr", "long", "ptr"]],
50 "RevokeActiveObject" => ["long", ["long", "ptr"]],
51 "GetActiveObject" => ["long", ["ptr", "ptr", "ptr"]],
52 "SafeArrayAllocDescriptor" => ["long", ["long", "ptr"]],
53 "SafeArrayAllocData" => ["long", ["ptr"]],
54 "SafeArrayDestroyDescriptor" => ["long", ["ptr"]],
55 "SafeArrayDestroyData" => ["long", ["ptr"]],
56 "SafeArrayRedim" => ["long", ["ptr", "ptr"]],
57 "VarParseNumFromStr" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
58 "VarNumFromParseNum" => ["long", ["ptr", "ptr", "long", "ptr"]],
59 "VarI2FromUI1" => ["long", ["long", "ptr"]],
60 "VarI2FromI4" => ["long", ["long", "ptr"]],
61 "VarI2FromR4" => ["long", ["long", "ptr"]],
62 "VarI2FromR8" => ["long", ["double", "ptr"]],
63 "VarI2FromCy" => ["long", ["double", "ptr"]],
64 "VarI2FromDate" => ["long", ["double", "ptr"]],
65 "VarI2FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
66 "VarI2FromBool" => ["long", ["long", "ptr"]],
67 "VarI4FromUI1" => ["long", ["long", "ptr"]],
68 "VarI4FromI2" => ["long", ["long", "ptr"]],
69 "VarI4FromR4" => ["long", ["long", "ptr"]],
70 "VarI4FromR8" => ["long", ["double", "ptr"]],
71 "VarI4FromCy" => ["long", ["double", "ptr"]],
72 "VarI4FromDate" => ["long", ["double", "ptr"]],
73 "VarI4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
74 "VarI4FromBool" => ["long", ["long", "ptr"]],
75 "VarR4FromUI1" => ["long", ["long", "ptr"]],
76 "VarR4FromI2" => ["long", ["long", "ptr"]],
77 "VarR4FromI4" => ["long", ["long", "ptr"]],
78 "VarR4FromR8" => ["long", ["double", "ptr"]],
79 "VarR4FromCy" => ["long", ["double", "ptr"]],
80 "VarR4FromDate" => ["long", ["double", "ptr"]],
81 "VarR4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
82 "VarR4FromBool" => ["long", ["long", "ptr"]],
83 "SafeArrayGetVarType" => ["long", ["ptr", "ptr"]],
84 "VarR8FromUI1" => ["long", ["long", "ptr"]],
85 "VarR8FromI2" => ["long", ["long", "ptr"]],
86 "VarR8FromI4" => ["long", ["long", "ptr"]],
87 "VarR8FromR4" => ["long", ["long", "ptr"]],
88 "VarR8FromCy" => ["long", ["double", "ptr"]],
89 "VarR8FromDate" => ["long", ["double", "ptr"]],
90 "VarR8FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
91 "VarR8FromBool" => ["long", ["long", "ptr"]],
92 "VarDateFromUI1" => ["long", ["long", "ptr"]],
93 "VarDateFromI2" => ["long", ["long", "ptr"]],
94 "VarDateFromI4" => ["long", ["long", "ptr"]],
95 "VarDateFromR4" => ["long", ["long", "ptr"]],
96 "VarDateFromR8" => ["long", ["double", "ptr"]],
97 "VarDateFromCy" => ["long", ["double", "ptr"]],
98 "VarDateFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
99 "VarDateFromBool" => ["long", ["long", "ptr"]],
100 "VarCyFromUI1" => ["long", ["long", "ptr"]],
101 "VarCyFromI2" => ["long", ["long", "ptr"]],
102 "VarCyFromI4" => ["long", ["long", "ptr"]],
103 "VarCyFromR4" => ["long", ["long", "ptr"]],
104 "VarCyFromR8" => ["long", ["double", "ptr"]],
105 "VarCyFromDate" => ["long", ["double", "ptr"]],
106 "VarCyFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
107 "VarCyFromBool" => ["long", ["long", "ptr"]],
108 "VarBstrFromUI1" => ["long", ["long", "long", "long", "ptr"]],
109 "VarBstrFromI2" => ["long", ["long", "long", "long", "ptr"]],
110 "VarBstrFromI4" => ["long", ["long", "long", "long", "ptr"]],
111 "VarBstrFromR4" => ["long", ["long", "long", "long", "ptr"]],
112 "VarBstrFromR8" => ["long", ["double", "long", "long", "ptr"]],
113 "VarBstrFromCy" => ["long", ["double", "long", "long", "ptr"]],
114 "VarBstrFromDate" => ["long", ["double", "long", "long", "ptr"]],
115 "VarBstrFromBool" => ["long", ["long", "long", "long", "ptr"]],
116 "VarBoolFromUI1" => ["long", ["long", "ptr"]],
117 "VarBoolFromI2" => ["long", ["long", "ptr"]],
118 "VarBoolFromI4" => ["long", ["long", "ptr"]],
119 "VarBoolFromR4" => ["long", ["long", "ptr"]],
120 "VarBoolFromR8" => ["long", ["double", "ptr"]],
121 "VarBoolFromDate" => ["long", ["double", "ptr"]],
122 "VarBoolFromCy" => ["long", ["double", "ptr"]],
123 "VarBoolFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
124 "VarUI1FromI2" => ["long", ["long", "ptr"]],
125 "VarUI1FromI4" => ["long", ["long", "ptr"]],
126 "VarUI1FromR4" => ["long", ["long", "ptr"]],
127 "VarUI1FromR8" => ["long", ["double", "ptr"]],
128 "VarUI1FromCy" => ["long", ["double", "ptr"]],
129 "VarUI1FromDate" => ["long", ["double", "ptr"]],
130 "VarUI1FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
131 "VarUI1FromBool" => ["long", ["long", "ptr"]],
132 "VariantChangeTypeEx" => ["long", ["ptr", "ptr", "long", "long", "long"]],
133 "SafeArrayPtrOfIndex" => ["long", ["ptr", "ptr", "ptr"]],
134 "SysStringByteLen" => ["long", ["wstr"]],
135 "SysAllocStringByteLen" => ["wstr", ["str", "long"]],
136 "CreateTypeLib" => ["long", ["long", "str", "ptr"]],
137 "LoadTypeLib" => ["long", ["ptr", "ptr"]],
138 "LoadRegTypeLib" => ["long", ["ptr", "long", "long", "long", "ptr"]],
139 "RegisterTypeLib" => ["long", ["ptr", "ptr", "ptr"]],
140 "QueryPathOfRegTypeLib" => ["long", ["ptr", "long", "long", "long", "ptr"]],
141 "LHashValOfNameSys" => ["long", ["long", "long", "str"]],
142 "LHashValOfNameSysA" => ["long", ["long", "long", "str"]],
143 "OaBuildVersion" => ["long", ["undef"]],
144 "LoadTypeLibEx" => ["long", ["str", "long", "ptr"]],
145 "SystemTimeToVariantTime" => ["long", ["ptr", "ptr"]],
146 "VariantTimeToSystemTime" => ["long", ["double", "ptr"]],
147 "UnRegisterTypeLib" => ["long", ["ptr", "long", "long", "long", "long"]],
148 "VarI2FromI1" => ["long", ["long", "ptr"]],
149 "VarI2FromUI2" => ["long", ["long", "ptr"]],
150 "VarI2FromUI4" => ["long", ["long", "ptr"]],
151 "VarI4FromI1" => ["long", ["long", "ptr"]],
152 "VarI4FromUI2" => ["long", ["long", "ptr"]],
153 "VarI4FromUI4" => ["long", ["long", "ptr"]],
154 "VarR4FromI1" => ["long", ["long", "ptr"]],
155 "VarR4FromUI2" => ["long", ["long", "ptr"]],
156 "VarR4FromUI4" => ["long", ["long", "ptr"]],
157 "VarR8FromI1" => ["long", ["long", "ptr"]],
158 "VarR8FromUI2" => ["long", ["long", "ptr"]],
159 "VarR8FromUI4" => ["long", ["long", "ptr"]],
160 "VarDateFromI1" => ["long", ["long", "ptr"]],
161 "VarDateFromUI2" => ["long", ["long", "ptr"]],
162 "VarDateFromUI4" => ["long", ["long", "ptr"]],
163 "VarCyFromI1" => ["long", ["long", "ptr"]],
164 "VarCyFromUI2" => ["long", ["long", "ptr"]],
165 "VarCyFromUI4" => ["long", ["long", "ptr"]],
166 "VarBstrFromI1" => ["long", ["long", "long", "long", "ptr"]],
167 "VarBstrFromUI2" => ["long", ["long", "long", "long", "ptr"]],
168 "VarBstrFromUI4" => ["long", ["long", "long", "long", "ptr"]],
169 "VarBoolFromI1" => ["long", ["long", "ptr"]],
170 "VarBoolFromUI2" => ["long", ["long", "ptr"]],
171 "VarBoolFromUI4" => ["long", ["long", "ptr"]],
172 "VarUI1FromI1" => ["long", ["long", "ptr"]],
173 "VarUI1FromUI2" => ["long", ["long", "ptr"]],
174 "VarUI1FromUI4" => ["long", ["long", "ptr"]],
175 "VarI1FromUI1" => ["long", ["long", "ptr"]],
176 "VarI1FromI2" => ["long", ["long", "ptr"]],
177 "VarI1FromI4" => ["long", ["long", "ptr"]],
178 "VarI1FromR4" => ["long", ["long", "ptr"]],
179 "VarI1FromR8" => ["long", ["double", "ptr"]],
180 "VarI1FromDate" => ["long", ["double", "ptr"]],
181 "VarI1FromCy" => ["long", ["double", "ptr"]],
182 "VarI1FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
183 "VarI1FromBool" => ["long", ["long", "ptr"]],
184 "VarI1FromUI2" => ["long", ["long", "ptr"]],
185 "VarI1FromUI4" => ["long", ["long", "ptr"]],
186 "VarUI2FromUI1" => ["long", ["long", "ptr"]],
187 "VarUI2FromI2" => ["long", ["long", "ptr"]],
188 "VarUI2FromI4" => ["long", ["long", "ptr"]],
189 "VarUI2FromR4" => ["long", ["long", "ptr"]],
190 "VarUI2FromR8" => ["long", ["double", "ptr"]],
191 "VarUI2FromDate" => ["long", ["double", "ptr"]],
192 "VarUI2FromCy" => ["long", ["double", "ptr"]],
193 "VarUI2FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
194 "VarUI2FromBool" => ["long", ["long", "ptr"]],
195 "VarUI2FromI1" => ["long", ["long", "ptr"]],
196 "VarUI2FromUI4" => ["long", ["long", "ptr"]],
197 "VarUI4FromUI1" => ["long", ["long", "ptr"]],
198 "VarUI4FromI2" => ["long", ["long", "ptr"]],
199 "VarUI4FromI4" => ["long", ["long", "ptr"]],
200 "VarUI4FromR4" => ["long", ["long", "ptr"]],
201 "VarUI4FromR8" => ["long", ["double", "ptr"]],
202 "VarUI4FromDate" => ["long", ["double", "ptr"]],
203 "VarUI4FromCy" => ["long", ["double", "ptr"]],
204 "VarUI4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
205 "VarUI4FromBool" => ["long", ["long", "ptr"]],
206 "VarUI4FromI1" => ["long", ["long", "ptr"]],
207 "VarUI4FromUI2" => ["long", ["long", "ptr"]],
208 "DllRegisterServer" => ["long", ["undef"]],
209 "VarDateFromUdate" => ["long", ["ptr", "long", "ptr"]],
210 "VarUdateFromDate" => ["long", ["double", "long", "ptr"]],
211 "DllCanUnloadNow" => ["long", ["undef"]],
212 "SafeArrayCreateVector" => ["ptr", ["long", "long", "long"]],
213 "SafeArrayCopyData" => ["long", ["ptr", "ptr"]],
214 "OleIconToCursor" => ["long", ["long", "long"]],
215 "OleLoadPicture" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
216 "OleCreatePictureIndirect" => ["long", ["ptr", "ptr", "long", "ptr"]],
217 "OleCreateFontIndirect" => ["long", ["ptr", "ptr", "ptr"]],
218 "OleTranslateColor" => ["long", ["long", "long", "ptr"]],
219 "OleLoadPictureEx" => ["long", ["ptr", "long", "long", "ptr", "long", "long", "long", "ptr"]],
220 "SafeArrayAllocDescriptorEx" => ["long", ["long", "long", "ptr"]],
221 "VarBstrCat" => ["long", ["wstr", "wstr", "ptr"]],
222 "VarBstrCmp" => ["long", ["wstr", "wstr", "long", "long"]],
223 "VarCat" => ["long", ["ptr", "ptr", "ptr"]]
226 &wine::declare("oleaut32",%$module_declarations);
227 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));