过程序列化

使用过程序列化时,使用 [编码] 或 [解码] 属性标记过程。 编译器不会生成通常的远程存根,而是为例程生成序列化存根。

正如远程过程必须使用绑定句柄进行远程调用一样,序列化过程必须使用序列化句柄来使用序列化服务。 如果未指定序列化句柄,则使用默认隐式句柄来定向调用。 另一方面,如果将序列化句柄指定为例程的显式 handle_t 参数或使用 [explicit_handle] 属性,则必须将有效的句柄作为调用的参数传递。 有关如何创建有效序列化句柄的其他信息,请参阅 序列化句柄固定缓冲区编码示例和 增量编码示例

注意

Microsoft RPC 允许在一个接口中混合远程和序列化过程。 但是,这样做时请小心。

对于具有隐式绑定句柄的远程过程,MIDL 编译器将生成类型为 handle_t的全局句柄变量。 具有隐式序列化句柄的过程和类型使用相同的全局句柄变量。

对于隐式句柄,全局隐式句柄必须在远程调用之前设置为有效的绑定句柄。 在序列化调用之前,隐式句柄必须设置为有效的序列化句柄。 因此,过程不能同时远程和序列化。 它必须是一个或另一个。