4 #define WINOLEAUTAPI STDAPI
5 #define WINOLEAUTAPI_(type) STDAPI_(type)
6 #define STDOLE_MAJORVERNUM 1
7 #define STDOLE_MINORVERNUM 0
9 #define VARIANT_NOVALUEPROP 0x01
10 #define VARIANT_ALPHABOOL 0x02
11 #define VARIANT_NOUSEOVERRIDE 0x04
12 #define VARIANT_LOCALBOOL 0x08
13 #define VAR_TIMEVALUEONLY 0x0001
14 #define VAR_DATEVALUEONLY 0x0002
15 #define MEMBERID_NIL DISPID_UNKNOWN
16 #define ID_DEFAULTINST (-2)
17 #define DISPATCH_METHOD 1
18 #define DISPATCH_PROPERTYGET 2
19 #define DISPATCH_PROPERTYPUT 4
20 #define DISPATCH_PROPERTYPUTREF 8
21 #define LHashValOfName(l,n) LHashValOfNameSys(SYS_WIN32,l,n)
22 #define WHashValOfLHashVal(h) ((unsigned short)(0x0000ffff&(h)))
23 #define IsHashValCompatible(h1,h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2))))
24 #define ACTIVEOBJECT_STRONG 0
25 #define ACTIVEOBJECT_WEAK 1
26 #ifdef NONAMELESSUNION
27 #define V_UNION(X,Y) ((X)->u.Y)
29 #define V_UNION(X,Y) ((X)->Y)
32 #define V_BOOL(X) V_UNION(X,boolVal)
34 #define V_BOOL(X) V_UNION(X,bool)
36 #define V_VT(X) ((X)->vt)
37 #define V_ISBYREF(X) (V_VT(X)&VT_BYREF)
38 #define V_ISARRAY(X) (V_VT(X)&VT_ARRAY)
39 #define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR)
40 #define V_NONE(X) V_I2(X)
41 #define V_UI1(X) V_UNION(X,bVal)
42 #define V_UI1REF(X) V_UNION(X,pbVal)
43 #define V_I2(X) V_UNION(X,iVal)
44 #define V_I2REF(X) V_UNION(X,piVal)
45 #define V_I4(X) V_UNION(X,lVal)
46 #define V_I4REF(X) V_UNION(X,plVal)
47 #define V_I8(X) V_UNION(X,hVal)
48 #define V_I8REF(X) V_UNION(X,phVal)
49 #define V_R4(X) V_UNION(X,fltVal)
50 #define V_R4REF(X) V_UNION(X,pfltVal)
51 #define V_R8(X) V_UNION(X,dblVal)
52 #define V_R8REF(X) V_UNION(X,pdblVal)
53 #define V_CY(X) V_UNION(X,cyVal)
54 #define V_CYREF(X) V_UNION(X,pcyVal)
55 #define V_DATE(X) V_UNION(X,date)
56 #define V_DATEREF(X) V_UNION(X,pdate)
57 #define V_BSTR(X) V_UNION(X,bstrVal)
58 #define V_BSTRREF(X) V_UNION(X,pbstrVal)
59 #define V_DISPATCH(X) V_UNION(X,pdispVal)
60 #define V_DISPATCHREF(X) V_UNION(X,ppdispVal)
61 #define V_ERROR(X) V_UNION(X,scode)
62 #define V_ERRORREF(X) V_UNION(X,pscode)
63 #define V_BOOLREF(X) V_UNION(X,pboolVal)
64 #define V_UNKNOWN(X) V_UNION(X,punkVal)
65 #define V_UNKNOWNREF(X) V_UNION(X,ppunkVal)
66 #define V_VARIANTREF(X) V_UNION(X,pvarVal)
67 #define V_LPSTR(X) V_UNION(X,pszVal)
68 #define V_LPSTRREF(X) V_UNION(X,ppszVal)
69 #define V_LPWSTR(X) V_UNION(X,pwszVal)
70 #define V_LPWSTRREF(X) V_UNION(X,ppwszVal)
71 #define V_FILETIME(X) V_UNION(X,filetime)
72 #define V_FILETIMEREF(X) V_UNION(X,pfiletime)
73 #define V_BLOB(X) V_UNION(X,blob)
74 #define V_UUID(X) V_UNION(X,puuid)
75 #define V_CLSID(X) V_UNION(X,puuid)
76 #define V_ARRAY(X) V_UNION(X,parray)
77 #define V_ARRAYREF(X) V_UNION(X,pparray)
78 #define V_BYREF(X) V_UNION(X,byref)
79 #define V_DECIMAL(X) V_UNION(X,decVal)
80 #define V_DECIMALREF(X) V_UNION(X,pdecVal)
84 typedef enum tagREGKIND
{
89 typedef struct tagPARAMDATA
{
92 } PARAMDATA
,*LPPARAMDATA
;
93 typedef struct tagMETHODDATA
{
102 } METHODDATA
,*LPMETHODDATA
;
103 typedef struct tagINTERFACEDATA
{
104 METHODDATA
*pmethdata
;
106 } INTERFACEDATA
,*LPINTERFACEDATA
;
108 WINOLEAUTAPI_(BSTR
) SysAllocString(const OLECHAR
*);
109 WINOLEAUTAPI_(int) SysReAllocString(BSTR
*,const OLECHAR
*);
110 WINOLEAUTAPI_(BSTR
) SysAllocStringLen(const OLECHAR
*,unsigned int);
111 WINOLEAUTAPI_(int) SysReAllocStringLen(BSTR
*,const OLECHAR
*,unsigned int);
112 WINOLEAUTAPI_(void) SysFreeString(BSTR
);
113 WINOLEAUTAPI_(unsigned int) SysStringLen(BSTR
);
114 WINOLEAUTAPI_(unsigned int) SysStringByteLen(BSTR
);
115 WINOLEAUTAPI_(BSTR
) SysAllocStringByteLen(const char*,unsigned int);
116 WINOLEAUTAPI_(int) DosDateTimeToVariantTime(unsigned short,unsigned short,double*);
117 WINOLEAUTAPI_(int) VariantTimeToDosDateTime(double,unsigned short*,unsigned short*);
118 WINOLEAUTAPI_(int) VariantTimeToSystemTime(double,LPSYSTEMTIME
);
119 WINOLEAUTAPI_(int) SystemTimeToVariantTime(LPSYSTEMTIME
, double*);
120 WINOLEAUTAPI
SafeArrayAllocDescriptor(unsigned int,SAFEARRAY
**);
121 WINOLEAUTAPI
SafeArrayAllocData(SAFEARRAY
*);
122 WINOLEAUTAPI_(SAFEARRAY
*) SafeArrayCreate(VARTYPE
,unsigned int,SAFEARRAYBOUND
*);
123 WINOLEAUTAPI
SafeArrayDestroyDescriptor(SAFEARRAY
*);
124 WINOLEAUTAPI
SafeArrayDestroyData(SAFEARRAY
*);
125 WINOLEAUTAPI
SafeArrayDestroy(SAFEARRAY
*);
126 WINOLEAUTAPI
SafeArrayRedim(SAFEARRAY
*,SAFEARRAYBOUND
*);
127 WINOLEAUTAPI_(unsigned int) SafeArrayGetDim(SAFEARRAY
*);
128 WINOLEAUTAPI_(unsigned int) SafeArrayGetElemsize(SAFEARRAY
*);
129 WINOLEAUTAPI
SafeArrayGetUBound(SAFEARRAY
*,unsigned int,long*);
130 WINOLEAUTAPI
SafeArrayGetLBound(SAFEARRAY
*,unsigned int,long*);
131 WINOLEAUTAPI
SafeArrayLock(SAFEARRAY
*);
132 WINOLEAUTAPI
SafeArrayUnlock(SAFEARRAY
*);
133 WINOLEAUTAPI
SafeArrayAccessData(SAFEARRAY
*,void**);
134 WINOLEAUTAPI
SafeArrayUnaccessData(SAFEARRAY
*);
135 WINOLEAUTAPI
SafeArrayGetElement(SAFEARRAY
*,long*,void*);
136 WINOLEAUTAPI
SafeArrayPutElement(SAFEARRAY
*,long*,void*);
137 WINOLEAUTAPI
SafeArrayCopy(SAFEARRAY
*,SAFEARRAY
**);
138 WINOLEAUTAPI
SafeArrayPtrOfIndex(SAFEARRAY
*,long*,void**);
139 WINOLEAUTAPI_(SAFEARRAY
*) SafeArrayCreateVector(VARTYPE
,LONG
,UINT
);
140 WINOLEAUTAPI_(void) VariantInit(VARIANTARG
*);
141 WINOLEAUTAPI
VariantClear(VARIANTARG
*);
142 WINOLEAUTAPI
VariantCopy(VARIANTARG
*,VARIANTARG
*);
143 WINOLEAUTAPI
VariantCopyInd(VARIANT
*,VARIANTARG
*);
144 WINOLEAUTAPI
VariantChangeType(VARIANTARG
*,VARIANTARG
*,unsigned short,VARTYPE
);
145 WINOLEAUTAPI
VariantChangeTypeEx(VARIANTARG
*,VARIANTARG
*,LCID
,unsigned short,VARTYPE
);
146 WINOLEAUTAPI
VarUI1FromI2(short,unsigned char*);
147 WINOLEAUTAPI
VarUI1FromI4(long,unsigned char*);
148 WINOLEAUTAPI
VarUI1FromR4(float,unsigned char*);
149 WINOLEAUTAPI
VarUI1FromR8(double,unsigned char*);
150 WINOLEAUTAPI
VarUI1FromCy(CY
,unsigned char*);
151 WINOLEAUTAPI
VarUI1FromDate(DATE
,unsigned char*);
152 WINOLEAUTAPI
VarUI1FromStr(OLECHAR
*,LCID
,unsigned long,unsigned char*);
153 WINOLEAUTAPI
VarUI1FromDisp(LPDISPATCH
*,LCID
,unsigned char*);
154 WINOLEAUTAPI
VarUI1FromBool(VARIANT_BOOL
,unsigned char*);
155 WINOLEAUTAPI
VarI2FromUI1(unsigned char,short*);
156 WINOLEAUTAPI
VarI2FromI4(long,short*);
157 WINOLEAUTAPI
VarI2FromR4(float,short*);
158 WINOLEAUTAPI
VarI2FromR8(double,short*);
159 WINOLEAUTAPI
VarI2FromCy(CY cyIn
,short*);
160 WINOLEAUTAPI
VarI2FromDate(DATE
,short*);
161 WINOLEAUTAPI
VarI2FromStr(OLECHAR
*,LCID
,unsigned long,short*);
162 WINOLEAUTAPI
VarI2FromDisp(LPDISPATCH
*,LCID
,short*);
163 WINOLEAUTAPI
VarI2FromBool(VARIANT_BOOL
,short*);
164 WINOLEAUTAPI
VarI4FromUI1(unsigned char,long*);
165 WINOLEAUTAPI
VarI4FromI2(short,long*);
166 WINOLEAUTAPI
VarI4FromR4(float,long*);
167 WINOLEAUTAPI
VarI4FromR8(double,long*);
168 WINOLEAUTAPI
VarI4FromCy(CY
,long*);
169 WINOLEAUTAPI
VarI4FromDate(DATE
,long*);
170 WINOLEAUTAPI
VarI4FromStr(OLECHAR
*,LCID
,unsigned long,long*);
171 WINOLEAUTAPI
VarI4FromDisp(LPDISPATCH
*,LCID
,long*);
172 WINOLEAUTAPI
VarI4FromBool(VARIANT_BOOL
,long*);
173 WINOLEAUTAPI
VarR4FromUI1(unsigned char,float*);
174 WINOLEAUTAPI
VarR4FromI2(short,float*);
175 WINOLEAUTAPI
VarR4FromI4(long,float*);
176 WINOLEAUTAPI
VarR4FromR8(double,float*);
177 WINOLEAUTAPI
VarR4FromCy(CY
,float*);
178 WINOLEAUTAPI
VarR4FromDate(DATE
,float*);
179 WINOLEAUTAPI
VarR4FromStr(OLECHAR
*,LCID
,unsigned long,float*);
180 WINOLEAUTAPI
VarR4FromDisp(LPDISPATCH
*,LCID
,float*);
181 WINOLEAUTAPI
VarR4FromBool(VARIANT_BOOL
,float*);
182 WINOLEAUTAPI
VarR8FromUI1(unsigned char,double*);
183 WINOLEAUTAPI
VarR8FromI2(short,double*);
184 WINOLEAUTAPI
VarR8FromI4(long,double*);
185 WINOLEAUTAPI
VarR8FromR4(float,double*);
186 WINOLEAUTAPI
VarR8FromCy(CY
,double*);
187 WINOLEAUTAPI
VarR8FromDate(DATE
,double*);
188 WINOLEAUTAPI
VarR8FromStr(OLECHAR
*,LCID
,unsigned long,double*);
189 WINOLEAUTAPI
VarR8FromDisp(LPDISPATCH
*,LCID
,double*);
190 WINOLEAUTAPI
VarR8FromBool(VARIANT_BOOL
,double*);
191 WINOLEAUTAPI
VarDateFromUI1(unsigned char,DATE
*);
192 WINOLEAUTAPI
VarDateFromI2(short,DATE
*);
193 WINOLEAUTAPI
VarDateFromI4(long,DATE
*);
194 WINOLEAUTAPI
VarDateFromR4(float,DATE
*);
195 WINOLEAUTAPI
VarDateFromR8(double,DATE
*);
196 WINOLEAUTAPI
VarDateFromCy(CY
,DATE
*);
197 WINOLEAUTAPI
VarDateFromStr(OLECHAR
*,LCID
,unsigned long,DATE
*);
198 WINOLEAUTAPI
VarDateFromDisp(LPDISPATCH
*,LCID
,DATE
*);
199 WINOLEAUTAPI
VarDateFromBool(VARIANT_BOOL
,DATE
*);
200 WINOLEAUTAPI
VarCyFromUI1(unsigned char,CY
*);
201 WINOLEAUTAPI
VarCyFromI2(short,CY
*);
202 WINOLEAUTAPI
VarCyFromI4(long,CY
*);
203 WINOLEAUTAPI
VarCyFromR4(float,CY
*);
204 WINOLEAUTAPI
VarCyFromR8(double,CY
*);
205 WINOLEAUTAPI
VarCyFromDate(DATE
,CY
*);
206 WINOLEAUTAPI
VarCyFromStr(OLECHAR
*,LCID
,unsigned long,CY
*);
207 WINOLEAUTAPI
VarCyFromDisp(LPDISPATCH
*,LCID
,CY
*);
208 WINOLEAUTAPI
VarCyFromBool(VARIANT_BOOL
,CY
*);
209 WINOLEAUTAPI
VarBstrFromUI1(unsigned char,LCID
,unsigned long,BSTR
*);
210 WINOLEAUTAPI
VarBstrFromI2(short,LCID
,unsigned long,BSTR
*);
211 WINOLEAUTAPI
VarBstrFromI4(long,LCID
,unsigned long,BSTR
*);
212 WINOLEAUTAPI
VarBstrFromR4(float,LCID
,unsigned long,BSTR
*);
213 WINOLEAUTAPI
VarBstrFromR8(double,LCID
,unsigned long,BSTR
*);
214 WINOLEAUTAPI
VarBstrFromCy(CY
,LCID
,unsigned long,BSTR
*);
215 WINOLEAUTAPI
VarBstrFromDate(DATE
,LCID
,unsigned long,BSTR
*);
216 WINOLEAUTAPI
VarBstrFromDisp(LPDISPATCH
*,LCID
,unsigned long,BSTR
*);
217 WINOLEAUTAPI
VarBstrFromBool(VARIANT_BOOL
,LCID
,unsigned long,BSTR
*);
218 WINOLEAUTAPI
VarBoolFromUI1(unsigned char,VARIANT_BOOL
*);
219 WINOLEAUTAPI
VarBoolFromI2(short,VARIANT_BOOL
*);
220 WINOLEAUTAPI
VarBoolFromI4(long,VARIANT_BOOL
*);
221 WINOLEAUTAPI
VarBoolFromR4(float,VARIANT_BOOL
*);
222 WINOLEAUTAPI
VarBoolFromR8(double,VARIANT_BOOL
*);
223 WINOLEAUTAPI
VarBoolFromDate(DATE
,VARIANT_BOOL
*);
224 WINOLEAUTAPI
VarBoolFromCy(CY
,VARIANT_BOOL
*);
225 WINOLEAUTAPI
VarBoolFromStr(OLECHAR
*,LCID
,unsigned long,VARIANT_BOOL
*);
226 WINOLEAUTAPI
VarBoolFromDisp(LPDISPATCH
*,LCID
,VARIANT_BOOL
*);
227 WINOLEAUTAPI_(ULONG
) LHashValOfNameSysA(SYSKIND
,LCID
,const char*);
228 WINOLEAUTAPI_(ULONG
) LHashValOfNameSys(SYSKIND
,LCID
,const OLECHAR
*);
229 WINOLEAUTAPI
LoadTypeLib(const OLECHAR
*,LPTYPELIB
*);
230 WINOLEAUTAPI
LoadTypeLibEx(LPCOLESTR
,REGKIND
,LPTYPELIB
*);
231 WINOLEAUTAPI
LoadRegTypeLib(REFGUID
,WORD
,WORD
,LCID
,LPTYPELIB
*);
232 WINOLEAUTAPI
QueryPathOfRegTypeLib(REFGUID
,unsigned short,unsigned short,LCID
,LPBSTR
);
233 WINOLEAUTAPI
RegisterTypeLib(LPTYPELIB
,OLECHAR
*,OLECHAR
*);
234 WINOLEAUTAPI
DeregisterTypeLib(REFGUID
,WORD
,WORD
,LCID
);
235 WINOLEAUTAPI
CreateTypeLib(SYSKIND
,const OLECHAR
*,LPCREATETYPELIB
*);
236 WINOLEAUTAPI
DispGetParam(DISPPARAMS
*,UINT
,VARTYPE
,VARIANT
*,UINT
*);
237 WINOLEAUTAPI
DispGetIDsOfNames(LPTYPEINFO
,OLECHAR
**,UINT
,DISPID
*);
238 WINOLEAUTAPI
DispInvoke(void*,LPTYPEINFO
,DISPID
,WORD
,DISPPARAMS
*,VARIANT
*,EXCEPINFO
*,UINT
*);
239 WINOLEAUTAPI
CreateDispTypeInfo(INTERFACEDATA
*,LCID
,LPTYPEINFO
*);
240 WINOLEAUTAPI
CreateStdDispatch(IUnknown
*,void*,LPTYPEINFO
,IUnknown
**);
241 WINOLEAUTAPI
RegisterActiveObject(IUnknown
*,REFCLSID
,DWORD
,DWORD
*);
242 WINOLEAUTAPI
RevokeActiveObject(DWORD
,void*);
243 WINOLEAUTAPI
GetActiveObject(REFCLSID
,void*,IUnknown
**);
244 WINOLEAUTAPI
SetErrorInfo(unsigned long,LPERRORINFO
);
245 WINOLEAUTAPI
GetErrorInfo(unsigned long,LPERRORINFO
*);
246 WINOLEAUTAPI
CreateErrorInfo(LPCREATEERRORINFO
*);
247 WINOLEAUTAPI_(unsigned long) OaBuildVersion(void);
248 WINOLEAUTAPI
VectorFromBstr (BSTR
, SAFEARRAY
**);
249 WINOLEAUTAPI
BstrFromVector (SAFEARRAY
*, BSTR
*);
251 WINOLEAUTAPI
VarAdd(LPVARIANT
, LPVARIANT
, LPVARIANT
);
252 WINOLEAUTAPI
VarSub(LPVARIANT
, LPVARIANT
, LPVARIANT
);
253 WINOLEAUTAPI
VarMul(LPVARIANT
, LPVARIANT
, LPVARIANT
);
254 WINOLEAUTAPI
VarDiv(LPVARIANT
, LPVARIANT
, LPVARIANT
);