home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 August / Chip_2000-08_cd1.bin / sharewar / dvcpp / _SETUP.5 / Group3 / oaidl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-03-08  |  9.7 KB  |  386 lines

  1. #ifndef _OAIDL_H
  2. #define _OAIDL_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #ifdef NONAMELESSUNION
  7. #define __VARIANT_NAME_1 n1
  8. #define __VARIANT_NAME_2 n2
  9. #define __VARIANT_NAME_3 n3
  10. #else
  11. #define __tagVARIANT
  12. #define __VARIANT_NAME_1
  13. #define __VARIANT_NAME_2
  14. #define __VARIANT_NAME_3
  15. #endif
  16. #define FADF_AUTO (1)
  17. #define FADF_STATIC (2)
  18. #define FADF_EMBEDDED (4)
  19. #define FADF_FIXEDSIZE (16)
  20. #define FADF_BSTR (256)
  21. #define FADF_UNKNOWN (512)
  22. #define FADF_DISPATCH (1024)
  23. #define FADF_VARIANT (2048)
  24. #define FADF_RESERVED (0xf0e8)
  25. #define PARAMFLAG_NONE (0)
  26. #define PARAMFLAG_FIN (1)
  27. #define PARAMFLAG_FOUT (2)
  28. #define PARAMFLAG_FLCID (4)
  29. #define PARAMFLAG_FRETVAL (8)
  30. #define PARAMFLAG_FOPT (16)
  31. #define PARAMFLAG_FHASDEFAULT (32)
  32. #define IDLFLAG_NONE PARAMFLAG_NONE
  33. #define IDLFLAG_FIN PARAMFLAG_FIN
  34. #define IDLFLAG_FOUT PARAMFLAG_FOUT
  35. #define IDLFLAG_FLCID PARAMFLAG_FLCID
  36. #define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL
  37. #define IMPLTYPEFLAG_FDEFAULT 1
  38. #define IMPLTYPEFLAG_FSOURCE 2
  39. #define IMPLTYPEFLAG_FRESTRICTED 4
  40. #define IMPLTYPEFLAG_FDEFAULTVTABLE 8
  41.  
  42. typedef interface ITypeLib *LPTYPELIB;
  43. typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
  44. typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
  45. typedef interface ICreateTypeLib *LPCREATETYPELIB;
  46. typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
  47. typedef interface ITypeInfo *LPTYPEINFO;
  48. typedef interface IErrorInfo *LPERRORINFO;
  49. typedef interface IDispatch *LPDISPATCH;
  50. typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
  51.  
  52. typedef enum tagSYSKIND {
  53.     SYS_WIN16,SYS_WIN32,SYS_MAC
  54. } SYSKIND;
  55. typedef enum tagLIBFLAGS {
  56.     LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
  57.     LIBFLAG_FHASDISKIMAGE=8
  58. } LIBFLAGS;
  59. typedef struct tagTLIBATTR {
  60.     GUID guid;
  61.     LCID lcid;
  62.     SYSKIND syskind;
  63.     WORD wMajorVerNum;
  64.     WORD wMinorVerNum;
  65.     WORD wLibFlags;
  66. } TLIBATTR,*LPTLIBATTR;
  67. typedef CY CURRENCY;
  68. typedef struct tagSAFEARRAYBOUND {
  69.     ULONG cElements;
  70.     LONG lLbound;
  71. }SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
  72. typedef struct _wireSAFEARR_BSTR
  73. {
  74.     ULONG Size;
  75.     wireBSTR *aBstr;
  76. }SAFEARR_BSTR;
  77. typedef struct _wireSAFEARR_UNKNOWN {
  78.     ULONG Size;
  79.     IUnknown **apUnknown;
  80. }SAFEARR_UNKNOWN;
  81. typedef struct _wireSAFEARR_DISPATCH {
  82.     ULONG Size;
  83.     LPDISPATCH *apDispatch;
  84. }SAFEARR_DISPATCH;
  85. typedef struct _wireSAFEARR_VARIANT {
  86.     ULONG Size;
  87.     struct _wireVARIANT *aVariant;
  88. }SAFEARR_VARIANT;
  89. typedef enum tagSF_TYPE {
  90.     SF_ERROR=VT_ERROR,
  91.     SF_I1=VT_I1,
  92.     SF_I2=VT_I2,
  93.     SF_I4=VT_I4,
  94.     SF_I8=VT_I8,
  95.     SF_BSTR=VT_BSTR,
  96.     SF_UNKNOWN=VT_UNKNOWN,
  97.     SF_DISPATCH=VT_DISPATCH,
  98.     SF_VARIANT=VT_VARIANT
  99. }SF_TYPE;
  100. typedef struct _wireSAFEARRAY_UNION {
  101.     ULONG sfType;
  102.     union {
  103.         SAFEARR_BSTR BstrStr;
  104.         SAFEARR_UNKNOWN UnknownStr;
  105.         SAFEARR_DISPATCH DispatchStr;
  106.         SAFEARR_VARIANT VariantStr;
  107.         BYTE_SIZEDARR ByteStr;
  108.         WORD_SIZEDARR WordStr;
  109.         DWORD_SIZEDARR LongStr;
  110.         HYPER_SIZEDARR HyperStr;
  111.     }u;
  112. }SAFEARRAYUNION;
  113. typedef struct _wireSAFEARRAY {
  114.     USHORT cDims;
  115.     USHORT fFeatures;
  116.     ULONG cbElements;
  117.     ULONG cLocks;
  118.     SAFEARRAYUNION uArrayStructs;
  119.     SAFEARRAYBOUND rgsabound[1];
  120. }*wireSAFEARRAY;
  121. typedef wireSAFEARRAY *wirePSAFEARRAY;
  122. typedef struct tagSAFEARRAY {
  123.     USHORT cDims;
  124.     USHORT fFeatures;
  125.     ULONG cbElements;
  126.     ULONG cLocks;
  127.     PVOID pvData;
  128.     SAFEARRAYBOUND rgsabound[1];
  129. }SAFEARRAY,*LPSAFEARRAY;
  130. typedef struct tagVARIANT {
  131.     VARTYPE vt;
  132.     WORD wReserved1;
  133.     WORD wReserved2;
  134.     WORD wReserved3;
  135.     union {
  136.         long lVal;
  137.         unsigned char bVal;
  138.         short iVal;
  139.         float fltVal;
  140.         double dblVal;
  141.         VARIANT_BOOL  boolVal;
  142.         SCODE scode;
  143.         CY cyVal;
  144.         DATE date;
  145.         BSTR bstrVal;
  146.         IUnknown *punkVal;
  147.         LPDISPATCH pdispVal;
  148.         SAFEARRAY *parray;
  149.         unsigned char *pbVal;
  150.         short *piVal;
  151.         long *plVal;
  152.         float *pfltVal;
  153.         double *pdblVal;
  154.         VARIANT_BOOL *pbool;
  155.         SCODE *pscode;
  156.         CY *pcyVal;
  157.         DATE *pdate;
  158.         BSTR *pbstrVal;
  159.         IUnknown **ppunkVal;
  160.         LPDISPATCH *ppdispVal;
  161.         SAFEARRAY **pparray;
  162.         struct tagVARIANT *pvarVal;
  163.         void *byref;
  164.     } DUMMYUNIONNAME;
  165. } VARIANT,*LPVARIANT;
  166. typedef VARIANT VARIANTARG;
  167. typedef VARIANT *LPVARIANTARG;
  168. typedef struct _wireVARIANT {
  169.     DWORD clSize;
  170.     DWORD rpcReserved;
  171.     USHORT vt;
  172.     USHORT wReserved1;
  173.     USHORT wReserved2;
  174.     USHORT wReserved3;
  175.     union {
  176.         LONG lVal;
  177.         BYTE bVal;
  178.         SHORT iVal;
  179.         FLOAT fltVal;
  180.         DOUBLE dblVal;
  181.         VARIANT_BOOL boolVal;
  182.         SCODE scode;
  183.         CY cyVal;
  184.         DATE date;
  185.         wireBSTR bstrVal;
  186.         IUnknown *punkVal;
  187.         LPDISPATCH pdispVal;
  188.         wireSAFEARRAY parray;
  189.         BYTE *pbVal;
  190.         SHORT *piVal;
  191.         LONG *plVal;
  192.         FLOAT *pfltVal;
  193.         DOUBLE *pdblVal;
  194.         VARIANT_BOOL *pboolVal;
  195.         SCODE *pscode;
  196.         CY *pcyVal;
  197.         DATE *pdate;
  198.         wireBSTR *pbstrVal;
  199.         IUnknown **ppunkVal;
  200.         LPDISPATCH *ppdispVal;
  201.         wireSAFEARRAY *pparray;
  202.         struct _wireVARIANT *pvarVal;
  203.         CHAR cVal;
  204.         USHORT uiVal;
  205.         ULONG ulVal;
  206.         INT intVal;
  207.         UINT uintVal;
  208.         DECIMAL decVal;
  209.         DECIMAL *pdecVal;
  210.         CHAR *pcVal;
  211.         USHORT *puiVal;
  212.         ULONG *pulVal;
  213.         INT *pintVal;
  214.         UINT *puintVal;
  215.     } DUMMYUNIONNAME;
  216. } wireVARIANT;
  217. typedef LONG DISPID;
  218. typedef DISPID MEMBERID;
  219. typedef DWORD HREFTYPE;
  220. typedef enum tagTYPEKIND {
  221.     TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
  222.     TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
  223. }TYPEKIND;
  224. typedef struct tagTYPEDESC {
  225.     union {
  226.         struct tagTYPEDESC *lptdesc;
  227.         struct tagARRAYDESC *lpadesc;
  228.         HREFTYPE hreftype;
  229.     } DUMMYUNIONNAME;
  230.     VARTYPE vt;
  231. }TYPEDESC;
  232. typedef struct tagARRAYDESC {
  233.     TYPEDESC tdescElem;
  234.     USHORT cDims;
  235.     SAFEARRAYBOUND rgbounds[1];
  236. }ARRAYDESC;
  237. typedef struct tagPARAMDESCEX {
  238.     ULONG cBytes;
  239.     VARIANTARG varDefaultValue;
  240. }PARAMDESCEX,*LPPARAMDESCEX;
  241. typedef struct tagPARAMDESC {
  242.     LPPARAMDESCEX pparamdescex;
  243.     USHORT wParamFlags;
  244. }PARAMDESC,*LPPARAMDESC;
  245. typedef struct tagIDLDESC {
  246.     ULONG dwReserved;
  247.     USHORT wIDLFlags;
  248. }IDLDESC,*LPIDLDESC;
  249. typedef struct tagELEMDESC {
  250.     TYPEDESC tdesc;
  251.     union {
  252.         IDLDESC idldesc;
  253.         PARAMDESC paramdesc;
  254.     } DUMMYUNIONNAME;
  255. } ELEMDESC,*LPELEMDESC;
  256. typedef struct tagTYPEATTR {
  257.     GUID guid;
  258.     LCID lcid;
  259.     DWORD dwReserved;
  260.     MEMBERID memidConstructor;
  261.     MEMBERID memidDestructor;
  262.     LPOLESTR lpstrSchema;
  263.     ULONG cbSizeInstance;
  264.     TYPEKIND typekind;
  265.     WORD cFuncs;
  266.     WORD cVars;
  267.     WORD cImplTypes;
  268.     WORD cbSizeVft;
  269.     WORD cbAlignment;
  270.     WORD wTypeFlags;
  271.     WORD wMajorVerNum;
  272.     WORD wMinorVerNum;
  273.     TYPEDESC tdescAlias;
  274.     IDLDESC idldescType;
  275. }TYPEATTR,*LPTYPEATTR;
  276. typedef struct tagDISPPARAMS {
  277.     VARIANTARG *rgvarg;
  278.     DISPID *rgdispidNamedArgs;
  279.     UINT cArgs;
  280.     UINT cNamedArgs;
  281. }DISPPARAMS;
  282. typedef struct tagEXCEPINFO {
  283.     WORD wCode;
  284.     WORD wReserved;
  285.     BSTR bstrSource;
  286.     BSTR bstrDescription;
  287.     BSTR bstrHelpFile;
  288.     DWORD dwHelpContext;
  289.     PVOID pvReserved;
  290.     HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*);
  291.     SCODE scode;
  292. } EXCEPINFO,*LPEXCEPINFO;
  293. typedef enum tagCALLCONV {
  294.     CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL,
  295.     CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL,
  296.     CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL
  297. }CALLCONV;
  298. typedef enum tagFUNCKIND {
  299.     FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
  300.     FUNC_STATIC= FUNC_NONVIRTUAL,FUNC_DISPATCH
  301. }FUNCKIND;
  302. typedef enum tagINVOKEKIND {
  303.     INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
  304.     INVOKE_PROPERTYPUTREF=8
  305. }INVOKEKIND;
  306. typedef struct tagFUNCDESC {
  307.     MEMBERID memid;
  308.     SCODE *lprgscode;
  309.     ELEMDESC *lprgelemdescParam;
  310.     FUNCKIND funckind;
  311.     INVOKEKIND invkind;
  312.     CALLCONV callconv;
  313.     SHORT cParams;
  314.     SHORT cParamsOpt;
  315.     SHORT oVft;
  316.     SHORT cScodes;
  317.     ELEMDESC elemdescFunc;
  318.     WORD wFuncFlags;
  319. }FUNCDESC,*LPFUNCDESC;
  320. typedef enum tagVARKIND {
  321.     VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
  322. } VARKIND;
  323. typedef struct tagVARDESC {
  324.     MEMBERID memid;
  325.     LPOLESTR lpstrSchema;
  326.     union {
  327.         ULONG oInst;
  328.         VARIANT *lpvarValue;
  329.     } DUMMYUNIONNAME;
  330.     ELEMDESC elemdescVar;
  331.     WORD wVarFlags;
  332.     VARKIND varkind;
  333. } VARDESC,*LPVARDESC;
  334. typedef enum tagTYPEFLAGS {
  335.     TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4,
  336.     TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32,
  337.     TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128,
  338.     TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512,
  339.     TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048,
  340.     TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192
  341. } TYPEFLAGS;
  342. typedef enum tagFUNCFLAGS {
  343.     FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4,
  344.     FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32,
  345.     FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256,
  346.     FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048,
  347.     FUNCFLAG_FIMMEDIATEBIND=4096
  348. } FUNCFLAGS;
  349. typedef enum tagVARFLAGS {
  350.     VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8,
  351.     VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128,
  352.     VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024,
  353.     VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096
  354. } VARFLAGS;
  355. typedef struct tagCLEANLOCALSTORAGE {
  356.     IUnknown *pInterface;
  357.     PVOID pStorage;
  358.     DWORD flags;
  359. } CLEANLOCALSTORAGE;
  360. typedef struct tagCUSTDATAITEM {
  361.     GUID guid;
  362.     VARIANTARG varValue;
  363. } CUSTDATAITEM,*LPCUSTDATAITEM;
  364. typedef struct tagCUSTDATA {
  365.     DWORD cCustData;
  366.     LPCUSTDATAITEM prgCustData;
  367. } CUSTDATA,*LPCUSTDATA;
  368.  
  369. #undef INTERFACE
  370. #define INTERFACE IDispatch
  371. DECLARE_INTERFACE_(IDispatch,IUnknown)
  372. {
  373.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  374.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  375.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  376.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
  377.     STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
  378.     STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID) PURE;
  379.     STDMETHOD(Invoked)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
  380. };
  381.  
  382. #ifdef __cplusplus
  383. }
  384. #endif
  385. #endif
  386.