⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oaidl.h

📁 彭国伦书上的所有原代码
💻 H
字号:
#ifndef _OAIDL_H#define _OAIDL_H#ifdef __cplusplusextern "C" {#endif#ifdef NONAMELESSUNION#define __VARIANT_NAME_1 n1#define __VARIANT_NAME_2 n2#define __VARIANT_NAME_3 n3#else#define __tagVARIANT#define __VARIANT_NAME_1#define __VARIANT_NAME_2#define __VARIANT_NAME_3#endif#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 8typedef interface ITypeLib *LPTYPELIB;typedef interface ICreateTypeInfo *LPCREATETYPEINFO;typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;typedef interface ICreateTypeLib *LPCREATETYPELIB;typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;typedef interface ITypeInfo *LPTYPEINFO;typedef interface IErrorInfo *LPERRORINFO;typedef interface IDispatch *LPDISPATCH;typedef interface ICreateErrorInfo *LPCREATEERRORINFO;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 {	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 *pbool;		SCODE *pscode;		CY *pcyVal;		DATE *pdate;		BSTR *pbstrVal;		IUnknown **ppunkVal;		LPDISPATCH *ppdispVal;		SAFEARRAY **pparray;		struct tagVARIANT *pvarVal;		void *byref;	} DUMMYUNIONNAME;} 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_NONVIRTUAL,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;#undef INTERFACE#define INTERFACE IDispatchDECLARE_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(Invoked)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;};#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -