home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / include / objbase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-04  |  10.0 KB  |  221 lines

  1. #include <windows.h>
  2. #if !defined( _OBJBASE_H_ )
  3. #define _OBJBASE_H_
  4. #ifndef LPUNKNOWN_DEFINED
  5. typedef void *LPUNKNOWN;
  6. #define LPUNKNOWN_DEFINED
  7. #endif
  8. #ifndef LPOLESTR
  9. #define LPOLESTR LPCSTR
  10. #endif
  11. #ifndef OLECHAR
  12. #ifdef UNICODE
  13. #define OLECHAR WCHAR
  14. #else
  15. #define OLECHAR char
  16. #endif
  17. #endif
  18. #if defined(_WIN32) || defined(_MPPC_)
  19. #define STDMETHODCALLTYPE       _stdcall
  20. #define STDMETHODVCALLTYPE
  21. #define STDAPICALLTYPE          _stdcall
  22. #define STDAPIVCALLTYPE
  23. #define STDAPI                  extern HRESULT STDAPICALLTYPE
  24. #define STDAPI_(type)           extern type STDAPICALLTYPE
  25. #define STDMETHODIMP            HRESULT STDMETHODCALLTYPE
  26. #define STDMETHODIMP_(type)     type STDMETHODCALLTYPE
  27. #define STDAPIV                 extern HRESULT STDAPIVCALLTYPE
  28. #define STDAPIV_(type)          extern type STDAPIVCALLTYPE
  29. #define STDMETHODIMPV           HRESULT STDMETHODVCALLTYPE
  30. #define STDMETHODIMPV_(type)    type STDMETHODVCALLTYPE
  31. #ifdef _OLE32_
  32. #define WINOLEAPI        STDAPI
  33. #define WINOLEAPI_(type) STDAPI_(type)
  34. #else
  35. #define WINOLEAPI        extern HRESULT STDAPICALLTYPE
  36. #define WINOLEAPI_(type) extern type STDAPICALLTYPE
  37. #endif
  38. #define interface               struct
  39. #ifndef STDMETHOD
  40. #define STDMETHOD(method)       HRESULT (STDMETHODCALLTYPE * method)
  41. #define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method)
  42. #endif
  43. #define BEGIN_INTERFACE
  44. #define END_INTERFACE
  45. #define PURE
  46. #ifndef THIS_
  47. #define THIS_                   INTERFACE * This,
  48. #define THIS                    INTERFACE * This
  49. #endif
  50. #ifdef CONST_VTABLE
  51. #undef CONST_VTBL
  52. #define CONST_VTBL const
  53. #define DECLARE_INTERFACE(iface)    typedef interface iface { \
  54.                                     const struct iface##Vtbl * lpVtbl; \
  55.                                 } iface; \
  56.                                 typedef const struct iface##Vtbl iface##Vtbl; \
  57.                                 const struct iface##Vtbl
  58. #else
  59. #undef CONST_VTBL
  60. #define CONST_VTBL
  61. #define DECLARE_INTERFACE(iface)    typedef interface iface { struct iface##Vtbl * lpVtbl; } iface; \
  62.                                 typedef struct iface##Vtbl iface##Vtbl; \
  63.                                 struct iface##Vtbl
  64. #endif
  65. #define DECLARE_INTERFACE_(iface, baseiface)    DECLARE_INTERFACE(iface)
  66. #endif
  67.  
  68. #define FARSTRUCT
  69. #define HUGEP
  70. #include <stdlib.h>
  71. #define LISet32(li, v) ((li).HighPart = (v) < 0 ? -1 : 0, (li).LowPart = (v))
  72. #define ULISet32(li, v) ((li).HighPart = 0, (li).LowPart = (v))
  73. #define CLSCTX_INPROC           (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
  74. #define CLSCTX_ALL              (CLSCTX_INPROC_SERVER| \
  75.                                  CLSCTX_INPROC_HANDLER| \
  76.                                  CLSCTX_LOCAL_SERVER| \
  77.                                  CLSCTX_REMOTE_SERVER)
  78.  
  79. #define CLSCTX_SERVER           (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER)
  80. typedef enum tagREGCLS { REGCLS_SINGLEUSE = 0, REGCLS_MULTIPLEUSE = 1,     
  81.     REGCLS_MULTI_SEPARATE = 2   } REGCLS;
  82. #define MARSHALINTERFACE_MIN 500 
  83. #define CWCSTORAGENAME 32
  84. #define STGM_DIRECT             0
  85. #define STGM_TRANSACTED         0x10000L
  86. #define STGM_SIMPLE             0x8000000L
  87. #define STGM_READ               0
  88. #define STGM_WRITE              1
  89. #define STGM_READWRITE          2
  90. #define STGM_SHARE_DENY_NONE    0x40L
  91. #define STGM_SHARE_DENY_READ    0x30L
  92. #define STGM_SHARE_DENY_WRITE   0x20L
  93. #define STGM_SHARE_EXCLUSIVE    0x10L
  94. #define STGM_PRIORITY           0x40000L
  95. #define STGM_DELETEONRELEASE    0x4000000L
  96. #define STGM_NOSCRATCH          0x100000L
  97. #define STGM_CREATE             0x1000L
  98. #define STGM_CONVERT            0x20000L
  99. #define STGM_FAILIFTHERE        0
  100. #define STGM_NOSNAPSHOT         0x200000L
  101. #define ASYNC_MODE_COMPATIBILITY    1
  102. #define ASYNC_MODE_DEFAULT          0
  103. #define STGTY_REPEAT                0x100L
  104. #define STG_TOEND                   0xFFFFFFFFL
  105. #define STG_LAYOUT_SEQUENTIAL       0
  106. #define STG_LAYOUT_INTERLEAVED      1
  107. typedef interface    IRpcStubBuffer     IRpcStubBuffer;
  108. typedef interface    IRpcChannelBuffer  IRpcChannelBuffer;
  109. #include <wtypes.h>
  110. #include <objidl.h>
  111. #ifndef DEFINE_GUID
  112. #ifndef INITGUID
  113. #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
  114.     extern const GUID  name
  115. #else
  116.  
  117. #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
  118.         extern const GUID name \
  119.                 = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
  120. #endif 
  121. #endif
  122. #define DEFINE_OLEGUID(name,l,w1,w2)  DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
  123. #define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
  124. BOOL wIsEqualGUID(REFGUID,REFGUID);
  125. #define IsEqualGUID(r1,r2) wIsEqualGUID(r1,r2)
  126. #define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)
  127. typedef enum tagCOINIT {COINIT_MULTITHREADED = 0, COINIT_APARTMENTTHREADED  = 2,      
  128.     COINIT_DISABLE_OLE1DDE = 4, COINIT_SPEED_OVER_MEMORY  = 8 } COINIT;
  129. WINOLEAPI_(DWORD) CoBuildVersion(VOID);
  130. WINOLEAPI  CoInitialize(LPVOID);
  131. WINOLEAPI  CoInitializeEx(LPVOID,DWORD);
  132. WINOLEAPI_(void)  CoUninitialize(void);
  133. WINOLEAPI  CoGetMalloc(DWORD,LPMALLOC *);
  134. WINOLEAPI_(DWORD) CoGetCurrentProcess(void);
  135. WINOLEAPI  CoRegisterMallocSpy(LPMALLOCSPY);
  136. WINOLEAPI  CoRevokeMallocSpy(void);
  137. WINOLEAPI  CoCreateStandardMalloc(DWORD,IMalloc * *);
  138. #if DBG == 1
  139. WINOLEAPI_(ULONG) DebugCoGetRpcFault( void );
  140. WINOLEAPI_(void) DebugCoSetRpcFault( ULONG );
  141. #endif
  142. WINOLEAPI  CoGetClassObject(REFCLSID,DWORD,LPVOID,REFIID,LPVOID *);
  143. WINOLEAPI  CoRegisterClassObject(REFCLSID,LPUNKNOWN,DWORD,DWORD,LPDWORD);
  144. WINOLEAPI  CoRevokeClassObject(DWORD);
  145. WINOLEAPI CoGetMarshalSizeMax(ULONG *,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
  146. WINOLEAPI CoMarshalInterface(LPSTREAM,REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD);
  147. WINOLEAPI CoUnmarshalInterface(LPSTREAM, REFIID,LPVOID * );
  148. WINOLEAPI CoMarshalHresult(LPSTREAM,HRESULT);
  149. WINOLEAPI CoUnmarshalHresult(LPSTREAM,HRESULT  *);
  150. WINOLEAPI CoReleaseMarshalData(LPSTREAM);
  151. WINOLEAPI CoDisconnectObject(LPUNKNOWN,DWORD);
  152. WINOLEAPI CoLockObjectExternal(LPUNKNOWN,BOOL,BOOL);
  153. WINOLEAPI CoGetStandardMarshal(REFIID,LPUNKNOWN,DWORD,LPVOID,DWORD,LPMARSHAL *);
  154. WINOLEAPI_(BOOL) CoIsHandlerConnected(LPUNKNOWN);
  155. WINOLEAPI_(BOOL) CoHasStrongExternalConnections(LPUNKNOWN);
  156. WINOLEAPI CoMarshalInterThreadInterfaceInStream(REFIID,LPUNKNOWN,LPSTREAM *);
  157. WINOLEAPI CoGetInterfaceAndReleaseStream(LPSTREAM,REFIID,LPVOID *);
  158. WINOLEAPI CoCreateFreeThreadedMarshaler(LPUNKNOWN,LPUNKNOWN *);
  159. WINOLEAPI_(HINSTANCE) CoLoadLibrary(LPOLESTR,BOOL);
  160. WINOLEAPI_(void) CoFreeLibrary(HINSTANCE);
  161. WINOLEAPI_(void) CoFreeAllLibraries(void);
  162. WINOLEAPI_(void) CoFreeUnusedLibraries(void);
  163. WINOLEAPI CoGetCallContext(REFIID,void **);
  164. WINOLEAPI CoSwitchCallContext( IUnknown *,IUnknown **);
  165. WINOLEAPI CoQueryProxyBlanket(IUnknown *,DWORD *,DWORD *,OLECHAR **,DWORD *,DWORD *, void *, DWORD *);
  166. WINOLEAPI CoSetProxyBlanket(IUnknown *,DWORD,DWORD,OLECHAR *,DWORD,DWORD,void *,DWORD);
  167. WINOLEAPI CoCopyProxy(IUnknown *, IUnknown   **);
  168. WINOLEAPI CoQueryClientBlanket(DWORD *,DWORD *,OLECHAR **,DWORD *,DWORD  *,void  *,DWORD *);
  169. WINOLEAPI CoImpersonateClient(void);
  170. WINOLEAPI CoRevertToSelf();
  171. #define COM_RIGHTS_EXECUTE 1
  172. WINOLEAPI CoCreateInstance(REFCLSID,LPUNKNOWN,DWORD,REFIID,LPVOID *);
  173. WINOLEAPI CoGetPersistentInstance(REFIID,DWORD,DWORD,OLECHAR *,struct IStorage *,REFCLSID,BOOL *,void **);
  174. typedef struct _COSERVERINFO { DWORD dwSize; OLECHAR *pszName; } COSERVERINFO;
  175. WINOLEAPI StringFromCLSID(REFCLSID,LPOLESTR * );
  176. WINOLEAPI CLSIDFromString(LPOLESTR,LPCLSID);
  177. WINOLEAPI StringFromIID(REFIID,LPOLESTR *);
  178. WINOLEAPI IIDFromString(LPOLESTR lpsz, LPIID lpiid);
  179. WINOLEAPI_(BOOL) CoIsOle1Class(REFCLSID rclsid);
  180. WINOLEAPI ProgIDFromCLSID (REFCLSID clsid, LPOLESTR * lplpszProgID);
  181. WINOLEAPI CLSIDFromProgID (LPCOLESTR lpszProgID, LPCLSID lpclsid);
  182. WINOLEAPI_(int) StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax);
  183. WINOLEAPI CoCreateGuid(GUID  *pguid);
  184. WINOLEAPI_(BOOL) CoFileTimeToDosDateTime(FILETIME *,LPWORD,LPWORD);
  185. WINOLEAPI_(BOOL) CoDosDateTimeToFileTime(WORD,WORD,FILETIME *);
  186. WINOLEAPI  CoFileTimeNow(FILETIME *);
  187. WINOLEAPI CoRegisterMessageFilter(LPMESSAGEFILTER,LPMESSAGEFILTER *);
  188. WINOLEAPI CoGetTreatAsClass(REFCLSID clsidOld, LPCLSID pClsidNew);
  189. WINOLEAPI CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew);
  190. typedef HRESULT (STDAPICALLTYPE * LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
  191. typedef HRESULT (STDAPICALLTYPE * LPFNCANUNLOADNOW)(void);
  192. STDAPI  DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv);
  193. STDAPI  DllCanUnloadNow(void);
  194. WINOLEAPI_(LPVOID) CoTaskMemAlloc(ULONG cb);
  195. WINOLEAPI_(LPVOID) CoTaskMemRealloc(LPVOID,ULONG);
  196. WINOLEAPI_(void)   CoTaskMemFree(LPVOID);
  197. WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER *);
  198. WINOLEAPI CreateDataCache(LPUNKNOWN * ,REFCLSID,REFIID,LPVOID *);
  199. WINOLEAPI StgCreateDocfile(OLECHAR *, DWORD,DWORD,struct IStorage * *);
  200. WINOLEAPI StgCreateDocfileOnILockBytes(ILockBytes  *,DWORD,DWORD,struct IStorage * *);
  201. WINOLEAPI StgOpenStorage(OLECHAR *,IStorage  *,DWORD,SNB,DWORD,struct IStorage * *);
  202. WINOLEAPI StgOpenStorageOnILockBytes(ILockBytes  *,IStorage  *,DWORD,SNB,DWORD,struct IStorage * *);
  203. WINOLEAPI StgIsStorageFile(OLECHAR *);
  204. WINOLEAPI StgIsStorageILockBytes(ILockBytes * plkbyt);
  205. WINOLEAPI StgSetTimes(OLECHAR *,FILETIME *,FILETIME *,FILETIME *);
  206. WINOLEAPI  BindMoniker(LPMONIKER,DWORD,REFIID,LPVOID *);
  207. WINOLEAPI  CoGetObject(LPCWSTR,BIND_OPTS *,REFIID,void **);
  208. WINOLEAPI  MkParseDisplayName(LPBC,LPCOLESTR,ULONG  *,LPMONIKER  *);
  209. WINOLEAPI  MonikerRelativePathTo(LPMONIKER,LPMONIKER,LPMONIKER *,BOOL);
  210. WINOLEAPI  MonikerCommonPrefixWith(LPMONIKER,LPMONIKER,LPMONIKER *);
  211. WINOLEAPI  CreateBindCtx(DWORD,LPBC *);
  212. WINOLEAPI  CreateGenericComposite(LPMONIKER,LPMONIKER,LPMONIKER *);
  213. WINOLEAPI  GetClassFile (LPCOLESTR,CLSID *);
  214. WINOLEAPI  CreateClassMoniker(REFCLSID,LPMONIKER *);
  215. WINOLEAPI  CreateFileMoniker(LPCOLESTR,LPMONIKER *);
  216. WINOLEAPI  CreateItemMoniker(LPCOLESTR,LPCOLESTR,LPMONIKER *);
  217. WINOLEAPI  CreateAntiMoniker(LPMONIKER *);
  218. WINOLEAPI  CreatePointerMoniker(LPUNKNOWN,LPMONIKER *);
  219. WINOLEAPI  GetRunningObjectTable(DWORD,LPRUNNINGOBJECTTABLE *);
  220. #endif 
  221.