NdrStubForwardingFunction 函数 (rpcproxy.h)
NdrStubForwardingFunction 函数是在基接口中定义的服务器端对象方法的入口点。
语法
void NdrStubForwardingFunction(
[in] IRpcStubBuffer *This,
[in] IRpcChannelBuffer *pChannel,
[in, out] PRPC_MESSAGE pmsg,
[out] DWORD *pdwStubPhase
);
参数
[in] This
指向 CStdStubBuffer 对象的实例的指针,该对象实现 DCOM 接口的 IRpcStubBuffer。
[in] pChannel
指向 DCOM 接口的 IRpcChannelBuffer 的 指针,通常由 OLE 提供。
[in, out] pmsg
指向包含 RPC 请求相关信息 的RPC_MESSAGE 结构的指针。
[out] pdwStubPhase
指向跟踪当前解释器调用活动的标志的指针。
返回值
无
备注
对象接口使用 pdwStubPhase 参数来确定异常处理行为。 下表描述了 pdwStubPhase 参数的可能值。
值 | 说明 |
---|---|
STUB_UNMARSHAL | 存根处于封送阶段。 |
STUB_CALL_SERVER | 存根正在调用服务器管理器例程。 |
STUB_MARSHAL | 存根处于取消封存阶段。 |
STUB_CALL_SERVER_NO_HRESULT | 已过时。 仅适用于已弃用的存根。 |
对于在基接口中定义的方法,RPC 需要将代码转发到基接口实现。
例如:
Interface IFunctionSample: IUnknown
{
HRESULT FunctionSample();
}
Interface IOperation: IFunctionSample
{
HRESULT Operation();
}
在此示例中, IFunctionSample 和 IOperation 在不同的 .idl 文件中定义。 IFunctionSample 是基接口, IOperation 是派生接口。 IOperation 可以在不实现 IOperation::FunctionSample 的情况下聚合 IOperation。 当客户端在服务器端调用 IOperation::FunctionSample 时,RPC 会将调用转发到 IFunctionSample:FunctionSample。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | rpcproxy.h |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |