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