9 #define WINOLEAPI STDAPI
10 #define WINOLEAPI_(type) STDAPI_(type)
13 #define LISet32(li,v) ((li).HighPart=(v)<0?-1:0,(li).LowPart=(v))
14 #define ULISet32(li,v) ((li).HighPart=0,(li).LowPart=(v))
15 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER)
16 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
17 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER)
18 #define MARSHALINTERFACE_MIN 500
19 #define CWCSTORAGENAME 32
21 #define STGM_TRANSACTED 0x10000L
22 #define STGM_SIMPLE 0x8000000L
25 #define STGM_READWRITE 2
26 #define STGM_SHARE_DENY_NONE 0x40
27 #define STGM_SHARE_DENY_READ 0x30
28 #define STGM_SHARE_DENY_WRITE 0x20
29 #define STGM_SHARE_EXCLUSIVE 0x10
30 #define STGM_PRIORITY 0x40000L
31 #define STGM_DELETEONRELEASE 0x4000000
32 #define STGM_NOSCRATCH 0x100000
33 #define STGM_CREATE 0x1000
34 #define STGM_CONVERT 0x20000
35 #define STGM_FAILIFTHERE 0
36 #define CWCSTORAGENAME 32
37 #define ASYNC_MODE_COMPATIBILITY 1
38 #define ASYNC_MODE_DEFAULT 0
39 #define STGTY_REPEAT 256
40 #define STG_TOEND 0xFFFFFFFF
41 #define STG_LAYOUT_SEQUENTIAL 0
42 #define STG_LAYOUT_INTERLEAVED 1
43 #define COM_RIGHTS_EXECUTE 1
44 #define COM_RIGHTS_SAFE_FOR_SCRIPTING 2
45 typedef enum tagREGCLS
{
47 REGCLS_MULTIPLEUSE
= 1,
48 REGCLS_MULTI_SEPARATE
= 2
55 inline BOOL
IsEqualGUID(REFGUID rguid1
, REFGUID rguid2
)
56 { return !memcmp(&rguid1
, &rguid2
, sizeof(GUID
)); }
57 inline BOOL
operator==(const GUID
& guidOne
, const GUID
& guidOther
)
58 { return !memcmp(&guidOne
,&guidOther
,sizeof(GUID
)); }
59 inline BOOL
operator!=(const GUID
& g1
, const GUID
& g2
)
60 { return !(g1
== g2
); }
62 #define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID)))
64 #define IsEqualIID(id1,id2) IsEqualGUID(id1,id2)
65 #define IsEqualCLSID(id1,id2) IsEqualGUID(id1,id2)
68 typedef enum tagCOINIT
{
69 COINIT_APARTMENTTHREADED
= 0x2,
70 COINIT_MULTITHREADED
= 0x0,
71 COINIT_DISABLE_OLE1DDE
= 0x4,
72 COINIT_SPEED_OVER_MEMORY
= 0x8
74 typedef enum tagSTDMSHLFLAGS
{
79 WINOLEAPI_(DWORD
) CoBuildVersion(void);
80 WINOLEAPI
CoInitialize(PVOID
);
81 WINOLEAPI
CoInitializeEx(LPVOID
,DWORD
);
82 WINOLEAPI_(void) CoUninitialize(void);
83 WINOLEAPI
CoGetMalloc(DWORD
,LPMALLOC
*);
84 WINOLEAPI_(DWORD
) CoGetCurrentProcess(void);
85 WINOLEAPI
CoRegisterMallocSpy(LPMALLOCSPY
);
86 WINOLEAPI
CoRevokeMallocSpy(void);
87 WINOLEAPI
CoCreateStandardMalloc(DWORD
,IMalloc
**);
89 WINOLEAPI_(ULONG
) DebugCoGetRpcFault(void);
90 WINOLEAPI_(void) DebugCoSetRpcFault(ULONG
);
92 WINOLEAPI
CoGetClassObject(REFCLSID
,DWORD
,COSERVERINFO
*,REFIID
,PVOID
*);
93 WINOLEAPI
CoRegisterClassObject(REFCLSID
,LPUNKNOWN
,DWORD
,DWORD
,PDWORD
);
94 WINOLEAPI
CoRevokeClassObject(DWORD
);
95 WINOLEAPI
CoGetMarshalSizeMax(ULONG
*,REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
);
96 WINOLEAPI
CoMarshalInterface(LPSTREAM
,REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
);
97 WINOLEAPI
CoUnmarshalInterface(LPSTREAM
,REFIID
,PVOID
*);
98 WINOLEAPI
CoMarshalHresult(LPSTREAM
,HRESULT
);
99 WINOLEAPI
CoUnmarshalHresult(LPSTREAM
,HRESULT
*);
100 WINOLEAPI
CoReleaseMarshalData(LPSTREAM
);
101 WINOLEAPI
CoDisconnectObject(LPUNKNOWN
,DWORD
);
102 WINOLEAPI
CoLockObjectExternal(LPUNKNOWN
,BOOL
,BOOL
);
103 WINOLEAPI
CoGetStandardMarshal(REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
,LPMARSHAL
*);
104 WINOLEAPI
CoGetStdMarshalEx(LPUNKNOWN
,DWORD
,LPUNKNOWN
*);
105 WINOLEAPI_(BOOL
) CoIsHandlerConnected(LPUNKNOWN
);
106 WINOLEAPI_(BOOL
) CoHasStrongExternalConnections(LPUNKNOWN
);
107 WINOLEAPI
CoMarshalInterThreadInterfaceInStream(REFIID
,LPUNKNOWN
,LPSTREAM
*);
108 WINOLEAPI
CoGetInterfaceAndReleaseStream(LPSTREAM
,REFIID
,PVOID
*);
109 WINOLEAPI
CoCreateFreeThreadedMarshaler(LPUNKNOWN
,LPUNKNOWN
*);
110 WINOLEAPI_(HINSTANCE
) CoLoadLibrary(LPOLESTR
,BOOL
);
111 WINOLEAPI_(void) CoFreeLibrary(HINSTANCE
);
112 WINOLEAPI_(void) CoFreeAllLibraries(void);
113 WINOLEAPI_(void) CoFreeUnusedLibraries(void);
114 WINOLEAPI
CoCreateInstance(REFCLSID
,LPUNKNOWN
,DWORD
,REFIID
,PVOID
*);
115 WINOLEAPI
CoCreateInstanceEx(REFCLSID
,IUnknown
*,DWORD
,COSERVERINFO
*,DWORD
,MULTI_QI
*);
116 WINOLEAPI
StringFromCLSID(REFCLSID
,LPOLESTR
*);
117 WINOLEAPI
CLSIDFromString(LPOLESTR
,LPCLSID
);
118 WINOLEAPI
StringFromIID(REFIID
,LPOLESTR
*);
119 WINOLEAPI
IIDFromString(LPOLESTR
,LPIID
);
120 WINOLEAPI_(BOOL
) CoIsOle1Class(REFCLSID
);
121 WINOLEAPI
ProgIDFromCLSID(REFCLSID
,LPOLESTR
*);
122 WINOLEAPI
CLSIDFromProgID(LPCOLESTR
,LPCLSID
);
123 WINOLEAPI_(int) StringFromGUID2(REFGUID
,LPOLESTR
,int);
124 WINOLEAPI
CoCreateGuid(GUID
*);
125 WINOLEAPI_(BOOL
) CoFileTimeToDosDateTime(FILETIME
*,LPWORD
,LPWORD
);
126 WINOLEAPI_(BOOL
) CoDosDateTimeToFileTime(WORD
,WORD
,FILETIME
*);
127 WINOLEAPI
CoFileTimeNow(FILETIME
*);
128 WINOLEAPI
CoRegisterMessageFilter(LPMESSAGEFILTER
,LPMESSAGEFILTER
*);
129 WINOLEAPI
CoGetTreatAsClass(REFCLSID
,LPCLSID
);
130 WINOLEAPI
CoTreatAsClass(REFCLSID
,REFCLSID
);
131 typedef HRESULT (STDAPICALLTYPE
*LPFNGETCLASSOBJECT
)(REFCLSID
,REFIID
,PVOID
*);
132 typedef HRESULT (STDAPICALLTYPE
*LPFNCANUNLOADNOW
)(void);
133 STDAPI
DllGetClassObject(REFCLSID
,REFIID
,PVOID
*);
134 STDAPI
DllCanUnloadNow(void);
135 WINOLEAPI_(PVOID
) CoTaskMemAlloc(ULONG
);
136 WINOLEAPI_(PVOID
) CoTaskMemRealloc(PVOID
,ULONG
);
137 WINOLEAPI_(void) CoTaskMemFree(PVOID
);
138 WINOLEAPI
CreateDataAdviseHolder(LPDATAADVISEHOLDER
*);
139 WINOLEAPI
CreateDataCache(LPUNKNOWN
,REFCLSID
,REFIID
,PVOID
*);
140 WINOLEAPI
StgCreateDocfile(const OLECHAR
*,DWORD
,DWORD
,IStorage
**);
141 WINOLEAPI
StgCreateDocfileOnILockBytes(ILockBytes
*,DWORD
,DWORD
,IStorage
**);
142 WINOLEAPI
StgOpenStorage(const OLECHAR
*,IStorage
*,DWORD
,SNB
,DWORD
,IStorage
**);
143 WINOLEAPI
StgOpenStorageOnILockBytes(ILockBytes
*,IStorage
*,DWORD
,SNB
,DWORD
,IStorage
**);
144 WINOLEAPI
StgIsStorageFile(const OLECHAR
*);
145 WINOLEAPI
StgIsStorageILockBytes(ILockBytes
*);
146 WINOLEAPI
StgSetTimes(OLECHAR
const*,FILETIME
const*,FILETIME
const*,FILETIME
const*);
147 WINOLEAPI
BindMoniker(LPMONIKER
,DWORD
,REFIID
,PVOID
*);
148 WINOLEAPI
CoGetObject(LPCWSTR
,BIND_OPTS
*,REFIID
,void**);
149 WINOLEAPI
MkParseDisplayName(LPBC
,LPCOLESTR
,ULONG
*,LPMONIKER
*);
150 WINOLEAPI
MonikerRelativePathTo(LPMONIKER
,LPMONIKER
,LPMONIKER
*,BOOL
);
151 WINOLEAPI
MonikerCommonPrefixWith(LPMONIKER
,LPMONIKER
,LPMONIKER
*);
152 WINOLEAPI
CreateBindCtx(DWORD
,LPBC
*);
153 WINOLEAPI
CreateGenericComposite(LPMONIKER
,LPMONIKER
,LPMONIKER
*);
154 WINOLEAPI
GetClassFile (LPCOLESTR
,CLSID
*);
155 WINOLEAPI
CreateFileMoniker(LPCOLESTR
,LPMONIKER
*);
156 WINOLEAPI
CreateItemMoniker(LPCOLESTR
,LPCOLESTR
,LPMONIKER
*);
157 WINOLEAPI
CreateAntiMoniker(LPMONIKER
*);
158 WINOLEAPI
CreatePointerMoniker(LPUNKNOWN
,LPMONIKER
*);
159 WINOLEAPI
GetRunningObjectTable(DWORD
,LPRUNNINGOBJECTTABLE
*);
160 WINOLEAPI
CoInitializeSecurity(PSECURITY_DESCRIPTOR
,LONG
,SOLE_AUTHENTICATION_SERVICE
*, void*,DWORD
,DWORD
,void*,DWORD
,void*);
161 WINOLEAPI
CoGetCallContext(REFIID
,void**);
162 WINOLEAPI
CoQueryProxyBlanket(IUnknown
*, DWORD
*,DWORD
*,OLECHAR
**,DWORD
*,DWORD
*,RPC_AUTH_IDENTITY_HANDLE
*,DWORD
*);
163 WINOLEAPI
CoSetProxyBlanket(IUnknown
*,DWORD
,DWORD
,OLECHAR
*,DWORD
,DWORD
,RPC_AUTH_IDENTITY_HANDLE
, DWORD
);
164 WINOLEAPI
CoCopyProxy(IUnknown
*,IUnknown
**);
165 WINOLEAPI
CoQueryClientBlanket(DWORD
*,DWORD
*,OLECHAR
**, DWORD
*,DWORD
*,RPC_AUTHZ_HANDLE
*,DWORD
*);
166 WINOLEAPI
CoImpersonateClient(void);
167 WINOLEAPI
CoRevertToSelf(void);
168 WINOLEAPI
CoQueryAuthenticationServices(DWORD
*, SOLE_AUTHENTICATION_SERVICE
**);
169 WINOLEAPI
CoSwitchCallContext(IUnknown
*,IUnknown
**);
170 WINOLEAPI
CoGetInstanceFromFile(COSERVERINFO
*, CLSID
*,IUnknown
*,DWORD
,DWORD
,OLECHAR
*,DWORD
,MULTI_QI
*);
171 WINOLEAPI
CoGetInstanceFromIStorage(COSERVERINFO
*,CLSID
*, IUnknown
*,DWORD
,struct IStorage
*, DWORD
,MULTI_QI
*);