Клиентской программе необходимо создать дескриптор связывания, который указывает run-time RPC с каким сервером следует связываться и каким образом это следует делать.
Следующий фрагмент кода демонстрирует обычной подход к созданию десриптора связывания:
RPC_STATUS status;
unsigned short *StringBinding;
RPC_BINDING_HANDLE BindingHandle;
status = RpcStringBindingCompose(NULL, // UUID объекта
L"ncacn_ip_tcp", // Последовательность протокола
L"MyServer.MyCompany.com", // Имя DNS или NetBIOS для сервера
NULL,
NULL,
&StringBinding);
// Проверку на ошибки исключили, поэтому если ошибок нет то продолжаем
status = RpcBindingFromStringBinding(StringBinding, &BindingHandle);
//освободим память вне зависимости от успешности выполнения RpcBindingFromStringBinding
RpcStringFree(&StringBinding);
Вызов удаленной процедуры
После того как у клиентского приложения, использующего явные дискрипторы связывания, есть дескриптор связывания, можно вызывать удаленные процедуры.
Microsoft RPC также предлагает использование настраиваемых, неявных и автоматических дескрипторов связывания, что позволяет приложения получать различный контроль над процессом исполнения удаленных процедур.
Для того чтобы собственно вызвать удаленную процедуру, произведите обращение к функции клиентской заглушки.