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


Метод IClientSecurity::CopyProxy (objidl.h)

Создает закрытую копию прокси-сервера для указанного интерфейса.

Синтаксис

HRESULT CopyProxy(
  [in]  IUnknown *pProxy,
  [out] IUnknown **ppCopy
);

Параметры

[in] pProxy

Указатель на интерфейс, прокси-сервер которого необходимо скопировать. Этот параметр не может иметь значение NULL.

[out] ppCopy

Указатель на указатель интерфейса IUnknown , который получает копию прокси-сервера. Этот параметр не может иметь значение NULL.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Один или несколько аргументов недопустимы.

Комментарии

Метод CopyProxy вызывается клиентом для создания частной копии прокси-сервера для указанного интерфейса. Копия прокси-сервера имеет значения по умолчанию для сведений о проверке подлинности. Сведения о проверке подлинности можно изменить с помощью вызова IClientSecurity::SetBlanket , не затрагивая других клиентов исходного прокси-сервера. Копия имеет одну ссылку, и вызывающий объект CopyProxy должен убедиться, что копия прокси-сервера будет освобождена.

Локальные интерфейсы, такие как IUnknown и IClientSecurity, не могут быть скопированы. Невозможно дублировать диспетчер прокси-серверов с помощью CopyProxy.

Копии одного и того же прокси-сервера имеют особую связь относительно QueryInterface. Предположим, что при использовании прокси-сервера (a) интерфейса IA удаленного объекта создается копия , которая называется b. В этом случае вызов QueryInterface из прокси-сервера b для IID_IA получает не интерфейс IA на b, а на исходном прокси-сервере.

Обратите внимание, что любой пользователь может запросить прокси-сервер и изменить безопасность на нем с помощью SetBlanket. Однако, когда вы сделали копию прокси-сервера, никто не сможет получить копию, если вы не предоставите ее им. Только пользователи, у которых есть копия, могут установить для нее безопасность.

Вспомогательная функция CoCopyProxy инкапсулирует вызов QueryInterface для указателя на IClientSecurity, вызов CopyProxy с указателем IClientSecurity и освобождение указателя IClientSecurity .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objidl.h (включая ObjIdl.h)

См. также раздел

CoCopyProxy

IClientSecurity