objidlbase.idl 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. cpp_quote("/**")
  2. cpp_quote(" * This file is part of the mingw-w64 runtime package.")
  3. cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
  4. cpp_quote(" */")
  5. cpp_quote("")
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("")
  8. cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))")
  9. cpp_quote("#define _WIN32_WINNT 0x0600")
  10. cpp_quote("#endif")
  11. cpp_quote("")
  12. cpp_quote("#if (NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))")
  13. cpp_quote("#define _WIN32_WINNT 0x0502")
  14. cpp_quote("#endif")
  15. cpp_quote("")
  16. cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))")
  17. cpp_quote("#define _WIN32_WINNT 0x0501")
  18. cpp_quote("#endif")
  19. #ifndef DO_NO_IMPORTS
  20. cpp_quote("")
  21. import "unknwnbase.idl";
  22. import "wtypesbase.idl";
  23. #endif
  24. cpp_quote("")
  25. cpp_quote("#ifndef _OBJIDLBASE_")
  26. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  27. interface IStream;
  28. interface IEnumString;
  29. interface IMultiQI;
  30. cpp_quote("#endif")
  31. cpp_quote("")
  32. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  33. interface IAsyncManager;
  34. interface ICallFactory;
  35. interface ISynchronize;
  36. cpp_quote("#endif")
  37. cpp_quote("")
  38. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  39. typedef struct _COSERVERINFO {
  40. DWORD dwReserved1;
  41. LPWSTR pwszName;
  42. COAUTHINFO *pAuthInfo;
  43. DWORD dwReserved2;
  44. } COSERVERINFO;
  45. cpp_quote("")
  46. [local, object, uuid (00000003-0000-0000-C000-000000000046)]
  47. interface IMarshal : IUnknown {
  48. typedef [unique] IMarshal *LPMARSHAL;
  49. HRESULT GetUnmarshalClass ([in] REFIID riid,[in, unique] void *pv,[in] DWORD dwDestContext,[in, unique] void *pvDestContext,[in] DWORD mshlflags,[out] CLSID *pCid);
  50. HRESULT GetMarshalSizeMax ([in] REFIID riid,[in, unique] void *pv,[in] DWORD dwDestContext,[in, unique] void *pvDestContext,[in] DWORD mshlflags,[out] DWORD *pSize);
  51. HRESULT MarshalInterface ([in, unique] IStream *pStm,[in] REFIID riid,[in, unique] void *pv,[in] DWORD dwDestContext,[in, unique] void *pvDestContext,[in] DWORD mshlflags);
  52. HRESULT UnmarshalInterface ([in, unique] IStream *pStm,[in] REFIID riid,[out] void **ppv);
  53. HRESULT ReleaseMarshalData ([in, unique] IStream *pStm);
  54. HRESULT DisconnectObject ([in] DWORD dwReserved);
  55. }
  56. cpp_quote("")
  57. [local, object, uuid (ecc8691b-c1db-4dc0-855e-65f6c551af49)]
  58. interface INoMarshal : IUnknown {
  59. }
  60. cpp_quote("")
  61. [local, object, uuid (94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90)]
  62. interface IAgileObject : IUnknown {
  63. }
  64. [local, object, uuid(c03f6a43-65a4-9818-987e-e0b810d2a6f2), pointer_default(unique)]
  65. interface IAgileReference : IUnknown
  66. {
  67. HRESULT Resolve([in] REFIID riid, [out, retval, iid_is(riid)] void **ppv);
  68. }
  69. cpp_quote("#endif")
  70. cpp_quote("")
  71. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  72. [local, object, uuid (000001cf-0000-0000-C000-000000000046)]
  73. interface IMarshal2 : IMarshal {
  74. typedef [unique] IMarshal2 *LPMARSHAL2;
  75. }
  76. cpp_quote("")
  77. [local, object, uuid (00000002-0000-0000-C000-000000000046)]
  78. interface IMalloc : IUnknown {
  79. typedef [unique] IMalloc *LPMALLOC;
  80. cpp_quote("")
  81. void *Alloc ([in] SIZE_T cb);
  82. void *Realloc ([in] void *pv,[in] SIZE_T cb);
  83. void Free ([in] void *pv);
  84. SIZE_T GetSize ([in] void *pv);
  85. int DidAlloc ([in] void *pv);
  86. void HeapMinimize (void);
  87. }
  88. cpp_quote("")
  89. [local, object, uuid (00000018-0000-0000-C000-000000000046)]
  90. interface IStdMarshalInfo : IUnknown {
  91. typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO;
  92. cpp_quote("")
  93. HRESULT GetClassForHandler ([in] DWORD dwDestContext,[in, unique] void *pvDestContext,[out] CLSID *pClsid);
  94. }
  95. cpp_quote("")
  96. [object, local, uuid (00000019-0000-0000-C000-000000000046)]
  97. interface IExternalConnection : IUnknown {
  98. typedef [unique] IExternalConnection *LPEXTERNALCONNECTION;
  99. cpp_quote("")
  100. typedef enum tagEXTCONN {
  101. EXTCONN_STRONG = 0x0001,
  102. EXTCONN_WEAK = 0x0002,
  103. EXTCONN_CALLABLE = 0x0004,
  104. } EXTCONN;
  105. cpp_quote("")
  106. DWORD AddConnection ([in] DWORD extconn,[in] DWORD reserved);
  107. DWORD ReleaseConnection ([in] DWORD extconn,[in] DWORD reserved,[in] BOOL fLastReleaseCloses);
  108. }
  109. cpp_quote("")
  110. typedef [unique] IMultiQI *LPMULTIQI;
  111. cpp_quote("#endif")
  112. cpp_quote("")
  113. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  114. typedef struct tagMULTI_QI {
  115. const IID *pIID;
  116. IUnknown *pItf;
  117. HRESULT hr;
  118. } MULTI_QI;
  119. cpp_quote("")
  120. [object, local, uuid (00000020-0000-0000-C000-000000000046),
  121. async_uuid (000e0020-0000-0000-C000-000000000046)]
  122. interface IMultiQI : IUnknown {
  123. HRESULT QueryMultipleInterfaces ([in] ULONG cMQIs,[in, out] MULTI_QI *pMQIs);
  124. }
  125. cpp_quote("#endif")
  126. cpp_quote("")
  127. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  128. [object, local, uuid (00000021-0000-0000-C000-000000000046)]
  129. interface IInternalUnknown : IUnknown {
  130. HRESULT QueryInternalInterface ([in] REFIID riid,[out] void **ppv);
  131. }
  132. cpp_quote("#endif")
  133. cpp_quote("")
  134. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  135. [object, uuid (00000100-0000-0000-C000-000000000046), pointer_default (unique)]
  136. interface IEnumUnknown : IUnknown {
  137. typedef [unique] IEnumUnknown *LPENUMUNKNOWN;
  138. cpp_quote("")
  139. [local] HRESULT Next ([in] ULONG celt,[out] IUnknown **rgelt,[out] ULONG *pceltFetched);
  140. [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IUnknown **rgelt,[out] ULONG *pceltFetched);
  141. HRESULT Skip ([in] ULONG celt);
  142. HRESULT Reset ();
  143. HRESULT Clone ([out] IEnumUnknown **ppenum);
  144. }
  145. cpp_quote("")
  146. [object, uuid (00000101-0000-0000-C000-000000000046), pointer_default (unique)]
  147. interface IEnumString : IUnknown {
  148. typedef [unique] IEnumString *LPENUMSTRING;
  149. cpp_quote("")
  150. [local] HRESULT Next ([in] ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched);
  151. [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]LPOLESTR *rgelt,[out] ULONG *pceltFetched);
  152. HRESULT Skip ([in] ULONG celt);
  153. HRESULT Reset ();
  154. HRESULT Clone ([out] IEnumString **ppenum);
  155. }
  156. cpp_quote("")
  157. [object, uuid (0c733a30-2a1c-11ce-ade5-00aa0044773d), pointer_default (unique)]
  158. interface ISequentialStream : IUnknown {
  159. [local] HRESULT Read (void *pv,[in] ULONG cb, ULONG *pcbRead);
  160. [call_as (Read)] HRESULT RemoteRead ([out, size_is (cb), length_is (*pcbRead)]byte *pv,[in] ULONG cb,[out] ULONG *pcbRead);
  161. [local] HRESULT Write (void const *pv,[in] ULONG cb, ULONG *pcbWritten);
  162. [call_as (Write)] HRESULT RemoteWrite ([in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
  163. }
  164. cpp_quote("")
  165. [object, uuid (0000000c-0000-0000-C000-000000000046), pointer_default (unique)]
  166. interface IStream : ISequentialStream {
  167. typedef [unique] IStream *LPSTREAM;
  168. cpp_quote("")
  169. typedef struct tagSTATSTG {
  170. LPOLESTR pwcsName;
  171. DWORD type;
  172. ULARGE_INTEGER cbSize;
  173. FILETIME mtime;
  174. FILETIME ctime;
  175. FILETIME atime;
  176. DWORD grfMode;
  177. DWORD grfLocksSupported;
  178. CLSID clsid;
  179. DWORD grfStateBits;
  180. DWORD reserved;
  181. } STATSTG;
  182. cpp_quote("")
  183. typedef enum tagSTGTY {
  184. STGTY_STORAGE = 1,
  185. STGTY_STREAM = 2,
  186. STGTY_LOCKBYTES = 3,
  187. STGTY_PROPERTY = 4
  188. } STGTY;
  189. cpp_quote("")
  190. typedef enum tagSTREAM_SEEK {
  191. STREAM_SEEK_SET = 0,
  192. STREAM_SEEK_CUR = 1,
  193. STREAM_SEEK_END = 2
  194. } STREAM_SEEK;
  195. cpp_quote("")
  196. typedef enum tagLOCKTYPE {
  197. LOCK_WRITE = 1,
  198. LOCK_EXCLUSIVE = 2,
  199. LOCK_ONLYONCE = 4
  200. } LOCKTYPE;
  201. cpp_quote("")
  202. [local] HRESULT Seek ([in] LARGE_INTEGER dlibMove,[in] DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition);
  203. [call_as (Seek)] HRESULT RemoteSeek ([in] LARGE_INTEGER dlibMove,[in] DWORD dwOrigin,[out] ULARGE_INTEGER *plibNewPosition);
  204. HRESULT SetSize ([in] ULARGE_INTEGER libNewSize);
  205. [local] HRESULT CopyTo ([in, unique] IStream *pstm,[in] ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten);
  206. [call_as (CopyTo)] HRESULT RemoteCopyTo ([in, unique] IStream *pstm,[in] ULARGE_INTEGER cb,[out] ULARGE_INTEGER *pcbRead,[out] ULARGE_INTEGER *pcbWritten);
  207. HRESULT Commit ([in] DWORD grfCommitFlags);
  208. HRESULT Revert ();
  209. HRESULT LockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType);
  210. HRESULT UnlockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType);
  211. HRESULT Stat ([out] STATSTG *pstatstg,[in] DWORD grfStatFlag);
  212. HRESULT Clone ([out] IStream **ppstm);
  213. }
  214. cpp_quote("")
  215. [local, object, uuid (D5F56B60-593b-101a-B569-08002b2dbf7a)]
  216. interface IRpcChannelBuffer : IUnknown {
  217. typedef unsigned long RPCOLEDATAREP;
  218. cpp_quote("")
  219. typedef struct tagRPCOLEMESSAGE {
  220. void *reserved1;
  221. RPCOLEDATAREP dataRepresentation;
  222. void *Buffer;
  223. ULONG cbBuffer;
  224. ULONG iMethod;
  225. void *reserved2[5];
  226. ULONG rpcFlags;
  227. } RPCOLEMESSAGE;
  228. cpp_quote("")
  229. typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
  230. cpp_quote("")
  231. HRESULT GetBuffer ([in, out] RPCOLEMESSAGE *pMessage,[in] REFIID riid);
  232. HRESULT SendReceive ([in, out] RPCOLEMESSAGE *pMessage,[out] ULONG *pStatus);
  233. HRESULT FreeBuffer ([in, out] RPCOLEMESSAGE *pMessage);
  234. HRESULT GetDestCtx ([out] DWORD *pdwDestContext,[out] void **ppvDestContext);
  235. HRESULT IsConnected (void);
  236. }
  237. cpp_quote("#endif")
  238. cpp_quote("")
  239. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  240. [local, object, uuid (594f31d0-7f19-11d0-b194-00a0c90dc8bf)]
  241. interface IRpcChannelBuffer2 : IRpcChannelBuffer {
  242. HRESULT GetProtocolVersion ([out] DWORD *pdwVersion);
  243. }
  244. cpp_quote("")
  245. [local, object, uuid (a5029fb6-3c34-11d1-9c99-00c04fb998aa), pointer_default (unique)]
  246. interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2 {
  247. HRESULT Send ([in, out] RPCOLEMESSAGE *pMsg,[in] ISynchronize *pSync,[out] ULONG *pulStatus);
  248. HRESULT Receive ([in, out] RPCOLEMESSAGE *pMsg,[out] ULONG *pulStatus);
  249. HRESULT GetDestCtxEx ([in] RPCOLEMESSAGE *pMsg,[out] DWORD *pdwDestContext,[out] void **ppvDestContext);
  250. };
  251. cpp_quote("")
  252. [local, object, uuid (25b15600-0115-11d0-BF0D-00aa00b8dfd2)]
  253. interface IRpcChannelBuffer3 : IRpcChannelBuffer2 {
  254. HRESULT Send ([in, out] RPCOLEMESSAGE *pMsg,[out] ULONG *pulStatus);
  255. HRESULT Receive ([in, out] RPCOLEMESSAGE *pMsg,[in] ULONG ulSize,[out] ULONG *pulStatus);
  256. HRESULT Cancel ([in, out] RPCOLEMESSAGE *pMsg);
  257. HRESULT GetCallContext ([in] RPCOLEMESSAGE *pMsg,[in] REFIID riid,[out] void **pInterface);
  258. HRESULT GetDestCtxEx ([in] RPCOLEMESSAGE *pMsg,[out] DWORD *pdwDestContext,[out] void **ppvDestContext);
  259. HRESULT GetState ([in] RPCOLEMESSAGE *pMsg,[out] DWORD *pState);
  260. HRESULT RegisterAsync ([in, out] RPCOLEMESSAGE *pMsg,[in] IAsyncManager *pAsyncMgr);
  261. }
  262. cpp_quote("")
  263. [local, object, uuid (58a08519-24c8-4935-b482-3fd823333a4f)]
  264. interface IRpcSyntaxNegotiate : IUnknown {
  265. HRESULT NegotiateSyntax ([in, out] RPCOLEMESSAGE *pMsg);
  266. }
  267. cpp_quote("")
  268. [local, object, uuid (D5F56A34-593b-101a-B569-08002b2dbf7a)]
  269. interface IRpcProxyBuffer : IUnknown {
  270. HRESULT Connect ([in, unique] IRpcChannelBuffer *pRpcChannelBuffer);
  271. void Disconnect (void);
  272. }
  273. cpp_quote("#endif")
  274. cpp_quote("")
  275. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  276. [local, object, uuid (D5F56AFC-593b-101a-B569-08002b2dbf7a)]
  277. interface IRpcStubBuffer : IUnknown {
  278. HRESULT Connect ([in] IUnknown *pUnkServer);
  279. void Disconnect ();
  280. HRESULT Invoke ([in, out] RPCOLEMESSAGE *_prpcmsg,[in] IRpcChannelBuffer *_pRpcChannelBuffer);
  281. IRpcStubBuffer *IsIIDSupported ([in] REFIID riid);
  282. ULONG CountRefs (void);
  283. HRESULT DebugServerQueryInterface ([out] void **ppv);
  284. void DebugServerRelease ([in] void *pv);
  285. }
  286. cpp_quote("")
  287. [local, object, uuid (D5F569D0-593b-101a-B569-08002b2dbf7a)]
  288. interface IPSFactoryBuffer : IUnknown {
  289. HRESULT CreateProxy ([in] IUnknown *pUnkOuter,[in] REFIID riid,[out] IRpcProxyBuffer **ppProxy,[out] void **ppv);
  290. HRESULT CreateStub ([in] REFIID riid,[in, unique] IUnknown *pUnkServer,[out] IRpcStubBuffer **ppStub);
  291. }
  292. cpp_quote("#endif")
  293. cpp_quote("")
  294. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  295. cpp_quote("#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)")
  296. typedef struct SChannelHookCallInfo {
  297. IID iid;
  298. DWORD cbSize;
  299. GUID uCausality;
  300. DWORD dwServerPid;
  301. DWORD iMethod;
  302. void *pObject;
  303. } SChannelHookCallInfo;
  304. cpp_quote("")
  305. [local, object, uuid (1008c4a0-7613-11cf-9af1-0020af6e72f4)]
  306. interface IChannelHook : IUnknown {
  307. void ClientGetSize ([in] REFGUID uExtent,[in] REFIID riid,[out] ULONG *pDataSize);
  308. void ClientFillBuffer ([in] REFGUID uExtent,[in] REFIID riid,[in, out] ULONG *pDataSize,[in] void *pDataBuffer);
  309. void ClientNotify ([in] REFGUID uExtent,[in] REFIID riid,[in] ULONG cbDataSize,[in] void *pDataBuffer,[in] DWORD lDataRep,[in] HRESULT hrFault);
  310. void ServerNotify ([in] REFGUID uExtent,[in] REFIID riid,[in] ULONG cbDataSize,[in] void *pDataBuffer,[in] DWORD lDataRep);
  311. void ServerGetSize ([in] REFGUID uExtent,[in] REFIID riid,[in] HRESULT hrFault,[out] ULONG *pDataSize);
  312. void ServerFillBuffer ([in] REFGUID uExtent,[in] REFIID riid,[in, out] ULONG *pDataSize,[in] void *pDataBuffer,[in] HRESULT hrFault);
  313. };
  314. cpp_quote("#endif")
  315. cpp_quote("#endif")
  316. cpp_quote("")
  317. cpp_quote("#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)")
  318. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  319. [local, object, uuid (0000013d-0000-0000-C000-000000000046)]
  320. interface IClientSecurity : IUnknown {
  321. typedef struct tagSOLE_AUTHENTICATION_SERVICE {
  322. DWORD dwAuthnSvc;
  323. DWORD dwAuthzSvc;
  324. OLECHAR *pPrincipalName;
  325. HRESULT hr;
  326. } SOLE_AUTHENTICATION_SERVICE;
  327. cpp_quote("")
  328. typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
  329. cpp_quote("")
  330. typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  331. EOAC_NONE = 0x0,
  332. EOAC_MUTUAL_AUTH = 0x1,
  333. EOAC_STATIC_CLOAKING = 0x20,
  334. EOAC_DYNAMIC_CLOAKING = 0x40,
  335. EOAC_ANY_AUTHORITY = 0x80,
  336. EOAC_MAKE_FULLSIC = 0x100,
  337. EOAC_DEFAULT = 0x800,
  338. EOAC_SECURE_REFS = 0x2,
  339. EOAC_ACCESS_CONTROL = 0x4,
  340. EOAC_APPID = 0x8,
  341. EOAC_DYNAMIC = 0x10,
  342. EOAC_REQUIRE_FULLSIC = 0x200,
  343. EOAC_AUTO_IMPERSONATE = 0x400,
  344. EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  345. EOAC_DISABLE_AAA = 0x1000
  346. } EOLE_AUTHENTICATION_CAPABILITIES;
  347. cpp_quote("")
  348. const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR *) ((INT_PTR) -1);
  349. const void *COLE_DEFAULT_AUTHINFO = (void *) ((INT_PTR) -1);
  350. cpp_quote("")
  351. typedef struct tagSOLE_AUTHENTICATION_INFO {
  352. DWORD dwAuthnSvc;
  353. DWORD dwAuthzSvc;
  354. void *pAuthInfo;
  355. } SOLE_AUTHENTICATION_INFO,*PSOLE_AUTHENTICATION_INFO;
  356. cpp_quote("")
  357. typedef struct tagSOLE_AUTHENTICATION_LIST {
  358. DWORD cAuthInfo;
  359. SOLE_AUTHENTICATION_INFO *aAuthInfo;
  360. } SOLE_AUTHENTICATION_LIST,*PSOLE_AUTHENTICATION_LIST;
  361. cpp_quote("")
  362. HRESULT QueryBlanket ([in] IUnknown *pProxy,[out] DWORD *pAuthnSvc,[out] DWORD *pAuthzSvc,[out]OLECHAR **pServerPrincName,[out] DWORD *pAuthnLevel,[out] DWORD *pImpLevel,[out] void **pAuthInfo,[out] DWORD *pCapabilites);
  363. HRESULT SetBlanket ([in] IUnknown *pProxy,[in] DWORD dwAuthnSvc,[in] DWORD dwAuthzSvc,[in]OLECHAR *pServerPrincName,[in] DWORD dwAuthnLevel,[in] DWORD dwImpLevel,[in] void *pAuthInfo,[in] DWORD dwCapabilities);
  364. HRESULT CopyProxy ([in] IUnknown *pProxy,[out] IUnknown **ppCopy);
  365. }
  366. cpp_quote("#endif")
  367. cpp_quote("")
  368. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  369. [local, object, uuid (0000013e-0000-0000-C000-000000000046)]
  370. interface IServerSecurity : IUnknown {
  371. HRESULT QueryBlanket ([out] DWORD *pAuthnSvc,[out] DWORD *pAuthzSvc,[out]OLECHAR **pServerPrincName,[out] DWORD *pAuthnLevel,[out] DWORD *pImpLevel,[out] void **pPrivs,[in, out] DWORD *pCapabilities);
  372. HRESULT ImpersonateClient ();
  373. HRESULT RevertToSelf ();
  374. BOOL IsImpersonating ();
  375. }
  376. cpp_quote("")
  377. typedef enum tagRPCOPT_PROPERTIES {
  378. COMBND_RPCTIMEOUT = 0x01,
  379. COMBND_SERVER_LOCALITY = 0x02,
  380. COMBND_RESERVED1 = 0x04
  381. } RPCOPT_PROPERTIES;
  382. cpp_quote("")
  383. typedef enum tagRPCOPT_SERVER_LOCALITY_VALUES {
  384. SERVER_LOCALITY_PROCESS_LOCAL=0,
  385. SERVER_LOCALITY_MACHINE_LOCAL=1,
  386. SERVER_LOCALITY_REMOTE=2
  387. } RPCOPT_SERVER_LOCALITY_VALUES;
  388. cpp_quote("")
  389. [object, local, uuid (00000144-0000-0000-C000-000000000046)]
  390. interface IRpcOptions : IUnknown {
  391. HRESULT Set ([in] IUnknown *pPrx,[in] RPCOPT_PROPERTIES dwProperty,[in] ULONG_PTR dwValue);
  392. HRESULT Query ([in] IUnknown *pPrx,[in] RPCOPT_PROPERTIES dwProperty,[out] ULONG_PTR *pdwValue);
  393. }
  394. cpp_quote("#endif")
  395. cpp_quote("")
  396. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  397. typedef enum tagGLOBALOPT_PROPERTIES {
  398. COMGLB_EXCEPTION_HANDLING = 1,
  399. COMGLB_APPID = 2,
  400. COMGLB_RPC_THREADPOOL_SETTING = 3,
  401. COMGLB_RO_SETTINGS = 4,
  402. COMGLB_UNMARSHALING_POLICY = 5,
  403. } GLOBALOPT_PROPERTIES;
  404. cpp_quote("")
  405. typedef enum tagGLOBALOPT_EH_VALUES {
  406. COMGLB_EXCEPTION_HANDLE=0,
  407. COMGLB_EXCEPTION_DONOT_HANDLE_FATAL=1,
  408. COMGLB_EXCEPTION_DONOT_HANDLE=COMGLB_EXCEPTION_DONOT_HANDLE_FATAL,
  409. COMGLB_EXCEPTION_DONOT_HANDLE_ANY=2
  410. } GLOBALOPT_EH_VALUES;
  411. cpp_quote("")
  412. typedef enum tagGLOBALOPT_RPCTP_VALUES {
  413. COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0,
  414. COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1,
  415. } GLOBALOPT_RPCTP_VALUES;
  416. cpp_quote("")
  417. typedef enum tagGLOBALOPT_RO_FLAGS {
  418. COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1,
  419. COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2,
  420. COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4,
  421. COMGLB_FAST_RUNDOWN = 0x8,
  422. COMGLB_RESERVED1 = 0x10,
  423. COMGLB_RESERVED2 = 0x20,
  424. COMGLB_RESERVED3 = 0x40,
  425. COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80
  426. } GLOBALOPT_RO_FLAGS;
  427. cpp_quote("")
  428. typedef enum tagGLOBALOPT_UNMARSHALING_POLICY_VALUES {
  429. COMGLB_UNMARSHALING_POLICY_NORMAL = 0,
  430. COMGLB_UNMARSHALING_POLICY_STRONG = 1,
  431. COMGLB_UNMARSHALING_POLICY_HYBRID = 2
  432. } GLOBALOPT_UNMARSHALING_POLICY_VALUES;
  433. cpp_quote("")
  434. [object, local, pointer_default (unique), uuid (0000015b-0000-0000-C000-000000000046)]
  435. interface IGlobalOptions : IUnknown {
  436. HRESULT Set ([in] GLOBALOPT_PROPERTIES dwProperty,[in] ULONG_PTR dwValue);
  437. HRESULT Query ([in] GLOBALOPT_PROPERTIES dwProperty,[out] ULONG_PTR *pdwValue);
  438. }
  439. cpp_quote("#endif")
  440. cpp_quote("#endif")
  441. cpp_quote("")
  442. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  443. [uuid (00000022-0000-0000-C000-000000000046), version (1.0), pointer_default (unique), object]
  444. interface ISurrogate : IUnknown {
  445. typedef [unique] ISurrogate *LPSURROGATE;
  446. cpp_quote("")
  447. HRESULT LoadDllServer ([in] REFCLSID Clsid);
  448. HRESULT FreeSurrogate ();
  449. }
  450. cpp_quote("")
  451. [local, object, uuid (00000146-0000-0000-C000-000000000046)]
  452. interface IGlobalInterfaceTable : IUnknown {
  453. typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
  454. cpp_quote("")
  455. HRESULT RegisterInterfaceInGlobal ([in] IUnknown *pUnk,[in] REFIID riid,[out] DWORD *pdwCookie);
  456. HRESULT RevokeInterfaceFromGlobal ([in] DWORD dwCookie);
  457. HRESULT GetInterfaceFromGlobal ([in] DWORD dwCookie,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  458. };
  459. cpp_quote("#endif")
  460. cpp_quote("")
  461. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  462. [object, uuid (00000030-0000-0000-C000-000000000046)]
  463. interface ISynchronize : IUnknown {
  464. HRESULT Wait ([in] DWORD dwFlags,[in] DWORD dwMilliseconds);
  465. HRESULT Signal ();
  466. HRESULT Reset ();
  467. }
  468. cpp_quote("")
  469. [local, object, uuid (00000031-0000-0000-C000-000000000046)]
  470. interface ISynchronizeHandle : IUnknown {
  471. HRESULT GetHandle ([out] HANDLE *ph);
  472. }
  473. cpp_quote("")
  474. [local, object, uuid (00000032-0000-0000-C000-000000000046)]
  475. interface ISynchronizeEvent : ISynchronizeHandle {
  476. HRESULT SetEventHandle ([in] HANDLE *ph);
  477. }
  478. cpp_quote("")
  479. [local, object, uuid (00000033-0000-0000-C000-000000000046)]
  480. interface ISynchronizeContainer : IUnknown {
  481. HRESULT AddSynchronize ([in] ISynchronize *pSync);
  482. HRESULT WaitMultiple ([in] DWORD dwFlags,[in] DWORD dwTimeOut,[out] ISynchronize **ppSync);
  483. }
  484. cpp_quote("")
  485. [local, object, uuid (00000025-0000-0000-C000-000000000046)]
  486. interface ISynchronizeMutex : ISynchronize {
  487. HRESULT ReleaseMutex ();
  488. }
  489. cpp_quote("")
  490. [local, object, uuid (00000029-0000-0000-C000-000000000046)]
  491. interface ICancelMethodCalls : IUnknown {
  492. typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS;
  493. cpp_quote("")
  494. HRESULT Cancel ([in] ULONG ulSeconds);
  495. HRESULT TestCancel (void);
  496. }
  497. cpp_quote("")
  498. [local, object, uuid (0000002a-0000-0000-C000-000000000046)]
  499. interface IAsyncManager : IUnknown {
  500. typedef enum tagDCOM_CALL_STATE {
  501. DCOM_NONE = 0x0,
  502. DCOM_CALL_COMPLETE = 0x1,
  503. DCOM_CALL_CANCELED = 0x2,
  504. } DCOM_CALL_STATE;
  505. cpp_quote("")
  506. HRESULT CompleteCall ([in] HRESULT Result);
  507. HRESULT GetCallContext ([in] REFIID riid,[out] void **pInterface);
  508. HRESULT GetState ([out] ULONG *pulStateFlags);
  509. }
  510. cpp_quote("")
  511. [local, object, uuid (1c733a30-2a1c-11ce-ade5-00aa0044773d), pointer_default (unique)]
  512. interface ICallFactory : IUnknown {
  513. HRESULT CreateCall ([in] REFIID riid,[in] IUnknown *pCtrlUnk,[in] REFIID riid2,[out, iid_is (riid2)] IUnknown **ppv);
  514. }
  515. cpp_quote("")
  516. [uuid (00000149-0000-0000-C000-000000000046), version (0.0), pointer_default (unique), local, object]
  517. interface IRpcHelper : IUnknown {
  518. HRESULT GetDCOMProtocolVersion ([out] DWORD *pComVersion);
  519. HRESULT GetIIDFromOBJREF ([in] void *pObjRef,[out] IID **piid);
  520. }
  521. cpp_quote("")
  522. [local, object, uuid (eb0cb9e8-7996-11d2-872e-0000f8080859),]
  523. interface IReleaseMarshalBuffers : IUnknown {
  524. HRESULT ReleaseMarshalBuffer ([in, out] RPCOLEMESSAGE *pMsg,[in] DWORD dwFlags,[in, unique] IUnknown *pChnl);
  525. }
  526. cpp_quote("")
  527. [local, object, uuid (0000002b-0000-0000-C000-000000000046)]
  528. interface IWaitMultiple : IUnknown {
  529. HRESULT WaitMultiple ([in] DWORD timeout,[out] ISynchronize **pSync);
  530. HRESULT AddSynchronize ([in] ISynchronize *pSync);
  531. }
  532. cpp_quote("")
  533. [local, object, uuid (00000147-0000-0000-C000-000000000046)]
  534. interface IAddrTrackingControl : IUnknown {
  535. typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL;
  536. HRESULT EnableCOMDynamicAddrTracking ();
  537. HRESULT DisableCOMDynamicAddrTracking ();
  538. };
  539. cpp_quote("")
  540. [local, object, uuid (00000148-0000-0000-C000-000000000046)]
  541. interface IAddrExclusionControl : IUnknown {
  542. typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL;
  543. HRESULT GetCurrentAddrExclusionList ([in]REFIID riid,[out, iid_is (riid)]void **ppEnumerator);
  544. HRESULT UpdateAddrExclusionList ([in]IUnknown *pEnumerator);
  545. };
  546. #define NEW_PIPE_INTERFACE(iid, async_iid, name, type) [object, uuid (iid), pointer_default (unique)] interface IPipe##name : IUnknown { HRESULT Pull ([out, size_is (cRequest), length_is (*pcReturned)] type *buf,[in] ULONG cRequest,[out] ULONG *pcReturned); HRESULT Push ([in, size_is (cSent)] type *buf,[in] ULONG cSent); }
  547. cpp_quote("")
  548. NEW_PIPE_INTERFACE (DB2F3ACA-2f86-11d1-8e04-00c04fb9989a, DB2F3ACB-2f86-11d1-8e04-00c04fb9989a, Byte, BYTE)
  549. cpp_quote("")
  550. NEW_PIPE_INTERFACE (DB2F3ACC-2f86-11d1-8e04-00c04fb9989a, DB2F3ACD-2f86-11d1-8e04-00c04fb9989a, Long, LONG)
  551. cpp_quote("")
  552. NEW_PIPE_INTERFACE (DB2F3ACE-2f86-11d1-8e04-00c04fb9989a, DB2F3ACF-2f86-11d1-8e04-00c04fb9989a, Double, DOUBLE)
  553. cpp_quote("")
  554. cpp_quote("#if defined USE_COM_CONTEXT_DEF || defined BUILDTYPE_COMSVCS || defined _COMBASEAPI_ || defined _OLE32_")
  555. cpp_quote("")
  556. typedef DWORD CPFLAGS;
  557. cpp_quote("")
  558. typedef struct tagContextProperty {
  559. GUID policyId;
  560. CPFLAGS flags;
  561. [unique] IUnknown *pUnk;
  562. } ContextProperty;
  563. cpp_quote("")
  564. [local, object, uuid (000001c1-0000-0000-C000-000000000046), pointer_default (unique)]
  565. interface IEnumContextProps : IUnknown {
  566. typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS;
  567. cpp_quote("")
  568. HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]ContextProperty *pContextProperties,[out] ULONG *pceltFetched);
  569. HRESULT Skip ([in] ULONG celt);
  570. HRESULT Reset ();
  571. HRESULT Clone ([out] IEnumContextProps **ppEnumContextProps);
  572. HRESULT Count ([out] ULONG *pcelt);
  573. }
  574. cpp_quote("")
  575. [local, object, uuid (000001c0-0000-0000-C000-000000000046), pointer_default (unique)]
  576. interface IContext : IUnknown {
  577. HRESULT SetProperty ([in] REFGUID rpolicyId,[in] CPFLAGS flags,[in] IUnknown *pUnk);
  578. HRESULT RemoveProperty ([in] REFGUID rPolicyId);
  579. HRESULT GetProperty ([in] REFGUID rGuid,[out] CPFLAGS *pFlags,[out] IUnknown **ppUnk);
  580. HRESULT EnumContextProps ([out] IEnumContextProps **ppEnumContextProps);
  581. }
  582. cpp_quote("#endif")
  583. cpp_quote("#endif")
  584. cpp_quote("")
  585. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  586. typedef enum _APTTYPEQUALIFIER {
  587. APTTYPEQUALIFIER_NONE = 0,
  588. APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
  589. APTTYPEQUALIFIER_NA_ON_MTA = 2,
  590. APTTYPEQUALIFIER_NA_ON_STA = 3,
  591. APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
  592. APTTYPEQUALIFIER_NA_ON_MAINSTA = 5,
  593. APTTYPEQUALIFIER_APPLICATION_STA = 6,
  594. } APTTYPEQUALIFIER;
  595. cpp_quote("")
  596. typedef enum _APTTYPE {
  597. APTTYPE_CURRENT = -1,
  598. APTTYPE_STA = 0,
  599. APTTYPE_MTA = 1,
  600. APTTYPE_NA = 2,
  601. APTTYPE_MAINSTA = 3
  602. } APTTYPE;
  603. cpp_quote("#endif")
  604. cpp_quote("")
  605. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  606. typedef enum _THDTYPE {
  607. THDTYPE_BLOCKMESSAGES = 0,
  608. THDTYPE_PROCESSMESSAGES = 1
  609. } THDTYPE;
  610. cpp_quote("")
  611. typedef DWORD APARTMENTID;
  612. cpp_quote("")
  613. [local, object, uuid (000001ce-0000-0000-C000-000000000046), pointer_default (unique)]
  614. interface IComThreadingInfo : IUnknown {
  615. HRESULT GetCurrentApartmentType ([out] APTTYPE *pAptType);
  616. HRESULT GetCurrentThreadType ([out] THDTYPE *pThreadType);
  617. HRESULT GetCurrentLogicalThreadId ([out] GUID *pguidLogicalThreadId);
  618. HRESULT SetCurrentLogicalThreadId ([in] REFGUID rguid);
  619. };
  620. cpp_quote("")
  621. [object, pointer_default (unique), uuid (72380d55-8d2b-43a3-8513-2b6ef31434e9)]
  622. interface IProcessInitControl : IUnknown {
  623. HRESULT ResetInitializerTimeout ([in] DWORD dwSecondsRemaining);
  624. };
  625. cpp_quote("")
  626. [object, local, pointer_default (unique), uuid (00000040-0000-0000-C000-000000000046)]
  627. interface IFastRundown : IUnknown {
  628. };
  629. cpp_quote("")
  630. typedef enum CO_MARSHALING_CONTEXT_ATTRIBUTES {
  631. CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0
  632. } CO_MARSHALING_CONTEXT_ATTRIBUTES;
  633. cpp_quote("")
  634. [local, object, uuid (D8F2F5E6-6102-4863-9f26-389a4676efde), pointer_default (unique)]
  635. interface IMarshalingStream : IStream {
  636. HRESULT GetMarshalingContextAttribute ([in] CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,[out] ULONG_PTR *pAttributeValue);
  637. };
  638. cpp_quote("#endif")
  639. cpp_quote("")
  640. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  641. cpp_quote("EXTERN_C const GUID IID_ICallbackWithNoReentrancyToApplicationSTA;")
  642. cpp_quote("#endif")
  643. cpp_quote("#define _OBJIDLBASE_")
  644. cpp_quote("#endif")