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