📄 objidl.idl
字号:
typedef enum tagDATADIR
{
DATADIR_GET = 1,
DATADIR_SET = 2
} DATADIR;
[local]
HRESULT GetData(
[in, unique] FORMATETC *pformatetcIn,
[out] STGMEDIUM *pmedium);
[call_as(GetData)]
HRESULT RemoteGetData(
[in, unique] FORMATETC *pformatetcIn,
[out] STGMEDIUM *pRemoteMedium);
[local]
HRESULT GetDataHere(
[in, unique] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium);
[call_as(GetDataHere)]
HRESULT RemoteGetDataHere(
[in, unique] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pRemoteMedium);
HRESULT QueryGetData(
[in, unique] FORMATETC *pformatetc);
HRESULT GetCanonicalFormatEtc(
[in, unique] FORMATETC *pformatectIn,
[out] FORMATETC *pformatetcOut);
[local]
HRESULT SetData(
[in, unique] FORMATETC *pformatetc,
[in, unique] STGMEDIUM *pmedium,
[in] BOOL fRelease);
[call_as(SetData)]
HRESULT RemoteSetData(
[in, unique] FORMATETC *pformatetc,
[in, unique] FLAG_STGMEDIUM *pmedium,
[in] BOOL fRelease);
HRESULT EnumFormatEtc(
[in] DWORD dwDirection,
[out] IEnumFORMATETC **ppenumFormatEtc);
HRESULT DAdvise(
[in] FORMATETC *pformatetc,
[in] DWORD advf,
[in, unique] IAdviseSink *pAdvSink,
[out] DWORD *pdwConnection);
HRESULT DUnadvise(
[in] DWORD dwConnection);
HRESULT EnumDAdvise(
[out] IEnumSTATDATA **ppenumAdvise);
}
[
local,
object,
uuid(00000110-0000-0000-C000-000000000046)
]
interface IDataAdviseHolder : IUnknown
{
typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER;
HRESULT Advise
(
[in, unique] IDataObject *pDataObject,
[in, unique] FORMATETC *pFetc,
[in] DWORD advf,
[in, unique] IAdviseSink *pAdvise,
[out] DWORD *pdwConnection
);
HRESULT Unadvise
(
[in] DWORD dwConnection
);
HRESULT EnumAdvise
(
[out] IEnumSTATDATA **ppenumAdvise
);
HRESULT SendOnDataChange
(
[in, unique] IDataObject *pDataObject,
[in] DWORD dwReserved,
[in] DWORD advf
);
}
[
local,
object,
uuid(00000016-0000-0000-C000-000000000046)
]
interface IMessageFilter : IUnknown
{
typedef [unique] IMessageFilter *LPMESSAGEFILTER;
// call type used by IMessageFilter::HandleIncomingMessage
typedef enum tagCALLTYPE
{
CALLTYPE_TOPLEVEL = 1, // toplevel call - no outgoing call
CALLTYPE_NESTED = 2, // callback on behalf of previous outgoing call - should always handle
CALLTYPE_ASYNC = 3, // aysnchronous call - can NOT be rejected
CALLTYPE_TOPLEVEL_CALLPENDING = 4, // new toplevel call with new LID
CALLTYPE_ASYNC_CALLPENDING = 5 // async call - can NOT be rejected
} CALLTYPE;
// status of server call - returned by IMessageFilter::HandleIncomingCall
// and passed to IMessageFilter::RetryRejectedCall
typedef enum tagSERVERCALL
{
SERVERCALL_ISHANDLED = 0,
SERVERCALL_REJECTED = 1,
SERVERCALL_RETRYLATER = 2
} SERVERCALL;
// Pending type indicates the level of nesting
typedef enum tagPENDINGTYPE
{
PENDINGTYPE_TOPLEVEL = 1, // toplevel call
PENDINGTYPE_NESTED = 2 // nested call
} PENDINGTYPE;
// return values of MessagePending
typedef enum tagPENDINGMSG
{
PENDINGMSG_CANCELCALL = 0, // cancel the outgoing call
PENDINGMSG_WAITNOPROCESS = 1, // wait for the return and don't dispatch the message
PENDINGMSG_WAITDEFPROCESS = 2 // wait and dispatch the message
} PENDINGMSG;
// additional interface information about the incoming call
typedef struct tagINTERFACEINFO
{
IUnknown *pUnk; // the pointer to the object
IID iid; // interface id
WORD wMethod; // interface method
} INTERFACEINFO, *LPINTERFACEINFO;
DWORD HandleInComingCall
(
[in] DWORD dwCallType,
[in] HTASK htaskCaller,
[in] DWORD dwTickCount,
[in] LPINTERFACEINFO lpInterfaceInfo
);
DWORD RetryRejectedCall
(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
DWORD MessagePending
(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwPendingType
);
}
/****************************************************************************
* Object Remoting Interfaces
****************************************************************************/
[
local,
object,
uuid(D5F56B60-593B-101A-B569-08002B2DBF7A)
]
interface IRpcChannelBuffer : IUnknown
{
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
(
void
);
}
[
local,
object,
uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf)
]
interface IRpcChannelBuffer2 : IRpcChannelBuffer
{
HRESULT GetProtocolVersion
(
[in,out] DWORD *pdwVersion
);
}
[
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(25B15600-0115-11d0-BF0D-00AA00B8DFD2)
]
interface IRpcChannelBuffer3 : IRpcChannelBuffer2
{
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(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
{
HRESULT Connect
(
[in, unique] IRpcChannelBuffer *pRpcChannelBuffer
);
void Disconnect
(
void
);
}
[
local,
object,
uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A)
]
interface IRpcStubBuffer : IUnknown
{
HRESULT Connect
(
[in] IUnknown *pUnkServer
);
void Disconnect();
HRESULT Invoke
(
[in] RPCOLEMESSAGE *_prpcmsg,
[in] IRpcChannelBuffer *_pRpcChannelBuffer
);
IRpcStubBuffer *IsIIDSupported
(
[in] REFIID riid
);
ULONG CountRefs
(
void
);
HRESULT DebugServerQueryInterface
(
void **ppv
);
void DebugServerRelease
(
void *pv
);
}
[
local,
object,
uuid(D5F569D0-593B-101A-B569-08002B2DBF7A)
]
interface IPSFactoryBuffer : IUnknown
{
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
);
}
cpp_quote( "#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM" )
cpp_quote( "// This interface is only valid on Windows NT 4.0" )
// This structure contains additional data for hooks. As a backward
// compatability hack, the entire structure is passed in place of the
// RIID parameter on all hook methods. Thus the IID must be the first
// parameter. As a forward compatability hack the second field is the
// current size of the structure.
typedef struct SChannelHookCallInfo
{
IID iid;
DWORD cbSize;
GUID uCausality;
DWORD dwServerPid;
DWORD iMethod;
void *pObject;
} SChannelHookCallInfo;
[
local,
object,
uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4)
]
interface IChannelHook : IUnknown
{
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 );
};
cpp_quote( "#endif //DCOM" )
cpp_quote("")
cpp_quote("// Well-known Property Set Format IDs")
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
extern const FMTID FMTID_DiscardableInformation;
extern const FMTID FMTID_ImageSummaryInformation;
extern const FMTID FMTID_AudioSummaryInformation;
extern const FMTID FMTID_VideoSummaryInformation;
extern const FMTID FMTID_MediaFileSummaryInformation;
/****************************************************************************
* Connection Point Interfaces
****************************************************************************/
#ifdef __INCLUDE_CPIFS
interface IConnectionPointContainer;
interface IConnectionPoint;
interface IEnumConnections;
interface IEnumConnectionPoints;
[
object,
uuid(B196B286-BAB4-101A-B69C-00AA00341D07),
pointer_default(unique)
]
interface IConnectionPoint : IUnknown
{
typedef IConnectionPoint * PCONNECTIONPOINT;
typedef IConnectionPoint * LPCONNECTIONPOINT;
HRESULT GetConnectionInterface
(
[out] IID * piid
);
HRESULT GetConnectionPointContainer
(
[out] IConnectionPointContainer ** ppCPC
);
HRESULT Advise
(
[in] IUnknown * pUnkSink,
[out] DWORD * pdwCookie
);
HRESULT Unadvise
(
[in] DWORD dwCookie
);
HRESULT EnumConnections
(
[out] IEnumConnections ** ppEnum
);
}
[
object,
uuid(B196B284-BAB4-101A-B69C-00AA00341D07),
pointer_default(unique)
]
interface IConnectionPointContainer : IUnknown
{
typedef IConnectionPointContainer * PCONNECTIONPOINTCONTAINER;
typedef IConnectionPointContainer * LPCONNECTIONPOINTCONTAINER;
HRESULT EnumConnectionPoints
(
[out] IEnumConnectionPoints ** ppEnum
);
HRESULT FindConnectionPoint
(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -