Windows SDKs use #include here to import one into the other, so we do
the same.
Signed-off-by: Rémi Bernon <rbernon(a)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_ */")
--
2.28.0