1 /* Include here to prevent circular dependencies if windows.h
2 not already included */
9 #pragma GCC system_header
15 #define WINOLEAPI STDAPI
16 #define WINOLEAPI_(type) STDAPI_(type)
19 #define LISet32(li,v) ((li).HighPart=(v)<0?-1:0,(li).LowPart=(v))
20 #define ULISet32(li,v) ((li).HighPart=0,(li).LowPart=(v))
21 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER)
22 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
23 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER)
24 #define MARSHALINTERFACE_MIN 500
25 #define CWCSTORAGENAME 32
27 #define STGM_TRANSACTED 0x10000L
28 #define STGM_SIMPLE 0x8000000L
31 #define STGM_READWRITE 2
32 #define STGM_SHARE_DENY_NONE 0x40
33 #define STGM_SHARE_DENY_READ 0x30
34 #define STGM_SHARE_DENY_WRITE 0x20
35 #define STGM_SHARE_EXCLUSIVE 0x10
36 #define STGM_PRIORITY 0x40000L
37 #define STGM_DELETEONRELEASE 0x4000000
38 #define STGM_NOSCRATCH 0x100000
39 #define STGM_CREATE 0x1000
40 #define STGM_CONVERT 0x20000
41 #define STGM_NOSNAPSHOT 0x200000
42 #define STGM_DIRECT_SWMR 0x400000
43 #define STGM_FAILIFTHERE 0
44 #define CWCSTORAGENAME 32
45 #define ASYNC_MODE_COMPATIBILITY 1
46 #define ASYNC_MODE_DEFAULT 0
47 #define STGTY_REPEAT 256
48 #define STG_TOEND 0xFFFFFFFF
49 #define STG_LAYOUT_SEQUENTIAL 0
50 #define STG_LAYOUT_INTERLEAVED 1
51 #define COM_RIGHTS_EXECUTE 1
52 #define COM_RIGHTS_SAFE_FOR_SCRIPTING 2
53 #define STGFMT_STORAGE 0
56 #define STGFMT_DOCFILE 5
57 typedef enum tagREGCLS
{
59 REGCLS_MULTIPLEUSE
= 1,
60 REGCLS_MULTI_SEPARATE
= 2
68 inline BOOL
IsEqualGUID(REFGUID rguid1
, REFGUID rguid2
)
69 { return !memcmp(&rguid1
, &rguid2
, sizeof(GUID
)); }
70 inline BOOL
operator==(const GUID
& guidOne
, const GUID
& guidOther
)
71 { return !memcmp(&guidOne
,&guidOther
,sizeof(GUID
)); }
72 inline BOOL
operator!=(const GUID
& g1
, const GUID
& g2
)
73 { return !(g1
== g2
); }
75 #define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID)))
77 #define IsEqualIID(id1,id2) IsEqualGUID(id1,id2)
78 #define IsEqualCLSID(id1,id2) IsEqualGUID(id1,id2)
81 typedef enum tagCOINIT
{
82 COINIT_APARTMENTTHREADED
= 0x2,
83 COINIT_MULTITHREADED
= 0x0,
84 COINIT_DISABLE_OLE1DDE
= 0x4,
85 COINIT_SPEED_OVER_MEMORY
= 0x8
87 typedef enum tagCOWAIT_FLAGS
89 COWAIT_WAITALL
= 0x01,
90 COWAIT_ALERTABLE
= 0x02
92 typedef enum tagSTDMSHLFLAGS
{
97 typedef struct tagSTGOPTIONS
102 const WCHAR
* pwcsTemplateFile
;
105 WINOLEAPI_(DWORD
) CoBuildVersion(void);
106 WINOLEAPI
CoInitialize(PVOID
);
107 WINOLEAPI
CoInitializeEx(LPVOID
,DWORD
);
108 WINOLEAPI_(void) CoUninitialize(void);
109 WINOLEAPI
CoGetMalloc(DWORD
,LPMALLOC
*);
110 WINOLEAPI_(DWORD
) CoGetCurrentProcess(void);
111 WINOLEAPI
CoRegisterMallocSpy(LPMALLOCSPY
);
112 WINOLEAPI
CoRevokeMallocSpy(void);
113 WINOLEAPI
CoCreateStandardMalloc(DWORD
,IMalloc
**);
115 WINOLEAPI_(ULONG
) DebugCoGetRpcFault(void);
116 WINOLEAPI_(void) DebugCoSetRpcFault(ULONG
);
118 WINOLEAPI
CoGetClassObject(REFCLSID
,DWORD
,COSERVERINFO
*,REFIID
,PVOID
*);
119 WINOLEAPI
CoRegisterClassObject(REFCLSID
,LPUNKNOWN
,DWORD
,DWORD
,PDWORD
);
120 WINOLEAPI
CoRevokeClassObject(DWORD
);
121 WINOLEAPI
CoGetMarshalSizeMax(ULONG
*,REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
);
122 WINOLEAPI
CoMarshalInterface(LPSTREAM
,REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
);
123 WINOLEAPI
CoUnmarshalInterface(LPSTREAM
,REFIID
,PVOID
*);
124 WINOLEAPI
CoMarshalHresult(LPSTREAM
,HRESULT
);
125 WINOLEAPI
CoUnmarshalHresult(LPSTREAM
,HRESULT
*);
126 WINOLEAPI
CoReleaseMarshalData(LPSTREAM
);
127 WINOLEAPI
CoDisconnectObject(LPUNKNOWN
,DWORD
);
128 WINOLEAPI
CoLockObjectExternal(LPUNKNOWN
,BOOL
,BOOL
);
129 WINOLEAPI
CoGetStandardMarshal(REFIID
,LPUNKNOWN
,DWORD
,PVOID
,DWORD
,LPMARSHAL
*);
130 WINOLEAPI
CoGetStdMarshalEx(LPUNKNOWN
,DWORD
,LPUNKNOWN
*);
131 WINOLEAPI_(BOOL
) CoIsHandlerConnected(LPUNKNOWN
);
132 WINOLEAPI_(BOOL
) CoHasStrongExternalConnections(LPUNKNOWN
);
133 WINOLEAPI
CoMarshalInterThreadInterfaceInStream(REFIID
,LPUNKNOWN
,LPSTREAM
*);
134 WINOLEAPI
CoGetInterfaceAndReleaseStream(LPSTREAM
,REFIID
,PVOID
*);
135 WINOLEAPI
CoCreateFreeThreadedMarshaler(LPUNKNOWN
,LPUNKNOWN
*);
136 WINOLEAPI_(HINSTANCE
) CoLoadLibrary(LPOLESTR
,BOOL
);
137 WINOLEAPI_(void) CoFreeLibrary(HINSTANCE
);
138 WINOLEAPI_(void) CoFreeAllLibraries(void);
139 WINOLEAPI_(void) CoFreeUnusedLibraries(void);
140 WINOLEAPI
CoCreateInstance(REFCLSID
,LPUNKNOWN
,DWORD
,REFIID
,PVOID
*);
141 WINOLEAPI
CoCreateInstanceEx(REFCLSID
,IUnknown
*,DWORD
,COSERVERINFO
*,DWORD
,MULTI_QI
*);
142 WINOLEAPI
StringFromCLSID(REFCLSID
,LPOLESTR
*);
143 WINOLEAPI
CLSIDFromString(LPOLESTR
,LPCLSID
);
144 WINOLEAPI
StringFromIID(REFIID
,LPOLESTR
*);
145 WINOLEAPI
IIDFromString(LPOLESTR
,LPIID
);
146 WINOLEAPI_(BOOL
) CoIsOle1Class(REFCLSID
);
147 WINOLEAPI
ProgIDFromCLSID(REFCLSID
,LPOLESTR
*);
148 WINOLEAPI
CLSIDFromProgID(LPCOLESTR
,LPCLSID
);
149 WINOLEAPI_(int) StringFromGUID2(REFGUID
,LPOLESTR
,int);
150 WINOLEAPI
CoCreateGuid(GUID
*);
151 WINOLEAPI_(BOOL
) CoFileTimeToDosDateTime(FILETIME
*,LPWORD
,LPWORD
);
152 WINOLEAPI_(BOOL
) CoDosDateTimeToFileTime(WORD
,WORD
,FILETIME
*);
153 WINOLEAPI
CoFileTimeNow(FILETIME
*);
154 WINOLEAPI
CoRegisterMessageFilter(LPMESSAGEFILTER
,LPMESSAGEFILTER
*);
155 WINOLEAPI
CoGetTreatAsClass(REFCLSID
,LPCLSID
);
156 WINOLEAPI
CoTreatAsClass(REFCLSID
,REFCLSID
);
157 typedef HRESULT (STDAPICALLTYPE
*LPFNGETCLASSOBJECT
)(REFCLSID
,REFIID
,PVOID
*);
158 typedef HRESULT (STDAPICALLTYPE
*LPFNCANUNLOADNOW
)(void);
159 STDAPI
DllGetClassObject(REFCLSID
,REFIID
,PVOID
*);
160 STDAPI
DllCanUnloadNow(void);
161 WINOLEAPI_(PVOID
) CoTaskMemAlloc(ULONG
);
162 WINOLEAPI_(PVOID
) CoTaskMemRealloc(PVOID
,ULONG
);
163 WINOLEAPI_(void) CoTaskMemFree(PVOID
);
164 WINOLEAPI
CreateDataAdviseHolder(LPDATAADVISEHOLDER
*);
165 WINOLEAPI
CreateDataCache(LPUNKNOWN
,REFCLSID
,REFIID
,PVOID
*);
166 WINOLEAPI
StgCreateDocfile(const OLECHAR
*,DWORD
,DWORD
,IStorage
**);
167 WINOLEAPI
StgCreateDocfileOnILockBytes(ILockBytes
*,DWORD
,DWORD
,IStorage
**);
168 WINOLEAPI
StgCreateStorageEx(const WCHAR
*,DWORD
,DWORD
,DWORD
,STGOPTIONS
*,void*,REFIID
,void**);
169 WINOLEAPI
StgOpenStorage(const OLECHAR
*,IStorage
*,DWORD
,SNB
,DWORD
,IStorage
**);
170 WINOLEAPI
StgOpenStorageOnILockBytes(ILockBytes
*,IStorage
*,DWORD
,SNB
,DWORD
,IStorage
**);
171 WINOLEAPI
StgIsStorageFile(const OLECHAR
*);
172 WINOLEAPI
StgIsStorageILockBytes(ILockBytes
*);
173 WINOLEAPI
StgSetTimes(OLECHAR
const*,FILETIME
const*,FILETIME
const*,FILETIME
const*);
174 WINOLEAPI
BindMoniker(LPMONIKER
,DWORD
,REFIID
,PVOID
*);
175 WINOLEAPI
CoGetObject(LPCWSTR
,BIND_OPTS
*,REFIID
,void**);
176 WINOLEAPI
MkParseDisplayName(LPBC
,LPCOLESTR
,ULONG
*,LPMONIKER
*);
177 WINOLEAPI
MonikerRelativePathTo(LPMONIKER
,LPMONIKER
,LPMONIKER
*,BOOL
);
178 WINOLEAPI
MonikerCommonPrefixWith(LPMONIKER
,LPMONIKER
,LPMONIKER
*);
179 WINOLEAPI
CreateBindCtx(DWORD
,LPBC
*);
180 WINOLEAPI
CreateGenericComposite(LPMONIKER
,LPMONIKER
,LPMONIKER
*);
181 WINOLEAPI
GetClassFile (LPCOLESTR
,CLSID
*);
182 WINOLEAPI
CreateFileMoniker(LPCOLESTR
,LPMONIKER
*);
183 WINOLEAPI
CreateItemMoniker(LPCOLESTR
,LPCOLESTR
,LPMONIKER
*);
184 WINOLEAPI
CreateAntiMoniker(LPMONIKER
*);
185 WINOLEAPI
CreatePointerMoniker(LPUNKNOWN
,LPMONIKER
*);
186 WINOLEAPI
GetRunningObjectTable(DWORD
,LPRUNNINGOBJECTTABLE
*);
187 WINOLEAPI
CoInitializeSecurity(PSECURITY_DESCRIPTOR
,LONG
,SOLE_AUTHENTICATION_SERVICE
*, void*,DWORD
,DWORD
,void*,DWORD
,void*);
188 WINOLEAPI
CoGetCallContext(REFIID
,void**);
189 WINOLEAPI
CoQueryProxyBlanket(IUnknown
*, DWORD
*,DWORD
*,OLECHAR
**,DWORD
*,DWORD
*,RPC_AUTH_IDENTITY_HANDLE
*,DWORD
*);
190 WINOLEAPI
CoSetProxyBlanket(IUnknown
*,DWORD
,DWORD
,OLECHAR
*,DWORD
,DWORD
,RPC_AUTH_IDENTITY_HANDLE
, DWORD
);
191 WINOLEAPI
CoCopyProxy(IUnknown
*,IUnknown
**);
192 WINOLEAPI
CoQueryClientBlanket(DWORD
*,DWORD
*,OLECHAR
**, DWORD
*,DWORD
*,RPC_AUTHZ_HANDLE
*,DWORD
*);
193 WINOLEAPI
CoImpersonateClient(void);
194 WINOLEAPI
CoRevertToSelf(void);
195 WINOLEAPI
CoQueryAuthenticationServices(DWORD
*, SOLE_AUTHENTICATION_SERVICE
**);
196 WINOLEAPI
CoSwitchCallContext(IUnknown
*,IUnknown
**);
197 WINOLEAPI
CoGetInstanceFromFile(COSERVERINFO
*, CLSID
*,IUnknown
*,DWORD
,DWORD
,OLECHAR
*,DWORD
,MULTI_QI
*);
198 WINOLEAPI
CoGetInstanceFromIStorage(COSERVERINFO
*,CLSID
*, IUnknown
*,DWORD
,struct IStorage
*, DWORD
,MULTI_QI
*);
199 WINOLEAPI_(ULONG
) CoAddRefServerProcess(void);
200 WINOLEAPI_(ULONG
) CoReleaseServerProcess(void);
201 WINOLEAPI
CoResumeClassObjects(void);
202 WINOLEAPI
CoSuspendClassObjects(void);
203 WINOLEAPI
CoGetPSClsid(REFIID
,CLSID
*);
204 WINOLEAPI
CoRegisterPSClsid(REFIID
,REFCLSID
);
205 WINOLEAPI
CoWaitForMultipleHandles(DWORD dwFlags
,DWORD dwTimeout
,ULONG cHandles
,const HANDLE
* pHandles
,LPDWORD lpdwindex
);