diff options
author | Christopher Faylor <me@cgf.cx> | 2000-02-17 22:38:33 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-02-17 22:38:33 +0300 |
commit | 1fd5e000ace55b323124c7e556a7a864b972a5c4 (patch) | |
tree | dc4fcf1e5e22a040716ef92c496b8d94959b2baa /winsup/w32api/include/oaidl.h | |
parent | 369d8a8fd5e887eca547bf34bccfdf755c9e5397 (diff) |
import winsup-2000-02-17 snapshot
Diffstat (limited to 'winsup/w32api/include/oaidl.h')
-rw-r--r-- | winsup/w32api/include/oaidl.h | 513 |
1 files changed, 513 insertions, 0 deletions
diff --git a/winsup/w32api/include/oaidl.h b/winsup/w32api/include/oaidl.h new file mode 100644 index 000000000..cc0e932a5 --- /dev/null +++ b/winsup/w32api/include/oaidl.h @@ -0,0 +1,513 @@ +#ifndef _OAIDL_H +#define _OAIDL_H +#ifdef __cplusplus +extern "C" { +#endif +#ifdef NONAMELESSUNION +#define __VARIANT_NAME_1 n1 +#define __VARIANT_NAME_2 n2 +#define __VARIANT_NAME_3 n3 +#define __VARIANT_NAME_4 n4 +#else +#define __tagVARIANT +#define __VARIANT_NAME_1 +#define __VARIANT_NAME_2 +#define __VARIANT_NAME_3 +#define __VARIANT_NAME_4 +#endif +#define DISPID_UNKNOWN (-1) +#define DISPID_VALUE (0) +#define DISPID_PROPERTYPUT (-3) +#define DISPID_NEWENUM (-4) +#define DISPID_EVALUATE (-5) +#define DISPID_CONSTRUCTOR (-6) +#define DISPID_DESTRUCTOR (-7) +#define DISPID_COLLECT (-8) +#define FADF_AUTO (1) +#define FADF_STATIC (2) +#define FADF_EMBEDDED (4) +#define FADF_FIXEDSIZE (16) +#define FADF_BSTR (256) +#define FADF_UNKNOWN (512) +#define FADF_DISPATCH (1024) +#define FADF_VARIANT (2048) +#define FADF_RESERVED (0xf0e8) +#define PARAMFLAG_NONE (0) +#define PARAMFLAG_FIN (1) +#define PARAMFLAG_FOUT (2) +#define PARAMFLAG_FLCID (4) +#define PARAMFLAG_FRETVAL (8) +#define PARAMFLAG_FOPT (16) +#define PARAMFLAG_FHASDEFAULT (32) +#define IDLFLAG_NONE PARAMFLAG_NONE +#define IDLFLAG_FIN PARAMFLAG_FIN +#define IDLFLAG_FOUT PARAMFLAG_FOUT +#define IDLFLAG_FLCID PARAMFLAG_FLCID +#define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL +#define IMPLTYPEFLAG_FDEFAULT 1 +#define IMPLTYPEFLAG_FSOURCE 2 +#define IMPLTYPEFLAG_FRESTRICTED 4 +#define IMPLTYPEFLAG_FDEFAULTVTABLE 8 + +typedef interface ITypeLib *LPTYPELIB; +typedef interface ICreateTypeInfo *LPCREATETYPEINFO; +typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2; +typedef interface ICreateTypeLib *LPCREATETYPELIB; +typedef interface ICreateTypeLib2 *LPCREATETYPELIB2; +typedef interface ITypeComp *LPTYPECOMP; +typedef interface ITypeInfo *LPTYPEINFO; +typedef interface IErrorInfo *LPERRORINFO; +typedef interface IDispatch *LPDISPATCH; +typedef interface IEnumVARIANT *LPENUMVARIANT; +typedef interface ICreateErrorInfo *LPCREATEERRORINFO; + +extern const IID IID_ITypeLib; +extern const IID IID_ICreateTypeInfo; +extern const IID IID_ICreateTypeInfo2; +extern const IID IID_ICreateTypeLib; +extern const IID IID_ICreateTypeLib2; +extern const IID IID_ITypeInfo; +extern const IID IID_IErrorInfo; +extern const IID IID_IDispatch; +extern const IID IID_IEnumVARIANT; +extern const IID IID_ICreateErrorInfo; +extern const GUID IID_ISupportErrorInfo; + +typedef enum tagSYSKIND { + SYS_WIN16,SYS_WIN32,SYS_MAC +} SYSKIND; +typedef enum tagLIBFLAGS { + LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4, + LIBFLAG_FHASDISKIMAGE=8 +} LIBFLAGS; +typedef struct tagTLIBATTR { + GUID guid; + LCID lcid; + SYSKIND syskind; + WORD wMajorVerNum; + WORD wMinorVerNum; + WORD wLibFlags; +} TLIBATTR,*LPTLIBATTR; +typedef CY CURRENCY; +typedef struct tagSAFEARRAYBOUND { + ULONG cElements; + LONG lLbound; +}SAFEARRAYBOUND,*LPSAFEARRAYBOUND; +typedef struct _wireSAFEARR_BSTR +{ + ULONG Size; + wireBSTR *aBstr; +}SAFEARR_BSTR; +typedef struct _wireSAFEARR_UNKNOWN { + ULONG Size; + IUnknown **apUnknown; +}SAFEARR_UNKNOWN; +typedef struct _wireSAFEARR_DISPATCH { + ULONG Size; + LPDISPATCH *apDispatch; +}SAFEARR_DISPATCH; +typedef struct _wireSAFEARR_VARIANT { + ULONG Size; + struct _wireVARIANT *aVariant; +}SAFEARR_VARIANT; +typedef enum tagSF_TYPE { + SF_ERROR=VT_ERROR, + SF_I1=VT_I1, + SF_I2=VT_I2, + SF_I4=VT_I4, + SF_I8=VT_I8, + SF_BSTR=VT_BSTR, + SF_UNKNOWN=VT_UNKNOWN, + SF_DISPATCH=VT_DISPATCH, + SF_VARIANT=VT_VARIANT +}SF_TYPE; +typedef struct _wireSAFEARRAY_UNION { + ULONG sfType; + union { + SAFEARR_BSTR BstrStr; + SAFEARR_UNKNOWN UnknownStr; + SAFEARR_DISPATCH DispatchStr; + SAFEARR_VARIANT VariantStr; + BYTE_SIZEDARR ByteStr; + WORD_SIZEDARR WordStr; + DWORD_SIZEDARR LongStr; + HYPER_SIZEDARR HyperStr; + }u; +}SAFEARRAYUNION; +typedef struct _wireSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + SAFEARRAYUNION uArrayStructs; + SAFEARRAYBOUND rgsabound[1]; +}*wireSAFEARRAY; +typedef wireSAFEARRAY *wirePSAFEARRAY; +typedef struct tagSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + PVOID pvData; + SAFEARRAYBOUND rgsabound[1]; +}SAFEARRAY,*LPSAFEARRAY; +typedef struct tagVARIANT { + union { + struct __tagVARIANT { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union { + long lVal; + unsigned char bVal; + short iVal; + float fltVal; + double dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + CY cyVal; + DATE date; + BSTR bstrVal; + IUnknown *punkVal; + LPDISPATCH pdispVal; + SAFEARRAY *parray; + unsigned char *pbVal; + short *piVal; + long *plVal; + float *pfltVal; + double *pdblVal; + VARIANT_BOOL *pboolVal; + SCODE *pscode; + CY *pcyVal; + DATE *pdate; + BSTR *pbstrVal; + IUnknown **ppunkVal; + LPDISPATCH *ppdispVal; + SAFEARRAY **pparray; + struct tagVARIANT *pvarVal; + void *byref; + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + DECIMAL *pdecVal; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + struct { + PVOID pvRecord; + struct IRecordInfo *pRecInfo; + } __VARIANT_NAME_4; + } __VARIANT_NAME_3; + } __VARIANT_NAME_2; + DECIMAL decVal; + } __VARIANT_NAME_1; +} VARIANT,*LPVARIANT; +typedef VARIANT VARIANTARG; +typedef VARIANT *LPVARIANTARG; +typedef struct _wireVARIANT { + DWORD clSize; + DWORD rpcReserved; + USHORT vt; + USHORT wReserved1; + USHORT wReserved2; + USHORT wReserved3; + union { + LONG lVal; + BYTE bVal; + SHORT iVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + CY cyVal; + DATE date; + wireBSTR bstrVal; + IUnknown *punkVal; + LPDISPATCH pdispVal; + wireSAFEARRAY parray; + BYTE *pbVal; + SHORT *piVal; + LONG *plVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; + SCODE *pscode; + CY *pcyVal; + DATE *pdate; + wireBSTR *pbstrVal; + IUnknown **ppunkVal; + LPDISPATCH *ppdispVal; + wireSAFEARRAY *pparray; + struct _wireVARIANT *pvarVal; + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + DECIMAL decVal; + DECIMAL *pdecVal; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + } DUMMYUNIONNAME; +} wireVARIANT; +typedef LONG DISPID; +typedef DISPID MEMBERID; +typedef DWORD HREFTYPE; +typedef enum tagTYPEKIND { + TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH, + TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX +}TYPEKIND; +typedef struct tagTYPEDESC { + union { + struct tagTYPEDESC *lptdesc; + struct tagARRAYDESC *lpadesc; + HREFTYPE hreftype; + } DUMMYUNIONNAME; + VARTYPE vt; +}TYPEDESC; +typedef struct tagARRAYDESC { + TYPEDESC tdescElem; + USHORT cDims; + SAFEARRAYBOUND rgbounds[1]; +}ARRAYDESC; +typedef struct tagPARAMDESCEX { + ULONG cBytes; + VARIANTARG varDefaultValue; +}PARAMDESCEX,*LPPARAMDESCEX; +typedef struct tagPARAMDESC { + LPPARAMDESCEX pparamdescex; + USHORT wParamFlags; +}PARAMDESC,*LPPARAMDESC; +typedef struct tagIDLDESC { + ULONG dwReserved; + USHORT wIDLFlags; +}IDLDESC,*LPIDLDESC; +typedef struct tagELEMDESC { + TYPEDESC tdesc; + union { + IDLDESC idldesc; + PARAMDESC paramdesc; + } DUMMYUNIONNAME; +} ELEMDESC,*LPELEMDESC; +typedef struct tagTYPEATTR { + GUID guid; + LCID lcid; + DWORD dwReserved; + MEMBERID memidConstructor; + MEMBERID memidDestructor; + LPOLESTR lpstrSchema; + ULONG cbSizeInstance; + TYPEKIND typekind; + WORD cFuncs; + WORD cVars; + WORD cImplTypes; + WORD cbSizeVft; + WORD cbAlignment; + WORD wTypeFlags; + WORD wMajorVerNum; + WORD wMinorVerNum; + TYPEDESC tdescAlias; + IDLDESC idldescType; +}TYPEATTR,*LPTYPEATTR; +typedef struct tagDISPPARAMS { + VARIANTARG *rgvarg; + DISPID *rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; +}DISPPARAMS; +typedef struct tagEXCEPINFO { + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + PVOID pvReserved; + HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*); + SCODE scode; +} EXCEPINFO,*LPEXCEPINFO; +typedef enum tagCALLCONV { + CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL, + CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL, + CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL +}CALLCONV; +typedef enum tagFUNCKIND { + FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL, + FUNC_STATIC,FUNC_DISPATCH +}FUNCKIND; +typedef enum tagINVOKEKIND { + INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4, + INVOKE_PROPERTYPUTREF=8 +}INVOKEKIND; +typedef struct tagFUNCDESC { + MEMBERID memid; + SCODE *lprgscode; + ELEMDESC *lprgelemdescParam; + FUNCKIND funckind; + INVOKEKIND invkind; + CALLCONV callconv; + SHORT cParams; + SHORT cParamsOpt; + SHORT oVft; + SHORT cScodes; + ELEMDESC elemdescFunc; + WORD wFuncFlags; +}FUNCDESC,*LPFUNCDESC; +typedef enum tagVARKIND { + VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH +} VARKIND; +typedef struct tagVARDESC { + MEMBERID memid; + LPOLESTR lpstrSchema; + union { + ULONG oInst; + VARIANT *lpvarValue; + } DUMMYUNIONNAME; + ELEMDESC elemdescVar; + WORD wVarFlags; + VARKIND varkind; +} VARDESC,*LPVARDESC; +typedef enum tagTYPEFLAGS { + TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4, + TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32, + TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128, + TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512, + TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048, + TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192 +} TYPEFLAGS; +typedef enum tagFUNCFLAGS { + FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4, + FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32, + FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256, + FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048, + FUNCFLAG_FIMMEDIATEBIND=4096 +} FUNCFLAGS; +typedef enum tagVARFLAGS { + VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8, + VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128, + VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024, + VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096 +} VARFLAGS; +typedef struct tagCLEANLOCALSTORAGE { + IUnknown *pInterface; + PVOID pStorage; + DWORD flags; +} CLEANLOCALSTORAGE; +typedef struct tagCUSTDATAITEM { + GUID guid; + VARIANTARG varValue; +} CUSTDATAITEM,*LPCUSTDATAITEM; +typedef struct tagCUSTDATA { + DWORD cCustData; + LPCUSTDATAITEM prgCustData; +} CUSTDATA,*LPCUSTDATA; + +typedef enum tagDESCKIND { + DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1, + DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1, + DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1, + DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1 +} DESCKIND; + +typedef union tagBINDPTR { + LPFUNCDESC lpfuncdesc; + LPVARDESC lpvardesc; + LPTYPECOMP lptcomp; +} BINDPTR,*LPBINDPTR; + +#undef INTERFACE +#define INTERFACE IDispatch +DECLARE_INTERFACE_(IDispatch,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE; + STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE; + STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE; + STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; +}; + +#undef INTERFACE +#define INTERFACE IEnumVARIANT +DECLARE_INTERFACE_(IEnumVARIANT,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE; + STDMETHOD(Skip)(THIS_ ULONG) PURE; + STDMETHOD(Reset)(THIS) PURE; + STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE; +}; + +#undef INTERFACE +#define INTERFACE ITypeComp +DECLARE_INTERFACE_(ITypeComp,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE; + STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE; +}; + +#undef INTERFACE +#define INTERFACE ITypeInfo +DECLARE_INTERFACE_(ITypeInfo,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE; + STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE; + STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE; + STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE; + STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE; + STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE; + STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE; + STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE; + STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; + STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE; + STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE; + STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE; + STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE; + STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE; + STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE; + STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE; + STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE; + STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE; + STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE; +}; + +#undef INTERFACE +#define INTERFACE ITypeLib +DECLARE_INTERFACE_(ITypeLib,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; + STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE; + STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE; + STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE; + STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE; + STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE; + STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE; + STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE; + STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE; + STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE; +}; + +#ifdef __cplusplus +} +#endif +#endif |