| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| use ctypes::{c_int, c_void}; |
| use shared::basetsd::{SIZE_T, ULONG_PTR}; |
| use shared::guiddef::{CLSID, GUID, IID, REFCLSID, REFGUID, REFIID}; |
| use shared::minwindef::{BOOL, BYTE, DWORD, FILETIME, ULONG}; |
| use shared::wtypesbase::{COAUTHINFO, DOUBLE, LPOLESTR, OLECHAR}; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER, LONG, LPWSTR, ULARGE_INTEGER}; |
| STRUCT!{struct COSERVERINFO { |
| dwReserved1: DWORD, |
| pwszName: LPWSTR, |
| pAuthInfo: *mut COAUTHINFO, |
| dwReserved2: DWORD, |
| }} |
| pub type LPMARSHAL = *mut IMarshal; |
| RIDL!{#[uuid(0x00000003, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMarshal(IMarshalVtbl): IUnknown(IUnknownVtbl) { |
| fn GetUnmarshalClass( |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| pCid: *mut CLSID, |
| ) -> HRESULT, |
| fn GetMarshalSizeMax( |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| pSize: *mut DWORD, |
| ) -> HRESULT, |
| fn MarshalInterface( |
| pStm: *mut IStream, |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| ) -> HRESULT, |
| fn UnmarshalInterface( |
| pStm: *mut IStream, |
| riid: REFIID, |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| fn ReleaseMarshalData( |
| pStm: *mut IStream, |
| ) -> HRESULT, |
| fn DisconnectObject( |
| dwReserved: DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xecc8691b, 0xc1db, 0x4dc0, 0x85, 0x5e, 0x65, 0xf6, 0xc5, 0x51, 0xaf, 0x49)] |
| interface INoMarshal(INoMarshalVtbl): IUnknown(IUnknownVtbl) {}} |
| RIDL!{#[uuid(0x94ea2b94, 0xe9cc, 0x49e0, 0xc0, 0xff, 0xee, 0x64, 0xca, 0x8f, 0x5b, 0x90)] |
| interface IAgileObject(IAgileObjectVtbl): IUnknown(IUnknownVtbl) {}} |
| ENUM!{enum ACTIVATIONTYPE { |
| ACTIVATIONTYPE_UNCATEGORIZED = 0, |
| ACTIVATIONTYPE_FROM_MONIKER = 0x1, |
| ACTIVATIONTYPE_FROM_DATA = 0x2, |
| ACTIVATIONTYPE_FROM_STORAGE = 0x4, |
| ACTIVATIONTYPE_FROM_STREAM = 0x8, |
| ACTIVATIONTYPE_FROM_FILE = 0x10, |
| }} |
| RIDL!{#[uuid(0x00000017, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IActivationFilter(IActivationFilterVtbl): IUnknown(IUnknownVtbl) { |
| fn HandleActivation( |
| dwActivationType: DWORD, |
| rclsid: REFCLSID, |
| pReplacementClsId: *mut CLSID, |
| ) -> HRESULT, |
| }} |
| pub type LPMARSHAL2 = *mut IMarshal2; |
| RIDL!{#[uuid(0x000001cf, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMarshal2(IMarshal2Vtbl): IMarshal(IMarshalVtbl) {}} |
| pub type LPMALLOC = *mut IMalloc; |
| RIDL!{#[uuid(0x00000002, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMalloc(IMallocVtbl): IUnknown(IUnknownVtbl) { |
| fn Alloc( |
| cb: SIZE_T, |
| ) -> *mut c_void, |
| fn Realloc( |
| pv: *mut c_void, |
| cb: SIZE_T, |
| ) -> *mut c_void, |
| fn Free( |
| pv: *mut c_void, |
| ) -> (), |
| fn GetSize( |
| pv: *mut c_void, |
| ) -> SIZE_T, |
| fn DidAlloc( |
| pv: *mut c_void, |
| ) -> c_int, |
| fn HeapMinimize() -> (), |
| }} |
| pub type LPSTDMARSHALINFO = IStdMarshalInfo; |
| RIDL!{#[uuid(0x00000018, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IStdMarshalInfo(IStdMarshalInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetClassForHandler( |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| pClsid: *mut CLSID, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum EXTCONN { |
| EXTCONN_STRONG = 0x1, |
| EXTCONN_WEAK = 0x2, |
| EXTCONN_CALLABLE = 0x4, |
| }} |
| RIDL!{#[uuid(0x00000019, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IExternalConnection(IExternalConnectionVtbl): IUnknown(IUnknownVtbl) { |
| fn AddConnection( |
| extconn: DWORD, |
| reserved: DWORD, |
| ) -> DWORD, |
| fn ReleaseConnection( |
| extconn: DWORD, |
| reserved: DWORD, |
| fLastReleaseCloses: BOOL, |
| ) -> DWORD, |
| }} |
| pub type LPMULTIQI = *mut IMultiQI; |
| STRUCT!{struct MULTI_QI { |
| pIID: *const IID, |
| pItf: *mut IUnknown, |
| hr: HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000020, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMultiQI(IMultiQIVtbl): IUnknown(IUnknownVtbl) { |
| fn QueryMultipleInterfaces( |
| cMQIs: ULONG, |
| pMQIs: *mut MULTI_QI, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x000e0020, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface AsyncIMultiQI(AsyncIMultiQIVtbl): IUnknown(IUnknownVtbl) { |
| fn Begin_QueryMultipleInterfaces( |
| cMQIs: ULONG, |
| pMQIs: *mut MULTI_QI, |
| ) -> HRESULT, |
| fn Finish_QueryMultipleInterfaces( |
| pMQIs: *mut MULTI_QI, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000021, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IInternalUnknown(IInternalUnknownVtbl): IUnknown(IUnknownVtbl) { |
| fn QueryInternalInterface( |
| riid: REFIID, |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000100, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumUnknown(IEnumUnknownVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut *mut IUnknown, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumUnknown, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000101, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumString(IEnumStringVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut LPOLESTR, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumString, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x0c733a30, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d)] |
| interface ISequentialStream(ISequentialStreamVtbl): IUnknown(IUnknownVtbl) { |
| fn Read( |
| pv: *mut c_void, |
| cb: ULONG, |
| pcbRead: *mut ULONG, |
| ) -> HRESULT, |
| fn Write( |
| pv: *const c_void, |
| cb: ULONG, |
| pcbWritten: *mut ULONG, |
| ) -> HRESULT, |
| }} |
| STRUCT!{struct STATSTG { |
| pwcsName: LPOLESTR, |
| type_: DWORD, |
| cbSize: ULARGE_INTEGER, |
| mtime: FILETIME, |
| ctime: FILETIME, |
| atime: FILETIME, |
| grfMode: DWORD, |
| grfLocksSupported: DWORD, |
| clsid: CLSID, |
| grfStateBits: DWORD, |
| reserved: DWORD, |
| }} |
| ENUM!{enum STGTY { |
| STGTY_STORAGE = 1, |
| STGTY_STREAM = 2, |
| STGTY_LOCKBYTES = 3, |
| STGTY_PROPERTY = 4, |
| }} |
| ENUM!{enum STREAM_SEEK { |
| STREAM_SEEK_SET = 0, |
| STREAM_SEEK_CUR = 1, |
| STREAM_SEEK_END = 2, |
| }} |
| ENUM!{enum LOCKTYPE { |
| LOCK_WRITE = 1, |
| LOCK_EXCLUSIVE = 2, |
| LOCK_ONLYONCE = 4, |
| }} |
| pub type LPSTREAM = *mut IStream; |
| RIDL!{#[uuid(0x0000000c, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IStream(IStreamVtbl): ISequentialStream(ISequentialStreamVtbl) { |
| fn Seek( |
| dlibMove: LARGE_INTEGER, |
| dwOrigin: DWORD, |
| plibNewPosition: *mut ULARGE_INTEGER, |
| ) -> HRESULT, |
| fn SetSize( |
| libNewSize: ULARGE_INTEGER, |
| ) -> HRESULT, |
| fn CopyTo( |
| pstm: *mut IStream, |
| cb: ULARGE_INTEGER, |
| pcbRead: *mut ULARGE_INTEGER, |
| pcbWritten: *mut ULARGE_INTEGER, |
| ) -> HRESULT, |
| fn Commit( |
| grfCommitFlags: DWORD, |
| ) -> HRESULT, |
| fn Revert() -> HRESULT, |
| fn LockRegion( |
| libOffset: ULARGE_INTEGER, |
| cb: ULARGE_INTEGER, |
| dwLockType: DWORD, |
| ) -> HRESULT, |
| fn UnlockRegion( |
| libOffset: ULARGE_INTEGER, |
| cb: ULARGE_INTEGER, |
| dwLockType: DWORD, |
| ) -> HRESULT, |
| fn Stat( |
| pstatstg: *mut STATSTG, |
| grfStatFlag: DWORD, |
| ) -> HRESULT, |
| fn Clone( |
| ppstm: *mut *mut IStream, |
| ) -> HRESULT, |
| }} |
| pub type RPCOLEDATAREP = ULONG; |
| STRUCT!{struct RPCOLEMESSAGE { |
| reserved1: *mut c_void, |
| dataRepresentation: RPCOLEDATAREP, |
| Buffer: *mut c_void, |
| cbBuffer: ULONG, |
| iMethod: ULONG, |
| reserved2: [*mut c_void; 5], |
| rpcFlags: ULONG, |
| }} |
| pub type PRPCOLEMESSAGE = *mut RPCOLEMESSAGE; |
| RIDL!{#[uuid(0xd5f56b60, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a)] |
| interface IRpcChannelBuffer(IRpcChannelBufferVtbl): IUnknown(IUnknownVtbl) { |
| fn GetBuffer( |
| pMessage: *mut RPCOLEMESSAGE, |
| riid: REFIID, |
| ) -> HRESULT, |
| fn SendReceive( |
| pMessage: *mut RPCOLEMESSAGE, |
| pStatus: *mut ULONG, |
| ) -> HRESULT, |
| fn FreeBuffer( |
| pMessage: *mut RPCOLEMESSAGE, |
| ) -> HRESULT, |
| fn GetDestCtx( |
| pdwDestContext: *mut DWORD, |
| ppvDestContext: *mut *mut c_void, |
| ) -> HRESULT, |
| fn IsConnected() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x594f31d0, 0x7f19, 0x11d0, 0xb1, 0x94, 0x00, 0xa0, 0xc9, 0x0d, 0xc8, 0xbf)] |
| interface IRpcChannelBuffer2(IRpcChannelBuffer2Vtbl): IRpcChannelBuffer(IRpcChannelBufferVtbl) { |
| fn GetProtocolVersion( |
| pdwVersion: *mut DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xa5029fb6, 0x3c34, 0x11d1, 0x9c, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0xaa)] |
| interface IAsyncRpcChannelBuffer(IAsyncRpcChannelBufferVtbl): |
| IRpcChannelBuffer2(IRpcChannelBuffer2Vtbl) { |
| fn Send( |
| pMsg: *mut RPCOLEMESSAGE, |
| pSync: *mut ISynchronize, |
| pulStatus: *mut ULONG, |
| ) -> HRESULT, |
| fn Receive( |
| pMsg: *mut RPCOLEMESSAGE, |
| pulStatus: *mut ULONG, |
| ) -> HRESULT, |
| fn GetDestCtxEx( |
| pMsg: *mut RPCOLEMESSAGE, |
| pdwDestContext: *mut DWORD, |
| ppvDestContext: *mut *mut c_void, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x25b15600, 0x0115, 0x11d0, 0xbf, 0x0d, 0x00, 0xaa, 0x00, 0xb8, 0xdf, 0xd2)] |
| interface IRpcChannelBuffer3(IRpcChannelBuffer3Vtbl): IRpcChannelBuffer2(IRpcChannelBuffer2Vtbl) { |
| fn Send( |
| pMsg: *mut RPCOLEMESSAGE, |
| pulStatus: *mut ULONG, |
| ) -> HRESULT, |
| fn Receive( |
| pMsg: *mut RPCOLEMESSAGE, |
| ulSize: ULONG, |
| pulStatus: *mut ULONG, |
| ) -> HRESULT, |
| fn Cancel( |
| pMsg: *mut RPCOLEMESSAGE, |
| ) -> HRESULT, |
| fn GetCallContext( |
| pMsg: *mut RPCOLEMESSAGE, |
| riid: REFIID, |
| pInterface: *mut *mut c_void, |
| ) -> HRESULT, |
| fn GetDestCtxEx( |
| pMsg: *mut RPCOLEMESSAGE, |
| pdwDestContext: *mut DWORD, |
| ppvDestContext: *mut *mut c_void, |
| ) -> HRESULT, |
| fn GetState( |
| pMsg: *mut RPCOLEMESSAGE, |
| pState: *mut DWORD, |
| ) -> HRESULT, |
| fn RegisterAsync( |
| pMsg: *mut RPCOLEMESSAGE, |
| pAsyncMgr: *mut IAsyncManager, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x58a08519, 0x24c8, 0x4935, 0xb4, 0x82, 0x3f, 0xd8, 0x23, 0x33, 0x3a, 0x4f)] |
| interface IRpcSyntaxNegotiate(IRpcSyntaxNegotiateVtbl): IUnknown(IUnknownVtbl) { |
| fn NegotiateSyntax( |
| pMsg: *mut RPCOLEMESSAGE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xd5f56a34, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a)] |
| interface IRpcProxyBuffer(IRpcProxyBufferVtbl): IUnknown(IUnknownVtbl) { |
| fn Connect( |
| pRpcChannelBuffer: *mut IRpcChannelBuffer, |
| ) -> HRESULT, |
| fn Disconnect() -> (), |
| }} |
| RIDL!{#[uuid(0xd5f56afc, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a)] |
| interface IRpcStubBuffer(IRpcStubBufferVtbl): IUnknown(IUnknownVtbl) { |
| fn Connect( |
| pUnkServer: *mut IUnknown, |
| ) -> HRESULT, |
| fn Disconnect() -> (), |
| fn Invoke( |
| _prpcmsg: *mut RPCOLEMESSAGE, |
| _pRpcChannelBuffer: *mut IRpcChannelBuffer, |
| ) -> HRESULT, |
| fn IsIIDSupported( |
| riid: REFIID, |
| ) -> *mut IRpcStubBuffer, |
| fn CountRefs() -> ULONG, |
| fn DebugServerQueryInterface( |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| fn DebugServerRelease( |
| pv: *mut c_void, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0xd5f569d0, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a)] |
| interface IPSFactoryBuffer(IPSFactoryBufferVtbl): IUnknown(IUnknownVtbl) { |
| fn CreateProxy( |
| pUnkOuter: *mut IUnknown, |
| riid: REFIID, |
| ppProxy: *mut *mut IRpcProxyBuffer, |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| fn CreateStub( |
| riid: REFIID, |
| pUnkServer: *mut *mut IUnknown, |
| ppStub: *mut *mut IRpcStubBuffer, |
| ) -> HRESULT, |
| }} |
| STRUCT!{struct SChannelHookCallInfo { |
| iid: IID, |
| cbSize: DWORD, |
| uCausality: GUID, |
| dwServerPid: DWORD, |
| iMethod: DWORD, |
| pObject: *mut c_void, |
| }} |
| RIDL!{#[uuid(0x1008c4a0, 0x7613, 0x11cf, 0x9a, 0xf1, 0x00, 0x20, 0xaf, 0x6e, 0x72, 0xf4)] |
| interface IChannelHook(IChannelHookVtbl): IUnknown(IUnknownVtbl) { |
| fn ClientGetSize( |
| uExtent: REFGUID, |
| riid: REFIID, |
| pDataSize: *mut ULONG, |
| ) -> (), |
| fn ClientFillBuffer( |
| uExtent: REFGUID, |
| riid: REFIID, |
| pDataSize: *mut ULONG, |
| pDataBuffer: *mut c_void, |
| ) -> (), |
| fn ClientNotify( |
| uExtent: REFGUID, |
| riid: REFIID, |
| cbDataSize: ULONG, |
| pDataBuffer: *mut c_void, |
| lDataRep: DWORD, |
| hrFault: HRESULT, |
| ) -> (), |
| fn ServerNotify( |
| uExtent: REFGUID, |
| riid: REFIID, |
| cbDataSize: ULONG, |
| pDataBuffer: *mut c_void, |
| lDataRep: DWORD, |
| ) -> (), |
| fn ServerGetSize( |
| uExtent: REFGUID, |
| riid: REFIID, |
| hrFault: HRESULT, |
| pDataSize: *mut ULONG, |
| ) -> (), |
| fn ServerFillBuffer( |
| uExtent: REFGUID, |
| riid: REFIID, |
| pDataSize: *mut ULONG, |
| pDataBuffer: *mut c_void, |
| hrFault: HRESULT, |
| ) -> (), |
| }} |
| STRUCT!{struct SOLE_AUTHENTICATION_SERVICE { |
| dwAuthnSvc: DWORD, |
| dwAuthzSvc: DWORD, |
| pPrincipalName: *mut OLECHAR, |
| hr: HRESULT, |
| }} |
| pub type PSOLE_AUTHENTICATION_SERVICE = *mut SOLE_AUTHENTICATION_SERVICE; |
| ENUM!{enum EOLE_AUTHENTICATION_CAPABILITIES { |
| EOAC_NONE = 0, |
| EOAC_MUTUAL_AUTH = 0x1, |
| EOAC_STATIC_CLOAKING = 0x20, |
| EOAC_DYNAMIC_CLOAKING = 0x40, |
| EOAC_ANY_AUTHORITY = 0x80, |
| EOAC_MAKE_FULLSIC = 0x100, |
| EOAC_DEFAULT = 0x800, |
| EOAC_SECURE_REFS = 0x2, |
| EOAC_ACCESS_CONTROL = 0x4, |
| EOAC_APPID = 0x8, |
| EOAC_DYNAMIC = 0x10, |
| EOAC_REQUIRE_FULLSIC = 0x200, |
| EOAC_AUTO_IMPERSONATE = 0x400, |
| EOAC_DISABLE_AAA = 0x1000, |
| EOAC_NO_CUSTOM_MARSHAL = 0x2000, |
| EOAC_RESERVED1 = 0x4000, |
| }} |
| pub const COLE_DEFAULT_PRINCIPAL: *mut OLECHAR = -1isize as *mut OLECHAR; |
| pub const COLE_DEFAULT_AUTHINFO: *mut c_void = -1isize as *mut c_void; |
| STRUCT!{struct SOLE_AUTHENTICATION_INFO { |
| dwAuthnSvc: DWORD, |
| dwAuthzSvc: DWORD, |
| pAuthInfo: *mut c_void, |
| }} |
| pub type PSOLE_AUTHENTICATION_INFO = *mut SOLE_AUTHENTICATION_INFO; |
| STRUCT!{struct SOLE_AUTHENTICATION_LIST { |
| cAuthInfo: DWORD, |
| aAuthInfo: *mut SOLE_AUTHENTICATION_INFO, |
| }} |
| pub type PSOLE_AUTHENTICATION_LIST = *mut SOLE_AUTHENTICATION_LIST; |
| RIDL!{#[uuid(0x0000013d, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IClientSecurity(IClientSecurityVtbl): IUnknown(IUnknownVtbl) { |
| fn QueryBlanket( |
| pProxy: *mut IUnknown, |
| pAuthnSvc: *mut DWORD, |
| pAuthzSvc: *mut DWORD, |
| pServerPrincName: *mut *mut OLECHAR, |
| pAuthnLevel: *mut DWORD, |
| pImpLevel: *mut DWORD, |
| pAuthInfo: *mut *mut c_void, |
| pCapabilities: *mut DWORD, |
| ) -> HRESULT, |
| fn SetBlanket( |
| pProxy: *mut IUnknown, |
| dwAuthnSvc: DWORD, |
| dwAuthzSvc: DWORD, |
| pServerPrincName: *mut OLECHAR, |
| dwAuthnLevel: DWORD, |
| dwImpLevel: DWORD, |
| pAuthInfo: *mut c_void, |
| dwCapabilities: DWORD, |
| ) -> HRESULT, |
| fn CopyProxy( |
| pProxy: *mut IUnknown, |
| ppCopy: *mut *mut IUnknown, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x0000013e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IServerSecurity(IServerSecurityVtbl): IUnknown(IUnknownVtbl) { |
| fn QueryBlanket( |
| pAuthnSvc: *mut DWORD, |
| pAuthzSvc: *mut DWORD, |
| pServerPrincName: *mut *mut OLECHAR, |
| pAuthnLevel: *mut DWORD, |
| pImpLevel: *mut DWORD, |
| pPrivs: *mut *mut c_void, |
| pCapabilities: *mut DWORD, |
| ) -> HRESULT, |
| fn ImpersonateClient() -> HRESULT, |
| fn RevertToSelf() -> HRESULT, |
| fn IsImpersonating() -> BOOL, |
| }} |
| ENUM!{enum RPCOPT_PROPERTIES { |
| COMBND_RPCTIMEOUT = 0x1, |
| COMBND_SERVER_LOCALITY = 0x2, |
| COMBND_RESERVED1 = 0x4, |
| COMBND_RESERVED2 = 0x5, |
| COMBND_RESERVED3 = 0x8, |
| COMBND_RESERVED4 = 0x10, |
| }} |
| ENUM!{enum RPCOPT_SERVER_LOCALITY_VALUES { |
| SERVER_LOCALITY_PROCESS_LOCAL = 0, |
| SERVER_LOCALITY_MACHINE_LOCAL = 1, |
| SERVER_LOCALITY_REMOTE = 2, |
| }} |
| RIDL!{#[uuid(0x00000144, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IRpcOptions(IRpcOptionsVtbl): IUnknown(IUnknownVtbl) { |
| fn Set( |
| pPrx: *mut IUnknown, |
| dwProperty: RPCOPT_PROPERTIES, |
| dwValue: ULONG_PTR, |
| ) -> HRESULT, |
| fn Query( |
| pPrx: *mut IUnknown, |
| dwProperty: RPCOPT_PROPERTIES, |
| pdwValue: *mut ULONG_PTR, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum GLOBALOPT_PROPERTIES { |
| COMGLB_EXCEPTION_HANDLING = 1, |
| COMGLB_APPID = 2, |
| COMGLB_RPC_THREADPOOL_SETTING = 3, |
| COMGLB_RO_SETTINGS = 4, |
| COMGLB_UNMARSHALING_POLICY = 5, |
| COMGLB_PROPERTIES_RESERVED1 = 6, |
| }} |
| ENUM!{enum GLOBALOPT_EH_VALUES { |
| COMGLB_EXCEPTION_HANDLE = 0, |
| COMGLB_EXCEPTION_DONOT_HANDLE_FATAL = 1, |
| COMGLB_EXCEPTION_DONOT_HANDLE = COMGLB_EXCEPTION_DONOT_HANDLE_FATAL, |
| COMGLB_EXCEPTION_DONOT_HANDLE_ANY = 2, |
| }} |
| ENUM!{enum GLOBALOPT_RPCTP_VALUES { |
| COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0, |
| COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1, |
| }} |
| ENUM!{enum GLOBALOPT_RO_FLAGS { |
| COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES = 0x1, |
| COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES = 0x2, |
| COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES = 0x4, |
| COMGLB_FAST_RUNDOWN = 0x8, |
| COMGLB_RESERVED1 = 0x10, |
| COMGLB_RESERVED2 = 0x20, |
| COMGLB_RESERVED3 = 0x40, |
| COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES = 0x80, |
| COMGLB_RESERVED4 = 0x100, |
| COMGLB_RESERVED5 = 0x200, |
| COMGLB_RESERVED6 = 0x400, |
| }} |
| ENUM!{enum GLOBALOPT_UNMARSHALING_POLICY_VALUES { |
| COMGLB_UNMARSHALING_POLICY_NORMAL = 0, |
| COMGLB_UNMARSHALING_POLICY_STRONG = 1, |
| COMGLB_UNMARSHALING_POLICY_HYBRID = 2, |
| }} |
| RIDL!{#[uuid(0x0000015b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IGlobalOptions(IGlobalOptionsVtbl): IUnknown(IUnknownVtbl) { |
| fn Set( |
| dwProperty: GLOBALOPT_PROPERTIES, |
| dwValue: ULONG_PTR, |
| ) -> HRESULT, |
| fn Query( |
| dwProperty: GLOBALOPT_PROPERTIES, |
| pdwValue: *mut ULONG_PTR, |
| ) -> HRESULT, |
| }} |
| pub type LPSURROGATE = *mut ISurrogate; |
| RIDL!{#[uuid(0x00000022, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISurrogate(ISurrogateVtbl): IUnknown(IUnknownVtbl) { |
| fn LoadDllServer( |
| Clsid: REFCLSID, |
| ) -> HRESULT, |
| fn FreeSurrogate() -> HRESULT, |
| }} |
| pub type LPGLOBALINTERFACETABLE = *mut IGlobalInterfaceTable; |
| RIDL!{#[uuid(0x00000146, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IGlobalInterfaceTable(IGlobalInterfaceTableVtbl): IUnknown(IUnknownVtbl) { |
| fn RegisterInterfaceInGlobal( |
| pUnk: *mut IUnknown, |
| riid: REFIID, |
| pdwCookie: *mut DWORD, |
| ) -> HRESULT, |
| fn RevokeInterfaceFromGlobal( |
| dwCookie: DWORD, |
| ) -> HRESULT, |
| fn GetInterfaceFromGlobal( |
| dwCookie: DWORD, |
| riid: REFIID, |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000030, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISynchronize(ISynchronizeVtbl): IUnknown(IUnknownVtbl) { |
| fn Wait( |
| dwFlags: DWORD, |
| dwMilliseconds: DWORD, |
| ) -> HRESULT, |
| fn Signal() -> HRESULT, |
| fn Reset() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000031, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISynchronizeHandle(ISynchronizeHandleVtbl): IUnknown(IUnknownVtbl) { |
| fn GetHandle( |
| ph: *mut HANDLE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000032, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISynchronizeEvent(ISynchronizeEventVtbl): ISynchronizeHandle(ISynchronizeHandleVtbl) { |
| fn SetEventHandle( |
| ph: *mut HANDLE, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000033, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISynchronizeContainer(ISynchronizeContainerVtbl): IUnknown(IUnknownVtbl) { |
| fn AddSynchronize( |
| pSync: *mut ISynchronize, |
| ) -> HRESULT, |
| fn WaitMultiple( |
| dwFlags: DWORD, |
| dwTimeOut: DWORD, |
| ppSync: *mut *mut ISynchronize, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000025, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ISynchronizeMutex(ISynchronizeMutexVtbl): ISynchronize(ISynchronizeVtbl) { |
| fn ReleaseMutex() -> HRESULT, |
| }} |
| pub type LPCANCELMETHODCALLS = *mut ICancelMethodCalls; |
| RIDL!{#[uuid(0x00000029, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ICancelMethodCalls(ICancelMethodCallsVtbl): IUnknown(IUnknownVtbl) { |
| fn Cancel( |
| ulSeconds: ULONG, |
| ) -> HRESULT, |
| fn TestCancel() -> HRESULT, |
| }} |
| ENUM!{enum DCOM_CALL_STATE { |
| DCOM_NONE = 0, |
| DCOM_CALL_COMPLETE = 0x1, |
| DCOM_CALL_CANCELED = 0x2, |
| }} |
| RIDL!{#[uuid(0x0000002a, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IAsyncManager(IAsyncManagerVtbl): IUnknown(IUnknownVtbl) { |
| fn CompleteCall( |
| Result: HRESULT, |
| ) -> HRESULT, |
| fn GetCallContext( |
| riid: REFIID, |
| pInterface: *mut *mut c_void, |
| ) -> HRESULT, |
| fn GetState( |
| pulStateFlags: *mut ULONG, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x1c733a30, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d)] |
| interface ICallFactory(ICallFactoryVtbl): IUnknown(IUnknownVtbl) { |
| fn CreateCall( |
| riid: REFIID, |
| pCtrlUnk: *mut IUnknown, |
| riid2: REFIID, |
| ppv: *mut *mut IUnknown, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000149, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IRpcHelper(IRpcHelperVtbl): IUnknown(IUnknownVtbl) { |
| fn GetDCOMProtocolVersion( |
| pComVersion: *mut DWORD, |
| ) -> HRESULT, |
| fn GetIIDFromOBJREF( |
| pObjRef: *mut c_void, |
| piid: *mut *mut IID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xeb0cb9e8, 0x7996, 0x11d2, 0x87, 0x2e, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x59)] |
| interface IReleaseMarshalBuffers(IReleaseMarshalBuffersVtbl): IUnknown(IUnknownVtbl) { |
| fn ReleaseMarshalBuffer( |
| pMsg: *mut RPCOLEMESSAGE, |
| dwFlags: DWORD, |
| pChnl: *mut IUnknown, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x0000002b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IWaitMultiple(IWaitMultipleVtbl): IUnknown(IUnknownVtbl) { |
| fn WaitMultiple( |
| timeout: DWORD, |
| pSync: *mut *mut ISynchronize, |
| ) -> HRESULT, |
| fn AddSynchronize( |
| pSync: *mut ISynchronize, |
| ) -> HRESULT, |
| }} |
| pub type LPADDRTRACKINGCONTROL = *mut IAddrTrackingControl; |
| RIDL!{#[uuid(0x00000147, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IAddrTrackingControl(IAddrTrackingControlVtbl): IUnknown(IUnknownVtbl) { |
| fn EnableCOMDynamicAddrTracking() -> HRESULT, |
| fn DisableCOMDynamicAddrTracking() -> HRESULT, |
| }} |
| pub type LPADDREXCLUSIONCONTROL = *mut IAddrExclusionControl; |
| RIDL!{#[uuid(0x00000148, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IAddrExclusionControl(IAddrExclusionControlVtbl): IUnknown(IUnknownVtbl) { |
| fn GetCurrentAddrExclusionList( |
| riid: REFIID, |
| ppEnumerator: *mut *mut c_void, |
| ) -> HRESULT, |
| fn UpdateAddrExclusionList( |
| pEnumerator: *mut IUnknown, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3aca, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface IPipeByte(IPipeByteVtbl): IUnknown(IUnknownVtbl) { |
| fn Pull( |
| buf: *mut BYTE, |
| cRequest: ULONG, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Push( |
| buf: *mut BYTE, |
| cSent: ULONG, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3acb, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface AsyncIPipeByte(AsyncIPipeByteVtbl): IUnknown(IUnknownVtbl) { |
| fn Begin_Pull( |
| cRequest: ULONG, |
| ) -> HRESULT, |
| fn Finish_Pull( |
| buf: *mut BYTE, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Begin_Push( |
| buf: *mut BYTE, |
| cSent: ULONG, |
| ) -> HRESULT, |
| fn Finish_Push() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3acc, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface IPipeLong(IPipeLongVtbl): IUnknown(IUnknownVtbl) { |
| fn Pull( |
| buf: *mut LONG, |
| cRequest: ULONG, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Push( |
| buf: *mut LONG, |
| cSent: ULONG, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3acd, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface AsyncIPipeLong(AsyncIPipeLongVtbl): IUnknown(IUnknownVtbl) { |
| fn Begin_Pull( |
| cRequest: ULONG, |
| ) -> HRESULT, |
| fn Finish_Pull( |
| buf: *mut LONG, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Begin_Push( |
| buf: *mut LONG, |
| cSent: ULONG, |
| ) -> HRESULT, |
| fn Finish_Push() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3ace, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface IPipeDouble(IPipeDoubleVtbl): IUnknown(IUnknownVtbl) { |
| fn Pull( |
| buf: *mut DOUBLE, |
| cRequest: ULONG, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Push( |
| buf: *mut DOUBLE, |
| cSent: ULONG, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xdb2f3acf, 0x2f86, 0x11d1, 0x8e, 0x04, 0x00, 0xc0, 0x4f, 0xb9, 0x98, 0x9a)] |
| interface AsyncIPipeDouble(AsyncIPipeDoubleVtbl): IUnknown(IUnknownVtbl) { |
| fn Begin_Pull( |
| cRequest: ULONG, |
| ) -> HRESULT, |
| fn Finish_Pull( |
| buf: *mut DOUBLE, |
| pcReturned: *mut ULONG, |
| ) -> HRESULT, |
| fn Begin_Push( |
| buf: *mut DOUBLE, |
| cSent: ULONG, |
| ) -> HRESULT, |
| fn Finish_Push() -> HRESULT, |
| }} |
| pub type CPFLAGS = DWORD; |
| STRUCT!{struct ContextProperty { |
| policyId: GUID, |
| flags: CPFLAGS, |
| pUnk: *mut IUnknown, |
| }} |
| pub type LPENUMCONTEXTPROPS = *mut IEnumContextProps; |
| RIDL!{#[uuid(0x000001c1, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumContextProps(IEnumContextPropsVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| pContextProperties: *mut ContextProperty, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppEnumContextProps: *mut *mut IEnumContextProps, |
| ) -> HRESULT, |
| fn Count( |
| pcelt: *mut ULONG, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x000001c0, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IContext(IContextVtbl): IUnknown(IUnknownVtbl) { |
| fn SetProperty( |
| rpolicyId: REFGUID, |
| flags: CPFLAGS, |
| pUnk: *mut IUnknown, |
| ) -> HRESULT, |
| fn RemoveProperty( |
| rPolicyId: REFGUID, |
| ) -> HRESULT, |
| fn GetProperty( |
| policyId: REFGUID, |
| pFlags: *mut CPFLAGS, |
| ppUnk: *mut *mut IUnknown, |
| ) -> HRESULT, |
| fn EnumContextProps( |
| ppEnumContextProps: *mut *mut IEnumContextProps, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x000001c6, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IObjContext(IObjContextVtbl): IContext(IContextVtbl) { |
| fn Reserved1() -> (), |
| fn Reserved2() -> (), |
| fn Reserved3() -> (), |
| fn Reserved4() -> (), |
| fn Reserved5() -> (), |
| fn Reserved6() -> (), |
| fn Reserved7() -> (), |
| }} |
| ENUM!{enum APTTYPEQUALIFIER { |
| APTTYPEQUALIFIER_NONE = 0, |
| APTTYPEQUALIFIER_IMPLICIT_MTA = 1, |
| APTTYPEQUALIFIER_NA_ON_MTA = 2, |
| APTTYPEQUALIFIER_NA_ON_STA = 3, |
| APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4, |
| APTTYPEQUALIFIER_NA_ON_MAINSTA = 5, |
| APTTYPEQUALIFIER_APPLICATION_STA= 6, |
| }} |
| ENUM!{enum APTTYPE { |
| APTTYPE_CURRENT = -1i32 as u32, |
| APTTYPE_STA = 0, |
| APTTYPE_MTA = 1, |
| APTTYPE_NA = 2, |
| APTTYPE_MAINSTA = 3, |
| }} |
| ENUM!{enum THDTYPE { |
| THDTYPE_BLOCKMESSAGES = 0, |
| THDTYPE_PROCESSMESSAGES = 1, |
| }} |
| pub type APARTMENTID = DWORD; |
| RIDL!{#[uuid(0x000001ce, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IComThreadingInfo(IComThreadingInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetCurrentApartmentType( |
| pAptType: *mut APTTYPE, |
| ) -> HRESULT, |
| fn GetCurrentThreadType( |
| pThreadType: *mut THDTYPE, |
| ) -> HRESULT, |
| fn GetCurrentLogicalThreadId( |
| pguidLogicalThreadId: *mut GUID, |
| ) -> HRESULT, |
| fn SetCurrentLogicalThreadId( |
| rguid: REFGUID, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x72380d55, 0x8d2b, 0x43a3, 0x85, 0x13, 0x2b, 0x6e, 0xf3, 0x14, 0x34, 0xe9)] |
| interface IProcessInitControl(IProcessInitControlVtbl): IUnknown(IUnknownVtbl) { |
| fn ResetInitializerTimeout( |
| dwSecondsRemaining: DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00000040, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IFastRundown(IFastRundownVtbl): IUnknown(IUnknownVtbl) {}} |
| ENUM!{enum CO_MARSHALING_CONTEXT_ATTRIBUTES { |
| CO_MARSHALING_SOURCE_IS_APP_CONTAINER = 0, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_1 = 0x80000000, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_2 = 0x80000001, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_3 = 0x80000002, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_4 = 0x80000003, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_5 = 0x80000004, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_6 = 0x80000005, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_7 = 0x80000006, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8 = 0x80000007, |
| CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9 = 0x80000008, |
| }} |
| RIDL!{#[uuid(0xd8f2f5e6, 0x6102, 0x4863, 0x9f, 0x26, 0x38, 0x9a, 0x46, 0x76, 0xef, 0xde)] |
| interface IMarshalingStream(IMarshalingStreamVtbl): IStream(IStreamVtbl) { |
| fn GetMarshalingContextAttribute( |
| attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES, |
| pAttributeValue: *mut ULONG_PTR, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xc03f6a43, 0x65a4, 0x9818, 0x98, 0x7e, 0xe0, 0xb8, 0x10, 0xd2, 0xa6, 0xf2)] |
| interface IAgileReference(IAgileReferenceVtbl): IUnknown(IUnknownVtbl) { |
| fn Resolve( |
| riid: REFIID, |
| ppvObjectReference: *mut *mut c_void, |
| ) -> HRESULT, |
| }} |