Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenoaidl.idl
Go to the documentation of this file.
00001 /* 00002 * Copyright 2002 Ove Kaaven 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #ifndef DO_NO_IMPORTS 00020 import "objidl.idl"; 00021 #endif 00022 00023 interface IDispatch; 00024 interface ITypeInfo; 00025 interface ITypeLib; 00026 interface IRecordInfo; 00027 00028 [ 00029 version(1.0), 00030 pointer_default(unique) 00031 ] 00032 interface IOleAutomationTypes 00033 { 00034 00035 typedef CY CURRENCY; 00036 00037 /* Safe Array */ 00038 00039 typedef struct tagSAFEARRAYBOUND { 00040 ULONG cElements; 00041 LONG lLbound; 00042 } SAFEARRAYBOUND, *LPSAFEARRAYBOUND; 00043 00044 typedef [unique] struct _wireVARIANT *wireVARIANT; 00045 typedef [unique] struct _wireBRECORD *wireBRECORD; 00046 00047 typedef struct _wireSAFEARR_BSTR { 00048 ULONG Size; 00049 [size_is(Size), ref] wireBSTR *aBstr; 00050 } SAFEARR_BSTR; 00051 00052 typedef struct _wireSAFEARR_UNKNOWN { 00053 ULONG Size; 00054 [size_is(Size), ref] IUnknown **apUnknown; 00055 } SAFEARR_UNKNOWN; 00056 00057 typedef struct _wireSAFEARR_DISPATCH { 00058 ULONG Size; 00059 [size_is(Size), ref] IDispatch **apDispatch; 00060 } SAFEARR_DISPATCH; 00061 00062 typedef struct _wireSAFEARR_VARIANT { 00063 ULONG Size; 00064 [size_is(Size), ref] wireVARIANT *aVariant; 00065 } SAFEARR_VARIANT; 00066 00067 typedef struct _wireSAFEARR_BRECORD { 00068 ULONG Size; 00069 [size_is(Size), ref] wireBRECORD *aRecord; 00070 } SAFEARR_BRECORD; 00071 00072 typedef struct _wireSAFEARR_HAVEIID { 00073 ULONG Size; 00074 [size_is(Size), ref] IUnknown **apUnknown; 00075 IID iid; 00076 } SAFEARR_HAVEIID; 00077 00078 typedef [v1_enum] enum tagSF_TYPE { 00079 SF_ERROR = VT_ERROR, 00080 SF_I1 = VT_I1, 00081 SF_I2 = VT_I2, 00082 SF_I4 = VT_I4, 00083 SF_I8 = VT_I8, 00084 SF_BSTR = VT_BSTR, 00085 SF_UNKNOWN = VT_UNKNOWN, 00086 SF_DISPATCH = VT_DISPATCH, 00087 SF_VARIANT = VT_VARIANT, 00088 SF_RECORD = VT_RECORD, 00089 SF_HAVEIID = VT_UNKNOWN|VT_RESERVED, 00090 } SF_TYPE; 00091 00092 typedef union _wireSAFEARRAY_UNION switch(ULONG sfType) u { 00093 case SF_BSTR: SAFEARR_BSTR BstrStr; 00094 case SF_UNKNOWN: SAFEARR_UNKNOWN UnknownStr; 00095 case SF_DISPATCH: SAFEARR_DISPATCH DispatchStr; 00096 case SF_VARIANT: SAFEARR_VARIANT VariantStr; 00097 case SF_RECORD: SAFEARR_BRECORD RecordStr; 00098 case SF_HAVEIID: SAFEARR_HAVEIID HaveIidStr; 00099 case SF_I1: BYTE_SIZEDARR ByteStr; 00100 case SF_I2: WORD_SIZEDARR WordStr; 00101 case SF_I4: DWORD_SIZEDARR LongStr; 00102 case SF_I8: HYPER_SIZEDARR HyperStr; 00103 } SAFEARRAYUNION; 00104 00105 typedef [unique] struct _wireSAFEARRAY { 00106 USHORT cDims; 00107 USHORT fFeatures; 00108 ULONG cbElements; 00109 ULONG cLocks; 00110 SAFEARRAYUNION uArrayStructs; 00111 [size_is(cDims)] SAFEARRAYBOUND rgsabound[]; 00112 } *wireSAFEARRAY; 00113 00114 typedef [unique] wireSAFEARRAY *wirePSAFEARRAY; 00115 00116 typedef struct tagSAFEARRAY { 00117 USHORT cDims; 00118 USHORT fFeatures; 00119 ULONG cbElements; 00120 ULONG cLocks; 00121 PVOID pvData; 00122 SAFEARRAYBOUND rgsabound[]; 00123 } SAFEARRAY; 00124 00125 typedef [wire_marshal(wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY; 00126 00127 const USHORT FADF_AUTO = 0x0001; 00128 const USHORT FADF_STATIC = 0x0002; 00129 const USHORT FADF_EMBEDDED = 0x0004; 00130 const USHORT FADF_FIXEDSIZE = 0x0010; 00131 const USHORT FADF_RECORD = 0x0020; 00132 const USHORT FADF_HAVEIID = 0x0040; 00133 const USHORT FADF_HAVEVARTYPE = 0x0080; 00134 const USHORT FADF_BSTR = 0x0100; 00135 const USHORT FADF_UNKNOWN = 0x0200; 00136 const USHORT FADF_DISPATCH = 0x0400; 00137 const USHORT FADF_VARIANT = 0x0800; 00138 const USHORT FADF_RESERVED = 0xF008; 00139 /* Undocumented flags */ 00140 const USHORT FADF_DATADELETED = 0x1000; /* Data in a vector has been deleted */ 00141 const USHORT FADF_CREATEVECTOR = 0x2000; /* This array is a vector */ 00142 00143 /* Variant */ 00144 00145 cpp_quote("#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)") 00146 cpp_quote("#define __VARIANT_NAME_1 n1") 00147 cpp_quote("#define __VARIANT_NAME_2 n2") 00148 cpp_quote("#define __VARIANT_NAME_3 n3") 00149 cpp_quote("#define __VARIANT_NAME_4 brecVal") 00150 cpp_quote("#else") 00151 cpp_quote("#define __tagVARIANT") 00152 cpp_quote("#define __VARIANT_NAME_1") 00153 cpp_quote("#define __VARIANT_NAME_2") 00154 cpp_quote("#define __VARIANT_NAME_3") 00155 cpp_quote("#define __tagBRECORD") 00156 cpp_quote("#define __VARIANT_NAME_4") 00157 cpp_quote("#endif") 00158 00159 typedef [wire_marshal(wireVARIANT)] struct tagVARIANT VARIANT; 00160 00161 struct tagVARIANT { 00162 union { 00163 struct __tagVARIANT { 00164 VARTYPE vt; 00165 WORD wReserved1; 00166 WORD wReserved2; 00167 WORD wReserved3; 00168 union { 00169 signed char cVal; 00170 USHORT uiVal; 00171 ULONG ulVal; 00172 INT intVal; 00173 UINT uintVal; 00174 BYTE bVal; 00175 SHORT iVal; 00176 LONG lVal; 00177 FLOAT fltVal; 00178 DOUBLE dblVal; 00179 VARIANT_BOOL boolVal; 00180 #if 0 /* illegal in C++ */ 00181 _VARIANT_BOOL bool; 00182 #endif 00183 SCODE scode; 00184 DATE date; 00185 BSTR bstrVal; 00186 CY cyVal; 00187 IUnknown *punkVal; 00188 IDispatch *pdispVal; 00189 SAFEARRAY *parray; 00190 LONGLONG llVal; 00191 ULONGLONG ullVal; 00192 signed char *pcVal; 00193 USHORT *puiVal; 00194 ULONG *pulVal; 00195 INT *pintVal; 00196 UINT *puintVal; 00197 BYTE *pbVal; 00198 SHORT *piVal; 00199 LONG *plVal; 00200 FLOAT *pfltVal; 00201 DOUBLE *pdblVal; 00202 VARIANT_BOOL *pboolVal; 00203 #if 0 00204 _VARIANT_BOOL *pbool; 00205 #endif 00206 SCODE *pscode; 00207 DATE *pdate; 00208 BSTR *pbstrVal; 00209 VARIANT *pvarVal; 00210 PVOID byref; 00211 CY *pcyVal; 00212 DECIMAL *pdecVal; 00213 IUnknown **ppunkVal; 00214 IDispatch **ppdispVal; 00215 SAFEARRAY **pparray; 00216 LONGLONG *pllVal; 00217 ULONGLONG *pullVal; 00218 struct __tagBRECORD { 00219 PVOID pvRecord; 00220 IRecordInfo *pRecInfo; 00221 } __VARIANT_NAME_4; 00222 } __VARIANT_NAME_3; 00223 } __VARIANT_NAME_2; 00224 00225 DECIMAL decVal; 00226 } __VARIANT_NAME_1; 00227 }; 00228 00229 typedef VARIANT *LPVARIANT; 00230 typedef VARIANT VARIANTARG; 00231 typedef VARIANTARG *LPVARIANTARG; 00232 00233 struct _wireBRECORD { 00234 ULONG fFlags; 00235 ULONG clSize; 00236 IRecordInfo *pRecInfo; 00237 [size_is(clSize)] byte *pRecord; 00238 }; 00239 00240 struct _wireVARIANT { 00241 DWORD clSize; 00242 DWORD rpcReserved; 00243 USHORT vt; 00244 USHORT wReserved1; 00245 USHORT wReserved2; 00246 USHORT wReserved3; 00247 [switch_is(vt)] union { 00248 [case(VT_EMPTY, VT_NULL)] ; 00249 [case(VT_I1)] signed char cVal; 00250 [case(VT_UI2)] USHORT uiVal; 00251 [case(VT_UI4)] ULONG ulVal; 00252 [case(VT_INT)] INT intVal; 00253 [case(VT_UINT)] UINT uintVal; 00254 [case(VT_UI1)] BYTE bVal; 00255 [case(VT_I2)] SHORT iVal; 00256 [case(VT_I4)] LONG lVal; 00257 [case(VT_R4)] FLOAT fltVal; 00258 [case(VT_R8)] DOUBLE dblVal; 00259 [case(VT_BOOL)] VARIANT_BOOL boolVal; 00260 [case(VT_ERROR)] SCODE scode; 00261 [case(VT_DATE)] DATE date; 00262 [case(VT_BSTR)] wireBSTR bstrVal; 00263 [case(VT_CY)] CY cyVal; 00264 [case(VT_DECIMAL)] DECIMAL decVal; 00265 [case(VT_UNKNOWN)] IUnknown *punkVal; 00266 [case(VT_DISPATCH)] IDispatch *pdispVal; 00267 [case(VT_ARRAY)] wireSAFEARRAY parray; 00268 [case(VT_I1|VT_BYREF)] signed char *pcVal; 00269 [case(VT_UI2|VT_BYREF)] USHORT *puiVal; 00270 [case(VT_UI4|VT_BYREF)] ULONG *pulVal; 00271 [case(VT_INT|VT_BYREF)] INT *pintVal; 00272 [case(VT_UINT|VT_BYREF)] UINT *puintVal; 00273 [case(VT_UI1|VT_BYREF)] BYTE *pbVal; 00274 [case(VT_I2|VT_BYREF)] SHORT *piVal; 00275 [case(VT_I4|VT_BYREF)] LONG *plVal; 00276 [case(VT_R4|VT_BYREF)] FLOAT *pfltVal; 00277 [case(VT_R8|VT_BYREF)] DOUBLE *pdblVal; 00278 [case(VT_BOOL|VT_BYREF)] VARIANT_BOOL *pboolVal; 00279 [case(VT_ERROR|VT_BYREF)] SCODE *pscode; 00280 [case(VT_DATE|VT_BYREF)] DATE *pdate; 00281 [case(VT_BSTR|VT_BYREF)] wireBSTR *pbstrVal; 00282 [case(VT_VARIANT|VT_BYREF)] wireVARIANT *pvarVal; 00283 [case(VT_CY|VT_BYREF)] CY *pcyVal; 00284 [case(VT_DECIMAL|VT_BYREF)] DECIMAL *pdecVal; 00285 [case(VT_UNKNOWN|VT_BYREF)] IUnknown **ppunkVal; 00286 [case(VT_DISPATCH|VT_BYREF)] IDispatch **ppdispVal; 00287 [case(VT_ARRAY|VT_BYREF)] wireSAFEARRAY *pparray; 00288 [case(VT_RECORD, VT_RECORD|VT_BYREF)] wireBRECORD brecVal; 00289 } DUMMYUNIONNAME; 00290 }; 00291 00292 /* Dispatch */ 00293 00294 typedef LONG DISPID; 00295 typedef DWORD HREFTYPE; 00296 typedef DISPID MEMBERID; 00297 00298 typedef [v1_enum] enum tagTYPEKIND { 00299 TKIND_ENUM = 0, 00300 TKIND_RECORD, 00301 TKIND_MODULE, 00302 TKIND_INTERFACE, 00303 TKIND_DISPATCH, 00304 TKIND_COCLASS, 00305 TKIND_ALIAS, 00306 TKIND_UNION, 00307 TKIND_MAX 00308 } TYPEKIND; 00309 00310 typedef struct tagTYPEDESC { 00311 [switch_is(vt)] union { 00312 [case(VT_PTR, VT_SAFEARRAY)] struct tagTYPEDESC *lptdesc; 00313 [case(VT_CARRAY)] struct tagARRAYDESC *lpadesc; 00314 [case(VT_USERDEFINED)] HREFTYPE hreftype; 00315 [default] ; 00316 } DUMMYUNIONNAME; 00317 VARTYPE vt; 00318 } TYPEDESC; 00319 00320 typedef struct tagARRAYDESC { 00321 TYPEDESC tdescElem; 00322 USHORT cDims; 00323 [size_is(cDims)] SAFEARRAYBOUND rgbounds[]; 00324 } ARRAYDESC; 00325 00326 typedef struct tagPARAMDESCEX { 00327 ULONG cBytes; 00328 VARIANTARG varDefaultValue; 00329 } PARAMDESCEX, *LPPARAMDESCEX; 00330 00331 typedef struct tagPARAMDESC { 00332 LPPARAMDESCEX pparamdescex; 00333 USHORT wParamFlags; 00334 } PARAMDESC, *LPPARAMDESC; 00335 00336 const USHORT PARAMFLAG_NONE = 0x00; 00337 const USHORT PARAMFLAG_FIN = 0x01; 00338 const USHORT PARAMFLAG_FOUT = 0x02; 00339 const USHORT PARAMFLAG_FLCID = 0x04; 00340 const USHORT PARAMFLAG_FRETVAL = 0x08; 00341 const USHORT PARAMFLAG_FOPT = 0x10; 00342 const USHORT PARAMFLAG_FHASDEFAULT = 0x20; 00343 const USHORT PARAMFLAG_FHASCUSTDATA = 0x40; 00344 00345 typedef struct tagIDLDESC { 00346 ULONG_PTR dwReserved; 00347 USHORT wIDLFlags; 00348 } IDLDESC, *LPIDLDESC; 00349 00350 const USHORT IDLFLAG_NONE = PARAMFLAG_NONE; 00351 const USHORT IDLFLAG_FIN = PARAMFLAG_FIN; 00352 const USHORT IDLFLAG_FOUT = PARAMFLAG_FOUT; 00353 const USHORT IDLFLAG_FLCID = PARAMFLAG_FLCID; 00354 const USHORT IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL; 00355 00356 cpp_quote("#if 0") /* for IDL only */ 00357 typedef struct tagELEMDESC { 00358 TYPEDESC tdesc; 00359 PARAMDESC paramdesc; 00360 } ELEMDESC; 00361 cpp_quote("#else") /* C/C++ defs */ 00362 cpp_quote("typedef struct tagELEMDESC {") 00363 cpp_quote(" TYPEDESC tdesc;") 00364 cpp_quote(" union {") 00365 cpp_quote(" IDLDESC idldesc;") 00366 cpp_quote(" PARAMDESC paramdesc;") 00367 cpp_quote(" } DUMMYUNIONNAME;") 00368 cpp_quote("} ELEMDESC, *LPELEMDESC;") 00369 cpp_quote("#endif") 00370 00371 typedef struct tagTYPEATTR { 00372 GUID guid; 00373 LCID lcid; 00374 DWORD dwReserved; 00375 MEMBERID memidConstructor; 00376 MEMBERID memidDestructor; 00377 LPOLESTR lpstrSchema; 00378 ULONG cbSizeInstance; 00379 TYPEKIND typekind; 00380 WORD cFuncs; 00381 WORD cVars; 00382 WORD cImplTypes; 00383 WORD cbSizeVft; 00384 WORD cbAlignment; 00385 WORD wTypeFlags; 00386 WORD wMajorVerNum; 00387 WORD wMinorVerNum; 00388 TYPEDESC tdescAlias; 00389 IDLDESC idldescType; 00390 } TYPEATTR, *LPTYPEATTR; 00391 00392 typedef struct tagDISPPARAMS { 00393 [size_is(cArgs)] VARIANTARG *rgvarg; 00394 [size_is(cNamedArgs)] DISPID *rgdispidNamedArgs; 00395 UINT cArgs; 00396 UINT cNamedArgs; 00397 } DISPPARAMS; 00398 00399 cpp_quote("#if 0") /* for IDL only */ 00400 typedef struct tagEXCEPINFO { 00401 WORD wCode; 00402 WORD wReserved; 00403 BSTR bstrSource; 00404 BSTR bstrDescription; 00405 BSTR bstrHelpFile; 00406 DWORD dwHelpContext; 00407 ULONG_PTR pvReserved; 00408 ULONG_PTR pfnDeferredFillIn; 00409 SCODE scode; 00410 } EXCEPINFO; 00411 cpp_quote("#else") 00412 cpp_quote("typedef struct tagEXCEPINFO {") 00413 cpp_quote(" WORD wCode;") 00414 cpp_quote(" WORD wReserved;") 00415 cpp_quote(" BSTR bstrSource;") 00416 cpp_quote(" BSTR bstrDescription;") 00417 cpp_quote(" BSTR bstrHelpFile;") 00418 cpp_quote(" DWORD dwHelpContext;") 00419 cpp_quote(" PVOID pvReserved;") 00420 cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);") 00421 cpp_quote(" SCODE scode;") 00422 cpp_quote("} EXCEPINFO, *LPEXCEPINFO;") 00423 cpp_quote("#endif") 00424 00425 typedef [v1_enum] enum tagCALLCONV { 00426 CC_FASTCALL = 0, 00427 CC_CDECL = 1, 00428 CC_MSCPASCAL, 00429 CC_PASCAL = CC_MSCPASCAL, 00430 CC_MACPASCAL, 00431 CC_STDCALL, 00432 CC_FPFASTCALL, 00433 CC_SYSCALL, 00434 CC_MPWCDECL, 00435 CC_MPWPASCAL, 00436 CC_MAX 00437 } CALLCONV; 00438 00439 typedef [v1_enum] enum tagFUNCKIND { 00440 FUNC_VIRTUAL, 00441 FUNC_PUREVIRTUAL, 00442 FUNC_NONVIRTUAL, 00443 FUNC_STATIC, 00444 FUNC_DISPATCH 00445 } FUNCKIND; 00446 00447 typedef [v1_enum] enum tagINVOKEKIND { 00448 INVOKE_FUNC = 1, 00449 INVOKE_PROPERTYGET = 2, 00450 INVOKE_PROPERTYPUT = 4, 00451 INVOKE_PROPERTYPUTREF = 8 00452 } INVOKEKIND; 00453 00454 typedef struct tagFUNCDESC { 00455 MEMBERID memid; 00456 [size_is(cScodes)] SCODE *lprgscode; 00457 [size_is(cParams)] ELEMDESC *lprgelemdescParam; 00458 FUNCKIND funckind; 00459 INVOKEKIND invkind; 00460 CALLCONV callconv; 00461 SHORT cParams; 00462 SHORT cParamsOpt; 00463 SHORT oVft; 00464 SHORT cScodes; 00465 ELEMDESC elemdescFunc; 00466 WORD wFuncFlags; 00467 } FUNCDESC, *LPFUNCDESC; 00468 00469 typedef [v1_enum] enum tagVARKIND { 00470 VAR_PERINSTANCE, 00471 VAR_STATIC, 00472 VAR_CONST, 00473 VAR_DISPATCH 00474 } VARKIND; 00475 00476 const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1; 00477 const USHORT IMPLTYPEFLAG_FSOURCE = 0x2; 00478 const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4; 00479 const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE = 0x8; 00480 00481 typedef struct tagVARDESC { 00482 MEMBERID memid; 00483 LPOLESTR lpstrSchema; 00484 [switch_is(varkind)] union { 00485 [case(VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst; 00486 [case(VAR_CONST)] VARIANT *lpvarValue; 00487 } DUMMYUNIONNAME; 00488 ELEMDESC elemdescVar; 00489 WORD wVarFlags; 00490 VARKIND varkind; 00491 } VARDESC, *LPVARDESC; 00492 00493 typedef enum tagTYPEFLAGS { 00494 TYPEFLAG_FAPPOBJECT = 0x0001, 00495 TYPEFLAG_FCANCREATE = 0x0002, 00496 TYPEFLAG_FLICENSED = 0x0004, 00497 TYPEFLAG_FPREDECLID = 0x0008, 00498 TYPEFLAG_FHIDDEN = 0x0010, 00499 TYPEFLAG_FCONTROL = 0x0020, 00500 TYPEFLAG_FDUAL = 0x0040, 00501 TYPEFLAG_FNONEXTENSIBLE = 0x0080, 00502 TYPEFLAG_FOLEAUTOMATION = 0x0100, 00503 TYPEFLAG_FRESTRICTED = 0x0200, 00504 TYPEFLAG_FAGGREGATABLE = 0x0400, 00505 TYPEFLAG_FREPLACEABLE = 0x0800, 00506 TYPEFLAG_FDISPATCHABLE = 0x1000, 00507 TYPEFLAG_FREVERSEBIND = 0x2000, 00508 TYPEFLAG_FPROXY = 0x4000 00509 } TYPEFLAGS; 00510 00511 typedef enum tagFUNCFLAGS { 00512 FUNCFLAG_FRESTRICTED = 0x0001, 00513 FUNCFLAG_FSOURCE = 0x0002, 00514 FUNCFLAG_FBINDABLE = 0x0004, 00515 FUNCFLAG_FREQUESTEDIT = 0x0008, 00516 FUNCFLAG_FDISPLAYBIND = 0x0010, 00517 FUNCFLAG_FDEFAULTBIND = 0x0020, 00518 FUNCFLAG_FHIDDEN = 0x0040, 00519 FUNCFLAG_FUSESGETLASTERROR = 0x0080, 00520 FUNCFLAG_FDEFAULTCOLLELEM = 0x0100, 00521 FUNCFLAG_FUIDEFAULT = 0x0200, 00522 FUNCFLAG_FNONBROWSABLE = 0x0400, 00523 FUNCFLAG_FREPLACEABLE = 0x0800, 00524 FUNCFLAG_FIMMEDIATEBIND = 0x1000 00525 } FUNCFLAGS; 00526 00527 typedef enum tagVARFLAGS { 00528 VARFLAG_FREADONLY = 0x0001, 00529 VARFLAG_FSOURCE = 0x0002, 00530 VARFLAG_FBINDABLE = 0x0004, 00531 VARFLAG_FREQUESTEDIT = 0x0008, 00532 VARFLAG_FDISPLAYBIND = 0x0010, 00533 VARFLAG_FDEFAULTBIND = 0x0020, 00534 VARFLAG_FHIDDEN = 0x0040, 00535 VARFLAG_FRESTRICTED = 0x0080, 00536 VARFLAG_FDEFAULTCOLLELEM = 0x0100, 00537 VARFLAG_FUIDEFAULT = 0x0200, 00538 VARFLAG_FNONBROWSABLE = 0x0400, 00539 VARFLAG_FREPLACEABLE = 0x0800, 00540 VARFLAG_FIMMEDIATEBIND = 0x1000 00541 } VARFLAGS; 00542 00543 typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE { 00544 IUnknown *pInterface; 00545 PVOID pStorage; 00546 DWORD flags; 00547 } CLEANLOCALSTORAGE; 00548 00549 typedef struct tagCUSTDATAITEM { 00550 GUID guid; 00551 VARIANTARG varValue; 00552 } CUSTDATAITEM, *LPCUSTDATAITEM; 00553 00554 typedef struct tagCUSTDATA { 00555 DWORD cCustData; 00556 [size_is(cCustData)] LPCUSTDATAITEM prgCustData; 00557 } CUSTDATA, *LPCUSTDATA; 00558 00559 } /* interface IOleAutomationTypes */ 00560 00561 /******************** INTERFACES ********************/ 00562 00563 [ 00564 object, 00565 uuid(00020400-0000-0000-C000-000000000046), 00566 pointer_default(unique) 00567 ] 00568 interface IDispatch : IUnknown 00569 { 00570 typedef [unique] IDispatch *LPDISPATCH; 00571 00572 const DISPID DISPID_UNKNOWN = -1; 00573 const DISPID DISPID_VALUE = 0; 00574 const DISPID DISPID_PROPERTYPUT = -3; 00575 const DISPID DISPID_NEWENUM = -4; 00576 const DISPID DISPID_EVALUATE = -5; 00577 const DISPID DISPID_CONSTRUCTOR = -6; 00578 const DISPID DISPID_DESTRUCTOR = -7; 00579 const DISPID DISPID_COLLECT = -8; 00580 00581 HRESULT GetTypeInfoCount( 00582 [out] UINT *pctinfo); 00583 00584 HRESULT GetTypeInfo( 00585 [in] UINT iTInfo, 00586 [in] LCID lcid, 00587 [out] ITypeInfo **ppTInfo); 00588 00589 HRESULT GetIDsOfNames( 00590 [in] REFIID riid, 00591 [in, size_is(cNames)] LPOLESTR *rgszNames, 00592 [in] UINT cNames, 00593 [in] LCID lcid, 00594 [out, size_is(cNames)] DISPID *rgDispId); 00595 00596 [local] 00597 HRESULT Invoke( 00598 [in] DISPID dispIdMember, 00599 [in] REFIID riid, 00600 [in] LCID lcid, 00601 [in] WORD wFlags, 00602 [in, out] DISPPARAMS *pDispParams, 00603 [out] VARIANT *pVarResult, 00604 [out] EXCEPINFO *pExcepInfo, 00605 [out] UINT *puArgErr); 00606 00607 [call_as(Invoke)] 00608 HRESULT RemoteInvoke( 00609 [in] DISPID dispIdMember, 00610 [in] REFIID riid, 00611 [in] LCID lcid, 00612 [in] DWORD dwFlags, 00613 [in] DISPPARAMS *pDispParams, 00614 [out] VARIANT *pVarResult, 00615 [out] EXCEPINFO *pExcepInfo, 00616 [out] UINT *pArgErr, 00617 [in] UINT cVarRef, 00618 [in, size_is(cVarRef)] UINT *rgVarRefIdx, 00619 [in, out, size_is(cVarRef)] VARIANTARG *rgVarRef); 00620 } 00621 00622 [ 00623 object, 00624 uuid(00020404-0000-0000-C000-000000000046), 00625 pointer_default(unique) 00626 ] 00627 interface IEnumVARIANT : IUnknown 00628 { 00629 typedef [unique] IEnumVARIANT *LPENUMVARIANT; 00630 00631 [local] 00632 HRESULT Next( 00633 [in] ULONG celt, 00634 [out] VARIANT *rgVar, 00635 [out] ULONG *pCeltFetched); 00636 00637 [call_as(Next)] 00638 HRESULT RemoteNext( 00639 [in] ULONG celt, 00640 [out, size_is(celt), length_is(*pCeltFetched)] 00641 VARIANT *rgVar, 00642 [out] ULONG *pCeltFetched); 00643 00644 HRESULT Skip( 00645 [in] ULONG celt); 00646 00647 HRESULT Reset(); 00648 00649 HRESULT Clone( 00650 [out] IEnumVARIANT **ppEnum); 00651 } 00652 00653 [ 00654 object, 00655 uuid(00020403-0000-0000-C000-000000000046), 00656 pointer_default(unique) 00657 ] 00658 interface ITypeComp : IUnknown 00659 { 00660 typedef [unique] ITypeComp *LPTYPECOMP; 00661 00662 typedef [v1_enum] enum tagDESCKIND { 00663 DESCKIND_NONE = 0, 00664 DESCKIND_FUNCDESC, 00665 DESCKIND_VARDESC, 00666 DESCKIND_TYPECOMP, 00667 DESCKIND_IMPLICITAPPOBJ, 00668 DESCKIND_MAX 00669 } DESCKIND; 00670 00671 typedef union tagBINDPTR { 00672 FUNCDESC *lpfuncdesc; 00673 VARDESC *lpvardesc; 00674 ITypeComp *lptcomp; 00675 } BINDPTR, *LPBINDPTR; 00676 00677 [local] 00678 HRESULT Bind( 00679 [in] LPOLESTR szName, 00680 [in] ULONG lHashVal, 00681 [in] WORD wFlags, 00682 [out] ITypeInfo **ppTInfo, 00683 [out] DESCKIND *pDescKind, 00684 [out] BINDPTR *pBindPtr); 00685 00686 [call_as(Bind)] 00687 HRESULT RemoteBind( 00688 [in] LPOLESTR szName, 00689 [in] ULONG lHashVal, 00690 [in] WORD wFlags, 00691 [out] ITypeInfo **ppTInfo, 00692 [out] DESCKIND *pDescKind, 00693 [out] LPFUNCDESC *ppFuncDesc, 00694 [out] LPVARDESC *ppVarDesc, 00695 [out] ITypeComp **ppTypeComp, 00696 [out] CLEANLOCALSTORAGE *pDummy); 00697 00698 [local] 00699 HRESULT BindType( 00700 [in] LPOLESTR szName, 00701 [in] ULONG lHashVal, 00702 [out] ITypeInfo **ppTInfo, 00703 [out] ITypeComp **ppTComp); 00704 00705 [call_as(BindType)] 00706 HRESULT RemoteBindType( 00707 [in] LPOLESTR szName, 00708 [in] ULONG lHashVal, 00709 [out] ITypeInfo **ppTInfo); 00710 } 00711 00712 [ 00713 object, 00714 uuid(00020401-0000-0000-C000-000000000046), 00715 pointer_default(unique) 00716 ] 00717 interface ITypeInfo : IUnknown 00718 { 00719 typedef [unique] ITypeInfo *LPTYPEINFO; 00720 00721 [local] 00722 HRESULT GetTypeAttr( 00723 [out] TYPEATTR **ppTypeAttr); 00724 00725 [call_as(GetTypeAttr)] 00726 HRESULT RemoteGetTypeAttr( 00727 [out] LPTYPEATTR *ppTypeAttr, 00728 [out] CLEANLOCALSTORAGE *pDummy); 00729 00730 HRESULT GetTypeComp( 00731 [out] ITypeComp **ppTComp); 00732 00733 [local] 00734 HRESULT GetFuncDesc( 00735 [in] UINT index, 00736 [out] FUNCDESC **ppFuncDesc); 00737 00738 [call_as(GetFuncDesc)] 00739 HRESULT RemoteGetFuncDesc( 00740 [in] UINT index, 00741 [out] LPFUNCDESC *ppFuncDesc, 00742 [out] CLEANLOCALSTORAGE *pDummy); 00743 00744 [local] 00745 HRESULT GetVarDesc( 00746 [in] UINT index, 00747 [out] VARDESC **ppVarDesc); 00748 00749 [call_as(GetVarDesc)] 00750 HRESULT RemoteGetVarDesc( 00751 [in] UINT index, 00752 [out] LPVARDESC *ppVarDesc, 00753 [out] CLEANLOCALSTORAGE *pDummy); 00754 00755 [local] 00756 HRESULT GetNames( 00757 [in] MEMBERID memid, 00758 [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames, 00759 [in] UINT cMaxNames, 00760 [out] UINT *pcNames); 00761 00762 [call_as(GetNames)] 00763 HRESULT RemoteGetNames( 00764 [in] MEMBERID memid, 00765 [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames, 00766 [in] UINT cMaxNames, 00767 [out] UINT *pcNames); 00768 00769 HRESULT GetRefTypeOfImplType( 00770 [in] UINT index, 00771 [out] HREFTYPE *pRefType); 00772 00773 HRESULT GetImplTypeFlags( 00774 [in] UINT index, 00775 [out] INT *pImplTypeFlags); 00776 00777 [local] 00778 HRESULT GetIDsOfNames( 00779 [in, size_is(cNames)] LPOLESTR *rgszNames, 00780 [in] UINT cNames, 00781 [out, size_is(cNames)] MEMBERID *pMemId); 00782 00783 [call_as(GetIDsOfNames)] 00784 HRESULT LocalGetIDsOfNames(); 00785 00786 [local] 00787 HRESULT Invoke( 00788 [in] PVOID pvInstance, 00789 [in] MEMBERID memid, 00790 [in] WORD wFlags, 00791 [in, out] DISPPARAMS *pDispParams, 00792 [out] VARIANT *pVarResult, 00793 [out] EXCEPINFO *pExcepInfo, 00794 [out] UINT *puArgErr); 00795 00796 [call_as(Invoke)] 00797 HRESULT LocalInvoke(); 00798 00799 [local] 00800 HRESULT GetDocumentation( 00801 [in] MEMBERID memid, 00802 [out] BSTR *pBstrName, 00803 [out] BSTR *pBstrDocString, 00804 [out] DWORD *pdwHelpContext, 00805 [out] BSTR *pBstrHelpFile); 00806 00807 [call_as(GetDocumentation)] 00808 HRESULT RemoteGetDocumentation( 00809 [in] MEMBERID memid, 00810 [in] DWORD refPtrFlags, 00811 [out] BSTR *pBstrName, 00812 [out] BSTR *pBstrDocString, 00813 [out] DWORD *pdwHelpContext, 00814 [out] BSTR *pBstrHelpFile); 00815 00816 [local] 00817 HRESULT GetDllEntry( 00818 [in] MEMBERID memid, 00819 [in] INVOKEKIND invKind, 00820 [out] BSTR *pBstrDllName, 00821 [out] BSTR *pBstrName, 00822 [out] WORD *pwOrdinal); 00823 00824 [call_as(GetDllEntry)] 00825 HRESULT RemoteGetDllEntry( 00826 [in] MEMBERID memid, 00827 [in] INVOKEKIND invKind, 00828 [in] DWORD refPtrFlags, 00829 [out] BSTR *pBstrDllName, 00830 [out] BSTR *pBstrName, 00831 [out] WORD *pwOrdinal); 00832 00833 HRESULT GetRefTypeInfo( 00834 [in] HREFTYPE hRefType, 00835 [out] ITypeInfo **ppTInfo); 00836 00837 [local] 00838 HRESULT AddressOfMember( 00839 [in] MEMBERID memid, 00840 [in] INVOKEKIND invKind, 00841 [out] PVOID *ppv); 00842 00843 [call_as(AddressOfMember)] 00844 HRESULT LocalAddressOfMember(); 00845 00846 [local] 00847 HRESULT CreateInstance( 00848 [in] IUnknown *pUnkOuter, 00849 [in] REFIID riid, 00850 [out, iid_is(riid)] PVOID *ppvObj); 00851 00852 [call_as(CreateInstance)] 00853 HRESULT RemoteCreateInstance( 00854 [in] REFIID riid, 00855 [out, iid_is(riid)] IUnknown **ppvObj); 00856 00857 HRESULT GetMops( 00858 [in] MEMBERID memid, 00859 [out] BSTR *pBstrMops); 00860 00861 [local] 00862 HRESULT GetContainingTypeLib( 00863 [out] ITypeLib **ppTLib, 00864 [out] UINT *pIndex); 00865 00866 [call_as(GetContainingTypeLib)] 00867 HRESULT RemoteGetContainingTypeLib( 00868 [out] ITypeLib **ppTLib, 00869 [out] UINT *pIndex); 00870 00871 [local] 00872 void ReleaseTypeAttr( 00873 [in] TYPEATTR *pTypeAttr); 00874 00875 [call_as(ReleaseTypeAttr)] 00876 HRESULT LocalReleaseTypeAttr(); 00877 00878 [local] 00879 void ReleaseFuncDesc( 00880 [in] FUNCDESC *pFuncDesc); 00881 00882 [call_as(ReleaseFuncDesc)] 00883 HRESULT LocalReleaseFuncDesc(); 00884 00885 [local] 00886 void ReleaseVarDesc( 00887 [in] VARDESC *pVarDesc); 00888 00889 [call_as(ReleaseVarDesc)] 00890 HRESULT LocalReleaseVarDesc(); 00891 } 00892 00893 [ 00894 object, 00895 uuid(00020412-0000-0000-C000-000000000046), 00896 pointer_default(unique) 00897 ] 00898 interface ITypeInfo2 : ITypeInfo 00899 { 00900 typedef [unique] ITypeInfo2 *LPTYPEINFO2; 00901 00902 HRESULT GetTypeKind( 00903 [out] TYPEKIND *pTypeKind); 00904 00905 HRESULT GetTypeFlags( 00906 [out] ULONG *pTypeFlags); 00907 00908 HRESULT GetFuncIndexOfMemId( 00909 [in] MEMBERID memid, 00910 [in] INVOKEKIND invKind, 00911 [out] UINT *pFuncIndex); 00912 00913 HRESULT GetVarIndexOfMemId( 00914 [in] MEMBERID memid, 00915 [out] UINT *pVarIndex); 00916 00917 HRESULT GetCustData( 00918 [in] REFGUID guid, 00919 [out] VARIANT *pVarVal); 00920 00921 HRESULT GetFuncCustData( 00922 [in] UINT index, 00923 [in] REFGUID guid, 00924 [out] VARIANT *pVarVal); 00925 00926 HRESULT GetParamCustData( 00927 [in] UINT indexFunc, 00928 [in] UINT indexParam, 00929 [in] REFGUID guid, 00930 [out] VARIANT *pVarVal); 00931 00932 HRESULT GetVarCustData( 00933 [in] UINT index, 00934 [in] REFGUID guid, 00935 [out] VARIANT *pVarVal); 00936 00937 HRESULT GetImplTypeCustData( 00938 [in] UINT index, 00939 [in] REFGUID guid, 00940 [out] VARIANT *pVarVal); 00941 00942 [local] 00943 HRESULT GetDocumentation2( 00944 [in] MEMBERID memid, 00945 [in] LCID lcid, 00946 [out] BSTR *pbstrHelpString, 00947 [out] DWORD *pdwHelpStringContext, 00948 [out] BSTR *pbstrHelpStringDll); 00949 00950 [call_as(GetDocumentation2)] 00951 HRESULT RemoteGetDocumentation2( 00952 [in] MEMBERID memid, 00953 [in] LCID lcid, 00954 [in] DWORD refPtrFlags, 00955 [out] BSTR *pbstrHelpString, 00956 [out] DWORD *pdwHelpStringContext, 00957 [out] BSTR *pbstrHelpStringDll); 00958 00959 HRESULT GetAllCustData( 00960 [out] CUSTDATA *pCustData); 00961 00962 HRESULT GetAllFuncCustData( 00963 [in] UINT index, 00964 [out] CUSTDATA *pCustData); 00965 00966 HRESULT GetAllParamCustData( 00967 [in] UINT indexFunc, 00968 [in] UINT indexParam, 00969 [out] CUSTDATA *pCustData); 00970 00971 HRESULT GetAllVarCustData( 00972 [in] UINT index, 00973 [out] CUSTDATA *pCustData); 00974 00975 HRESULT GetAllImplTypeCustData( 00976 [in] UINT index, 00977 [out] CUSTDATA *pCustData); 00978 } 00979 00980 [ 00981 object, 00982 uuid(00020402-0000-0000-C000-000000000046), 00983 pointer_default(unique) 00984 ] 00985 interface ITypeLib : IUnknown 00986 { 00987 typedef [unique] ITypeLib *LPTYPELIB; 00988 00989 typedef [v1_enum] enum tagSYSKIND { 00990 SYS_WIN16 = 0, 00991 SYS_WIN32, 00992 SYS_MAC, 00993 SYS_WIN64 00994 } SYSKIND; 00995 00996 typedef [v1_enum] enum tagLIBFLAGS { 00997 LIBFLAG_FRESTRICTED = 0x01, 00998 LIBFLAG_FCONTROL = 0x02, 00999 LIBFLAG_FHIDDEN = 0x04, 01000 LIBFLAG_FHASDISKIMAGE = 0x08 01001 } LIBFLAGS; 01002 01003 typedef struct tagTLIBATTR { 01004 GUID guid; 01005 LCID lcid; 01006 SYSKIND syskind; 01007 WORD wMajorVerNum; 01008 WORD wMinorVerNum; 01009 WORD wLibFlags; 01010 } TLIBATTR, *LPTLIBATTR; 01011 01012 [local] 01013 UINT GetTypeInfoCount(); 01014 01015 [call_as(GetTypeInfoCount)] 01016 HRESULT RemoteGetTypeInfoCount( 01017 [out] UINT *pcTInfo); 01018 01019 HRESULT GetTypeInfo( 01020 [in] UINT index, 01021 [out] ITypeInfo **ppTInfo); 01022 01023 HRESULT GetTypeInfoType( 01024 [in] UINT index, 01025 [out] TYPEKIND *pTKind); 01026 01027 HRESULT GetTypeInfoOfGuid( 01028 [in] REFGUID guid, 01029 [out] ITypeInfo **ppTinfo); 01030 01031 [local] 01032 HRESULT GetLibAttr( 01033 [out] TLIBATTR **ppTLibAttr); 01034 01035 [call_as(GetLibAttr)] 01036 HRESULT RemoteGetLibAttr( 01037 [out] LPTLIBATTR *ppTLibAttr, 01038 [out] CLEANLOCALSTORAGE *pDummy); 01039 01040 HRESULT GetTypeComp( 01041 [out] ITypeComp **ppTComp); 01042 01043 [local] 01044 HRESULT GetDocumentation( 01045 [in] INT index, 01046 [out] BSTR *pBstrName, 01047 [out] BSTR *pBstrDocString, 01048 [out] DWORD *pdwHelpContext, 01049 [out] BSTR *pBstrHelpFile); 01050 01051 [call_as(GetDocumentation)] 01052 HRESULT RemoteGetDocumentation( 01053 [in] INT index, 01054 [in] DWORD refPtrFlags, 01055 [out] BSTR *pBstrName, 01056 [out] BSTR *pBstrDocString, 01057 [out] DWORD *pdwHelpContext, 01058 [out] BSTR *pBstrHelpFile); 01059 01060 [local] 01061 HRESULT IsName( 01062 [in, out] LPOLESTR szNameBuf, 01063 [in] ULONG lHashVal, 01064 [out] BOOL *pfName); 01065 01066 [call_as(IsName)] 01067 HRESULT RemoteIsName( 01068 [in] LPOLESTR szNameBuf, 01069 [in] ULONG lHashVal, 01070 [out] BOOL *pfName, 01071 [out] BSTR *pBstrLibName); 01072 01073 [local] 01074 HRESULT FindName( 01075 [in, out] LPOLESTR szNameBuf, 01076 [in] ULONG lHashVal, 01077 [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo, 01078 [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId, 01079 [in, out] USHORT *pcFound); 01080 01081 [call_as(FindName)] 01082 HRESULT RemoteFindName( 01083 [in] LPOLESTR szNameBuf, 01084 [in] ULONG lHashVal, 01085 [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo, 01086 [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId, 01087 [in, out] USHORT *pcFound, 01088 [out] BSTR *pBstrLibName); 01089 01090 [local] 01091 void ReleaseTLibAttr( 01092 [in] TLIBATTR *pTLibAttr); 01093 01094 [call_as(ReleaseTLibAttr)] 01095 HRESULT LocalReleaseTLibAttr(); 01096 } 01097 01098 [ 01099 object, 01100 uuid(00020411-0000-0000-C000-000000000046), 01101 pointer_default(unique) 01102 ] 01103 interface ITypeLib2 : ITypeLib 01104 { 01105 typedef [unique] ITypeLib2 *LPTYPELIB2; 01106 01107 HRESULT GetCustData( 01108 [in] REFGUID guid, 01109 [out] VARIANT *pVarVal); 01110 01111 [local] 01112 HRESULT GetLibStatistics( 01113 [out] ULONG *pcUniqueNames, 01114 [out] ULONG *pcchUniqueNames); 01115 01116 [call_as(GetLibStatistics)] 01117 HRESULT RemoteGetLibStatistics( 01118 [out] ULONG *pcUniqueNames, 01119 [out] ULONG *pcchUniqueNames); 01120 01121 [local] 01122 HRESULT GetDocumentation2( 01123 [in] INT index, 01124 [in] LCID lcid, 01125 [out] BSTR *pbstrHelpString, 01126 [out] DWORD *pdwHelpStringContext, 01127 [out] BSTR *pbstrHelpStringDll); 01128 01129 [call_as(GetDocumentation2)] 01130 HRESULT RemoteGetDocumentation2( 01131 [in] INT index, 01132 [in] LCID lcid, 01133 [in] DWORD refPtrFlags, 01134 [out] BSTR *pbstrHelpString, 01135 [out] DWORD *pdwHelpStringContext, 01136 [out] BSTR *pbstrHelpStringDll); 01137 01138 HRESULT GetAllCustData( 01139 [out] CUSTDATA *pCustData); 01140 } 01141 01142 [ 01143 local, 01144 object, 01145 uuid(00020410-0000-0000-C000-000000000046), 01146 pointer_default(unique) 01147 ] 01148 interface ITypeChangeEvents : IUnknown 01149 { 01150 typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS; 01151 01152 typedef enum tagCHANGEKIND { 01153 CHANGEKIND_ADDMEMBER, 01154 CHANGEKIND_DELETEMEMBER, 01155 CHANGEKIND_SETNAMES, 01156 CHANGEKIND_SETDOCUMENTATION, 01157 CHANGEKIND_GENERAL, 01158 CHANGEKIND_INVALIDATE, 01159 CHANGEKIND_CHANGEFAILED, 01160 CHANGEKIND_MAX 01161 } CHANGEKIND; 01162 01163 HRESULT RequestTypeChange( 01164 [in] CHANGEKIND changeKind, 01165 [in] ITypeInfo *pTInfoBefore, 01166 [in] LPOLESTR pStrName, 01167 [out] INT *pfCancel); 01168 01169 HRESULT AfterTypeChange( 01170 [in] CHANGEKIND changeKind, 01171 [in] ITypeInfo *pTInfoAfter, 01172 [in] LPOLESTR pStrName); 01173 } 01174 01175 [ 01176 object, 01177 uuid(1CF2B120-547D-101B-8E65-08002B2BD119), 01178 pointer_default(unique) 01179 ] 01180 interface IErrorInfo : IUnknown 01181 { 01182 typedef [unique] IErrorInfo *LPERRORINFO; 01183 01184 HRESULT GetGUID( 01185 [out] GUID *pGUID); 01186 01187 HRESULT GetSource( 01188 [out] BSTR *pBstrSource); 01189 01190 HRESULT GetDescription( 01191 [out] BSTR *pBstrDescription); 01192 01193 HRESULT GetHelpFile( 01194 [out] BSTR *pBstrHelpFile); 01195 01196 HRESULT GetHelpContext( 01197 [out] DWORD *pdwHelpContext); 01198 } 01199 01200 [ 01201 object, 01202 uuid(22F03340-547D-101B-8E65-08002B2BD119), 01203 pointer_default(unique) 01204 ] 01205 interface ICreateErrorInfo : IUnknown 01206 { 01207 typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO; 01208 01209 HRESULT SetGUID( 01210 [in] REFGUID rguid); 01211 01212 HRESULT SetSource( 01213 [in] LPOLESTR szSource); 01214 01215 HRESULT SetDescription( 01216 [in] LPOLESTR szDescription); 01217 01218 HRESULT SetHelpFile( 01219 [in] LPOLESTR szHelpFile); 01220 01221 HRESULT SetHelpContext( 01222 [in] DWORD dwHelpContext); 01223 } 01224 01225 [ 01226 object, 01227 uuid(DF0B3D60-548F-101B-8E65-08002B2BD119), 01228 pointer_default(unique) 01229 ] 01230 interface ISupportErrorInfo : IUnknown 01231 { 01232 typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO; 01233 01234 HRESULT InterfaceSupportsErrorInfo( 01235 [in] REFIID riid); 01236 } 01237 01238 [ 01239 object, 01240 uuid(0000002E-0000-0000-C000-000000000046) 01241 ] 01242 interface ITypeFactory : IUnknown 01243 { 01244 HRESULT CreateFromTypeInfo( 01245 [in] ITypeInfo *pTypeInfo, 01246 [in] REFIID riid, 01247 [out, iid_is(riid)] IUnknown **ppv); 01248 } 01249 01250 [ 01251 local, 01252 object, 01253 uuid(0000002D-0000-0000-C000-000000000046) 01254 ] 01255 interface ITypeMarshal : IUnknown 01256 { 01257 HRESULT Size( 01258 [in] PVOID pvType, 01259 [in] DWORD dwDestContext, 01260 [in] PVOID pvDestContext, 01261 [out] ULONG *pSize); 01262 01263 HRESULT Marshal( 01264 [in] PVOID pvType, 01265 [in] DWORD dwDestContext, 01266 [in] PVOID pvDestContext, 01267 [in] ULONG cbBufferLength, 01268 [out] BYTE *pBuffer, 01269 [out] ULONG *pcbWritten); 01270 01271 HRESULT Unmarshal( 01272 [out] PVOID pvType, 01273 [in] DWORD dwFlags, 01274 [in] ULONG cbBufferLength, 01275 [in] BYTE *pBuffer, 01276 [out] ULONG *pcbRead); 01277 01278 HRESULT Free( 01279 [in] PVOID pvType); 01280 } 01281 01282 [ 01283 local, 01284 object, 01285 uuid(0000002F-0000-0000-C000-000000000046) 01286 ] 01287 interface IRecordInfo : IUnknown 01288 { 01289 typedef [unique] IRecordInfo *LPRECORDINFO; 01290 01291 HRESULT RecordInit( 01292 [out] PVOID pvNew); 01293 01294 HRESULT RecordClear( 01295 [in] PVOID pvExisting); 01296 01297 HRESULT RecordCopy( 01298 [in] PVOID pvExisting, 01299 [out] PVOID pvNew); 01300 01301 HRESULT GetGuid( 01302 [out] GUID *pguid); 01303 01304 HRESULT GetName( 01305 [out] BSTR *pbstrName); 01306 01307 HRESULT GetSize( 01308 [out] ULONG *pcbSize); 01309 01310 HRESULT GetTypeInfo( 01311 [out] ITypeInfo **ppTypeInfo); 01312 01313 HRESULT GetField( 01314 [in] PVOID pvData, 01315 [in] LPCOLESTR szFieldName, 01316 [out] VARIANT *pvarField); 01317 01318 HRESULT GetFieldNoCopy( 01319 [in] PVOID pvData, 01320 [in] LPCOLESTR szFieldName, 01321 [out] VARIANT *pvarField, 01322 [out] PVOID *ppvDataCArray); 01323 01324 HRESULT PutField( 01325 [in] ULONG wFlags, 01326 [in, out] PVOID pvData, 01327 [in] LPCOLESTR szFieldName, 01328 [in] VARIANT *pvarField); 01329 01330 HRESULT PutFieldNoCopy( 01331 [in] ULONG wFlags, 01332 [in, out] PVOID pvData, 01333 [in] LPCOLESTR szFieldName, 01334 [in] VARIANT *pvarField); 01335 01336 HRESULT GetFieldNames( 01337 [in, out] ULONG *pcNames, 01338 [out, size_is(*pcNames), length_is(*pcNames)] BSTR *rgBstrNames); 01339 01340 BOOL IsMatchingType( 01341 [in] IRecordInfo *pRecordInfo); 01342 01343 PVOID RecordCreate(); 01344 01345 HRESULT RecordCreateCopy( 01346 [in] PVOID pvSource, 01347 [out] PVOID *ppvDest); 01348 01349 HRESULT RecordDestroy( 01350 [in] PVOID pvRecord); 01351 } 01352 01353 [ 01354 local, 01355 object, 01356 uuid(00020405-0000-0000-C000-000000000046), 01357 pointer_default(unique) 01358 ] 01359 interface ICreateTypeInfo : IUnknown 01360 { 01361 typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO; 01362 01363 HRESULT SetGuid( 01364 [in] REFGUID guid); 01365 01366 HRESULT SetTypeFlags( 01367 [in] UINT uTypeFlags); 01368 01369 HRESULT SetDocString( 01370 [in] LPOLESTR pStrDoc); 01371 01372 HRESULT SetHelpContext( 01373 [in] DWORD dwHelpContext); 01374 01375 HRESULT SetVersion( 01376 [in] WORD wMajorVerNum, 01377 [in] WORD wMinorVerNum); 01378 01379 HRESULT AddRefTypeInfo( 01380 [in] ITypeInfo *pTInfo, 01381 [in] HREFTYPE *phRefType); 01382 01383 HRESULT AddFuncDesc( 01384 [in] UINT index, 01385 [in] FUNCDESC *pFuncDesc); 01386 01387 HRESULT AddImplType( 01388 [in] UINT index, 01389 [in] HREFTYPE hRefType); 01390 01391 HRESULT SetImplTypeFlags( 01392 [in] UINT index, 01393 [in] INT implTypeFlags); 01394 01395 HRESULT SetAlignment( 01396 [in] WORD cbAlignment); 01397 01398 HRESULT SetSchema( 01399 [in] LPOLESTR pStrSchema); 01400 01401 HRESULT AddVarDesc( 01402 [in] UINT index, 01403 [in] VARDESC *pVarDesc); 01404 01405 HRESULT SetFuncAndParamNames( 01406 [in] UINT index, 01407 [in, size_is(cNames)] LPOLESTR *rgszNames, 01408 [in] UINT cNames); 01409 01410 HRESULT SetVarName( 01411 [in] UINT index, 01412 [in] LPOLESTR szName); 01413 01414 HRESULT SetTypeDescAlias( 01415 [in] TYPEDESC *pTDescAlias); 01416 01417 HRESULT DefineFuncAsDllEntry( 01418 [in] UINT index, 01419 [in] LPOLESTR szDllName, 01420 [in] LPOLESTR szProcName); 01421 01422 HRESULT SetFuncDocString( 01423 [in] UINT index, 01424 [in] LPOLESTR szDocString); 01425 01426 HRESULT SetVarDocString( 01427 [in] UINT index, 01428 [in] LPOLESTR szDocString); 01429 01430 HRESULT SetFuncHelpContext( 01431 [in] UINT index, 01432 [in] DWORD dwHelpContext); 01433 01434 HRESULT SetVarHelpContext( 01435 [in] UINT index, 01436 [in] DWORD dwHelpContext); 01437 01438 HRESULT SetMops( 01439 [in] UINT index, 01440 [in] BSTR bstrMops); 01441 01442 HRESULT SetTypeIdldesc( 01443 [in] IDLDESC * pIdlDesc); 01444 01445 HRESULT LayOut(); 01446 } 01447 01448 [ 01449 local, 01450 object, 01451 uuid(0002040E-0000-0000-C000-000000000046), 01452 pointer_default(unique) 01453 ] 01454 interface ICreateTypeInfo2 : ICreateTypeInfo 01455 { 01456 typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2; 01457 01458 HRESULT DeleteFuncDesc( 01459 [in] UINT index); 01460 01461 HRESULT DeleteFuncDescByMemId( 01462 [in] MEMBERID memid, 01463 [in] INVOKEKIND invKind); 01464 01465 HRESULT DeleteVarDesc( 01466 [in] UINT index); 01467 01468 HRESULT DeleteVarDescByMemId( 01469 [in] MEMBERID memid); 01470 01471 HRESULT DeleteImplType( 01472 [in] UINT index); 01473 01474 HRESULT SetCustData( 01475 [in] REFGUID guid, 01476 [in] VARIANT *pVarVal); 01477 01478 HRESULT SetFuncCustData( 01479 [in] UINT index, 01480 [in] REFGUID guid, 01481 [in] VARIANT *pVarVal); 01482 01483 HRESULT SetParamCustData( 01484 [in] UINT indexFunc, 01485 [in] UINT indexParam, 01486 [in] REFGUID guid, 01487 [in] VARIANT *pVarVal); 01488 01489 HRESULT SetVarCustData( 01490 [in] UINT index, 01491 [in] REFGUID guid, 01492 [in] VARIANT *pVarVal); 01493 01494 HRESULT SetImplTypeCustData( 01495 [in] UINT index, 01496 [in] REFGUID guid, 01497 [in] VARIANT *pVarVal); 01498 01499 HRESULT SetHelpStringContext( 01500 [in] ULONG dwHelpStringContext); 01501 01502 HRESULT SetFuncHelpStringContext( 01503 [in] UINT index, 01504 [in] ULONG dwHelpStringContext); 01505 01506 HRESULT SetVarHelpStringContext( 01507 [in] UINT index, 01508 [in] ULONG dwHelpStringContext); 01509 01510 HRESULT Invalidate(); 01511 01512 HRESULT SetName( 01513 [in] LPOLESTR szName); 01514 } 01515 01516 [ 01517 local, 01518 object, 01519 uuid(00020406-0000-0000-C000-000000000046), 01520 pointer_default(unique) 01521 ] 01522 interface ICreateTypeLib : IUnknown 01523 { 01524 typedef [unique] ICreateTypeLib *LPCREATETYPELIB; 01525 01526 HRESULT CreateTypeInfo( 01527 [in] LPOLESTR szName, 01528 [in] TYPEKIND tkind, 01529 [out] ICreateTypeInfo **ppCTInfo); 01530 01531 HRESULT SetName( 01532 [in] LPOLESTR szName); 01533 01534 HRESULT SetVersion( 01535 [in] WORD wMajorVerNum, 01536 [in] WORD wMinorVerNum); 01537 01538 HRESULT SetGuid( 01539 [in] REFGUID guid); 01540 01541 HRESULT SetDocString( 01542 [in] LPOLESTR szDoc); 01543 01544 HRESULT SetHelpFileName( 01545 [in] LPOLESTR szHelpFileName); 01546 01547 HRESULT SetHelpContext( 01548 [in] DWORD dwHelpContext); 01549 01550 HRESULT SetLcid( 01551 [in] LCID lcid); 01552 01553 HRESULT SetLibFlags( 01554 [in] UINT uLibFlags); 01555 01556 HRESULT SaveAllChanges(); 01557 } 01558 01559 [ 01560 local, 01561 object, 01562 uuid(0002040F-0000-0000-C000-000000000046), 01563 pointer_default(unique) 01564 ] 01565 interface ICreateTypeLib2 : ICreateTypeLib 01566 { 01567 typedef [unique] ICreateTypeLib2 *LPCREATETYPELIB2; 01568 01569 HRESULT DeleteTypeInfo( 01570 [in] LPOLESTR szName); 01571 01572 HRESULT SetCustData( 01573 [in] REFGUID guid, 01574 [in] VARIANT *pVarVal); 01575 01576 HRESULT SetHelpStringContext( 01577 [in] ULONG dwHelpStringContext); 01578 01579 HRESULT SetHelpStringDll( 01580 [in] LPOLESTR szFileName); 01581 } 01582 01583 01584 /***************************************************************************** 01585 * IErrorLog interface 01586 */ 01587 [ 01588 object, 01589 uuid(3127ca40-446e-11ce-8135-00aa004bb851), 01590 pointer_default(unique) 01591 ] 01592 interface IErrorLog : IUnknown 01593 { 01594 typedef IErrorLog *LPERRORLOG; 01595 01596 HRESULT AddError( 01597 [in] LPCOLESTR pszPropName, 01598 [in] EXCEPINFO *pExcepInfo); 01599 } 01600 01601 01602 /***************************************************************************** 01603 * IPropertyBag interface 01604 */ 01605 [ 01606 object, 01607 uuid(55272a00-42cb-11ce-8135-00aa004bb851), 01608 pointer_default(unique) 01609 ] 01610 interface IPropertyBag : IUnknown 01611 { 01612 typedef IPropertyBag *LPPROPERTYBAG; 01613 01614 [local] 01615 HRESULT Read( 01616 [in] LPCOLESTR pszPropName, 01617 [in, out] VARIANT *pVar, 01618 [in] IErrorLog *pErrorLog); 01619 01620 [call_as(Read)] 01621 HRESULT RemoteRead( 01622 [in] LPCOLESTR pszPropName, 01623 [out] VARIANT *pVar, 01624 [in] IErrorLog *pErrorLog, 01625 [in] DWORD varType, 01626 [in] IUnknown *pUnkObj); 01627 01628 HRESULT Write( 01629 [in] LPCOLESTR pszPropName, 01630 [in] VARIANT *pVar); 01631 } Generated on Sat May 26 2012 04:30:54 for ReactOS by
1.7.6.1
|