xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/oleauto.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_oleauto.d)
8  */
9 module core.sys.windows.oleauto;
10 version (Windows):
11 @system:
12 pragma(lib, "oleaut32");
13 
14 import core.sys.windows.oaidl;
15 import core.sys.windows.basetyps, core.sys.windows.unknwn, core.sys.windows.windef, core.sys.windows.wtypes;
16 import core.sys.windows.winbase; // for SYSTEMTIME
17 
18 align(8):
19 enum STDOLE_MAJORVERNUM = 1;
20 enum STDOLE_MINORVERNUM = 0;
21 enum STDOLE_LCID = 0;
22 
23 enum VARIANT_NOVALUEPROP = 0x01;
24 enum VARIANT_ALPHABOOL = 0x02;
25 enum VARIANT_NOUSEOVERRIDE = 0x04;
26 enum VARIANT_LOCALBOOL = 0x08;
27 
28 enum VAR_TIMEVALUEONLY = 0x0001;
29 enum VAR_DATEVALUEONLY = 0x0002;
30 enum VAR_VALIDDATE = 0x0004;
31 enum VAR_CALENDAR_HIJRI = 0x0008;
32 enum VAR_LOCALBOOL = 0x0010;
33 enum VAR_FORMAT_NOSUBSTITUTE = 0x0020;
34 enum VAR_FOURDIGITYEARS = 0x0040;
35 enum VAR_CALENDAR_THAI = 0x0080;
36 enum VAR_CALENDAR_GREGORIAN = 0x0100;
37 
38 enum MEMBERID_NIL = DISPID_UNKNOWN;
39 enum ID_DEFAULTINST =  -2;
40 enum DISPATCH_METHOD = 1;
41 enum DISPATCH_PROPERTYGET = 2;
42 enum DISPATCH_PROPERTYPUT = 4;
43 enum DISPATCH_PROPERTYPUTREF = 8;
44 
45 //ULONG LHashValOfName(LCID l, OLECHAR* n) { return LHashValOfNameSys(SYSKIND.SYS_WIN32, l, n); }
46 
47 // DAC: These aren't in the 2003 SDK.
48 //MACRO #define WHashValOfLHashVal(h) ((unsigned short)(0x0000ffff&(h)))
49 //MACRO #define IsHashValCompatible(h1, h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2))))
50 
51 enum {
52     ACTIVEOBJECT_STRONG = 0,
53     ACTIVEOBJECT_WEAK   = 1
54 }
55 
56 // DAC: These seem to be irrelevant for D.
57 //#define V_UNION(X, Y) ((X)->Y)
58 //#define V_VT(X) ((X)->vt)
59 //#define V_BOOL(X) V_UNION(X, boolVal)
60 //#define V_ISBYREF(X) (V_VT(X)&VT_BYREF)
61 //#define V_ISARRAY(X) (V_VT(X)&VT_ARRAY)
62 //#define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR)
63 //#define V_NONE(X) V_I2(X)
64 //#define V_UI1(X) V_UNION(X, bVal)
65 //#define V_UI1REF(X) V_UNION(X, pbVal)
66 //#define V_I2(X) V_UNION(X, iVal)
67 //#define V_UI2(X) V_UNION(X, uiVal)
68 //#define V_I2REF(X) V_UNION(X, piVal)
69 //#define V_I4(X) V_UNION(X, lVal)
70 //#define V_UI4(X) V_UNION(X, ulVal)
71 //#define V_I4REF(X) V_UNION(X, plVal)
72 //#define V_UI4REF(X) V_UNION(X, pulVal)
73 //#define V_I8(X) V_UNION(X, llVal)
74 //#define V_UI8(X) V_UNION(X, ullVal)
75 //#define V_I8REF(X) V_UNION(X, pllVal)
76 //#define V_UI8REF(X) V_UNION(X, pullVal)
77 //#define V_R4(X) V_UNION(X, fltVal)
78 //#define V_R4REF(X) V_UNION(X, pfltVal)
79 //#define V_R8(X) V_UNION(X, dblVal)
80 //#define V_R8REF(X) V_UNION(X, pdblVal)
81 //#define V_CY(X) V_UNION(X, cyVal)
82 //#define V_CYREF(X) V_UNION(X, pcyVal)
83 //#define V_DATE(X) V_UNION(X, date)
84 //#define V_DATEREF(X) V_UNION(X, pdate)
85 //#define V_BSTR(X) V_UNION(X, bstrVal)
86 //#define V_BSTRREF(X) V_UNION(X, pbstrVal)
87 //#define V_DISPATCH(X) V_UNION(X, pdispVal)
88 //#define V_DISPATCHREF(X) V_UNION(X, ppdispVal)
89 //#define V_ERROR(X) V_UNION(X, scode)
90 //#define V_ERRORREF(X) V_UNION(X, pscode)
91 //#define V_BOOLREF(X) V_UNION(X, pboolVal)
92 //#define V_UNKNOWN(X) V_UNION(X, punkVal)
93 //#define V_UNKNOWNREF(X) V_UNION(X, ppunkVal)
94 //#define V_VARIANTREF(X) V_UNION(X, pvarVal)
95 //#define V_LPSTR(X) V_UNION(X, pszVal)
96 //#define V_LPSTRREF(X) V_UNION(X, ppszVal)
97 //#define V_LPWSTR(X) V_UNION(X, pwszVal)
98 //#define V_LPWSTRREF(X) V_UNION(X, ppwszVal)
99 //#define V_FILETIME(X) V_UNION(X, filetime)
100 //#define V_FILETIMEREF(X) V_UNION(X, pfiletime)
101 //#define V_BLOB(X) V_UNION(X, blob)
102 //#define V_UUID(X) V_UNION(X, puuid)
103 //#define V_CLSID(X) V_UNION(X, puuid)
104 //#define V_ARRAY(X) V_UNION(X, parray)
105 //#define V_ARRAYREF(X) V_UNION(X, pparray)
106 //#define V_BYREF(X) V_UNION(X, byref)
107 //#define V_DECIMAL(X) ((X)->decVal)
108 //#define V_DECIMALREF(X) V_UNION(X, pdecVal)
109 //#define V_I1(X) V_UNION(X, cVal)
110 
111 //#ifdef _WIN64
112 //#define V_INT_PTR(X) V_I8(X)
113 //#define V_UINT_PTR(X) V_UI8(X)
114 //#define V_INT_PTRREF(X) V_I8REF(X)
115 //#define V_UINT_PTRREF(X) V_UI8REF(X)
116 //#else
117 //#define V_INT_PTR(X) V_I4(X)
118 //#define V_UINT_PTR(X) V_UI4(X)
119 //#define V_INT_PTRREF(X) V_I4REF(X)
120 //#define V_UINT_PTRREF(X) V_UI4REF(X)
121 //#endif
122 
123 enum {
124     VARCMP_LT = 0,
125     VARCMP_EQ,
126     VARCMP_GT,
127     VARCMP_NULL // = 3
128 }
129 
130 enum LOCALE_USE_NLS = 0x10000000;
131 
132 enum VARIANT_NOUSEROVERRIDE     = 0x04;
133 enum VARIANT_CALENDAR_HIJRI     = 0x08;
134 enum VARIANT_CALENDAR_THAI      = 0x20;
135 enum VARIANT_CALENDAR_GREGORIAN = 0x40;
136 enum VARIANT_USE_NLS            = 0x80;
137 
138 enum NUMPRS_LEADING_WHITE  = 0x00001;
139 enum NUMPRS_TRAILING_WHITE = 0x00002;
140 enum NUMPRS_LEADING_PLUS   = 0x00004;
141 enum NUMPRS_TRAILING_PLUS  = 0x00008;
142 enum NUMPRS_LEADING_MINUS  = 0x00010;
143 enum NUMPRS_TRAILING_MINUS = 0x00020;
144 enum NUMPRS_HEX_OCT        = 0x00040;
145 enum NUMPRS_PARENS         = 0x00080;
146 enum NUMPRS_DECIMAL        = 0x00100;
147 enum NUMPRS_THOUSANDS      = 0x00200;
148 enum NUMPRS_CURRENCY       = 0x00400;
149 enum NUMPRS_EXPONENT       = 0x00800;
150 enum NUMPRS_USE_ALL        = 0x01000;
151 enum NUMPRS_STD            = 0x01FFF;
152 enum NUMPRS_NEG            = 0x10000;
153 enum NUMPRS_INEXACT        = 0x20000;
154 
155 enum VTBIT_I1 = 1 << VARENUM.VT_I1;
156 enum VTBIT_UI1 = 1 << VARENUM.VT_UI1;
157 enum VTBIT_I2 = 1 << VARENUM.VT_I2;
158 enum VTBIT_UI2 = 1 << VARENUM.VT_UI2;
159 enum VTBIT_I4 = 1 << VARENUM.VT_I4;
160 enum VTBIT_UI4 = 1 << VARENUM.VT_UI4;
161 enum VTBIT_I8 = 1 << VARENUM.VT_I8;
162 enum VTBIT_UI8 = 1 << VARENUM.VT_UI8;
163 enum VTBIT_R4 = 1 << VARENUM.VT_R4;
164 enum VTBIT_R8 = 1 << VARENUM.VT_R8;
165 enum VTBIT_CY = 1 << VARENUM.VT_CY;
166 enum VTBIT_DECIMAL = 1 << VARENUM.VT_DECIMAL;
167 
168 
169 enum REGKIND{
170     REGKIND_DEFAULT,
171     REGKIND_REGISTER,
172     REGKIND_NONE
173 }
174 
175 struct PARAMDATA{
176     OLECHAR* szName;
177     VARTYPE vt;
178 }
179 alias PARAMDATA* LPPARAMDATA;
180 
181 struct METHODDATA{
182     OLECHAR* szName;
183     PARAMDATA* ppdata;
184     DISPID dispid;
185     UINT iMeth;
186     CALLCONV cc;
187     UINT cArgs;
188     WORD wFlags;
189     VARTYPE vtReturn;
190 }
191 alias METHODDATA* LPMETHODDATA;
192 
193 struct INTERFACEDATA{
194     METHODDATA* pmethdata;
195     UINT cMembers;
196 }
197 alias INTERFACEDATA* LPINTERFACEDATA;
198 
199 struct UDATE {
200     SYSTEMTIME st;
201     USHORT wDayOfYear;
202 }
203 
204 struct NUMPARSE {
205     int cDig;
206     uint dwInFlags;
207     uint dwOutFlags;
208     int cchUsed;
209     int nBaseShift;
210     int nPwr10;
211 }
212 
213 
214 // DAC: In MinGW, these were declared but not defined in oaidl.
215 // The SDK docs suggest they belong in this file instead.
216 
217 deprecated {  // not actually deprecated, but they aren't converted yet.
218               // (will need to reinstate CreateTypeLib as well)
219     interface ICreateTypeInfo {}
220     interface ICreateTypeInfo2 {}
221     interface ICreateTypeLib {}
222     interface ICreateTypeLib2 {}
223 
224     alias ICreateTypeInfo LPCREATETYPEINFO;
225     alias ICreateTypeInfo2 LPCREATETYPEINFO2;
226     alias ICreateTypeLib LPCREATETYPELIB;
227     alias ICreateTypeLib2 LPCREATETYPELIB2;
228 }
229 
230 extern (Windows) {
231     BSTR SysAllocString(const(OLECHAR)*);
232     int SysReAllocString(BSTR*, const(OLECHAR)*);
233     BSTR SysAllocStringLen(const(OLECHAR)*, uint);
234     int SysReAllocStringLen(BSTR*, const(OLECHAR)*, uint);
235     void SysFreeString(BSTR);
236     uint SysStringLen(BSTR);
237     uint SysStringByteLen(BSTR);
238     BSTR SysAllocStringByteLen(const(char)*, uint);
239     int DosDateTimeToVariantTime(ushort, ushort, double*);
240     int VariantTimeToDosDateTime(double, ushort*, ushort*);
241     int VariantTimeToSystemTime(double, LPSYSTEMTIME);
242     int SystemTimeToVariantTime(LPSYSTEMTIME, double*);
243     HRESULT VarDateFromUdate(UDATE*, ULONG, DATE*);
244     HRESULT VarDateFromUdateEx(UDATE*, LCID, ULONG, DATE*);
245     HRESULT VarUdateFromDate(DATE, ULONG, UDATE*);
246     HRESULT SafeArrayAllocDescriptor(uint, SAFEARRAY**);
247     HRESULT SafeArrayAllocData(SAFEARRAY*);
248     SAFEARRAY* SafeArrayCreate(VARTYPE, uint, SAFEARRAYBOUND*);
249     HRESULT SafeArrayDestroyDescriptor(SAFEARRAY*);
250     HRESULT SafeArrayDestroyData(SAFEARRAY*);
251     HRESULT SafeArrayDestroy(SAFEARRAY*);
252     HRESULT SafeArrayRedim(SAFEARRAY*, SAFEARRAYBOUND*);
253     uint SafeArrayGetDim(SAFEARRAY*);
254     uint SafeArrayGetElemsize(SAFEARRAY*);
255     HRESULT SafeArrayGetUBound(SAFEARRAY*, uint, int*);
256     HRESULT SafeArrayGetLBound(SAFEARRAY*, uint, int*);
257     HRESULT SafeArrayLock(SAFEARRAY*);
258     HRESULT SafeArrayUnlock(SAFEARRAY*);
259     HRESULT SafeArrayAccessData(SAFEARRAY*, void**);
260     HRESULT SafeArrayUnaccessData(SAFEARRAY*);
261     HRESULT SafeArrayGetElement(SAFEARRAY*, int*, void*);
262     HRESULT SafeArrayPutElement(SAFEARRAY*, int*, void*);
263     HRESULT SafeArrayCopy(SAFEARRAY*, SAFEARRAY**);
264     HRESULT SafeArrayPtrOfIndex(SAFEARRAY*, int*, void**);
265     SAFEARRAY* SafeArrayCreateVector(VARTYPE, LONG, ULONG);
266     SAFEARRAY* SafeArrayCreateVectorEx(VARTYPE, LONG, ULONG, LPVOID);
267     HRESULT SafeArrayAllocDescriptorEx(VARTYPE, UINT, SAFEARRAY**);
268     HRESULT SafeArrayGetVartype(SAFEARRAY*, VARTYPE*);
269     HRESULT SafeArraySetRecordInfo(SAFEARRAY*, IRecordInfo);
270     HRESULT SafeArrayGetRecordInfo(SAFEARRAY*, IRecordInfo*);
271     HRESULT SafeArraySetIID(SAFEARRAY*, REFGUID);
272     HRESULT SafeArrayGetIID(SAFEARRAY*, GUID*);
273     void VariantInit(VARIANTARG*);
274     HRESULT VariantClear(VARIANTARG*);
275     HRESULT VariantCopy(VARIANTARG*, VARIANTARG*);
276     HRESULT VariantCopyInd(VARIANT*, VARIANTARG*);
277     HRESULT VariantChangeType(VARIANTARG*, VARIANTARG*, ushort, VARTYPE);
278     HRESULT VariantChangeTypeEx(VARIANTARG*, VARIANTARG*, LCID, ushort, VARTYPE);
279     HRESULT VarUI1FromI2(short, ubyte*);
280     HRESULT VarUI1FromI4(int, ubyte*);
281     HRESULT VarUI1FromR4(float, ubyte*);
282     HRESULT VarUI1FromR8(double, ubyte*);
283     HRESULT VarUI1FromCy(CY, ubyte*);
284     HRESULT VarUI1FromDate(DATE, ubyte*);
285     HRESULT VarUI1FromStr(OLECHAR*, LCID, uint, ubyte*);
286     HRESULT VarUI1FromDisp(LPDISPATCH, LCID, ubyte*);
287     HRESULT VarUI1FromBool(VARIANT_BOOL, ubyte*);
288     HRESULT VarI2FromUI1(ubyte, short*);
289     HRESULT VarI2FromI4(int, short*);
290     HRESULT VarI2FromR4(float, short*);
291     HRESULT VarI2FromR8(double, short*);
292     HRESULT VarI2FromCy(CY cyIn, short*);
293     HRESULT VarI2FromDate(DATE, short*);
294     HRESULT VarI2FromStr(OLECHAR*, LCID, uint, short*);
295     HRESULT VarI2FromDisp(LPDISPATCH, LCID, short*);
296     HRESULT VarI2FromBool(VARIANT_BOOL, short*);
297     HRESULT VarI4FromUI1(ubyte, int*);
298     HRESULT VarI4FromI2(short, int*);
299     HRESULT VarI4FromR4(float, int*);
300     HRESULT VarI4FromR8(double, int*);
301     HRESULT VarI4FromCy(CY, int*);
302     HRESULT VarI4FromDate(DATE, int*);
303     HRESULT VarI4FromStr(OLECHAR*, LCID, uint, int*);
304     HRESULT VarI4FromDisp(LPDISPATCH, LCID, int*);
305     HRESULT VarI4FromBool(VARIANT_BOOL, int*);
306     HRESULT VarR4FromUI1(ubyte, float*);
307     HRESULT VarR4FromI2(short, float*);
308     HRESULT VarR4FromI4(int, float*);
309     HRESULT VarR4FromR8(double, float*);
310     HRESULT VarR4FromCy(CY, float*);
311     HRESULT VarR4FromDate(DATE, float*);
312     HRESULT VarR4FromStr(OLECHAR*, LCID, uint, float*);
313     HRESULT VarR4FromDisp(LPDISPATCH, LCID, float*);
314     HRESULT VarR4FromBool(VARIANT_BOOL, float*);
315     HRESULT VarR8FromUI1(ubyte, double*);
316     HRESULT VarR8FromI2(short, double*);
317     HRESULT VarR8FromI4(int, double*);
318     HRESULT VarR8FromR4(float, double*);
319     HRESULT VarR8FromCy(CY, double*);
320     HRESULT VarR8FromDate(DATE, double*);
321     HRESULT VarR8FromStr(OLECHAR*, LCID, uint, double*);
322     HRESULT VarR8FromDisp(LPDISPATCH, LCID, double*);
323     HRESULT VarR8FromBool(VARIANT_BOOL, double*);
324     HRESULT VarR8FromDec(DECIMAL*, double*);
325     HRESULT VarDateFromUI1(ubyte, DATE*);
326     HRESULT VarDateFromI2(short, DATE*);
327     HRESULT VarDateFromI4(int, DATE*);
328     HRESULT VarDateFromR4(float, DATE*);
329     HRESULT VarDateFromR8(double, DATE*);
330     HRESULT VarDateFromCy(CY, DATE*);
331     HRESULT VarDateFromStr(OLECHAR*, LCID, uint, DATE*);
332     HRESULT VarDateFromDisp(LPDISPATCH, LCID, DATE*);
333     HRESULT VarDateFromBool(VARIANT_BOOL, DATE*);
334     HRESULT VarCyFromUI1(ubyte, CY*);
335     HRESULT VarCyFromI2(short, CY*);
336     HRESULT VarCyFromI4(int, CY*);
337     HRESULT VarCyFromR4(float, CY*);
338     HRESULT VarCyFromR8(double, CY*);
339     HRESULT VarCyFromDate(DATE, CY*);
340     HRESULT VarCyFromStr(OLECHAR*, LCID, uint, CY*);
341     HRESULT VarCyFromDisp(LPDISPATCH, LCID, CY*);
342     HRESULT VarCyFromBool(VARIANT_BOOL, CY*);
343     HRESULT VarBstrFromUI1(ubyte, LCID, uint, BSTR*);
344     HRESULT VarBstrFromI2(short, LCID, uint, BSTR*);
345     HRESULT VarBstrFromI4(int, LCID, uint, BSTR*);
346     HRESULT VarBstrFromR4(float, LCID, uint, BSTR*);
347     HRESULT VarBstrFromR8(double, LCID, uint, BSTR*);
348     HRESULT VarBstrFromCy(CY, LCID, uint, BSTR*);
349     HRESULT VarBstrFromDate(DATE, LCID, uint, BSTR*);
350     HRESULT VarBstrFromDisp(LPDISPATCH, LCID, uint, BSTR*);
351     HRESULT VarBstrFromBool(VARIANT_BOOL, LCID, uint, BSTR*);
352     HRESULT VarBoolFromUI1(ubyte, VARIANT_BOOL*);
353     HRESULT VarBoolFromI2(short, VARIANT_BOOL*);
354     HRESULT VarBoolFromI4(int, VARIANT_BOOL*);
355     HRESULT VarBoolFromR4(float, VARIANT_BOOL*);
356     HRESULT VarBoolFromR8(double, VARIANT_BOOL*);
357     HRESULT VarBoolFromDate(DATE, VARIANT_BOOL*);
358     HRESULT VarBoolFromCy(CY, VARIANT_BOOL*);
359     HRESULT VarBoolFromStr(OLECHAR*, LCID, uint, VARIANT_BOOL*);
360     HRESULT VarBoolFromDisp(LPDISPATCH, LCID, VARIANT_BOOL*);
361     HRESULT VarDecFromR8(double, DECIMAL*);
362     ULONG LHashValOfNameSysA(SYSKIND, LCID, const(char)*);
363     ULONG LHashValOfNameSys(SYSKIND, LCID, const(OLECHAR)*);
364     HRESULT LoadTypeLib(const(OLECHAR)*, LPTYPELIB*);
365     HRESULT LoadTypeLibEx(LPCOLESTR, REGKIND, LPTYPELIB*);
366     HRESULT LoadRegTypeLib(REFGUID, WORD, WORD, LCID, LPTYPELIB*);
367     HRESULT QueryPathOfRegTypeLib(REFGUID, ushort, ushort, LCID, LPBSTR);
368     HRESULT RegisterTypeLib(LPTYPELIB, OLECHAR*, OLECHAR*);
369     HRESULT UnRegisterTypeLib(REFGUID, WORD, WORD, LCID, SYSKIND);
370     // not actually deprecated, but depends on unconverted ICreateTypeLib
371     deprecated HRESULT CreateTypeLib(SYSKIND, const(OLECHAR)*, LPCREATETYPELIB*);
372     HRESULT DispGetParam(DISPPARAMS*, UINT, VARTYPE, VARIANT*, UINT*);
373     HRESULT DispGetIDsOfNames(LPTYPEINFO, OLECHAR**, UINT, DISPID*);
374     HRESULT DispInvoke(void*, LPTYPEINFO, DISPID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*);
375     HRESULT CreateDispTypeInfo(INTERFACEDATA*, LCID, LPTYPEINFO*);
376     HRESULT CreateStdDispatch(IUnknown, void*, LPTYPEINFO, IUnknown*);
377     HRESULT RegisterActiveObject(IUnknown, REFCLSID, DWORD, DWORD*);
378     HRESULT RevokeActiveObject(DWORD, void*);
379     HRESULT GetActiveObject(REFCLSID, void*, IUnknown*);
380     HRESULT SetErrorInfo(uint, LPERRORINFO);
381     HRESULT GetErrorInfo(uint, LPERRORINFO*);
382     HRESULT CreateErrorInfo(LPCREATEERRORINFO*);
383     uint OaBuildVersion();
384     HRESULT VectorFromBstr (BSTR, SAFEARRAY**);
385     HRESULT BstrFromVector (SAFEARRAY*, BSTR*);
386     HRESULT VarParseNumFromStr(OLECHAR*, LCID, ULONG, NUMPARSE*, BYTE*);
387     HRESULT VarNumFromParseNum(NUMPARSE*, BYTE*, ULONG, VARIANT*);
388 
389     HRESULT VarAdd(LPVARIANT, LPVARIANT, LPVARIANT);
390     HRESULT VarSub(LPVARIANT, LPVARIANT, LPVARIANT);
391     HRESULT VarMul(LPVARIANT, LPVARIANT, LPVARIANT);
392     HRESULT VarDiv(LPVARIANT, LPVARIANT, LPVARIANT);
393 
394     HRESULT VarUI1FromI2(SHORT, BYTE*);
395     HRESULT VarUI1FromI4(LONG, BYTE*);
396     HRESULT VarUI1FromI8(LONG64, BYTE*);
397     HRESULT VarUI1FromR4(FLOAT, BYTE*);
398     HRESULT VarUI1FromR8(DOUBLE, BYTE*);
399     HRESULT VarUI1FromDate(DATE, BYTE*);
400     HRESULT VarUI1FromBool(VARIANT_BOOL, BYTE*);
401     HRESULT VarUI1FromI1(byte, BYTE*);
402     HRESULT VarUI1FromUI2(USHORT, BYTE*);
403     HRESULT VarUI1FromUI4(ULONG, BYTE*);
404     HRESULT VarUI1FromUI8(ULONG64, BYTE*);
405     HRESULT VarUI1FromStr(OLECHAR*, LCID, ULONG, BYTE*);
406     HRESULT VarUI1FromCy(CY, BYTE*);
407     HRESULT VarUI1FromDec(DECIMAL*, BYTE*);
408     HRESULT VarUI1FromDisp(IDispatch, LCID, BYTE*);
409 
410     HRESULT VarI2FromUI1(BYTE, SHORT*);
411     HRESULT VarI2FromI4(LONG, SHORT*);
412     HRESULT VarI2FromI8(LONG64, SHORT*);
413     HRESULT VarI2FromR4(FLOAT, SHORT*);
414     HRESULT VarI2FromR8(DOUBLE, SHORT*);
415     HRESULT VarI2FromDate(DATE, SHORT*);
416     HRESULT VarI2FromBool(VARIANT_BOOL, SHORT*);
417     HRESULT VarI2FromI1(byte, SHORT*);
418     HRESULT VarI2FromUI2(USHORT, SHORT*);
419     HRESULT VarI2FromUI4(ULONG, SHORT*);
420     HRESULT VarI2FromUI8(ULONG64, SHORT*);
421     HRESULT VarI2FromStr(OLECHAR*, LCID, ULONG, SHORT*);
422     HRESULT VarI2FromCy(CY, SHORT*);
423     HRESULT VarI2FromDec(DECIMAL*, SHORT*);
424     HRESULT VarI2FromDisp(IDispatch, LCID, SHORT*);
425 
426     HRESULT VarI4FromUI1(BYTE, LONG*);
427     HRESULT VarI4FromI2(SHORT, LONG*);
428     HRESULT VarI4FromI8(LONG64, LONG*);
429     HRESULT VarI4FromR4(FLOAT, LONG*);
430     HRESULT VarI4FromR8(DOUBLE, LONG*);
431     HRESULT VarI4FromDate(DATE, LONG*);
432     HRESULT VarI4FromBool(VARIANT_BOOL, LONG*);
433     HRESULT VarI4FromI1(byte, LONG*);
434     HRESULT VarI4FromUI2(USHORT, LONG*);
435     HRESULT VarI4FromUI4(ULONG, LONG*);
436     HRESULT VarI4FromUI8(ULONG64, LONG*);
437     HRESULT VarI4FromStr(OLECHAR*, LCID, ULONG, LONG*);
438     HRESULT VarI4FromCy(CY, LONG*);
439     HRESULT VarI4FromDec(DECIMAL*, LONG*);
440     HRESULT VarI4FromDisp(IDispatch, LCID, LONG*);
441 
442     HRESULT VarI8FromUI1(BYTE, LONG64*);
443     HRESULT VarI8FromI2(SHORT, LONG64*);
444     HRESULT VarI8FromI4(LONG, LONG64*);
445     HRESULT VarI8FromR4(FLOAT, LONG64*);
446     HRESULT VarI8FromR8(DOUBLE, LONG64*);
447     HRESULT VarI8FromDate(DATE, LONG64*);
448     HRESULT VarI8FromStr(OLECHAR*, LCID, ULONG, LONG64*);
449     HRESULT VarI8FromBool(VARIANT_BOOL, LONG64*);
450     HRESULT VarI8FromI1(byte, LONG64*);
451     HRESULT VarI8FromUI2(USHORT, LONG64*);
452     HRESULT VarI8FromUI4(ULONG, LONG64*);
453     HRESULT VarI8FromUI8(ULONG64, LONG64*);
454     HRESULT VarI8FromDec(DECIMAL* pdecIn, LONG64*);
455     HRESULT VarI8FromInt(INT intIn, LONG64*);
456     HRESULT VarI8FromCy(CY, LONG64*);
457     HRESULT VarI8FromDisp(IDispatch, LCID, LONG64*);
458 
459     HRESULT VarR4FromUI1(BYTE, FLOAT*);
460     HRESULT VarR4FromI2(SHORT, FLOAT*);
461     HRESULT VarR4FromI4(LONG, FLOAT*);
462     HRESULT VarR4FromI8(LONG64, FLOAT*);
463     HRESULT VarR4FromR8(DOUBLE, FLOAT*);
464     HRESULT VarR4FromDate(DATE, FLOAT*);
465     HRESULT VarR4FromBool(VARIANT_BOOL, FLOAT*);
466     HRESULT VarR4FromI1(byte, FLOAT*);
467     HRESULT VarR4FromUI2(USHORT, FLOAT*);
468     HRESULT VarR4FromUI4(ULONG, FLOAT*);
469     HRESULT VarR4FromUI8(ULONG64, FLOAT*);
470     HRESULT VarR4FromStr(OLECHAR*, LCID, ULONG, FLOAT*);
471     HRESULT VarR4FromCy(CY, FLOAT*);
472     HRESULT VarR4FromDec(DECIMAL*, FLOAT*);
473     HRESULT VarR4FromDisp(IDispatch, LCID, FLOAT*);
474 
475     HRESULT VarR8FromUI1(BYTE, double*);
476     HRESULT VarR8FromI2(SHORT, double*);
477     HRESULT VarR8FromI4(LONG, double*);
478     HRESULT VarR8FromI8(LONG64, double*);
479     HRESULT VarR8FromR4(FLOAT, double*);
480     HRESULT VarR8FromDate(DATE, double*);
481     HRESULT VarR8FromBool(VARIANT_BOOL, double*);
482     HRESULT VarR8FromI1(byte, double*);
483     HRESULT VarR8FromUI2(USHORT, double*);
484     HRESULT VarR8FromUI4(ULONG, double*);
485     HRESULT VarR8FromUI8(ULONG64, double*);
486     HRESULT VarR8FromStr(OLECHAR*, LCID, ULONG, double*);
487     HRESULT VarR8FromCy(CY, double*);
488     HRESULT VarR8FromDec(DECIMAL*, double*);
489     HRESULT VarR8FromDisp(IDispatch, LCID, double*);
490 
491     HRESULT VarDateFromUI1(BYTE, DATE*);
492     HRESULT VarDateFromI2(SHORT, DATE*);
493     HRESULT VarDateFromI4(LONG, DATE*);
494     HRESULT VarDateFromI8(LONG64, DATE*);
495     HRESULT VarDateFromR4(FLOAT, DATE*);
496     HRESULT VarDateFromR8(DOUBLE, DATE*);
497     HRESULT VarDateFromStr(OLECHAR*, LCID, ULONG, DATE*);
498     HRESULT VarDateFromI1(byte, DATE*);
499     HRESULT VarDateFromUI2(USHORT, DATE*);
500     HRESULT VarDateFromUI4(ULONG, DATE*);
501     HRESULT VarDateFromUI8(ULONG64, DATE*);
502     HRESULT VarDateFromBool(VARIANT_BOOL, DATE*);
503     HRESULT VarDateFromCy(CY, DATE*);
504     HRESULT VarDateFromDec(DECIMAL*, DATE*);
505     HRESULT VarDateFromDisp(IDispatch, LCID, DATE*);
506 
507     HRESULT VarCyFromUI1(BYTE, CY*);
508     HRESULT VarCyFromI2(SHORT sIn, CY*);
509     HRESULT VarCyFromI4(LONG, CY*);
510     HRESULT VarCyFromI8(LONG64, CY*);
511     HRESULT VarCyFromR4(FLOAT, CY*);
512     HRESULT VarCyFromR8(DOUBLE, CY*);
513     HRESULT VarCyFromDate(DATE, CY*);
514     HRESULT VarCyFromStr(OLECHAR*, LCID, ULONG, CY*);
515     HRESULT VarCyFromBool(VARIANT_BOOL, CY*);
516     HRESULT VarCyFromI1(byte, CY*);
517     HRESULT VarCyFromUI2(USHORT, CY*);
518     HRESULT VarCyFromUI4(ULONG, CY*);
519     HRESULT VarCyFromUI8(ULONG64, CY*);
520     HRESULT VarCyFromDec(DECIMAL*, CY*);
521     HRESULT VarCyFromStr(OLECHAR*, LCID, ULONG, CY*);
522     HRESULT VarCyFromDisp(IDispatch, LCID, CY*);
523 
524     HRESULT VarBstrFromUI1(BYTE, LCID, ULONG, BSTR*);
525     HRESULT VarBstrFromI2(SHORT, LCID, ULONG, BSTR*);
526     HRESULT VarBstrFromI4(LONG, LCID, ULONG, BSTR*);
527     HRESULT VarBstrFromI8(LONG64, LCID, ULONG, BSTR*);
528     HRESULT VarBstrFromR4(FLOAT, LCID, ULONG, BSTR*);
529     HRESULT VarBstrFromR8(DOUBLE, LCID, ULONG, BSTR*);
530     HRESULT VarBstrFromDate(DATE, LCID, ULONG, BSTR*);
531     HRESULT VarBstrFromBool(VARIANT_BOOL, LCID, ULONG, BSTR*);
532     HRESULT VarBstrFromI1(byte, LCID, ULONG, BSTR*);
533     HRESULT VarBstrFromUI2(USHORT, LCID, ULONG, BSTR*);
534     HRESULT VarBstrFromUI8(ULONG64, LCID, ULONG, BSTR*);
535     HRESULT VarBstrFromUI4(ULONG, LCID, ULONG, BSTR*);
536     HRESULT VarBstrFromCy(CY, LCID, ULONG, BSTR*);
537     HRESULT VarBstrFromDec(DECIMAL*, LCID, ULONG, BSTR*);
538     HRESULT VarBstrFromDisp(IDispatch, LCID, ULONG, BSTR*);
539 
540     HRESULT VarBoolFromUI1(BYTE, VARIANT_BOOL*);
541     HRESULT VarBoolFromI2(SHORT, VARIANT_BOOL*);
542     HRESULT VarBoolFromI4(LONG, VARIANT_BOOL*);
543     HRESULT VarBoolFromI8(LONG64, VARIANT_BOOL*);
544     HRESULT VarBoolFromR4(FLOAT, VARIANT_BOOL*);
545     HRESULT VarBoolFromR8(DOUBLE, VARIANT_BOOL*);
546     HRESULT VarBoolFromDate(DATE, VARIANT_BOOL*);
547     HRESULT VarBoolFromStr(OLECHAR*, LCID, ULONG, VARIANT_BOOL*);
548     HRESULT VarBoolFromI1(byte, VARIANT_BOOL*);
549     HRESULT VarBoolFromUI2(USHORT, VARIANT_BOOL*);
550     HRESULT VarBoolFromUI4(ULONG, VARIANT_BOOL*);
551     HRESULT VarBoolFromUI8(ULONG64, VARIANT_BOOL*);
552     HRESULT VarBoolFromCy(CY, VARIANT_BOOL*);
553     HRESULT VarBoolFromDec(DECIMAL*, VARIANT_BOOL*);
554     HRESULT VarBoolFromDisp(IDispatch, LCID, VARIANT_BOOL*);
555 
556     HRESULT VarI1FromUI1(BYTE, byte*);
557     HRESULT VarI1FromI2(SHORT, byte*);
558     HRESULT VarI1FromI4(LONG, byte*);
559     HRESULT VarI1FromI8(LONG64, byte*);
560     HRESULT VarI1FromR4(FLOAT, byte*);
561     HRESULT VarI1FromR8(DOUBLE, byte*);
562     HRESULT VarI1FromDate(DATE, byte*);
563     HRESULT VarI1FromStr(OLECHAR*, LCID, ULONG, byte*);
564     HRESULT VarI1FromBool(VARIANT_BOOL, byte*);
565     HRESULT VarI1FromUI2(USHORT, byte*);
566     HRESULT VarI1FromUI4(ULONG, byte*);
567     HRESULT VarI1FromUI8(ULONG64, byte*);
568     HRESULT VarI1FromCy(CY, byte*);
569     HRESULT VarI1FromDec(DECIMAL*, byte*);
570     HRESULT VarI1FromDisp(IDispatch, LCID, byte*);
571 
572     HRESULT VarUI2FromUI1(BYTE, USHORT*);
573     HRESULT VarUI2FromI2(SHORT, USHORT*);
574     HRESULT VarUI2FromI4(LONG, USHORT*);
575     HRESULT VarUI2FromI8(LONG64, USHORT*);
576     HRESULT VarUI2FromR4(FLOAT, USHORT*);
577     HRESULT VarUI2FromR8(DOUBLE, USHORT*);
578     HRESULT VarUI2FromDate(DATE, USHORT*);
579     HRESULT VarUI2FromStr(OLECHAR*, LCID, ULONG, USHORT*);
580     HRESULT VarUI2FromBool(VARIANT_BOOL, USHORT*);
581     HRESULT VarUI2FromI1(byte, USHORT*);
582     HRESULT VarUI2FromUI4(ULONG, USHORT*);
583     HRESULT VarUI2FromUI8(ULONG64, USHORT*);
584     HRESULT VarUI2FromCy(CY, USHORT*);
585     HRESULT VarUI2FromDec(DECIMAL*, USHORT*);
586     HRESULT VarUI2FromDisp(IDispatch, LCID, USHORT*);
587 
588     HRESULT VarUI4FromStr(OLECHAR*, LCID, ULONG, ULONG*);
589     HRESULT VarUI4FromUI1(BYTE, ULONG*);
590     HRESULT VarUI4FromI2(SHORT, ULONG*);
591     HRESULT VarUI4FromI4(LONG, ULONG*);
592     HRESULT VarUI4FromI8(LONG64, ULONG*);
593     HRESULT VarUI4FromR4(FLOAT, ULONG*);
594     HRESULT VarUI4FromR8(DOUBLE, ULONG*);
595     HRESULT VarUI4FromDate(DATE, ULONG*);
596     HRESULT VarUI4FromBool(VARIANT_BOOL, ULONG*);
597     HRESULT VarUI4FromI1(byte, ULONG*);
598     HRESULT VarUI4FromUI2(USHORT, ULONG*);
599     HRESULT VarUI4FromUI8(ULONG64, ULONG*);
600     HRESULT VarUI4FromCy(CY, ULONG*);
601     HRESULT VarUI4FromDec(DECIMAL*, ULONG*);
602     HRESULT VarUI4FromDisp(IDispatch, LCID, ULONG*);
603 
604     HRESULT VarUI8FromUI1(BYTE, ULONG64*);
605     HRESULT VarUI8FromI2(SHORT, ULONG64*);
606     HRESULT VarUI8FromI4(LONG, ULONG64*);
607     HRESULT VarUI8FromI8(LONG64, ULONG64*);
608     HRESULT VarUI8FromR4(FLOAT, ULONG64*);
609     HRESULT VarUI8FromR8(DOUBLE, ULONG64*);
610     HRESULT VarUI8FromDate(DATE, ULONG64*);
611     HRESULT VarUI8FromStr(OLECHAR*, LCID, ULONG, ULONG64*);
612     HRESULT VarUI8FromBool(VARIANT_BOOL, ULONG64*);
613     HRESULT VarUI8FromI1(byte, ULONG64*);
614     HRESULT VarUI8FromUI2(USHORT, ULONG64*);
615     HRESULT VarUI8FromUI4(ULONG, ULONG64*);
616     HRESULT VarUI8FromDec(DECIMAL*, ULONG64*);
617     HRESULT VarUI8FromInt(INT, ULONG64*);
618     HRESULT VarUI8FromCy(CY, ULONG64*);
619     HRESULT VarUI8FromDisp(IDispatch, LCID, ULONG64*);
620 
621     HRESULT VarDecFromUI1(BYTE, DECIMAL*);
622     HRESULT VarDecFromI2(SHORT, DECIMAL*);
623     HRESULT VarDecFromI4(LONG, DECIMAL*);
624     HRESULT VarDecFromI8(LONG64, DECIMAL*);
625     HRESULT VarDecFromR4(FLOAT, DECIMAL*);
626     HRESULT VarDecFromR8(DOUBLE, DECIMAL*);
627     HRESULT VarDecFromDate(DATE, DECIMAL*);
628     HRESULT VarDecFromStr(OLECHAR*, LCID, ULONG, DECIMAL*);
629     HRESULT VarDecFromBool(VARIANT_BOOL, DECIMAL*);
630     HRESULT VarDecFromI1(byte, DECIMAL*);
631     HRESULT VarDecFromUI2(USHORT, DECIMAL*);
632     HRESULT VarDecFromUI4(ULONG, DECIMAL*);
633     HRESULT VarDecFromUI8(ULONG64, DECIMAL*);
634     HRESULT VarDecFromCy(CY, DECIMAL*);
635     HRESULT VarDecFromDisp(IDispatch, LCID, DECIMAL*);
636 
637     HRESULT VarDecNeg(const(DECIMAL)*, DECIMAL*);
638     HRESULT VarR4CmpR8(float, double);
639     HRESULT VarR8Pow(double, double, double*);
640     HRESULT VarR8Round(double, int, double*);
641     HRESULT VarDecAbs(const(DECIMAL)*, DECIMAL*);
642     HRESULT VarDecAdd(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*);
643     HRESULT VarDecCmp(const(DECIMAL)*, const(DECIMAL)*);
644     HRESULT VarDecCmpR8(const(DECIMAL)*, DOUBLE);
645     HRESULT VarDecDiv(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*);
646     HRESULT VarDecFix(const(DECIMAL)*, DECIMAL*);
647     HRESULT VarDecInt(const(DECIMAL)*, DECIMAL*);
648     HRESULT VarDecMul(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*);
649     HRESULT VarDecRound(const(DECIMAL)*, int, DECIMAL*);
650     HRESULT VarDecSub(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*);
651     HRESULT VarCyAbs(CY, CY*);
652     HRESULT VarCyAdd(CY, CY, CY*);
653     HRESULT VarCyCmp(CY, CY);
654     HRESULT VarCyCmpR8(CY, DOUBLE);
655     HRESULT VarCyFix(CY, CY*);
656     HRESULT VarCyInt(CY, CY*);
657     HRESULT VarCyMul(CY, CY, CY*);
658     HRESULT VarCyMulI4(CY, LONG, CY*);
659     HRESULT VarCyMulI8(CY, LONG64, CY*);
660     HRESULT VarCyNeg(CY, CY*);
661     HRESULT VarCyRound(CY, INT, CY*);
662     HRESULT VarCySub(CY, CY, CY*);
663     HRESULT VarAdd(LPVARIANT, LPVARIANT, LPVARIANT);
664     HRESULT VarAnd(LPVARIANT, LPVARIANT, LPVARIANT);
665     HRESULT VarCat(LPVARIANT, LPVARIANT, LPVARIANT);
666     HRESULT VarDiv(LPVARIANT, LPVARIANT, LPVARIANT);
667     HRESULT VarEqv(LPVARIANT, LPVARIANT, LPVARIANT);
668     HRESULT VarIdiv(LPVARIANT, LPVARIANT, LPVARIANT);
669     HRESULT VarImp(LPVARIANT, LPVARIANT, LPVARIANT);
670     HRESULT VarMod(LPVARIANT, LPVARIANT, LPVARIANT);
671     HRESULT VarMul(LPVARIANT, LPVARIANT, LPVARIANT);
672     HRESULT VarOr(LPVARIANT, LPVARIANT, LPVARIANT);
673     HRESULT VarPow(LPVARIANT, LPVARIANT, LPVARIANT);
674     HRESULT VarSub(LPVARIANT, LPVARIANT, LPVARIANT);
675     HRESULT VarXor(LPVARIANT, LPVARIANT, LPVARIANT);
676     HRESULT VarAbs(LPVARIANT, LPVARIANT);
677     HRESULT VarFix(LPVARIANT, LPVARIANT);
678     HRESULT VarInt(LPVARIANT, LPVARIANT);
679     HRESULT VarNeg(LPVARIANT, LPVARIANT);
680     HRESULT VarNot(LPVARIANT, LPVARIANT);
681     HRESULT VarRound(LPVARIANT, int, LPVARIANT);
682     HRESULT VarCmp(LPVARIANT, LPVARIANT, LCID, ULONG);
683     HRESULT VarBstrCmp(BSTR, BSTR, LCID, ULONG);
684     HRESULT VarBstrCat(BSTR, BSTR, BSTR*);
685 }
686