| 1 | /*
|
|---|
| 2 | * Defines the COM interfaces and APIs related to OLE automation support.
|
|---|
| 3 | */
|
|---|
| 4 |
|
|---|
| 5 | #ifndef __WINE_WINE_OBJ_OLEAUT_H
|
|---|
| 6 | #define __WINE_WINE_OBJ_OLEAUT_H
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 | DEFINE_OLEGUID(IID_StdOle, 0x00020430,0,0);
|
|---|
| 10 |
|
|---|
| 11 | /*****************************************************************************
|
|---|
| 12 | * Predeclare the interfaces
|
|---|
| 13 | */
|
|---|
| 14 | DEFINE_OLEGUID(IID_IDispatch, 0x00020400,0,0);
|
|---|
| 15 | typedef struct IDispatch IDispatch,*LPDISPATCH;
|
|---|
| 16 |
|
|---|
| 17 | DEFINE_OLEGUID(IID_ITypeInfo, 0x00020401,0,0);
|
|---|
| 18 | typedef struct ITypeInfo ITypeInfo,*LPTYPEINFO;
|
|---|
| 19 |
|
|---|
| 20 | DEFINE_OLEGUID(IID_ITypeLib, 0x00020402,0,0);
|
|---|
| 21 | typedef struct ITypeLib ITypeLib,*LPTYPELIB;
|
|---|
| 22 |
|
|---|
| 23 | DEFINE_OLEGUID(IID_ITypeComp, 0x00020403,0,0);
|
|---|
| 24 | typedef struct ITypeComp ITypeComp,*LPTYPECOMP;
|
|---|
| 25 |
|
|---|
| 26 | DEFINE_OLEGUID(IID_IEnumVARIANT, 0x00020404,0,0);
|
|---|
| 27 | typedef struct IEnumVARIANT IEnumVARIANT,*LPENUMVARIANT;
|
|---|
| 28 |
|
|---|
| 29 | DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0);
|
|---|
| 30 | typedef struct ICreateTypeInfo ICreateTypeInfo,*LPCREATETYPEINFO;
|
|---|
| 31 |
|
|---|
| 32 | DEFINE_OLEGUID(IID_ICreateTypeLib, 0x00020406,0,0);
|
|---|
| 33 | typedef struct ICreateTypeLib ICreateTypeLib,*LPCREATETYPELIB;
|
|---|
| 34 |
|
|---|
| 35 | DEFINE_OLEGUID(IID_ICreateTypeInfo2,0x0002040E,0,0);
|
|---|
| 36 | typedef struct ICreateTypeInfo2 ICreateTypeInfo2,*LPCREATETYPEINFO2;
|
|---|
| 37 |
|
|---|
| 38 | DEFINE_OLEGUID(IID_ICreateTypeLib2, 0x0002040F,0,0);
|
|---|
| 39 | typedef struct ICreateTypeLib2 ICreateTypeLib2,*LPCREATETYPELIB2;
|
|---|
| 40 |
|
|---|
| 41 | DEFINE_OLEGUID(IID_ITypeChangeEvents,0x00020410,0,0);
|
|---|
| 42 | typedef struct ITypeChangeEvents ITypeChangeEvents,*LPTYPECHANGEEVENTS;
|
|---|
| 43 |
|
|---|
| 44 | DEFINE_OLEGUID(IID_ITypeLib2, 0x00020411,0,0);
|
|---|
| 45 | typedef struct ITypeLib2 ITypeLib2,*LPTYPELIB2;
|
|---|
| 46 |
|
|---|
| 47 | DEFINE_OLEGUID(IID_ITypeInfo2, 0x00020412,0,0);
|
|---|
| 48 | typedef struct ITypeInfo2 ITypeInfo2,*LPTYPEINFO2;
|
|---|
| 49 |
|
|---|
| 50 | /* The OLE Automation ProxyStub Interface Class (aka Typelib Marshaler) */
|
|---|
| 51 | DEFINE_OLEGUID(CLSID_PSOAInterface, 0x00020424,0,0);
|
|---|
| 52 |
|
|---|
| 53 | /*****************************************************************************
|
|---|
| 54 | * Automation data types
|
|---|
| 55 | */
|
|---|
| 56 |
|
|---|
| 57 | /*****************************************************************
|
|---|
| 58 | * SafeArray defines and structs
|
|---|
| 59 | */
|
|---|
| 60 |
|
|---|
| 61 | #define FADF_AUTO ( 0x1 )
|
|---|
| 62 | #define FADF_STATIC ( 0x2 )
|
|---|
| 63 | #define FADF_EMBEDDED ( 0x4 )
|
|---|
| 64 | #define FADF_FIXEDSIZE ( 0x10 )
|
|---|
| 65 | #define FADF_RECORD ( 0x20 )
|
|---|
| 66 | #define FADF_HAVEIID ( 0x40 )
|
|---|
| 67 | #define FADF_HAVEVARTYPE ( 0x80 )
|
|---|
| 68 | #define FADF_BSTR ( 0x100 )
|
|---|
| 69 | #define FADF_UNKNOWN ( 0x200 )
|
|---|
| 70 | #define FADF_DISPATCH ( 0x400 )
|
|---|
| 71 | #define FADF_VARIANT ( 0x800 )
|
|---|
| 72 | #define FADF_RESERVED ( 0xf008 )
|
|---|
| 73 |
|
|---|
| 74 | /* Undocumented flags */
|
|---|
| 75 | #define FADF_CREATEVECTOR ( 0x2000 ) /* set when the safe array is created using SafeArrayCreateVector */
|
|---|
| 76 |
|
|---|
| 77 |
|
|---|
| 78 | typedef struct tagSAFEARRAYBOUND
|
|---|
| 79 | {
|
|---|
| 80 | ULONG cElements; /* Number of elements in dimension */
|
|---|
| 81 | LONG lLbound; /* Lower bound of dimension */
|
|---|
| 82 | } SAFEARRAYBOUND;
|
|---|
| 83 |
|
|---|
| 84 | typedef struct tagSAFEARRAY
|
|---|
| 85 | {
|
|---|
| 86 | USHORT cDims; /* Count of array dimension */
|
|---|
| 87 | USHORT fFeatures; /* Flags describing the array */
|
|---|
| 88 | ULONG cbElements; /* Size of each element */
|
|---|
| 89 | ULONG cLocks; /* Number of lock on array */
|
|---|
| 90 | PVOID pvData; /* Pointer to data valid when cLocks > 0 */
|
|---|
| 91 | SAFEARRAYBOUND rgsabound[ 1 ]; /* One bound for each dimension */
|
|---|
| 92 | } SAFEARRAY, *LPSAFEARRAY;
|
|---|
| 93 |
|
|---|
| 94 | typedef enum tagCALLCONV {
|
|---|
| 95 | CC_CDECL = 1,
|
|---|
| 96 | CC_MSCPASCAL = CC_CDECL + 1,
|
|---|
| 97 | CC_PASCAL = CC_MSCPASCAL,
|
|---|
| 98 | CC_MACPASCAL = CC_PASCAL + 1,
|
|---|
| 99 | CC_STDCALL = CC_MACPASCAL + 1,
|
|---|
| 100 | CC_RESERVED = CC_STDCALL + 1,
|
|---|
| 101 | CC_SYSCALL = CC_RESERVED + 1,
|
|---|
| 102 | CC_MPWCDECL = CC_SYSCALL + 1,
|
|---|
| 103 | CC_MPWPASCAL = CC_MPWCDECL + 1,
|
|---|
| 104 | CC_MAX = CC_MPWPASCAL + 1
|
|---|
| 105 | } CALLCONV;
|
|---|
| 106 |
|
|---|
| 107 | typedef CY CURRENCY;
|
|---|
| 108 |
|
|---|
| 109 | /*
|
|---|
| 110 | * Declarations of the VARIANT structure and the VARIANT APIs.
|
|---|
| 111 | */
|
|---|
| 112 | /* S_OK : Success.
|
|---|
| 113 | * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant.
|
|---|
| 114 | * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type.
|
|---|
| 115 | * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant.
|
|---|
| 116 | * E_INVALIDARG : One argument is invalid.
|
|---|
| 117 | * * E_OUTOFMEMORY : Memory could not be allocated for the conversion.
|
|---|
| 118 | * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked.
|
|---|
| 119 | */
|
|---|
| 120 | #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
|
|---|
| 121 | #define __VARIANT_NAME_1 n1
|
|---|
| 122 | #define __VARIANT_NAME_2 n2
|
|---|
| 123 | #define __VARIANT_NAME_3 n3
|
|---|
| 124 | #else
|
|---|
| 125 | #define __tagVARIANT
|
|---|
| 126 | #define __VARIANT_NAME_1
|
|---|
| 127 | #define __VARIANT_NAME_2
|
|---|
| 128 | #define __VARIANT_NAME_3
|
|---|
| 129 | #endif
|
|---|
| 130 |
|
|---|
| 131 | typedef struct tagVARIANT VARIANT, *LPVARIANT;
|
|---|
| 132 | typedef struct tagVARIANT VARIANTARG, *LPVARIANTARG;
|
|---|
| 133 |
|
|---|
| 134 | struct tagVARIANT
|
|---|
| 135 | {
|
|---|
| 136 | union
|
|---|
| 137 | {
|
|---|
| 138 | struct __tagVARIANT
|
|---|
| 139 | {
|
|---|
| 140 | VARTYPE vt;
|
|---|
| 141 | WORD wReserved1;
|
|---|
| 142 | WORD wReserved2;
|
|---|
| 143 | WORD wReserved3;
|
|---|
| 144 | union /* DUMMYUNIONNAME */
|
|---|
| 145 | {
|
|---|
| 146 | /* By value. */
|
|---|
| 147 | CHAR cVal;
|
|---|
| 148 | USHORT uiVal;
|
|---|
| 149 | ULONG ulVal;
|
|---|
| 150 | INT intVal;
|
|---|
| 151 | UINT uintVal;
|
|---|
| 152 | BYTE bVal;
|
|---|
| 153 | short iVal;
|
|---|
| 154 | long lVal;
|
|---|
| 155 | float fltVal;
|
|---|
| 156 | double dblVal;
|
|---|
| 157 | ULONGLONG ullVal;
|
|---|
| 158 | VARIANT_BOOL boolVal;
|
|---|
| 159 | SCODE scode;
|
|---|
| 160 | DATE date;
|
|---|
| 161 | BSTR bstrVal;
|
|---|
| 162 | CY cyVal;
|
|---|
| 163 | IUnknown* punkVal;
|
|---|
| 164 | IDispatch* pdispVal;
|
|---|
| 165 | SAFEARRAY* parray;
|
|---|
| 166 |
|
|---|
| 167 | /* By reference */
|
|---|
| 168 | CHAR* pcVal;
|
|---|
| 169 | USHORT* puiVal;
|
|---|
| 170 | ULONG* pulVal;
|
|---|
| 171 | INT* pintVal;
|
|---|
| 172 | UINT* puintVal;
|
|---|
| 173 | BYTE* pbVal;
|
|---|
| 174 | short* piVal;
|
|---|
| 175 | long* plVal;
|
|---|
| 176 | float* pfltVal;
|
|---|
| 177 | double* pdblVal;
|
|---|
| 178 | ULONGLONG* pullVal;
|
|---|
| 179 | VARIANT_BOOL* pboolVal;
|
|---|
| 180 | SCODE* pscode;
|
|---|
| 181 | DATE* pdate;
|
|---|
| 182 | BSTR* pbstrVal;
|
|---|
| 183 | VARIANT* pvarVal;
|
|---|
| 184 | PVOID byref;
|
|---|
| 185 | CY* pcyVal;
|
|---|
| 186 | DECIMAL* pdecVal;
|
|---|
| 187 | IUnknown** ppunkVal;
|
|---|
| 188 | IDispatch** ppdispVal;
|
|---|
| 189 | SAFEARRAY** pparray;
|
|---|
| 190 | } __VARIANT_NAME_3;
|
|---|
| 191 | } __VARIANT_NAME_2;
|
|---|
| 192 | DECIMAL decVal;
|
|---|
| 193 | } __VARIANT_NAME_1;
|
|---|
| 194 | };
|
|---|
| 195 |
|
|---|
| 196 |
|
|---|
| 197 | typedef LONG DISPID;
|
|---|
| 198 | typedef DWORD HREFTYPE;
|
|---|
| 199 | typedef DISPID MEMBERID;
|
|---|
| 200 |
|
|---|
| 201 | #define DISPATCH_METHOD 0x1
|
|---|
| 202 | #define DISPATCH_PROPERTYGET 0x2
|
|---|
| 203 | #define DISPATCH_PROPERTYPUT 0x4
|
|---|
| 204 | #define DISPATCH_PROPERTYPUTREF 0x8
|
|---|
| 205 |
|
|---|
| 206 | #define DISPID_UNKNOWN ( -1 )
|
|---|
| 207 | #define DISPID_VALUE ( 0 )
|
|---|
| 208 | #define DISPID_PROPERTYPUT ( -3 )
|
|---|
| 209 | #define DISPID_NEWENUM ( -4 )
|
|---|
| 210 | #define DISPID_EVALUATE ( -5 )
|
|---|
| 211 | #define DISPID_CONSTRUCTOR ( -6 )
|
|---|
| 212 | #define DISPID_DESTRUCTOR ( -7 )
|
|---|
| 213 | #define DISPID_COLLECT ( -8 )
|
|---|
| 214 |
|
|---|
| 215 | #define MEMBERID_NIL DISPID_UNKNOWN
|
|---|
| 216 |
|
|---|
| 217 | #define IMPLTYPEFLAG_FDEFAULT (0x1)
|
|---|
| 218 | #define IMPLTYPEFLAG_FSOURCE (0x2)
|
|---|
| 219 | #define IMPLTYPEFLAG_FRESTRICTED (0x4)
|
|---|
| 220 | #define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8)
|
|---|
| 221 |
|
|---|
| 222 | typedef struct tagDISPPARAMS
|
|---|
| 223 | {
|
|---|
| 224 | VARIANTARG* rgvarg;
|
|---|
| 225 | DISPID* rgdispidNamedArgs;
|
|---|
| 226 | UINT cArgs;
|
|---|
| 227 | UINT cNamedArgs;
|
|---|
| 228 | } DISPPARAMS;
|
|---|
| 229 |
|
|---|
| 230 | typedef struct tagEXCEPINFO
|
|---|
| 231 | {
|
|---|
| 232 | WORD wCode;
|
|---|
| 233 | WORD wReserved;
|
|---|
| 234 | BSTR bstrSource;
|
|---|
| 235 | BSTR bstrDescription;
|
|---|
| 236 | BSTR bstrHelpFile;
|
|---|
| 237 | DWORD dwHelpContext;
|
|---|
| 238 | PVOID pvReserved;
|
|---|
| 239 | #ifdef __WIN32OS2__
|
|---|
| 240 | HRESULT (* WINAPI pfnDeferredFillIn)(struct tagEXCEPINFO *);
|
|---|
| 241 | #else
|
|---|
| 242 | HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
|
|---|
| 243 | #endif
|
|---|
| 244 | SCODE scode;
|
|---|
| 245 | } EXCEPINFO, * LPEXCEPINFO;
|
|---|
| 246 |
|
|---|
| 247 | typedef struct tagIDLDESC
|
|---|
| 248 | {
|
|---|
| 249 | ULONG dwReserved;
|
|---|
| 250 | USHORT wIDLFlags;
|
|---|
| 251 | } IDLDESC;
|
|---|
| 252 |
|
|---|
| 253 | typedef struct tagPARAMDESCEX
|
|---|
| 254 | {
|
|---|
| 255 | ULONG cBytes;
|
|---|
| 256 | VARIANTARG varDefaultValue;
|
|---|
| 257 | } PARAMDESCEX, *LPPARAMDESCEX;
|
|---|
| 258 |
|
|---|
| 259 | typedef struct tagPARAMDESC
|
|---|
| 260 | {
|
|---|
| 261 | LPPARAMDESCEX pparamdescex;
|
|---|
| 262 | USHORT wParamFlags;
|
|---|
| 263 | } PARAMDESC;
|
|---|
| 264 |
|
|---|
| 265 | #define PARAMFLAG_NONE (0x00)
|
|---|
| 266 | #define PARAMFLAG_FIN (0x01)
|
|---|
| 267 | #define PARAMFLAG_FOUT (0x02)
|
|---|
| 268 | #define PARAMFLAG_FLCID (0x04)
|
|---|
| 269 | #define PARAMFLAG_FRETVAL (0x08)
|
|---|
| 270 | #define PARAMFLAG_FOPT (0x10)
|
|---|
| 271 | #define PARAMFLAG_FHASDEFAULT (0x20)
|
|---|
| 272 | #define PARAMFLAG_FHASCUSTDATA (0x40)
|
|---|
| 273 |
|
|---|
| 274 | typedef struct tagTYPEDESC
|
|---|
| 275 | {
|
|---|
| 276 | union {
|
|---|
| 277 | struct tagTYPEDESC *lptdesc;
|
|---|
| 278 | struct tagARRAYDESC *lpadesc;
|
|---|
| 279 | HREFTYPE hreftype;
|
|---|
| 280 | } DUMMYUNIONNAME;
|
|---|
| 281 | VARTYPE vt;
|
|---|
| 282 | } TYPEDESC;
|
|---|
| 283 |
|
|---|
| 284 | typedef struct tagELEMDESC
|
|---|
| 285 | {
|
|---|
| 286 | TYPEDESC tdesc;
|
|---|
| 287 | union {
|
|---|
| 288 | IDLDESC idldesc;
|
|---|
| 289 | PARAMDESC paramdesc;
|
|---|
| 290 | } DUMMYUNIONNAME;
|
|---|
| 291 | } ELEMDESC, *LPELEMDESC;
|
|---|
| 292 |
|
|---|
| 293 | typedef enum tagTYPEKIND
|
|---|
| 294 | {
|
|---|
| 295 | TKIND_ENUM = 0,
|
|---|
| 296 | TKIND_RECORD = 1,
|
|---|
| 297 | TKIND_MODULE = 2,
|
|---|
| 298 | TKIND_INTERFACE = 3,
|
|---|
| 299 | TKIND_DISPATCH = 4,
|
|---|
| 300 | TKIND_COCLASS = 5,
|
|---|
| 301 | TKIND_ALIAS = 6,
|
|---|
| 302 | TKIND_UNION = 7,
|
|---|
| 303 | TKIND_MAX = 8
|
|---|
| 304 | } TYPEKIND;
|
|---|
| 305 |
|
|---|
| 306 | typedef struct tagTYPEATTR
|
|---|
| 307 | {
|
|---|
| 308 | GUID guid;
|
|---|
| 309 | LCID lcid;
|
|---|
| 310 | DWORD dwReserved;
|
|---|
| 311 | MEMBERID memidConstructor;
|
|---|
| 312 | MEMBERID memidDestructor;
|
|---|
| 313 | LPOLESTR lpstrSchema;
|
|---|
| 314 | ULONG cbSizeInstance;
|
|---|
| 315 | TYPEKIND typekind;
|
|---|
| 316 | WORD cFuncs;
|
|---|
| 317 | WORD cVars;
|
|---|
| 318 | WORD cImplTypes;
|
|---|
| 319 | WORD cbSizeVft;
|
|---|
| 320 | WORD cbAlignment;
|
|---|
| 321 | WORD wTypeFlags;
|
|---|
| 322 | WORD wMajorVerNum;
|
|---|
| 323 | WORD wMinorVerNum;
|
|---|
| 324 | TYPEDESC tdescAlias;
|
|---|
| 325 | IDLDESC idldescType;
|
|---|
| 326 | } TYPEATTR, *LPTYPEATTR;
|
|---|
| 327 |
|
|---|
| 328 | typedef enum tagTYPEFLAGS {
|
|---|
| 329 | TYPEFLAG_FAPPOBJECT = 0x01,
|
|---|
| 330 | TYPEFLAG_FCANCREATE = 0x02,
|
|---|
| 331 | TYPEFLAG_FLICENSED = 0x04,
|
|---|
| 332 | TYPEFLAG_FPREDECLID = 0x08,
|
|---|
| 333 | TYPEFLAG_FHIDDEN = 0x10,
|
|---|
| 334 | TYPEFLAG_FCONTROL = 0x20,
|
|---|
| 335 | TYPEFLAG_FDUAL = 0x40,
|
|---|
| 336 | TYPEFLAG_FNONEXTENSIBLE = 0x80,
|
|---|
| 337 | TYPEFLAG_FOLEAUTOMATION = 0x100,
|
|---|
| 338 | TYPEFLAG_FRESTRICTED = 0x200,
|
|---|
| 339 | TYPEFLAG_FAGGREGATABLE = 0x400,
|
|---|
| 340 | TYPEFLAG_FREPLACEABLE = 0x800,
|
|---|
| 341 | TYPEFLAG_FDISPATCHABLE = 0x1000,
|
|---|
| 342 | TYPEFLAG_FREVERSEBIND = 0x2000,
|
|---|
| 343 | TYPEFLAG_FPROXY = 0x4000
|
|---|
| 344 | } TYPEFLAGS;
|
|---|
| 345 |
|
|---|
| 346 | typedef struct tagARRAYDESC
|
|---|
| 347 | {
|
|---|
| 348 | TYPEDESC tdescElem;
|
|---|
| 349 | USHORT cDims;
|
|---|
| 350 | SAFEARRAYBOUND rgbounds[1];
|
|---|
| 351 | } ARRAYDESC;
|
|---|
| 352 |
|
|---|
| 353 | typedef enum tagFUNCKIND
|
|---|
| 354 | {
|
|---|
| 355 | FUNC_VIRTUAL = 0,
|
|---|
| 356 | FUNC_PUREVIRTUAL = 1,
|
|---|
| 357 | FUNC_NONVIRTUAL = 2,
|
|---|
| 358 | FUNC_STATIC = 3,
|
|---|
| 359 | FUNC_DISPATCH = 4
|
|---|
| 360 | } FUNCKIND;
|
|---|
| 361 |
|
|---|
| 362 | typedef enum tagFUNCFLAGS
|
|---|
| 363 | {
|
|---|
| 364 | FUNCFLAG_FRESTRICTED = 0x1,
|
|---|
| 365 | FUNCFLAG_FSOURCE = 0x2,
|
|---|
| 366 | FUNCFLAG_FBINDABLE = 0x4,
|
|---|
| 367 | FUNCFLAG_FREQUESTEDIT = 0x8,
|
|---|
| 368 | FUNCFLAG_FDISPLAYBIND = 0x10,
|
|---|
| 369 | FUNCFLAG_FDEFAULTBIND = 0x20,
|
|---|
| 370 | FUNCFLAG_FHIDDEN = 0x40,
|
|---|
| 371 | FUNCFLAG_FUSESGETLASTERROR = 0x80,
|
|---|
| 372 | FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
|
|---|
| 373 | FUNCFLAG_FUIDEFAULT = 0x200,
|
|---|
| 374 | FUNCFLAG_FNONBROWSABLE = 0x400,
|
|---|
| 375 | FUNCFLAG_FREPLACEABLE = 0x800,
|
|---|
| 376 | FUNCFLAG_FIMMEDIATEBIND = 0x1000
|
|---|
| 377 | } FUNCFLAGS;
|
|---|
| 378 |
|
|---|
| 379 | typedef enum tagINVOKEKIND
|
|---|
| 380 | {
|
|---|
| 381 | INVOKE_FUNC = 1,
|
|---|
| 382 | INVOKE_PROPERTYGET = 2,
|
|---|
| 383 | INVOKE_PROPERTYPUT = 4,
|
|---|
| 384 | INVOKE_PROPERTYPUTREF = 8
|
|---|
| 385 | } INVOKEKIND;
|
|---|
| 386 |
|
|---|
| 387 | typedef struct tagFUNCDESC
|
|---|
| 388 | {
|
|---|
| 389 | MEMBERID memid;
|
|---|
| 390 | SCODE *lprgscode;
|
|---|
| 391 | ELEMDESC *lprgelemdescParam;
|
|---|
| 392 | FUNCKIND funckind;
|
|---|
| 393 | INVOKEKIND invkind;
|
|---|
| 394 | CALLCONV callconv;
|
|---|
| 395 | SHORT cParams;
|
|---|
| 396 | SHORT cParamsOpt;
|
|---|
| 397 | SHORT oVft;
|
|---|
| 398 | SHORT cScodes;
|
|---|
| 399 | ELEMDESC elemdescFunc;
|
|---|
| 400 | WORD wFuncFlags;
|
|---|
| 401 | } FUNCDESC, *LPFUNCDESC;
|
|---|
| 402 |
|
|---|
| 403 | typedef enum tagVARKIND
|
|---|
| 404 | {
|
|---|
| 405 | VAR_PERINSTANCE = 0,
|
|---|
| 406 | VAR_STATIC = 1,
|
|---|
| 407 | VAR_CONST = 2,
|
|---|
| 408 | VAR_DISPATCH = 3
|
|---|
| 409 | } VARKIND;
|
|---|
| 410 |
|
|---|
| 411 | typedef struct tagVARDESC
|
|---|
| 412 | {
|
|---|
| 413 | MEMBERID memid;
|
|---|
| 414 | LPOLESTR lpstrSchema;
|
|---|
| 415 | union {
|
|---|
| 416 | ULONG oInst;
|
|---|
| 417 | VARIANT *lpvarValue;
|
|---|
| 418 | } DUMMYUNIONNAME;
|
|---|
| 419 | ELEMDESC elemdescVar;
|
|---|
| 420 | WORD wVarFlags;
|
|---|
| 421 | VARKIND varkind;
|
|---|
| 422 | } VARDESC, *LPVARDESC;
|
|---|
| 423 |
|
|---|
| 424 | typedef enum tagSYSKIND
|
|---|
| 425 | {
|
|---|
| 426 | SYS_WIN16 = 0,
|
|---|
| 427 | SYS_WIN32 = 1,
|
|---|
| 428 | SYS_MAC = 2
|
|---|
| 429 | } SYSKIND;
|
|---|
| 430 |
|
|---|
| 431 | typedef enum tagLIBFLAGS
|
|---|
| 432 | {
|
|---|
| 433 | LIBFLAG_FRESTRICTED = 0x1,
|
|---|
| 434 | LIBFLAG_FCONTROL = 0x2,
|
|---|
| 435 | LIBFLAG_FHIDDEN = 0x4,
|
|---|
| 436 | LIBFLAG_FHASDISKIMAGE = 0x8
|
|---|
| 437 | } LIBFLAGS;
|
|---|
| 438 |
|
|---|
| 439 | typedef struct tagTLIBATTR
|
|---|
| 440 | {
|
|---|
| 441 | GUID guid;
|
|---|
| 442 | LCID lcid;
|
|---|
| 443 | SYSKIND syskind;
|
|---|
| 444 | WORD wMajorVerNum;
|
|---|
| 445 | WORD wMinorVerNum;
|
|---|
| 446 | WORD wLibFlags;
|
|---|
| 447 | } TLIBATTR, *LPTLIBATTR;
|
|---|
| 448 |
|
|---|
| 449 | typedef enum tagDESCKIND
|
|---|
| 450 | {
|
|---|
| 451 | DESCKIND_NONE = 0,
|
|---|
| 452 | DESCKIND_FUNCDESC = 1,
|
|---|
| 453 | DESCKIND_VARDESC = 2,
|
|---|
| 454 | DESCKIND_TYPECOMP = 3,
|
|---|
| 455 | DESCKIND_IMPLICITAPPOBJ = 4,
|
|---|
| 456 | DESCKIND_MAX = 5
|
|---|
| 457 | } DESCKIND;
|
|---|
| 458 |
|
|---|
| 459 | typedef union tagBINDPTR
|
|---|
| 460 | {
|
|---|
| 461 | FUNCDESC *lpfuncdesc;
|
|---|
| 462 | VARDESC *lpvardesc;
|
|---|
| 463 | ITypeComp *lptcomp;
|
|---|
| 464 | } BINDPTR, *LPBINDPTR;
|
|---|
| 465 |
|
|---|
| 466 | typedef enum tagVARFLAGS
|
|---|
| 467 | {
|
|---|
| 468 | VARFLAG_FREADONLY = 0x1,
|
|---|
| 469 | VARFLAG_FSOURCE = 0x2,
|
|---|
| 470 | VARFLAG_FBINDABLE = 0x4,
|
|---|
| 471 | VARFLAG_FREQUESTEDIT = 0x8,
|
|---|
| 472 | VARFLAG_FDISPLAYBIND = 0x10,
|
|---|
| 473 | VARFLAG_FDEFAULTBIND = 0x20,
|
|---|
| 474 | VARFLAG_FHIDDEN = 0x40,
|
|---|
| 475 | VARFLAG_FRESTRICTED = 0x80,
|
|---|
| 476 | VARFLAG_FDEFAULTCOLLELEM = 0x100,
|
|---|
| 477 | VARFLAG_FUIDEFAULT = 0x200,
|
|---|
| 478 | VARFLAG_FNONBROWSABLE = 0x400,
|
|---|
| 479 | VARFLAG_FREPLACEABLE = 0x800,
|
|---|
| 480 | VARFLAG_FIMMEDIATEBIND = 0x1000
|
|---|
| 481 | } VARFLAGS;
|
|---|
| 482 |
|
|---|
| 483 |
|
|---|
| 484 | /*
|
|---|
| 485 | * Data types for Variants.
|
|---|
| 486 | */
|
|---|
| 487 |
|
|---|
| 488 | enum VARENUM {
|
|---|
| 489 | VT_EMPTY = 0,
|
|---|
| 490 | VT_NULL = 1,
|
|---|
| 491 | VT_I2 = 2,
|
|---|
| 492 | VT_I4 = 3,
|
|---|
| 493 | VT_R4 = 4,
|
|---|
| 494 | VT_R8 = 5,
|
|---|
| 495 | VT_CY = 6,
|
|---|
| 496 | VT_DATE = 7,
|
|---|
| 497 | VT_BSTR = 8,
|
|---|
| 498 | VT_DISPATCH = 9,
|
|---|
| 499 | VT_ERROR = 10,
|
|---|
| 500 | VT_BOOL = 11,
|
|---|
| 501 | VT_VARIANT = 12,
|
|---|
| 502 | VT_UNKNOWN = 13,
|
|---|
| 503 | VT_DECIMAL = 14,
|
|---|
| 504 | VT_I1 = 16,
|
|---|
| 505 | VT_UI1 = 17,
|
|---|
| 506 | VT_UI2 = 18,
|
|---|
| 507 | VT_UI4 = 19,
|
|---|
| 508 | VT_I8 = 20,
|
|---|
| 509 | VT_UI8 = 21,
|
|---|
| 510 | VT_INT = 22,
|
|---|
| 511 | VT_UINT = 23,
|
|---|
| 512 | VT_VOID = 24,
|
|---|
| 513 | VT_HRESULT = 25,
|
|---|
| 514 | VT_PTR = 26,
|
|---|
| 515 | VT_SAFEARRAY = 27,
|
|---|
| 516 | VT_CARRAY = 28,
|
|---|
| 517 | VT_USERDEFINED = 29,
|
|---|
| 518 | VT_LPSTR = 30,
|
|---|
| 519 | VT_LPWSTR = 31,
|
|---|
| 520 | VT_RECORD = 36,
|
|---|
| 521 | VT_FILETIME = 64,
|
|---|
| 522 | VT_BLOB = 65,
|
|---|
| 523 | VT_STREAM = 66,
|
|---|
| 524 | VT_STORAGE = 67,
|
|---|
| 525 | VT_STREAMED_OBJECT = 68,
|
|---|
| 526 | VT_STORED_OBJECT = 69,
|
|---|
| 527 | VT_BLOB_OBJECT = 70,
|
|---|
| 528 | VT_CF = 71,
|
|---|
| 529 | VT_CLSID = 72,
|
|---|
| 530 | VT_VECTOR = 0x1000,
|
|---|
| 531 | VT_ARRAY = 0x2000,
|
|---|
| 532 | VT_BYREF = 0x4000,
|
|---|
| 533 | VT_RESERVED = 0x8000,
|
|---|
| 534 | VT_ILLEGAL = 0xffff,
|
|---|
| 535 | VT_ILLEGALMASKED = 0xfff,
|
|---|
| 536 | VT_TYPEMASK = 0xfff
|
|---|
| 537 | };
|
|---|
| 538 |
|
|---|
| 539 | /* the largest valide type
|
|---|
| 540 | */
|
|---|
| 541 | #define VT_MAXVALIDTYPE VT_CLSID
|
|---|
| 542 |
|
|---|
| 543 |
|
|---|
| 544 | /*
|
|---|
| 545 | * Declarations of the VARIANT structure and the VARIANT APIs.
|
|---|
| 546 | */
|
|---|
| 547 |
|
|---|
| 548 | /* S_OK : Success.
|
|---|
| 549 | * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant.
|
|---|
| 550 | * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type.
|
|---|
| 551 | * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant.
|
|---|
| 552 | * E_INVALIDARG : One argument is invalid.
|
|---|
| 553 | * E_OUTOFMEMORY : Memory could not be allocated for the conversion.
|
|---|
| 554 | * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked.
|
|---|
| 555 | */
|
|---|
| 556 |
|
|---|
| 557 |
|
|---|
| 558 | typedef struct tagCUSTDATAITEM {
|
|---|
| 559 | GUID guid;
|
|---|
| 560 | VARIANTARG varValue;
|
|---|
| 561 | } CUSTDATAITEM, *LPCUSTDATAITEM;
|
|---|
| 562 |
|
|---|
| 563 | typedef struct tagCUSTDATA {
|
|---|
| 564 | INT cCustData;
|
|---|
| 565 | LPCUSTDATAITEM prgCustData; /* count cCustdata */
|
|---|
| 566 | } CUSTDATA, *LPCUSTDATA;
|
|---|
| 567 |
|
|---|
| 568 |
|
|---|
| 569 |
|
|---|
| 570 | /*****************************************************************************
|
|---|
| 571 | * IDispatch interface
|
|---|
| 572 | */
|
|---|
| 573 | #define ICOM_INTERFACE IDispatch
|
|---|
| 574 | #define IDispatch_METHODS \
|
|---|
| 575 | ICOM_METHOD1(HRESULT, GetTypeInfoCount, UINT*, pctinfo) \
|
|---|
| 576 | ICOM_METHOD3(HRESULT, GetTypeInfo, UINT, iTInfo, LCID, lcid, ITypeInfo**, ppTInfo) \
|
|---|
| 577 | ICOM_METHOD5(HRESULT, GetIDsOfNames, REFIID, riid, LPOLESTR*, rgszNames, UINT, cNames, LCID, lcid, DISPID*, rgDispId) \
|
|---|
| 578 | ICOM_METHOD8(HRESULT, Invoke, DISPID, dispIdMember, REFIID, riid, LCID, lcid, WORD, wFlags, DISPPARAMS*, pDispParams, VARIANT*, pVarResult, EXCEPINFO*, pExepInfo, UINT*, puArgErr)
|
|---|
| 579 | #define IDispatch_IMETHODS \
|
|---|
| 580 | IUnknown_IMETHODS \
|
|---|
| 581 | IDispatch_METHODS
|
|---|
| 582 | ICOM_DEFINE(IDispatch,IUnknown)
|
|---|
| 583 | #undef ICOM_INTERFACE
|
|---|
| 584 |
|
|---|
| 585 | /*** IUnknown methods ***/
|
|---|
| 586 | #define IDispatch_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 587 | #define IDispatch_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 588 | #define IDispatch_Release(p) ICOM_CALL (Release,p)
|
|---|
| 589 | /*** IDispatch methods ***/
|
|---|
| 590 | #define IDispatch_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a)
|
|---|
| 591 | #define IDispatch_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c)
|
|---|
| 592 | #define IDispatch_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
|
|---|
| 593 | #define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
|
|---|
| 594 |
|
|---|
| 595 |
|
|---|
| 596 | /*****************************************************************************
|
|---|
| 597 | * ITypeInfo interface
|
|---|
| 598 | */
|
|---|
| 599 | #define ICOM_INTERFACE ITypeInfo
|
|---|
| 600 | #define ITypeInfo_METHODS \
|
|---|
| 601 | ICOM_METHOD1(HRESULT,GetTypeAttr, TYPEATTR**,ppTypeAttr) \
|
|---|
| 602 | ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \
|
|---|
| 603 | ICOM_METHOD2(HRESULT,GetFuncDesc, UINT,index, FUNCDESC**,ppFuncDesc) \
|
|---|
| 604 | ICOM_METHOD2(HRESULT,GetVarDesc, UINT,index, VARDESC**,ppVarDesc) \
|
|---|
| 605 | ICOM_METHOD4(HRESULT,GetNames, MEMBERID,memid, BSTR*,rgBstrNames, UINT,cMaxNames, UINT*,pcNames) \
|
|---|
| 606 | ICOM_METHOD2(HRESULT,GetRefTypeOfImplType, UINT,index, HREFTYPE*, pRefType) \
|
|---|
| 607 | ICOM_METHOD2(HRESULT,GetImplTypeFlags, UINT,index, INT*,pImplTypeFlags)\
|
|---|
| 608 | ICOM_METHOD3(HRESULT,GetIDsOfNames, LPOLESTR*,rgszNames, UINT,cNames, MEMBERID*,pMemId) \
|
|---|
| 609 | ICOM_METHOD7(HRESULT,Invoke, PVOID,pvInstance, MEMBERID,memid, WORD,wFlags, DISPPARAMS*,pDispParams, VARIANT*,pVarResult, EXCEPINFO*,pExcepInfo, UINT*,puArgErr) \
|
|---|
| 610 | ICOM_METHOD5(HRESULT,GetDocumentation, MEMBERID,memid, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \
|
|---|
| 611 | ICOM_METHOD5(HRESULT,GetDllEntry, MEMBERID,memid, INVOKEKIND,invKind, BSTR*,pBstrDllName, BSTR*,pBstrName, WORD*,pwOrdinal) \
|
|---|
| 612 | ICOM_METHOD2(HRESULT,GetRefTypeInfo, HREFTYPE,hRefType, ITypeInfo**,ppTInfo) \
|
|---|
| 613 | ICOM_METHOD3(HRESULT,AddressOfMember, MEMBERID,memid, INVOKEKIND,invKind, PVOID*,ppv) \
|
|---|
| 614 | ICOM_METHOD3(HRESULT,CreateInstance, IUnknown*,pUnkOuter, REFIID,riid, PVOID*,ppvObj) \
|
|---|
| 615 | ICOM_METHOD2(HRESULT,GetMops, MEMBERID,memid, BSTR*,pBstrMops) \
|
|---|
| 616 | ICOM_METHOD2(HRESULT,GetContainingTypeLib, ITypeLib**,ppTLib, UINT*,pIndex) \
|
|---|
| 617 | ICOM_METHOD1(HRESULT,ReleaseTypeAttr, TYPEATTR*,pTypeAttr) \
|
|---|
| 618 | ICOM_METHOD1(HRESULT,ReleaseFuncDesc, FUNCDESC*,pFuncDesc) \
|
|---|
| 619 | ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc)
|
|---|
| 620 |
|
|---|
| 621 | #define ITypeInfo_IMETHODS \
|
|---|
| 622 | IUnknown_IMETHODS \
|
|---|
| 623 | ITypeInfo_METHODS
|
|---|
| 624 | ICOM_DEFINE(ITypeInfo,IUnknown)
|
|---|
| 625 | #undef ICOM_INTERFACE
|
|---|
| 626 |
|
|---|
| 627 | /*** IUnknown methods ***/
|
|---|
| 628 | #define ITypeInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 629 | #define ITypeInfo_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 630 | #define ITypeInfo_Release(p) ICOM_CALL (Release,p)
|
|---|
| 631 | /*** ITypeInfo methods ***/
|
|---|
| 632 | #define ITypeInfo_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a)
|
|---|
| 633 | #define ITypeInfo_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
|
|---|
| 634 | #define ITypeInfo_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b)
|
|---|
| 635 | #define ITypeInfo_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b)
|
|---|
| 636 | #define ITypeInfo_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d)
|
|---|
| 637 | #define ITypeInfo_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
|
|---|
| 638 | #define ITypeInfo_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b)
|
|---|
| 639 | #define ITypeInfo_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c)
|
|---|
| 640 | #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
|
|---|
| 641 | #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
|
|---|
| 642 | #define ITypeInfo_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
|
|---|
| 643 | #define ITypeInfo_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b)
|
|---|
| 644 | #define ITypeInfo_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c)
|
|---|
| 645 | #define ITypeInfo_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c)
|
|---|
| 646 | #define ITypeInfo_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b)
|
|---|
| 647 | #define ITypeInfo_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b)
|
|---|
| 648 | #define ITypeInfo_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a)
|
|---|
| 649 | #define ITypeInfo_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a)
|
|---|
| 650 | #define ITypeInfo_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a)
|
|---|
| 651 |
|
|---|
| 652 |
|
|---|
| 653 | /*****************************************************************************
|
|---|
| 654 | * ITypeInfo2 interface
|
|---|
| 655 | */
|
|---|
| 656 | #define ICOM_INTERFACE ITypeInfo2
|
|---|
| 657 | #define ITypeInfo2_METHODS \
|
|---|
| 658 | ICOM_METHOD1(HRESULT, GetTypeKind, TYPEKIND*, pTypeKind) \
|
|---|
| 659 | ICOM_METHOD1(HRESULT, GetTypeFlags, UINT*, pTypeFlags) \
|
|---|
| 660 | ICOM_METHOD3(HRESULT, GetFuncIndexOfMemId, MEMBERID, memid, INVOKEKIND,\
|
|---|
| 661 | invKind, UINT*, pFuncIndex) \
|
|---|
| 662 | ICOM_METHOD2(HRESULT, GetVarIndexOfMemId, MEMBERID, memid, UINT*, \
|
|---|
| 663 | pVarIndex) \
|
|---|
| 664 | ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \
|
|---|
| 665 | ICOM_METHOD3(HRESULT, GetFuncCustData, UINT, index, REFGUID, guid,\
|
|---|
| 666 | VARIANT*, pVarVal) \
|
|---|
| 667 | ICOM_METHOD4(HRESULT, GetParamCustData, UINT, indexFunc, UINT,\
|
|---|
| 668 | indexParam, REFGUID, guid, VARIANT*, pVarVal) \
|
|---|
| 669 | ICOM_METHOD3(HRESULT, GetVarCustData, UINT, index, REFGUID, guid,\
|
|---|
| 670 | VARIANT*, pVarVal) \
|
|---|
| 671 | ICOM_METHOD3(HRESULT, GetImplTypeCustData, UINT, index, REFGUID, guid,\
|
|---|
| 672 | VARIANT*, pVarVal) \
|
|---|
| 673 | ICOM_METHOD5(HRESULT, GetDocumentation2, MEMBERID, memid, LCID, lcid,\
|
|---|
| 674 | BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext,\
|
|---|
| 675 | BSTR*, pbstrHelpStringDll) \
|
|---|
| 676 | ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA*, pCustData) \
|
|---|
| 677 | ICOM_METHOD2(HRESULT, GetAllFuncCustData, UINT, index, CUSTDATA*,\
|
|---|
| 678 | pCustData)\
|
|---|
| 679 | ICOM_METHOD3(HRESULT, GetAllParamCustData, UINT, indexFunc, UINT,\
|
|---|
| 680 | indexParam, CUSTDATA*, pCustData) \
|
|---|
| 681 | ICOM_METHOD2(HRESULT, GetAllVarCustData, UINT, index, CUSTDATA*,\
|
|---|
| 682 | pCustData) \
|
|---|
| 683 | ICOM_METHOD2(HRESULT, GetAllImplTypeCustData, UINT, index, CUSTDATA*,\
|
|---|
| 684 | pCustData)
|
|---|
| 685 |
|
|---|
| 686 | #define ITypeInfo2_IMETHODS \
|
|---|
| 687 | IUnknown_IMETHODS \
|
|---|
| 688 | ITypeInfo_METHODS \
|
|---|
| 689 | ITypeInfo2_METHODS
|
|---|
| 690 | ICOM_DEFINE(ITypeInfo2,ITypeInfo)
|
|---|
| 691 | #undef ICOM_INTERFACE
|
|---|
| 692 |
|
|---|
| 693 | /*** IUnknown methods ***/
|
|---|
| 694 | #define ITypeInfo2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 695 | #define ITypeInfo2_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 696 | #define ITypeInfo2_Release(p) ICOM_CALL (Release,p)
|
|---|
| 697 | /*** ITypeInfo methods ***/
|
|---|
| 698 | #define ITypeInfo2_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a)
|
|---|
| 699 | #define ITypeInfo2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
|
|---|
| 700 | #define ITypeInfo2_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b)
|
|---|
| 701 | #define ITypeInfo2_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b)
|
|---|
| 702 | #define ITypeInfo2_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d)
|
|---|
| 703 | #define ITypeInfo2_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
|
|---|
| 704 | #define ITypeInfo2_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b)
|
|---|
| 705 | #define ITypeInfo2_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c)
|
|---|
| 706 | #define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
|
|---|
| 707 | #define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
|
|---|
| 708 | #define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
|
|---|
| 709 | #define ITypeInfo2_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b)
|
|---|
| 710 | #define ITypeInfo2_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c)
|
|---|
| 711 | #define ITypeInfo2_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c)
|
|---|
| 712 | #define ITypeInfo2_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b)
|
|---|
| 713 | #define ITypeInfo2_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b)
|
|---|
| 714 | #define ITypeInfo2_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a)
|
|---|
| 715 | #define ITypeInfo2_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a)
|
|---|
| 716 | #define ITypeInfo2_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a)
|
|---|
| 717 | /*** ITypeInfo2 methods ***/
|
|---|
| 718 | #define ITypeInfo2_GetTypeKind(p,a) ICOM_CALL1(GetTypeKind,p,a)
|
|---|
| 719 | #define ITypeInfo2_GetTypeFlags(p,a) ICOM_CALL1(GetTypeFlags,p,a)
|
|---|
| 720 | #define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) ICOM_CALL3(GetFuncIndexOfMemId,p,a,b,c)
|
|---|
| 721 | #define ITypeInfo2_GetVarIndexOfMemId(p,a,b) ICOM_CALL2(GetVarIndexOfMemId,p,a,b)
|
|---|
| 722 | #define ITypeInfo2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b)
|
|---|
| 723 | #define ITypeInfo2_GetFuncCustData(p,a,b,c) ICOM_CALL3(GetFuncCustData,p,a,b,c)
|
|---|
| 724 | #define ITypeInfo2_GetParamCustData(p,a,b,c,d) ICOM_CALL4(GetParamCustData,p,a,b,c,d)
|
|---|
| 725 | #define ITypeInfo2_GetVarCustData(p,a,b,c) ICOM_CALL3(GetVarCustData,p,a,b,c)
|
|---|
| 726 | #define ITypeInfo2_GetImplTypeCustData(p,a,b,c) ICOM_CALL3(GetImplTypeCustData,p,a,b,c)
|
|---|
| 727 | #define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
|
|---|
| 728 | #define ITypeInfo2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a)
|
|---|
| 729 | #define ITypeInfo2_GetAllFuncCustData(p,a,b) ICOM_CALL2(GetAllFuncCustData,p,a,b)
|
|---|
| 730 | #define ITypeInfo2_GetAllParamCustData(p,a,b,c) ICOM_CALL3(GetAllParamCustData,p,a,b,c)
|
|---|
| 731 | #define ITypeInfo2_GetAllVarCustData(p,a,b) ICOM_CALL2(GetAllVarCustData,p,a,b)
|
|---|
| 732 | #define ITypeInfo2_GetAllImplTypeCustData(p,a,b) ICOM_CALL2(GetAllImplTypeCustData,p,a,b)
|
|---|
| 733 |
|
|---|
| 734 | /*****************************************************************************
|
|---|
| 735 | * ITypeLib interface
|
|---|
| 736 | */
|
|---|
| 737 | #define ICOM_INTERFACE ITypeLib
|
|---|
| 738 | #define ITypeLib_METHODS \
|
|---|
| 739 | ICOM_METHOD (UINT,GetTypeInfoCount) \
|
|---|
| 740 | ICOM_METHOD2(HRESULT,GetTypeInfo, UINT,index, ITypeInfo**,ppTInfo) \
|
|---|
| 741 | ICOM_METHOD2(HRESULT,GetTypeInfoType, UINT,index, TYPEKIND*,pTKind) \
|
|---|
| 742 | ICOM_METHOD2(HRESULT,GetTypeInfoOfGuid, REFGUID,guid, ITypeInfo**,ppTinfo) \
|
|---|
| 743 | ICOM_METHOD1(HRESULT,GetLibAttr, TLIBATTR**,ppTLibAttr) \
|
|---|
| 744 | ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \
|
|---|
| 745 | ICOM_METHOD5(HRESULT,GetDocumentation, INT,index, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \
|
|---|
| 746 | ICOM_METHOD3(HRESULT,IsName, LPOLESTR,szNameBuf, ULONG,lHashVal, BOOL*,bfName) \
|
|---|
| 747 | ICOM_METHOD5(HRESULT,FindName, LPOLESTR,szNameBuf, ULONG,lHashVal, ITypeInfo**,ppTInfo, MEMBERID*,rgMemId, USHORT*,pcFound) \
|
|---|
| 748 | ICOM_METHOD1(VOID,ReleaseTLibAttr, TLIBATTR*,pTLibAttr)
|
|---|
| 749 | #define ITypeLib_IMETHODS \
|
|---|
| 750 | IUnknown_IMETHODS \
|
|---|
| 751 | ITypeLib_METHODS
|
|---|
| 752 | ICOM_DEFINE(ITypeLib,IUnknown)
|
|---|
| 753 | #undef ICOM_INTERFACE
|
|---|
| 754 |
|
|---|
| 755 | /*** IUnknown methods ***/
|
|---|
| 756 | #define ITypeLib_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 757 | #define ITypeLib_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 758 | #define ITypeLib_Release(p) ICOM_CALL (Release,p)
|
|---|
| 759 | /*** ITypeLib methods ***/
|
|---|
| 760 | #define ITypeLib_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p)
|
|---|
| 761 | #define ITypeLib_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b)
|
|---|
| 762 | #define ITypeLib_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b)
|
|---|
| 763 | #define ITypeLib_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b)
|
|---|
| 764 | #define ITypeLib_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a)
|
|---|
| 765 | #define ITypeLib_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
|
|---|
| 766 | #define ITypeLib_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
|
|---|
| 767 | #define ITypeLib_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c)
|
|---|
| 768 | #define ITypeLib_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e)
|
|---|
| 769 | #define ITypeLib_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a)
|
|---|
| 770 |
|
|---|
| 771 |
|
|---|
| 772 | /*****************************************************************************
|
|---|
| 773 | * ITypeLib2 interface
|
|---|
| 774 | */
|
|---|
| 775 | #define ICOM_INTERFACE ITypeLib2
|
|---|
| 776 | #define ITypeLib2_METHODS \
|
|---|
| 777 | ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \
|
|---|
| 778 | ICOM_METHOD2(HRESULT, GetLibStatistics, ULONG *, pcUniqueNames, ULONG*,pcchUniqueNames) \
|
|---|
| 779 | ICOM_METHOD5(HRESULT, GetDocumentation2, INT, index, LCID, lcid,BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext, BSTR*, strHelpStringDll) \
|
|---|
| 780 | ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA *, pCustData)
|
|---|
| 781 | #define ITypeLib2_IMETHODS \
|
|---|
| 782 | IUnknown_IMETHODS \
|
|---|
| 783 | ITypeLib_IMETHODS \
|
|---|
| 784 | ITypeLib2_METHODS
|
|---|
| 785 | ICOM_DEFINE(ITypeLib2,ITypeLib)
|
|---|
| 786 | #undef ICOM_INTERFACE
|
|---|
| 787 |
|
|---|
| 788 | /*** IUnknown methods ***/
|
|---|
| 789 | #define ITypeLib2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 790 | #define ITypeLib2_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 791 | #define ITypeLib2_Release(p) ICOM_CALL (Release,p)
|
|---|
| 792 | /*** ITypeLib methods ***/
|
|---|
| 793 | #define ITypeLib2_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p)
|
|---|
| 794 | #define ITypeLib2_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b)
|
|---|
| 795 | #define ITypeLib2_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b)
|
|---|
| 796 | #define ITypeLib2_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b)
|
|---|
| 797 | #define ITypeLib2_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a)
|
|---|
| 798 | #define ITypeLib2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a)
|
|---|
| 799 | #define ITypeLib2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
|
|---|
| 800 | #define ITypeLib2_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c)
|
|---|
| 801 | #define ITypeLib2_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e)
|
|---|
| 802 | #define ITypeLib2_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a)
|
|---|
| 803 | /*** ITypeLib2 methods ***/
|
|---|
| 804 | #define ITypeLib2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b)
|
|---|
| 805 | #define ITypeLib2_GetLibStatistics(p,a,b) ICOM_CALL2(GetLibStatistics,p,a,b)
|
|---|
| 806 | #define ITypeLib2_GetDocumentation2(p,a,b,c,d,e,f) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
|
|---|
| 807 | #define ITypeLib2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a)
|
|---|
| 808 |
|
|---|
| 809 | /*****************************************************************************
|
|---|
| 810 | * ITypeComp interface
|
|---|
| 811 | */
|
|---|
| 812 | #define ICOM_INTERFACE ITypeComp
|
|---|
| 813 | #define ITypeComp_METHODS \
|
|---|
| 814 | ICOM_METHOD6(HRESULT,Bind, LPOLESTR,szName, ULONG,lHashVal, WORD,wFlags, ITypeInfo**,ppTInfo, DESCKIND*,pDescKind, BINDPTR*,pBindPtr) \
|
|---|
| 815 | ICOM_METHOD4(HRESULT,BindType, LPOLESTR,szName, ULONG,lHashVal, ITypeInfo**,ppTInfo, ITypeComp**,ppTComp)
|
|---|
| 816 | #define ITypeComp_IMETHODS \
|
|---|
| 817 | IUnknown_IMETHODS \
|
|---|
| 818 | ITypeComp_METHODS
|
|---|
| 819 | ICOM_DEFINE(ITypeComp,IUnknown)
|
|---|
| 820 | #undef ICOM_INTERFACE
|
|---|
| 821 |
|
|---|
| 822 | /*** IUnknown methods ***/
|
|---|
| 823 | #define ITypeComp_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 824 | #define ITypeComp_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 825 | #define ITypeComp_Release(p) ICOM_CALL (Release,p)
|
|---|
| 826 | /*** ITypeComp methods ***/
|
|---|
| 827 | #define ITypeComp_Bind(p,a,b,c,d,e,f) ICOM_CALL6(Bind,p,a,b,c,d,e,f)
|
|---|
| 828 | #define ITypeComp_BindType(p,a,b,c,d) ICOM_CALL4(BindType,p,a,b,c,d)
|
|---|
| 829 |
|
|---|
| 830 | /*****************************************************************************
|
|---|
| 831 | * IEnumVARIANT interface
|
|---|
| 832 | */
|
|---|
| 833 | #define ICOM_INTERFACE IEnumVARIANT
|
|---|
| 834 | #define IEnumVARIANT_METHODS \
|
|---|
| 835 | ICOM_METHOD3(HRESULT,Next, ULONG,celt, VARIANT*,rgVar, ULONG*,pCeltFetched) \
|
|---|
| 836 | ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \
|
|---|
| 837 | ICOM_METHOD (HRESULT,Reset) \
|
|---|
| 838 | ICOM_METHOD1(HRESULT,Clone, IEnumVARIANT**,ppEnum)
|
|---|
| 839 | #define IEnumVARIANT_IMETHODS \
|
|---|
| 840 | IUnknown_IMETHODS \
|
|---|
| 841 | IEnumVARIANT_METHODS
|
|---|
| 842 | ICOM_DEFINE(IEnumVARIANT,IUnknown)
|
|---|
| 843 | #undef ICOM_INTERFACE
|
|---|
| 844 |
|
|---|
| 845 | /*** IUnknown methods ***/
|
|---|
| 846 | #define IEnumVARIANT_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
|---|
| 847 | #define IEnumVARIANT_AddRef(p) ICOM_CALL (AddRef,p)
|
|---|
| 848 | #define IEnumVARIANT_Release(p) ICOM_CALL (Release,p)
|
|---|
| 849 | /*** IEnumVARIANT methods ***/
|
|---|
| 850 | #define IEnumVARIANT_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c)
|
|---|
| 851 | #define IEnumVARIANT_Skip(p,a) ICOM_CALL1(Skip,p,a)
|
|---|
| 852 | #define IEnumVARIANT_Reset(p) ICOM_CALL (Reset,p)
|
|---|
| 853 | #define IEnumVARIANT_Clone(p,a) ICOM_CALL1(Clone,p,a)
|
|---|
| 854 |
|
|---|
| 855 | #endif /* __WINE_WINE_OBJ_OLEAUT_H */
|
|---|
| 856 |
|
|---|