Windows SDKs use #include here to import one into the other, so we do the same.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
v2: So this is probably how it should be, at least to match recent Windows SDKs, and to define IAgileObject in the right place.
Supersedes: 193527
include/Makefile.in | 1 + include/objidl.idl | 1217 +--------------------------------------- include/objidlbase.idl | 1198 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 1227 insertions(+), 1189 deletions(-) create mode 100644 include/objidlbase.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 91a02645c33..8621c5a8ff8 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -532,6 +532,7 @@ SOURCES = \ objbase.h \ objectarray.idl \ objidl.idl \ + objidlbase.idl \ objsafe.idl \ objsel.h \ ocidl.idl \ diff --git a/include/objidl.idl b/include/objidl.idl index a86ceb8b1d6..7576a686aeb 100644 --- a/include/objidl.idl +++ b/include/objidl.idl @@ -18,166 +18,18 @@
#ifndef DO_NO_IMPORTS import "unknwn.idl"; +#define DO_NO_IMPORTS +#define OBJIDL_UNDEF_DO_NO_IMPORTS +#endif + +#include "objidlbase.idl" +#ifdef OBJIDL_UNDEF_DO_NO_IMPORTS +#undef DO_NO_IMPORTS #endif
-interface IStream; -interface IEnumString; interface IRunningObjectTable; interface IMoniker; interface IAdviseSink; -interface IAsyncManager; -interface ISynchronize; - -typedef struct _COSERVERINFO { - DWORD dwReserved1; - LPWSTR pwszName; - COAUTHINFO *pAuthInfo; - DWORD dwReserved2; -} COSERVERINFO; - -/******************** Fundamentals ********************/ - -[ - local, - object, - uuid(00000003-0000-0000-C000-000000000046) -] -interface IMarshal : IUnknown -{ - typedef [unique] IMarshal *LPMARSHAL; - - HRESULT GetUnmarshalClass( - [in] REFIID riid, - [in, unique] void *pv, - [in] DWORD dwDestContext, - [in, unique] void *pvDestContext, - [in] DWORD mshlflags, - [out] CLSID *pCid); - - HRESULT GetMarshalSizeMax( - [in] REFIID riid, - [in, unique] void *pv, - [in] DWORD dwDestContext, - [in, unique] void *pvDestContext, - [in] DWORD mshlflags, - [out] DWORD *pSize); - - HRESULT MarshalInterface( - [in, unique] IStream *pStm, - [in] REFIID riid, - [in, unique] void *pv, - [in] DWORD dwDestContext, - [in, unique] void *pvDestContext, - [in] DWORD mshlflags); - - HRESULT UnmarshalInterface( - [in, unique] IStream *pStm, - [in] REFIID riid, - [out] void **ppv); - - HRESULT ReleaseMarshalData( - [in, unique] IStream *pStm); - - HRESULT DisconnectObject( - [in] DWORD dwReserved); -} - -[ - local, - object, - uuid(000001cf-0000-0000-C000-000000000046) -] -interface IMarshal2 : IMarshal -{ - typedef [unique] IMarshal2 *LPMARSHAL2; -} - -[ - local, - object, - uuid(00000018-0000-0000-C000-000000000046) -] -interface IStdMarshalInfo : IUnknown -{ - typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO; - - HRESULT GetClassForHandler( - [in] DWORD dwDestContext, - [in, unique] void *pvDestContext, - [out] CLSID *pClsid); -} - -[ - local, - object, - uuid(00000019-0000-0000-C000-000000000046) -] -interface IExternalConnection : IUnknown -{ - typedef [unique] IExternalConnection *LPEXTERNALCONNECTION; - - typedef enum tagEXTCONN { - EXTCONN_STRONG = 0x0001, - EXTCONN_WEAK = 0x0002, - EXTCONN_CALLABLE = 0x0004 - } EXTCONN; - - DWORD AddConnection( - [in] DWORD extconn, - [in] DWORD reserved); - - DWORD ReleaseConnection( - [in] DWORD extconn, - [in] DWORD reserved, - [in] BOOL fLastReleaseCloses); -} - -[ - local, - object, - uuid(00000020-0000-0000-C000-000000000046) -] -interface IMultiQI : IUnknown -{ - typedef [unique] IMultiQI *LPMULTIQI; - - typedef struct tagMULTI_QI { - const IID *pIID; - IUnknown *pItf; - HRESULT hr; - } MULTI_QI; - - HRESULT QueryMultipleInterfaces( - [in] ULONG cMQIs, - [in, out] MULTI_QI *pMQIs); -} - -[ - local, - object, - uuid(00000002-0000-0000-C000-000000000046) -] -interface IMalloc : IUnknown -{ - typedef [unique] IMalloc *LPMALLOC; - - LPVOID Alloc( - [in] SIZE_T cb); - - LPVOID Realloc( - [in] LPVOID pv, - [in] SIZE_T cb); - - void Free( - [in] LPVOID pv); - - SIZE_T GetSize( - [in] LPVOID pv); - - int DidAlloc(LPVOID pv); - - void HeapMinimize(); -}
[ local, @@ -233,87 +85,6 @@ interface IMallocSpy : IUnknown void PostHeapMinimize(); }
-[ - local, - object, - uuid(00000021-0000-0000-C000-000000000046) -] -interface IInternalUnknown : IUnknown -{ - HRESULT QueryInternalInterface( - [in] REFIID riid, - [out] void **ppv); -} - -[ - object, - uuid(00000100-0000-0000-C000-000000000046), - pointer_default(unique) -] -interface IEnumUnknown : IUnknown -{ - typedef [unique] IEnumUnknown *LPENUMUNKNOWN; - - [local] - HRESULT Next( - [in] ULONG celt, - [out] IUnknown **rgelt, - [out] ULONG *pceltFetched); - - [call_as(Next)] - HRESULT RemoteNext( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] - IUnknown **rgelt, - [out] ULONG *pceltFetched); - - HRESULT Skip( - [in] ULONG celt); - - HRESULT Reset(); - - HRESULT Clone( - [out] IEnumUnknown **ppenum); -} - -[ - object, - uuid(00000022-0000-0000-C000-000000000046), - version(1.0), - pointer_default(unique) -] -interface ISurrogate : IUnknown -{ - typedef [unique] ISurrogate *LPSURROGATE; - - HRESULT LoadDllServer( - [in] REFCLSID Clsid); - HRESULT FreeSurrogate(); -} - -[ - local, - object, - uuid(00000146-0000-0000-C000-000000000046) -] -interface IGlobalInterfaceTable : IUnknown -{ - typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; - - HRESULT RegisterInterfaceInGlobal( - [in] IUnknown *pUnk, - [in] REFIID riid, - [out] DWORD *pdwCookie); - - HRESULT RevokeInterfaceFromGlobal( - [in] DWORD dwCookie); - - HRESULT GetInterfaceFromGlobal( - [in] DWORD dwCookie, - [in] REFIID riid, - [out, iid_is(riid)] void **ppv); -} - /******************** Monikers ********************/
[ @@ -668,38 +439,6 @@ interface IROTData : IUnknown [out] ULONG *pcbData); }
-[ - object, - uuid(00000101-0000-0000-C000-000000000046), - pointer_default(unique) -] -interface IEnumString : IUnknown -{ - typedef [unique] IEnumString *LPENUMSTRING; - - [local] - HRESULT Next( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] - LPOLESTR *rgelt, - [out] ULONG *pceltFetched); - - [call_as(Next)] - HRESULT RemoteNext( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] - LPOLESTR *rgelt, - [out] ULONG *pceltFetched); - - HRESULT Skip( - [in] ULONG celt); - - HRESULT Reset(); - - HRESULT Clone( - [out] IEnumString **ppenum); -} - [ object, uuid(00000140-0000-0000-C000-000000000046) @@ -714,143 +453,6 @@ interface IClassActivator : IUnknown [out, iid_is(riid)] void **ppv); }
-/******************** Storage ********************/ - -[ - object, - uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d), - pointer_default(unique) -] -interface ISequentialStream : IUnknown -{ - [local] - HRESULT Read( - [out, size_is(cb), length_is(*pcbRead)] - void *pv, - [in] ULONG cb, - [out] ULONG *pcbRead); - - [call_as(Read)] - HRESULT RemoteRead( - [out, size_is(cb), length_is(*pcbRead)] - byte *pv, - [in] ULONG cb, - [out] ULONG *pcbRead); - - [local] - HRESULT Write( - [in, size_is(cb)] const void *pv, - [in] ULONG cb, - [out] ULONG *pcbWritten); - - [call_as(Write)] - HRESULT RemoteWrite( - [in, size_is(cb)] const byte *pv, - [in] ULONG cb, - [out] ULONG *pcbWritten); -} - -[ - object, - uuid(0000000c-0000-0000-C000-000000000046), - pointer_default(unique) -] -interface IStream : ISequentialStream -{ - typedef [unique] IStream *LPSTREAM; - - typedef struct tagSTATSTG { - LPOLESTR pwcsName; - DWORD type; - ULARGE_INTEGER cbSize; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD grfMode; - DWORD grfLocksSupported; - CLSID clsid; - DWORD grfStateBits; - DWORD reserved; - } STATSTG; - - typedef enum tagSTGTY { - STGTY_STORAGE = 1, - STGTY_STREAM = 2, - STGTY_LOCKBYTES = 3, - STGTY_PROPERTY = 4 - } STGTY; - - typedef enum tagSTREAM_SEEK { - STREAM_SEEK_SET = 0, - STREAM_SEEK_CUR = 1, - STREAM_SEEK_END = 2 - } STREAM_SEEK; - - /* these are defined in Linux's fcntl.h, - * undefine them to avoid conflicts */ - cpp_quote("#undef LOCK_MAND") - cpp_quote("#undef LOCK_READ") - cpp_quote("#undef LOCK_WRITE") - cpp_quote("#undef LOCK_RW") - - typedef enum tagLOCKTYPE { - LOCK_WRITE = 1, - LOCK_EXCLUSIVE = 2, - LOCK_ONLYONCE = 4 - } LOCKTYPE; - - [local] - HRESULT Seek( - [in] LARGE_INTEGER dlibMove, - [in] DWORD dwOrigin, - [out] ULARGE_INTEGER *plibNewPosition); - - [call_as(Seek)] - HRESULT RemoteSeek( - [in] LARGE_INTEGER dlibMove, - [in] DWORD dwOrigin, - [out] ULARGE_INTEGER *plibNewPosition); - - HRESULT SetSize( - [in] ULARGE_INTEGER libNewSize); - - [local] - HRESULT CopyTo( - [in, unique] IStream *pstm, - [in] ULARGE_INTEGER cb, - [out] ULARGE_INTEGER *pcbRead, - [out] ULARGE_INTEGER *pcbWritten); - - [call_as(CopyTo)] - HRESULT RemoteCopyTo( - [in, unique] IStream *pstm, - [in] ULARGE_INTEGER cb, - [out] ULARGE_INTEGER *pcbRead, - [out] ULARGE_INTEGER *pcbWritten); - - HRESULT Commit( - [in] DWORD grfCommitFlags); - - HRESULT Revert(); - - HRESULT LockRegion( - [in] ULARGE_INTEGER libOffset, - [in] ULARGE_INTEGER cb, - [in] DWORD dwLockType); - - HRESULT UnlockRegion( - [in] ULARGE_INTEGER libOffset, - [in] ULARGE_INTEGER cb, - [in] DWORD dwLockType); - - HRESULT Stat( - [out] STATSTG *pstatstg, - [in] DWORD grfStatFlag); - - HRESULT Clone( - [out] IStream **ppstm); -} - [ object, uuid(0000000d-0000-0000-C000-000000000046), @@ -1689,604 +1291,36 @@ interface IMessageFilter : IUnknown }
[ - local, - object, - uuid(D5F56B60-593B-101A-B569-08002B2DBF7A) + object, + uuid(0e6d4d92-6738-11cf-9608-00aa00680db4) ] -interface IRpcChannelBuffer : IUnknown +interface IDirectWriterLock : IUnknown { - typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER; - - typedef unsigned long RPCOLEDATAREP; - - typedef struct tagRPCOLEMESSAGE { - void *reserved1; - RPCOLEDATAREP dataRepresentation; - void *Buffer; - ULONG cbBuffer; - ULONG iMethod; - void *reserved2[5]; - ULONG rpcFlags; - } RPCOLEMESSAGE; - - typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; - - HRESULT GetBuffer( - [in] RPCOLEMESSAGE *pMessage, - [in] REFIID riid); - - HRESULT SendReceive( - [in,out] RPCOLEMESSAGE *pMessage, - [out] ULONG *pStatus); - - HRESULT FreeBuffer( - [in] RPCOLEMESSAGE *pMessage); + HRESULT WaitForWriteAccess( + [in] DWORD dwTimeout);
- HRESULT GetDestCtx( - [out] DWORD *pdwDestContext, - [out] void **ppvDestContext); + HRESULT ReleaseWriteAccess();
- HRESULT IsConnected(); + HRESULT HaveWriteAccess(); }
[ - local, - object, - uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf) + object, + uuid(00000026-0000-0000-C000-000000000046) ] -interface IRpcChannelBuffer2 : IRpcChannelBuffer +interface IUrlMon : IUnknown { - typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2; - - HRESULT GetProtocolVersion( - [in,out] DWORD *pdwVersion); -} - -[ - local, - object, - uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2) -] -interface IRpcChannelBuffer3 : IRpcChannelBuffer2 -{ - typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3; - - HRESULT Send( - [in,out] RPCOLEMESSAGE *pMsg, - [out] ULONG *pulStatus); - - HRESULT Receive( - [in,out] RPCOLEMESSAGE *pMsg, - [in] ULONG ulSize, - [out] ULONG *pulStatus); - - HRESULT Cancel( - [in] RPCOLEMESSAGE *pMsg); - - HRESULT GetCallContext( - [in] RPCOLEMESSAGE *pMsg, - [in] REFIID riid, - [out] void **pInterface); - - HRESULT GetDestCtxEx( - [in] RPCOLEMESSAGE *pMsg, - [out] DWORD *pdwDestContext, - [out] void **ppvDestContext); - - HRESULT GetState( - [in] RPCOLEMESSAGE *pMsg, - [out] DWORD *pState); - - HRESULT RegisterAsync( - [in] RPCOLEMESSAGE *pMsg, - [in] IAsyncManager *pAsyncMgr); -} - -[ - local, - object, - uuid(a5029fb6-3c34-11d1-9c99-00c04fb998aa), - pointer_default(unique) -] -interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2 -{ - HRESULT Send( - [in, out] RPCOLEMESSAGE *pMsg, - [in] ISynchronize *pSync, - [out] ULONG *pulStatus); - - HRESULT Receive( - [in, out] RPCOLEMESSAGE *pMsg, - [out] ULONG *pulStatus); - - HRESULT GetDestCtxEx( - [in] RPCOLEMESSAGE *pMsg, - [out] DWORD *pdwDestContext, - [out] void **ppvDestContext); -} - -[ - local, - object, - uuid(58a08519-24c8-4935-b482-3fd823333a4f) -] -interface IRpcSyntaxNegotiate : IUnknown -{ - HRESULT NegotiateSyntax( - [in, out] RPCOLEMESSAGE *pMsg); -} - -[ - local, - object, - uuid(D5F56A34-593B-101A-B569-08002B2DBF7A) -] -interface IRpcProxyBuffer : IUnknown -{ - typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER; - - HRESULT Connect( - [in, unique] IRpcChannelBuffer *pRpcChannelBuffer); - - void Disconnect(); -} - -[ - local, - object, - uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A) -] -interface IRpcStubBuffer : IUnknown -{ - typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER; - - HRESULT Connect( - [in] IUnknown *pUnkServer); - - void Disconnect(); - - HRESULT Invoke( - [in] RPCOLEMESSAGE *_prpcmsg, - [in] IRpcChannelBuffer *_pRpcChannelBuffer); - - IRpcStubBuffer *IsIIDSupported( - [in] REFIID riid); - - ULONG CountRefs(); - - HRESULT DebugServerQueryInterface( - void **ppv); - - void DebugServerRelease( - void *pv); -} - -[ - local, - object, - uuid(D5F569D0-593B-101A-B569-08002B2DBF7A) -] -interface IPSFactoryBuffer : IUnknown -{ - typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER; - - HRESULT CreateProxy( - [in] IUnknown *pUnkOuter, - [in] REFIID riid, - [out] IRpcProxyBuffer **ppProxy, - [out] void **ppv); - - HRESULT CreateStub( - [in] REFIID riid, - [in, unique] IUnknown *pUnkServer, - [out] IRpcStubBuffer **ppStub); -} - -[ - local, - object, - uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4) -] -interface IChannelHook : IUnknown -{ - typedef [unique] IChannelHook *LPCHANNELHOOK; - - typedef struct SChannelHookCallInfo { - IID iid; - DWORD cbSize; - GUID uCausality; - DWORD dwServerPid; - DWORD iMethod; - void *pObject; - } SChannelHookCallInfo; - - void ClientGetSize( - [in] REFGUID uExtent, - [in] REFIID riid, - [out] ULONG *pDataSize); - - void ClientFillBuffer( - [in] REFGUID uExtent, - [in] REFIID riid, - [in, out] ULONG *pDataSize, - [in] void *pDataBuffer); - - void ClientNotify( - [in] REFGUID uExtent, - [in] REFIID riid, - [in] ULONG cbDataSize, - [in] void *pDataBuffer, - [in] DWORD lDataRep, - [in] HRESULT hrFault); - - void ServerNotify( - [in] REFGUID uExtent, - [in] REFIID riid, - [in] ULONG cbDataSize, - [in] void *pDataBuffer, - [in] DWORD lDataRep); - - void ServerGetSize( - [in] REFGUID uExtent, - [in] REFIID riid, - [in] HRESULT hrFault, - [out] ULONG *pDataSize); - - void ServerFillBuffer( - [in] REFGUID uExtent, - [in] REFIID riid, - [in, out] ULONG *pDataSize, - [in] void *pDataBuffer, - [in] HRESULT hrFault ); -} - -extern const FMTID FMTID_SummaryInformation; -extern const FMTID FMTID_DocSummaryInformation; -extern const FMTID FMTID_UserDefinedProperties; - - -/******************** Connection Points ********************/ -/* FIXME */ - -/******************** DCOM ********************/ - -[ - local, - object, - uuid(0000013D-0000-0000-C000-000000000046) -] -interface IClientSecurity : IUnknown -{ - typedef struct tagSOLE_AUTHENTICATION_SERVICE { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - OLECHAR *pPrincipalName; - HRESULT hr; - } SOLE_AUTHENTICATION_SERVICE; - - typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; - - typedef struct tagSOLE_AUTHENTICATION_INFO { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - void *pAuthInfo; - } SOLE_AUTHENTICATION_INFO; - - const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR*) -1; - const void *COLE_DEFAULT_AUTHINFO = (void*) -1; - - typedef struct tagSOLE_AUTHENTICATION_LIST { - DWORD cAuthInfo; - SOLE_AUTHENTICATION_INFO *aAuthInfo; - } SOLE_AUTHENTICATION_LIST; - - typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES { - EOAC_NONE = 0x0, - EOAC_MUTUAL_AUTH = 0x1, - EOAC_SECURE_REFS = 0x2, /* CoInitializeSecurity only */ - EOAC_ACCESS_CONTROL = 0x4, /* CoInitializeSecurity only */ - EOAC_APPID = 0x8, /* CoInitializeSecurity only */ - EOAC_DYNAMIC = 0x10, /* CoInitializeSecurity only */ - EOAC_STATIC_CLOAKING = 0x20, - EOAC_DYNAMIC_CLOAKING = 0x40, - EOAC_ANY_AUTHORITY = 0x80, - EOAC_MAKE_FULLSIC = 0x100, - EOAC_REQUIRE_FULLSIC = 0x200, /* CoInitializeSecurity only */ - EOAC_AUTO_IMPERSONATE = 0x400, /* CoInitializeSecurity only */ - EOAC_DEFAULT = 0x800, - EOAC_DISABLE_AAA = 0x1000, /* CoInitializeSecurity only */ - EOAC_NO_CUSTOM_MARSHAL = 0x2000, /* CoInitializeSecurity only */ - } EOLE_AUTHENTICATION_CAPABILITIES; - - 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 *pCapabilities); - - HRESULT SetBlanket( - [in] IUnknown *pProxy, - [in] DWORD AuthnSvc, - [in] DWORD AuthzSvc, - [in] OLECHAR *pServerPrincName, - [in] DWORD AuthnLevel, - [in] DWORD ImpLevel, - [in] void *pAuthInfo, - [in] DWORD Capabilities); - - HRESULT CopyProxy( - [in] IUnknown *pProxy, - [out] IUnknown **ppCopy); -} - -[ - local, - object, - uuid(0000013E-0000-0000-C000-000000000046) -] -interface IServerSecurity : IUnknown -{ - HRESULT QueryBlanket( - [out] DWORD *pAuthnSvc, - [out] DWORD *pAuthzSvc, - [out] OLECHAR **pServerPrincName, - [out] DWORD *pAuthnLevel, - [out] DWORD *pImpLevel, - [out] void **pPrivs, - [out] DWORD *pCapabilities); - - HRESULT ImpersonateClient(); - - HRESULT RevertToSelf(); - - BOOL IsImpersonating(); -} - -[ - local, - object, - uuid(00000024-0000-0000-C000-000000000046) -] -interface IAsyncSetup : IUnknown -{ - HRESULT GetAsyncManager( - [in] REFIID riid, - [in] IUnknown *pOuter, - [in] DWORD dwFlags, - [out] IUnknown **ppInner, - [out] IAsyncManager **ppAsyncMgr); -} - -[ - object, - uuid(0e6d4d92-6738-11cf-9608-00aa00680db4) -] -interface IDirectWriterLock : IUnknown -{ - HRESULT WaitForWriteAccess( - [in] DWORD dwTimeout); - - HRESULT ReleaseWriteAccess(); - - HRESULT HaveWriteAccess(); -} - -[ - object, - uuid(00000030-0000-0000-C000-000000000046) -] - -interface ISynchronize : IUnknown -{ - HRESULT Wait( - [in] DWORD dwFlags, - [in] DWORD dwMilliseconds); - - HRESULT Signal(); - - HRESULT Reset(); -} - - -[ - local, - object, - uuid(00000031-0000-0000-C000-000000000046) -] -interface ISynchronizeHandle : IUnknown -{ - HRESULT GetHandle( - [out] HANDLE *ph); -} - - -[ - local, - object, - uuid(00000032-0000-0000-C000-000000000046) -] -interface ISynchronizeEvent : ISynchronizeHandle -{ - HRESULT SetEventHandle( - [in] HANDLE *ph); -} - - -[ - local, - object, - uuid(00000033-0000-0000-C000-000000000046) -] -interface ISynchronizeContainer : IUnknown -{ - HRESULT AddSynchronize( - [in] ISynchronize *pSync); - - HRESULT WaitMultiple( - [in] DWORD dwFlags, - [in] DWORD dwTimeOut, - [out] ISynchronize **ppSync); -} - -[ - local, - object, - uuid(00000025-0000-0000-C000-000000000046) -] -interface ISynchronizeMutex : ISynchronize -{ - HRESULT ReleaseMutex(); -} - -[ - local, - object, - uuid(00000029-0000-0000-C000-000000000046) -] - -interface ICancelMethodCalls : IUnknown -{ - typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS; - - HRESULT Cancel( - [in] ULONG ulSeconds); - - HRESULT TestCancel(); -} - -[ - local, - object, - uuid(0000002A-0000-0000-C000-000000000046) -] -interface IAsyncManager : IUnknown -{ - typedef enum tagDCOM_CALL_STATE { - DCOM_NONE = 0, - DCOM_CALL_COMPLETE = 1, - DCOM_CALL_CANCELED = 2 - } DCOM_CALL_STATE; - - HRESULT CompleteCall( - [in] HRESULT Result); - - HRESULT GetCallContext( - [in] REFIID riid, - [out] void **pInterface); - - HRESULT GetState( - [out] ULONG *pulStateFlags); -} - -[ - local, - object, - uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d), - pointer_default(unique) -] -interface ICallFactory : IUnknown -{ - HRESULT CreateCall( - [in] REFIID riid, - [in] IUnknown *pCtrlUnk, - [in] REFIID riid2, - [out, iid_is(riid2)] IUnknown **ppv); -} - -[ - local, - object, - uuid(00000144-0000-0000-C000-000000000046) -] -interface IRpcOptions : IUnknown -{ - HRESULT Set( - [in] IUnknown *pPrx, - [in] DWORD dwProperty, - [in] ULONG_PTR dwValue); - - HRESULT Query( - [in] IUnknown *pPrx, - [in] DWORD dwProperty, - [out] ULONG_PTR *pdwValue); -} - -enum { - COMBND_RPCTIMEOUT = 1, - COMBND_SERVER_LOCALITY = 2 -}; - -enum { - SERVER_LOCALITY_PROCESS_LOCAL = 0, - SERVER_LOCALITY_MACHINE_LOCAL = 1, - SERVER_LOCALITY_REMOTE = 2 -}; - -[ - local, - object, - uuid(00000149-0000-0000-C000-000000000046), - pointer_default(unique) -] -interface IRpcHelper : IUnknown -{ - HRESULT GetDCOMProtocolVersion( - [out] DWORD *pComVersion); - - HRESULT GetIIDFromOBJREF( - [in] void *pObjRef, - [out] IID **piid); -} - -[ - local, - object, - uuid(eb0cb9e8-7996-11d2-872e-0000f8080859) -] -interface IReleaseMarshalBuffers : IUnknown -{ - HRESULT ReleaseMarshalBuffer( - [in] RPCOLEMESSAGE *pMsg, - [in] DWORD dwFlags, - [in, unique] IUnknown *pChnl); -} - -[ - local, - object, - uuid(0000002B-0000-0000-C000-000000000046) -] -interface IWaitMultiple : IUnknown -{ - HRESULT WaitMultiple( - [in] DWORD timeout, - [out] ISynchronize **pSync); - HRESULT AddSynchronize( - [in] ISynchronize *pSync); -} - - -[ - object, - uuid(00000026-0000-0000-C000-000000000046) -] -interface IUrlMon : IUnknown -{ - HRESULT AsyncGetClassBits( - [in] REFCLSID rclsid, - [in, unique] LPCWSTR pszTYPE, - [in, unique] LPCWSTR pszExt, - [in] DWORD dwFileVersionMS, - [in] DWORD dwFileVersionLS, - [in, unique] LPCWSTR pszCodeBase, - [in] IBindCtx *pbc, - [in] DWORD dwClassContext, - [in] REFIID riid, - [in] DWORD flags); + HRESULT AsyncGetClassBits( + [in] REFCLSID rclsid, + [in, unique] LPCWSTR pszTYPE, + [in, unique] LPCWSTR pszExt, + [in] DWORD dwFileVersionMS, + [in] DWORD dwFileVersionLS, + [in, unique] LPCWSTR pszCodeBase, + [in] IBindCtx *pbc, + [in] DWORD dwClassContext, + [in] REFIID riid, + [in] DWORD flags); }
[ @@ -2300,87 +1334,6 @@ interface IForegroundTransfer : IUnknown [in] void *lpvReserved); }
-[ - local, - object, - uuid(00000147-0000-0000-C000-000000000046) -] -interface IAddrTrackingControl : IUnknown -{ - typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL; - - HRESULT EnableCOMDynamicAddrTracking(); - HRESULT DisableCOMDynamicAddrTracking(); -} - -[ - local, - object, - uuid(00000148-0000-0000-C000-000000000046) -] -interface IAddrExclusionControl : IUnknown -{ - typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL; - - HRESULT GetCurrentAddrExclusionList( - [in] REFIID riid, - [out, iid_is(riid)] void **ppEnumerator); - HRESULT UpdateAddrExclusionList( - [in] IUnknown *pEnumerator); -} - -typedef enum _APTTYPE { - APTTYPE_CURRENT = -1, - APTTYPE_STA = 0, - APTTYPE_MTA = 1, - APTTYPE_NA = 2, - APTTYPE_MAINSTA = 3 -} APTTYPE; - -typedef enum _APTTYPEQUALIFIER { - APTTYPEQUALIFIER_NONE, - APTTYPEQUALIFIER_IMPLICIT_MTA, - APTTYPEQUALIFIER_NA_ON_MTA, - APTTYPEQUALIFIER_NA_ON_STA, - APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA, - APTTYPEQUALIFIER_NA_ON_MAINSTA -} APTTYPEQUALIFIER; - -typedef enum _THDTYPE { - THDTYPE_BLOCKMESSAGES = 0, - THDTYPE_PROCESSMESSAGES = 1 -} THDTYPE; - -[ - local, - object, - uuid(000001ce-0000-0000-C000-000000000046), - pointer_default(unique) -] -interface IComThreadingInfo : IUnknown -{ - HRESULT GetCurrentApartmentType( - [out] APTTYPE *pAptType); - HRESULT GetCurrentThreadType( - [out] THDTYPE *pThreadType); - HRESULT GetCurrentLogicalThreadId( - [out] GUID *pguidLogicalThreadId); - HRESULT SetCurrentLogicalThreadId( - [in] REFGUID rguid); -} - - -[ - object, - pointer_default(unique), - uuid(72380d55-8d2b-43a3-8513-2b6ef31434e9) -] -interface IProcessInitControl : IUnknown -{ - HRESULT ResetInitializerTimeout( - [in] DWORD dwSecondsRemaining); -} - [ local, object, @@ -2426,40 +1379,6 @@ interface IThumbnailExtractor : IUnknown [in] IStorage *pStg); }
-typedef enum tagGLOBALOPT_PROPERTIES -{ - COMGLB_EXCEPTION_HANDLING = 1, - COMGLB_APPID = 2, - COMGLB_RPC_THREADPOOL_SETTING = 3 -} GLOBALOPT_PROPERTIES; - -typedef enum tagGLOBALOPT_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 -} GLOBALOPT_EH_VALUES; - -typedef enum tagGLOBALOPT_RPCTP_VALUES -{ - COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0, - COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1 -} GLOBALOPT_RPCTP_VALUES; - - -[ - object, - local, - pointer_default(unique), - uuid(0000015B-0000-0000-C000-000000000046) -] -interface IGlobalOptions : IUnknown -{ - HRESULT Set([in] GLOBALOPT_PROPERTIES property, [in] ULONG_PTR value); - HRESULT Query([in] GLOBALOPT_PROPERTIES property, [out ] ULONG_PTR *value); -} - [ object, pointer_default(unique), @@ -2480,83 +1399,3 @@ interface IApartmentShutdown : IUnknown { void OnUninitialize([in] UINT64 identifier); } - -cpp_quote("#ifdef USE_COM_CONTEXT_DEF") - -typedef DWORD CPFLAGS; - -typedef struct tagContextProperty -{ - GUID policyId; - CPFLAGS flags; - [unique] IUnknown *pUnk; -} ContextProperty; - -[ - local, - object, - uuid(000001c1-0000-0000-C000-000000000046) -] -interface IEnumContextProps : IUnknown -{ - typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS; - - HRESULT Next( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] ContextProperty *pContextProperties, - [out] ULONG *pceltFetched); - - HRESULT Skip( - [in] ULONG celt); - - HRESULT Reset(); - - HRESULT Clone( - [out] IEnumContextProps **ppEnumContextProps); - - HRESULT Count( - [out] ULONG *pcelt); -} - -[ - local, - object, - uuid(000001c0-0000-0000-C000-000000000046) -] -interface IContext : IUnknown -{ - HRESULT SetProperty( - [in] REFGUID policyId, - [in] CPFLAGS flags, - [in] IUnknown *pUnk); - - HRESULT RemoveProperty( - [in] REFGUID policyId); - - HRESULT GetProperty( - [in] REFGUID guid, - [out] CPFLAGS *pFlags, - [out] IUnknown **ppUnk); - - HRESULT EnumContextProps( - [out] IEnumContextProps **ppEnumContextProps); -} - -[ - local, - object, - uuid(000001c6-0000-0000-c000-000000000046), - pointer_default(unique) -] -interface IObjContext : IContext -{ - void Reserved1(); - void Reserved2(); - void Reserved3(); - void Reserved4(); - void Reserved5(); - void Reserved6(); - void Reserved7(); -} - -cpp_quote("#endif /* defined USE_COM_CONTEXT_DEF */") diff --git a/include/objidlbase.idl b/include/objidlbase.idl new file mode 100644 index 00000000000..47602b98d35 --- /dev/null +++ b/include/objidlbase.idl @@ -0,0 +1,1198 @@ +/* + * Copyright 2002 Ove Kaaven + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef DO_NO_IMPORTS +import "unknwn.idl"; +#endif + +cpp_quote("#ifndef _OBJIDLBASE_") +cpp_quote("#define _OBJIDLBASE_") + +interface IStream; +interface IEnumString; + +interface IAsyncManager; +interface ISynchronize; + +typedef struct _COSERVERINFO { + DWORD dwReserved1; + LPWSTR pwszName; + COAUTHINFO *pAuthInfo; + DWORD dwReserved2; +} COSERVERINFO; + +/******************** Fundamentals ********************/ + +[ + local, + object, + uuid(00000003-0000-0000-C000-000000000046) +] +interface IMarshal : IUnknown +{ + typedef [unique] IMarshal *LPMARSHAL; + + HRESULT GetUnmarshalClass( + [in] REFIID riid, + [in, unique] void *pv, + [in] DWORD dwDestContext, + [in, unique] void *pvDestContext, + [in] DWORD mshlflags, + [out] CLSID *pCid); + + HRESULT GetMarshalSizeMax( + [in] REFIID riid, + [in, unique] void *pv, + [in] DWORD dwDestContext, + [in, unique] void *pvDestContext, + [in] DWORD mshlflags, + [out] DWORD *pSize); + + HRESULT MarshalInterface( + [in, unique] IStream *pStm, + [in] REFIID riid, + [in, unique] void *pv, + [in] DWORD dwDestContext, + [in, unique] void *pvDestContext, + [in] DWORD mshlflags); + + HRESULT UnmarshalInterface( + [in, unique] IStream *pStm, + [in] REFIID riid, + [out] void **ppv); + + HRESULT ReleaseMarshalData( + [in, unique] IStream *pStm); + + HRESULT DisconnectObject( + [in] DWORD dwReserved); +} + +[ + local, + object, + uuid(000001cf-0000-0000-C000-000000000046) +] +interface IMarshal2 : IMarshal +{ + typedef [unique] IMarshal2 *LPMARSHAL2; +} + +[ + local, + object, + uuid(00000018-0000-0000-C000-000000000046) +] +interface IStdMarshalInfo : IUnknown +{ + typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO; + + HRESULT GetClassForHandler( + [in] DWORD dwDestContext, + [in, unique] void *pvDestContext, + [out] CLSID *pClsid); +} + +[ + local, + object, + uuid(00000019-0000-0000-C000-000000000046) +] +interface IExternalConnection : IUnknown +{ + typedef [unique] IExternalConnection *LPEXTERNALCONNECTION; + + typedef enum tagEXTCONN { + EXTCONN_STRONG = 0x0001, + EXTCONN_WEAK = 0x0002, + EXTCONN_CALLABLE = 0x0004 + } EXTCONN; + + DWORD AddConnection( + [in] DWORD extconn, + [in] DWORD reserved); + + DWORD ReleaseConnection( + [in] DWORD extconn, + [in] DWORD reserved, + [in] BOOL fLastReleaseCloses); +} + +[ + local, + object, + uuid(00000020-0000-0000-C000-000000000046) +] +interface IMultiQI : IUnknown +{ + typedef [unique] IMultiQI *LPMULTIQI; + + typedef struct tagMULTI_QI { + const IID *pIID; + IUnknown *pItf; + HRESULT hr; + } MULTI_QI; + + HRESULT QueryMultipleInterfaces( + [in] ULONG cMQIs, + [in, out] MULTI_QI *pMQIs); +} + +[ + local, + object, + uuid(00000002-0000-0000-C000-000000000046) +] +interface IMalloc : IUnknown +{ + typedef [unique] IMalloc *LPMALLOC; + + LPVOID Alloc( + [in] SIZE_T cb); + + LPVOID Realloc( + [in] LPVOID pv, + [in] SIZE_T cb); + + void Free( + [in] LPVOID pv); + + SIZE_T GetSize( + [in] LPVOID pv); + + int DidAlloc(LPVOID pv); + + void HeapMinimize(); +} + +[ + local, + object, + uuid(00000021-0000-0000-C000-000000000046) +] +interface IInternalUnknown : IUnknown +{ + HRESULT QueryInternalInterface( + [in] REFIID riid, + [out] void **ppv); +} + +[ + object, + uuid(00000100-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IEnumUnknown : IUnknown +{ + typedef [unique] IEnumUnknown *LPENUMUNKNOWN; + + [local] + HRESULT Next( + [in] ULONG celt, + [out] IUnknown **rgelt, + [out] ULONG *pceltFetched); + + [call_as(Next)] + HRESULT RemoteNext( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] + IUnknown **rgelt, + [out] ULONG *pceltFetched); + + HRESULT Skip( + [in] ULONG celt); + + HRESULT Reset(); + + HRESULT Clone( + [out] IEnumUnknown **ppenum); +} + +[ + object, + uuid(00000022-0000-0000-C000-000000000046), + version(1.0), + pointer_default(unique) +] +interface ISurrogate : IUnknown +{ + typedef [unique] ISurrogate *LPSURROGATE; + + HRESULT LoadDllServer( + [in] REFCLSID Clsid); + HRESULT FreeSurrogate(); +} + +[ + local, + object, + uuid(00000146-0000-0000-C000-000000000046) +] +interface IGlobalInterfaceTable : IUnknown +{ + typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; + + HRESULT RegisterInterfaceInGlobal( + [in] IUnknown *pUnk, + [in] REFIID riid, + [out] DWORD *pdwCookie); + + HRESULT RevokeInterfaceFromGlobal( + [in] DWORD dwCookie); + + HRESULT GetInterfaceFromGlobal( + [in] DWORD dwCookie, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); +} + +[ + object, + uuid(00000101-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IEnumString : IUnknown +{ + typedef [unique] IEnumString *LPENUMSTRING; + + [local] + HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] + LPOLESTR *rgelt, + [out] ULONG *pceltFetched); + + [call_as(Next)] + HRESULT RemoteNext( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] + LPOLESTR *rgelt, + [out] ULONG *pceltFetched); + + HRESULT Skip( + [in] ULONG celt); + + HRESULT Reset(); + + HRESULT Clone( + [out] IEnumString **ppenum); +} + +/******************** Storage ********************/ + +[ + object, + uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface ISequentialStream : IUnknown +{ + [local] + HRESULT Read( + [out, size_is(cb), length_is(*pcbRead)] + void *pv, + [in] ULONG cb, + [out] ULONG *pcbRead); + + [call_as(Read)] + HRESULT RemoteRead( + [out, size_is(cb), length_is(*pcbRead)] + byte *pv, + [in] ULONG cb, + [out] ULONG *pcbRead); + + [local] + HRESULT Write( + [in, size_is(cb)] const void *pv, + [in] ULONG cb, + [out] ULONG *pcbWritten); + + [call_as(Write)] + HRESULT RemoteWrite( + [in, size_is(cb)] const byte *pv, + [in] ULONG cb, + [out] ULONG *pcbWritten); +} + +[ + object, + uuid(0000000c-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IStream : ISequentialStream +{ + typedef [unique] IStream *LPSTREAM; + + typedef struct tagSTATSTG { + LPOLESTR pwcsName; + DWORD type; + ULARGE_INTEGER cbSize; + FILETIME mtime; + FILETIME ctime; + FILETIME atime; + DWORD grfMode; + DWORD grfLocksSupported; + CLSID clsid; + DWORD grfStateBits; + DWORD reserved; + } STATSTG; + + typedef enum tagSTGTY { + STGTY_STORAGE = 1, + STGTY_STREAM = 2, + STGTY_LOCKBYTES = 3, + STGTY_PROPERTY = 4 + } STGTY; + + typedef enum tagSTREAM_SEEK { + STREAM_SEEK_SET = 0, + STREAM_SEEK_CUR = 1, + STREAM_SEEK_END = 2 + } STREAM_SEEK; + + /* these are defined in Linux's fcntl.h, + * undefine them to avoid conflicts */ + cpp_quote("#undef LOCK_MAND") + cpp_quote("#undef LOCK_READ") + cpp_quote("#undef LOCK_WRITE") + cpp_quote("#undef LOCK_RW") + + typedef enum tagLOCKTYPE { + LOCK_WRITE = 1, + LOCK_EXCLUSIVE = 2, + LOCK_ONLYONCE = 4 + } LOCKTYPE; + + [local] + HRESULT Seek( + [in] LARGE_INTEGER dlibMove, + [in] DWORD dwOrigin, + [out] ULARGE_INTEGER *plibNewPosition); + + [call_as(Seek)] + HRESULT RemoteSeek( + [in] LARGE_INTEGER dlibMove, + [in] DWORD dwOrigin, + [out] ULARGE_INTEGER *plibNewPosition); + + HRESULT SetSize( + [in] ULARGE_INTEGER libNewSize); + + [local] + HRESULT CopyTo( + [in, unique] IStream *pstm, + [in] ULARGE_INTEGER cb, + [out] ULARGE_INTEGER *pcbRead, + [out] ULARGE_INTEGER *pcbWritten); + + [call_as(CopyTo)] + HRESULT RemoteCopyTo( + [in, unique] IStream *pstm, + [in] ULARGE_INTEGER cb, + [out] ULARGE_INTEGER *pcbRead, + [out] ULARGE_INTEGER *pcbWritten); + + HRESULT Commit( + [in] DWORD grfCommitFlags); + + HRESULT Revert(); + + HRESULT LockRegion( + [in] ULARGE_INTEGER libOffset, + [in] ULARGE_INTEGER cb, + [in] DWORD dwLockType); + + HRESULT UnlockRegion( + [in] ULARGE_INTEGER libOffset, + [in] ULARGE_INTEGER cb, + [in] DWORD dwLockType); + + HRESULT Stat( + [out] STATSTG *pstatstg, + [in] DWORD grfStatFlag); + + HRESULT Clone( + [out] IStream **ppstm); +} + + + + +[ + local, + object, + uuid(D5F56B60-593B-101A-B569-08002B2DBF7A) +] +interface IRpcChannelBuffer : IUnknown +{ + typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER; + + typedef unsigned long RPCOLEDATAREP; + + typedef struct tagRPCOLEMESSAGE { + void *reserved1; + RPCOLEDATAREP dataRepresentation; + void *Buffer; + ULONG cbBuffer; + ULONG iMethod; + void *reserved2[5]; + ULONG rpcFlags; + } RPCOLEMESSAGE; + + typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; + + HRESULT GetBuffer( + [in] RPCOLEMESSAGE *pMessage, + [in] REFIID riid); + + HRESULT SendReceive( + [in,out] RPCOLEMESSAGE *pMessage, + [out] ULONG *pStatus); + + HRESULT FreeBuffer( + [in] RPCOLEMESSAGE *pMessage); + + HRESULT GetDestCtx( + [out] DWORD *pdwDestContext, + [out] void **ppvDestContext); + + HRESULT IsConnected(); +} + +[ + local, + object, + uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf) +] +interface IRpcChannelBuffer2 : IRpcChannelBuffer +{ + typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2; + + HRESULT GetProtocolVersion( + [in,out] DWORD *pdwVersion); +} + +[ + local, + object, + uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2) +] +interface IRpcChannelBuffer3 : IRpcChannelBuffer2 +{ + typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3; + + HRESULT Send( + [in,out] RPCOLEMESSAGE *pMsg, + [out] ULONG *pulStatus); + + HRESULT Receive( + [in,out] RPCOLEMESSAGE *pMsg, + [in] ULONG ulSize, + [out] ULONG *pulStatus); + + HRESULT Cancel( + [in] RPCOLEMESSAGE *pMsg); + + HRESULT GetCallContext( + [in] RPCOLEMESSAGE *pMsg, + [in] REFIID riid, + [out] void **pInterface); + + HRESULT GetDestCtxEx( + [in] RPCOLEMESSAGE *pMsg, + [out] DWORD *pdwDestContext, + [out] void **ppvDestContext); + + HRESULT GetState( + [in] RPCOLEMESSAGE *pMsg, + [out] DWORD *pState); + + HRESULT RegisterAsync( + [in] RPCOLEMESSAGE *pMsg, + [in] IAsyncManager *pAsyncMgr); +} + +[ + local, + object, + uuid(a5029fb6-3c34-11d1-9c99-00c04fb998aa), + pointer_default(unique) +] +interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2 +{ + HRESULT Send( + [in, out] RPCOLEMESSAGE *pMsg, + [in] ISynchronize *pSync, + [out] ULONG *pulStatus); + + HRESULT Receive( + [in, out] RPCOLEMESSAGE *pMsg, + [out] ULONG *pulStatus); + + HRESULT GetDestCtxEx( + [in] RPCOLEMESSAGE *pMsg, + [out] DWORD *pdwDestContext, + [out] void **ppvDestContext); +} + +[ + local, + object, + uuid(58a08519-24c8-4935-b482-3fd823333a4f) +] +interface IRpcSyntaxNegotiate : IUnknown +{ + HRESULT NegotiateSyntax( + [in, out] RPCOLEMESSAGE *pMsg); +} + +[ + local, + object, + uuid(D5F56A34-593B-101A-B569-08002B2DBF7A) +] +interface IRpcProxyBuffer : IUnknown +{ + typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER; + + HRESULT Connect( + [in, unique] IRpcChannelBuffer *pRpcChannelBuffer); + + void Disconnect(); +} + +[ + local, + object, + uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A) +] +interface IRpcStubBuffer : IUnknown +{ + typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER; + + HRESULT Connect( + [in] IUnknown *pUnkServer); + + void Disconnect(); + + HRESULT Invoke( + [in] RPCOLEMESSAGE *_prpcmsg, + [in] IRpcChannelBuffer *_pRpcChannelBuffer); + + IRpcStubBuffer *IsIIDSupported( + [in] REFIID riid); + + ULONG CountRefs(); + + HRESULT DebugServerQueryInterface( + void **ppv); + + void DebugServerRelease( + void *pv); +} + +[ + local, + object, + uuid(D5F569D0-593B-101A-B569-08002B2DBF7A) +] +interface IPSFactoryBuffer : IUnknown +{ + typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER; + + HRESULT CreateProxy( + [in] IUnknown *pUnkOuter, + [in] REFIID riid, + [out] IRpcProxyBuffer **ppProxy, + [out] void **ppv); + + HRESULT CreateStub( + [in] REFIID riid, + [in, unique] IUnknown *pUnkServer, + [out] IRpcStubBuffer **ppStub); +} + +[ + local, + object, + uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4) +] +interface IChannelHook : IUnknown +{ + typedef [unique] IChannelHook *LPCHANNELHOOK; + + typedef struct SChannelHookCallInfo { + IID iid; + DWORD cbSize; + GUID uCausality; + DWORD dwServerPid; + DWORD iMethod; + void *pObject; + } SChannelHookCallInfo; + + void ClientGetSize( + [in] REFGUID uExtent, + [in] REFIID riid, + [out] ULONG *pDataSize); + + void ClientFillBuffer( + [in] REFGUID uExtent, + [in] REFIID riid, + [in, out] ULONG *pDataSize, + [in] void *pDataBuffer); + + void ClientNotify( + [in] REFGUID uExtent, + [in] REFIID riid, + [in] ULONG cbDataSize, + [in] void *pDataBuffer, + [in] DWORD lDataRep, + [in] HRESULT hrFault); + + void ServerNotify( + [in] REFGUID uExtent, + [in] REFIID riid, + [in] ULONG cbDataSize, + [in] void *pDataBuffer, + [in] DWORD lDataRep); + + void ServerGetSize( + [in] REFGUID uExtent, + [in] REFIID riid, + [in] HRESULT hrFault, + [out] ULONG *pDataSize); + + void ServerFillBuffer( + [in] REFGUID uExtent, + [in] REFIID riid, + [in, out] ULONG *pDataSize, + [in] void *pDataBuffer, + [in] HRESULT hrFault ); +} + +extern const FMTID FMTID_SummaryInformation; +extern const FMTID FMTID_DocSummaryInformation; +extern const FMTID FMTID_UserDefinedProperties; + + +/******************** Connection Points ********************/ +/* FIXME */ + +/******************** DCOM ********************/ + +[ + local, + object, + uuid(0000013D-0000-0000-C000-000000000046) +] +interface IClientSecurity : IUnknown +{ + typedef struct tagSOLE_AUTHENTICATION_SERVICE { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + OLECHAR *pPrincipalName; + HRESULT hr; + } SOLE_AUTHENTICATION_SERVICE; + + typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; + + typedef struct tagSOLE_AUTHENTICATION_INFO { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + void *pAuthInfo; + } SOLE_AUTHENTICATION_INFO; + + const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR*) -1; + const void *COLE_DEFAULT_AUTHINFO = (void*) -1; + + typedef struct tagSOLE_AUTHENTICATION_LIST { + DWORD cAuthInfo; + SOLE_AUTHENTICATION_INFO *aAuthInfo; + } SOLE_AUTHENTICATION_LIST; + + typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES { + EOAC_NONE = 0x0, + EOAC_MUTUAL_AUTH = 0x1, + EOAC_SECURE_REFS = 0x2, /* CoInitializeSecurity only */ + EOAC_ACCESS_CONTROL = 0x4, /* CoInitializeSecurity only */ + EOAC_APPID = 0x8, /* CoInitializeSecurity only */ + EOAC_DYNAMIC = 0x10, /* CoInitializeSecurity only */ + EOAC_STATIC_CLOAKING = 0x20, + EOAC_DYNAMIC_CLOAKING = 0x40, + EOAC_ANY_AUTHORITY = 0x80, + EOAC_MAKE_FULLSIC = 0x100, + EOAC_REQUIRE_FULLSIC = 0x200, /* CoInitializeSecurity only */ + EOAC_AUTO_IMPERSONATE = 0x400, /* CoInitializeSecurity only */ + EOAC_DEFAULT = 0x800, + EOAC_DISABLE_AAA = 0x1000, /* CoInitializeSecurity only */ + EOAC_NO_CUSTOM_MARSHAL = 0x2000, /* CoInitializeSecurity only */ + } EOLE_AUTHENTICATION_CAPABILITIES; + + 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 *pCapabilities); + + HRESULT SetBlanket( + [in] IUnknown *pProxy, + [in] DWORD AuthnSvc, + [in] DWORD AuthzSvc, + [in] OLECHAR *pServerPrincName, + [in] DWORD AuthnLevel, + [in] DWORD ImpLevel, + [in] void *pAuthInfo, + [in] DWORD Capabilities); + + HRESULT CopyProxy( + [in] IUnknown *pProxy, + [out] IUnknown **ppCopy); +} + +[ + local, + object, + uuid(0000013E-0000-0000-C000-000000000046) +] +interface IServerSecurity : IUnknown +{ + HRESULT QueryBlanket( + [out] DWORD *pAuthnSvc, + [out] DWORD *pAuthzSvc, + [out] OLECHAR **pServerPrincName, + [out] DWORD *pAuthnLevel, + [out] DWORD *pImpLevel, + [out] void **pPrivs, + [out] DWORD *pCapabilities); + + HRESULT ImpersonateClient(); + + HRESULT RevertToSelf(); + + BOOL IsImpersonating(); +} + +[ + local, + object, + uuid(00000024-0000-0000-C000-000000000046) +] +interface IAsyncSetup : IUnknown +{ + HRESULT GetAsyncManager( + [in] REFIID riid, + [in] IUnknown *pOuter, + [in] DWORD dwFlags, + [out] IUnknown **ppInner, + [out] IAsyncManager **ppAsyncMgr); +} + +[ + object, + uuid(00000030-0000-0000-C000-000000000046) +] + +interface ISynchronize : IUnknown +{ + HRESULT Wait( + [in] DWORD dwFlags, + [in] DWORD dwMilliseconds); + + HRESULT Signal(); + + HRESULT Reset(); +} + + +[ + local, + object, + uuid(00000031-0000-0000-C000-000000000046) +] +interface ISynchronizeHandle : IUnknown +{ + HRESULT GetHandle( + [out] HANDLE *ph); +} + + +[ + local, + object, + uuid(00000032-0000-0000-C000-000000000046) +] +interface ISynchronizeEvent : ISynchronizeHandle +{ + HRESULT SetEventHandle( + [in] HANDLE *ph); +} + + +[ + local, + object, + uuid(00000033-0000-0000-C000-000000000046) +] +interface ISynchronizeContainer : IUnknown +{ + HRESULT AddSynchronize( + [in] ISynchronize *pSync); + + HRESULT WaitMultiple( + [in] DWORD dwFlags, + [in] DWORD dwTimeOut, + [out] ISynchronize **ppSync); +} + +[ + local, + object, + uuid(00000025-0000-0000-C000-000000000046) +] +interface ISynchronizeMutex : ISynchronize +{ + HRESULT ReleaseMutex(); +} + +[ + local, + object, + uuid(00000029-0000-0000-C000-000000000046) +] + +interface ICancelMethodCalls : IUnknown +{ + typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS; + + HRESULT Cancel( + [in] ULONG ulSeconds); + + HRESULT TestCancel(); +} + +[ + local, + object, + uuid(0000002A-0000-0000-C000-000000000046) +] +interface IAsyncManager : IUnknown +{ + typedef enum tagDCOM_CALL_STATE { + DCOM_NONE = 0, + DCOM_CALL_COMPLETE = 1, + DCOM_CALL_CANCELED = 2 + } DCOM_CALL_STATE; + + HRESULT CompleteCall( + [in] HRESULT Result); + + HRESULT GetCallContext( + [in] REFIID riid, + [out] void **pInterface); + + HRESULT GetState( + [out] ULONG *pulStateFlags); +} + +[ + local, + object, + uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface ICallFactory : IUnknown +{ + HRESULT CreateCall( + [in] REFIID riid, + [in] IUnknown *pCtrlUnk, + [in] REFIID riid2, + [out, iid_is(riid2)] IUnknown **ppv); +} + +[ + local, + object, + uuid(00000144-0000-0000-C000-000000000046) +] +interface IRpcOptions : IUnknown +{ + HRESULT Set( + [in] IUnknown *pPrx, + [in] DWORD dwProperty, + [in] ULONG_PTR dwValue); + + HRESULT Query( + [in] IUnknown *pPrx, + [in] DWORD dwProperty, + [out] ULONG_PTR *pdwValue); +} + +enum { + COMBND_RPCTIMEOUT = 1, + COMBND_SERVER_LOCALITY = 2 +}; + +enum { + SERVER_LOCALITY_PROCESS_LOCAL = 0, + SERVER_LOCALITY_MACHINE_LOCAL = 1, + SERVER_LOCALITY_REMOTE = 2 +}; + +[ + local, + object, + uuid(00000149-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IRpcHelper : IUnknown +{ + HRESULT GetDCOMProtocolVersion( + [out] DWORD *pComVersion); + + HRESULT GetIIDFromOBJREF( + [in] void *pObjRef, + [out] IID **piid); +} + +[ + local, + object, + uuid(eb0cb9e8-7996-11d2-872e-0000f8080859) +] +interface IReleaseMarshalBuffers : IUnknown +{ + HRESULT ReleaseMarshalBuffer( + [in] RPCOLEMESSAGE *pMsg, + [in] DWORD dwFlags, + [in, unique] IUnknown *pChnl); +} + +[ + local, + object, + uuid(0000002B-0000-0000-C000-000000000046) +] +interface IWaitMultiple : IUnknown +{ + HRESULT WaitMultiple( + [in] DWORD timeout, + [out] ISynchronize **pSync); + HRESULT AddSynchronize( + [in] ISynchronize *pSync); +} + + +[ + local, + object, + uuid(00000147-0000-0000-C000-000000000046) +] +interface IAddrTrackingControl : IUnknown +{ + typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL; + + HRESULT EnableCOMDynamicAddrTracking(); + HRESULT DisableCOMDynamicAddrTracking(); +} + +[ + local, + object, + uuid(00000148-0000-0000-C000-000000000046) +] +interface IAddrExclusionControl : IUnknown +{ + typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL; + + HRESULT GetCurrentAddrExclusionList( + [in] REFIID riid, + [out, iid_is(riid)] void **ppEnumerator); + HRESULT UpdateAddrExclusionList( + [in] IUnknown *pEnumerator); +} + +typedef enum _APTTYPE { + APTTYPE_CURRENT = -1, + APTTYPE_STA = 0, + APTTYPE_MTA = 1, + APTTYPE_NA = 2, + APTTYPE_MAINSTA = 3 +} APTTYPE; + +typedef enum _APTTYPEQUALIFIER { + APTTYPEQUALIFIER_NONE, + APTTYPEQUALIFIER_IMPLICIT_MTA, + APTTYPEQUALIFIER_NA_ON_MTA, + APTTYPEQUALIFIER_NA_ON_STA, + APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA, + APTTYPEQUALIFIER_NA_ON_MAINSTA +} APTTYPEQUALIFIER; + +typedef enum _THDTYPE { + THDTYPE_BLOCKMESSAGES = 0, + THDTYPE_PROCESSMESSAGES = 1 +} THDTYPE; + +[ + local, + object, + uuid(000001ce-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IComThreadingInfo : IUnknown +{ + HRESULT GetCurrentApartmentType( + [out] APTTYPE *pAptType); + HRESULT GetCurrentThreadType( + [out] THDTYPE *pThreadType); + HRESULT GetCurrentLogicalThreadId( + [out] GUID *pguidLogicalThreadId); + HRESULT SetCurrentLogicalThreadId( + [in] REFGUID rguid); +} + + +[ + object, + pointer_default(unique), + uuid(72380d55-8d2b-43a3-8513-2b6ef31434e9) +] +interface IProcessInitControl : IUnknown +{ + HRESULT ResetInitializerTimeout( + [in] DWORD dwSecondsRemaining); +} + +typedef enum tagGLOBALOPT_PROPERTIES +{ + COMGLB_EXCEPTION_HANDLING = 1, + COMGLB_APPID = 2, + COMGLB_RPC_THREADPOOL_SETTING = 3 +} GLOBALOPT_PROPERTIES; + +typedef enum tagGLOBALOPT_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 +} GLOBALOPT_EH_VALUES; + +typedef enum tagGLOBALOPT_RPCTP_VALUES +{ + COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL = 0, + COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL = 1 +} GLOBALOPT_RPCTP_VALUES; + + +[ + object, + local, + pointer_default(unique), + uuid(0000015B-0000-0000-C000-000000000046) +] +interface IGlobalOptions : IUnknown +{ + HRESULT Set([in] GLOBALOPT_PROPERTIES property, [in] ULONG_PTR value); + HRESULT Query([in] GLOBALOPT_PROPERTIES property, [out ] ULONG_PTR *value); +} + +cpp_quote("#ifdef USE_COM_CONTEXT_DEF") + +typedef DWORD CPFLAGS; + +typedef struct tagContextProperty +{ + GUID policyId; + CPFLAGS flags; + [unique] IUnknown *pUnk; +} ContextProperty; + +[ + local, + object, + uuid(000001c1-0000-0000-C000-000000000046) +] +interface IEnumContextProps : IUnknown +{ + typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS; + + HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] ContextProperty *pContextProperties, + [out] ULONG *pceltFetched); + + HRESULT Skip( + [in] ULONG celt); + + HRESULT Reset(); + + HRESULT Clone( + [out] IEnumContextProps **ppEnumContextProps); + + HRESULT Count( + [out] ULONG *pcelt); +} + +[ + local, + object, + uuid(000001c0-0000-0000-C000-000000000046) +] +interface IContext : IUnknown +{ + HRESULT SetProperty( + [in] REFGUID policyId, + [in] CPFLAGS flags, + [in] IUnknown *pUnk); + + HRESULT RemoveProperty( + [in] REFGUID policyId); + + HRESULT GetProperty( + [in] REFGUID guid, + [out] CPFLAGS *pFlags, + [out] IUnknown **ppUnk); + + HRESULT EnumContextProps( + [out] IEnumContextProps **ppEnumContextProps); +} + +[ + local, + object, + uuid(000001c6-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IObjContext : IContext +{ + void Reserved1(); + void Reserved2(); + void Reserved3(); + void Reserved4(); + void Reserved5(); + void Reserved6(); + void Reserved7(); +} + +cpp_quote("#endif /* defined USE_COM_CONTEXT_DEF */") +cpp_quote("#endif /* defined _OBJIDLBASE_ */")
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- include/objidlbase.idl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/include/objidlbase.idl b/include/objidlbase.idl index 47602b98d35..5bc3e809289 100644 --- a/include/objidlbase.idl +++ b/include/objidlbase.idl @@ -83,6 +83,15 @@ interface IMarshal : IUnknown [in] DWORD dwReserved); }
+[ + local, + object, + uuid(94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90) +] +interface IAgileObject : IUnknown +{ +} + [ local, object,