Поделиться через


Регистрация интерфейса

Регистрация интерфейса, который поддерживает серверная программа, позволяет отправлять удаленные вызовы процедур из клиентских программ в соответствующую подпрограмму сервера. Серверные программы вызывают RpcServerRegisterIf для регистрации своих интерфейсов. В следующем фрагменте кода показано его использование:

RPC_STATUS status;
status = RpcServerRegisterIf(MyInterface_v1_0_s_ifspec, NULL, NULL);

Первый параметр функции RpcServerRegisterIf — это структура, которую компилятор MIDL создает из IDL-файла, который определяет интерфейс (или интерфейсы) для сервера. Второй и третий параметры являются UUID и вектором точки входа соответственно. В этом примере для них задано значение NULL . Во многих случаях серверная программа присваивает этим значениям параметров значение NULL. Серверные программы используют второй и третий параметры, когда они предоставляют несколько реализаций одной и той же процедуры в интерфейсе. Дополнительные сведения см. в разделе Векторы точек входа.

Серверные программы также могут использовать RpcServerRegisterIfEx для регистрации интерфейса. Одним из преимуществ использования этой функции является то, что она предоставляет приложению возможность задать функцию обратного вызова безопасности. Для обеспечения безопасности интерфейса рекомендуется использовать функции обратного вызова безопасности.

Примечание

MIDL создает две очень похожие структуры: одну для клиента и одну для сервера. Структура, передаваемая в функцию RpcServerRegisterIf , является серверной версией структуры, создаваемой MIDL.