DECLARE_INTERFACE_(ICallFrame, IUnknown) {
    STDMETHOD(QueryInterface)(
        THIS_ REFIID riid,
        PVOID *ppvObject) PURE;

    STDMETHOD_(ULONG, AddRef)(
        THIS) PURE;

    STDMETHOD_(ULONG, Release)(
        THIS) PURE;

    STDMETHOD(GetMethodInfo)(
        THIS_
        CALLFRAMEINFO *pInfo) PURE;

    STDMETHOD(GetStackLocation)(
        THIS_
        ULONG_PTR *pStackLocation) PURE;

    STDMETHOD(TransferOwnership)(
        THIS_ 
        ICallFrame *pFrame,
        BOOL fLock) PURE;

    STDMETHOD(CloneIntoBuffer)(
        THIS_
        PVOID pvBuffer,
        ICallFrame **ppFrame) PURE;

    STDMETHOD(CloneIntoBufferEx)(
        THIS_
        PVOID pvBuffer,
        CALLFRAME_COPY eFlags,
        ICallFrame **ppFrame) PURE;

    STDMETHOD(GetDestAddress)(
        THIS_
        PVOID *ppv) PURE;
};

这个接口提供了一组方法,允许在调用帧之间传递信息、复制调用帧、获取调用帧信息等。请注意,这只是接口的一般定义,具体的实现可能会有所不同。




转载请注明出处:http://www.zyzy.cn/article/detail/24112/Win32 API/Callobj.h/ICallFrame