Функция CoCopyProxy (combaseapi.h)
Создает частную копию указанного прокси-сервера.
Синтаксис
HRESULT CoCopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
Параметры
[in] pProxy
Указатель на интерфейс IUnknown на прокси-сервере для копирования. Этот параметр не может иметь значение NULL.
[out] ppCopy
Адрес переменной указателя, которая получает указатель интерфейса на копию прокси-сервера. Этот параметр не может иметь значение NULL.
Возвращаемое значение
Эта функция может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Указывает на успешное завершение. |
|
Один или несколько аргументов являются недопустимыми. |
Комментарии
CoCopyProxy создает частную копию указанного прокси-сервера. Как правило, эта функция вызывается, когда клиенту необходимо изменить сведения о проверке подлинности своего прокси-сервера с помощью вызова CoSetProxyBlanket или IClientSecurity::SetBlanket без изменения этих сведений для других клиентов. CoSetProxyBlanket влияет на всех пользователей экземпляра прокси-сервера, поэтому создание частной копии прокси-сервера с помощью вызова CoCopyProxy и последующего вызова CoSetProxyBlanket (или IClientSecurity::SetBlanket) с помощью копии устраняет проблему.
Эта вспомогательная функция инкапсулирует следующую последовательность распространенных вызовов (обработка ошибок исключена):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->CopyProxy(punkProxy, ppunkCopy);
pcs->Release();
Локальные интерфейсы не могут быть скопированы. Примерами существующих локальных интерфейсов являются IUnknown и IClientSecurity.
Копии того же прокси-сервера имеют особую связь относительно QueryInterface. При использовании прокси-сервера интерфейса IA удаленного объекта предположим, что создается копия с именем b. В этом случае вызов QueryInterface из прокси-сервера b для IID_IA не извлекает интерфейс IA на b, а на исходном прокси-сервере с параметрами безопасности по умолчанию для интерфейса IA.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |