home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / sybase / starbuck / hpp.z / wstdole.hpp < prev    next >
C/C++ Source or Header  |  1996-11-04  |  7KB  |  188 lines

  1. #ifndef _stdole_HPP_INCLUDED
  2. #define _stdole_HPP_INCLUDED
  3.  
  4. #ifndef GUID_DEFINED
  5. #define GUID_DEFINED
  6.  
  7. typedef struct _GUID {
  8.     unsigned long Data1;
  9.     unsigned short Data2;
  10.     unsigned short Data3;
  11.     unsigned char Data4[8];
  12. } GUID;
  13.  
  14. #endif // !GUID_DEFINED
  15.  
  16. #if !defined( __IID_DEFINED__ )
  17. #define __IID_DEFINED__
  18. typedef GUID IID;
  19. typedef GUID CLSID;
  20. extern "C" const GUID GUID_NULL;
  21. #define IID_NULL            GUID_NULL
  22. #define CLSID_NULL          GUID_NULL
  23. #endif // !__IID_DEFINED__
  24.  
  25. #ifndef _OLEAUTO_H_
  26. #define _OLEAUTO_H_
  27.  
  28. typedef struct DISPPARAMS {
  29.     WVARIANT * rgvarg;
  30.     long * rgdispidNamedArgs;
  31.     unsigned int cArgs;
  32.     unsigned int cNamedArgs;
  33. } DISPPARAMS;
  34.  
  35. #ifndef _tagEXCEPINFO_DEFINED
  36. #define _tagEXCEPINFO_DEFINED
  37. #define _EXCEPINFO_DEFINED
  38. #define _LPEXCEPINFO_DEFINED
  39.                         /* size is 32 */
  40. typedef struct EXCEPINFO {
  41.     unsigned short wCode;
  42.     unsigned short wReserved;
  43.     WBStr bstrSource;
  44.     WBStr bstrDescription;
  45.     WBStr bstrHelpFile;
  46.     unsigned long dwHelpContext;
  47.     void * pvReserved;
  48.     void * pfnDeferredFillIn;
  49.     WScode scode;
  50. } EXCEPINFO;
  51.  
  52. #endif
  53.  
  54. #endif
  55.  
  56. class IUnknown;
  57. class IDispatch;
  58. class ITypeInfo;
  59. class IEnumVARIANT;
  60. #ifndef __oaidl_h__
  61. struct VARIANT;
  62. #endif
  63.  
  64. #ifndef __IUnknown_INTERFACE_DEFINED__
  65. #define __IUnknown_INTERFACE_DEFINED__
  66.  
  67. typedef IUnknown * LPUNKNOWN;
  68.  
  69. extern "C" const IID __cdecl IID_IUnknown;
  70.  
  71. class __stdcall IUnknown {
  72.  
  73.     public:
  74.  
  75.         /* Methods */
  76.         virtual WHRESULT QueryInterface( const IID & __riid, void * * __ppvObj ) = 0;
  77.         virtual unsigned long AddRef( void ) = 0;
  78.         virtual unsigned long Release( void ) = 0;
  79. };
  80.  
  81. #endif
  82.  
  83. #ifndef __IDispatch_INTERFACE_DEFINED__
  84. #define __IDispatch_INTERFACE_DEFINED__
  85.  
  86. typedef IDispatch * LPDISPATCH;
  87.  
  88. extern "C" const IID __cdecl IID_IDispatch;
  89.  
  90. class __stdcall IDispatch : public IUnknown {
  91.  
  92.     public:
  93.  
  94.         /* Methods */
  95.         virtual WHRESULT GetTypeInfoCount( unsigned int * __pctinfo ) = 0;
  96.         virtual WHRESULT GetTypeInfo( unsigned int __itinfo, unsigned long __lcid, ITypeInfo ** __pptinfo ) = 0;
  97.         virtual WHRESULT GetIDsOfNames( const IID & __riid, long char ** __rgszNames, unsigned int __cNames, unsigned long __lcid, long * __rgdispid ) = 0;
  98.         virtual WHRESULT Invoke( long __dispidMember, const IID & __riid, unsigned long __lcid, unsigned short __wFlags, DISPPARAMS * __pdispparams, VARIANT * __pvarResult, EXCEPINFO * __pexcepinfo, unsigned int * __puArgErr ) = 0;
  99. };
  100.  
  101. #endif
  102.  
  103. #ifndef __IEnumVARIANT_INTERFACE_DEFINED__
  104. #define __IEnumVARIANT_INTERFACE_DEFINED__
  105.  
  106. typedef IEnumVARIANT * LPENUMVARIANT;
  107.  
  108. class __stdcall IEnumVARIANT : public IUnknown {
  109.  
  110.     public:
  111.  
  112.         /* Methods */
  113.         virtual WHRESULT Next( unsigned long __celt, VARIANT * __rgvar, unsigned long * __pceltFetched ) = 0;
  114.         virtual WHRESULT Skip( unsigned long __celt ) = 0;
  115.         virtual WHRESULT Reset( void ) = 0;
  116.         virtual WHRESULT Clone( IEnumVARIANT * * __ppenum ) = 0;
  117. };
  118.  
  119. #endif
  120.  
  121. #ifndef __oaidl_h__
  122. struct TYPEATTR;
  123. struct FUNCDESC;
  124. struct VARDESC;
  125. #endif
  126.  
  127. class ITypeComp;
  128.  
  129. #ifndef __ITypeLib_INTERFACE_DEFINED__
  130. class ITypeLib;
  131. struct TLIBATTR;
  132. #endif
  133.  
  134. #ifndef __ITypeInfo_INTERFACE_DEFINED__
  135. #define __ITypeInfo_INTERFACE_DEFINED__
  136.  
  137. class __stdcall ITypeInfo : public IUnknown {
  138.  
  139.     public:
  140.  
  141.         virtual WHRESULT GetTypeAttr( TYPEATTR **pptypeattr ) = 0;
  142.         virtual WHRESULT GetTypeComp( ITypeComp **pptcomp ) = 0;
  143.         virtual WHRESULT GetFuncDesc( unsigned int index, FUNCDESC **pppfuncdesc ) = 0;
  144.         virtual WHRESULT GetVarDesc( unsigned int index, VARDESC **ppvardesc ) = 0;
  145.         virtual WHRESULT GetNames( long memid, WBStr  *rgWBStrNames, unsigned int cMaxNames, unsigned int  *pcNames) = 0;
  146.         virtual WHRESULT GetRefTypeOfImplType( unsigned int index, unsigned long  *hpreftype) = 0;
  147.         virtual WHRESULT GetImplTypeFlags( unsigned int index, int *pimpltypeflags) = 0;
  148.         virtual WHRESULT GetIDsOfNames( long char **rglpszNames, unsigned int cNames, long *rgmemid) = 0;
  149.         virtual WHRESULT Invoke( void  *pvInstance, long memid, unsigned short wFlags, DISPPARAMS  *pdispparams, VARIANT  *pvarResult, EXCEPINFO  *pexcepinfo, unsigned int  *puArgErr) = 0;
  150.         virtual WHRESULT GetDocumentation( long memid, WBStr  *pWBStrName, WBStr  *pWBStrDocString, unsigned long  *pdwHelpContext, WBStr  *pWBStrHelpFile) = 0;
  151.         virtual WHRESULT GetDllEntry( long memid, unsigned short invkind, WBStr  *pWBStrDllName, WBStr  *pWBStrName, unsigned short  *pwOrdinal) = 0;
  152.         virtual WHRESULT GetRefTypeInfo( unsigned long hreftype, ITypeInfo  * *pptinfo) = 0;
  153.         virtual WHRESULT AddressOfMember( long memid, unsigned short invkind, void  * *ppv) = 0;
  154.         virtual WHRESULT CreateInstance( IUnknown  *puncOuter, const IID & riid, void  * *ppvObj) = 0;
  155.         virtual WHRESULT GetMops( long memid, WBStr  *pWBStrMops) = 0;
  156.         virtual WHRESULT GetContainingTypeLib( ITypeLib  * *pptlib, unsigned int  *pindex) = 0;
  157.         virtual void  ReleaseTypeAttr( TYPEATTR  *ptypeattr) = 0;
  158.         virtual void  ReleaseFuncDesc( FUNCDESC  *pfuncdesc) = 0;
  159.         virtual void  ReleaseVarDesc( VARDESC  *pvardesc) = 0;
  160.         
  161. };
  162.  
  163. #endif
  164.     
  165. #ifndef __ITypeLib_INTERFACE_DEFINED__
  166. #define __ITypeLib_INTERFACE_DEFINED__
  167.  
  168. class __stdcall ITypeLib : public IUnknown {
  169.  
  170.     public:
  171.  
  172.         virtual unsigned int GetTypeInfoCount( void) = 0;
  173.         virtual WHRESULT GetTypeInfo( unsigned int index, ITypeInfo  * *ppitinfo) = 0;
  174.         virtual WHRESULT GetTypeInfoType( unsigned int index, unsigned short  *ptkind) = 0;
  175.         virtual WHRESULT GetTypeInfoOfGuid( const GUID & guid, ITypeInfo  * *pptinfo) = 0;
  176.         virtual WHRESULT GetLibAttr( TLIBATTR  * *pptlibattr) = 0;
  177.         virtual WHRESULT GetTypeComp( ITypeComp  * *pptcomp) = 0;
  178.         virtual WHRESULT GetDocumentation( int index, WBStr  *pbstrName, WBStr  *pbstrDocString, unsigned long  *pdwHelpContext, WBStr  *pbstrHelpFile) = 0;
  179.         virtual WHRESULT IsName( long char * szNameBuf, unsigned long lHashVal, BOOL  *pfName) = 0;
  180.         virtual WHRESULT FindName( long char * szNameBuf, unsigned long lHashVal, ITypeInfo  * *rgptinfo, long *rgmemid, unsigned short  *pcFound) = 0;
  181.         virtual void ReleaseTLibAttr( TLIBATTR  *ptlibattr) = 0;
  182.         
  183. };
  184.     
  185. #endif  
  186.  
  187. #endif
  188.