Méthode IClientSecurity ::CopyProxy (objidl.h)
Effectue une copie privée du proxy pour l’interface spécifiée.
Syntaxe
HRESULT CopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
Paramètres
[in] pProxy
Pointeur vers l’interface dont le proxy doit être copié. Ce paramètre ne peut pas être NULL.
[out] ppCopy
Pointeur vers le pointeur d’interface IUnknown qui reçoit la copie du proxy. Ce paramètre ne peut pas être NULL.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
Un ou plusieurs arguments ne sont pas valides. |
Remarques
CopyProxy est appelé par le client pour effectuer une copie privée du proxy pour l’interface spécifiée. La copie proxy a des valeurs par défaut pour les informations d’authentification. Ses informations d’authentification peuvent être modifiées par le biais d’un appel à IClientSecurity ::SetBlanket sans affecter d’autres clients du proxy d’origine. La copie a une référence, et l’appelant de CopyProxy doit s’assurer que la copie proxy est libérée.
Les interfaces locales, telles que IUnknown et IClientSecurity, ne peuvent pas être copiées. Vous ne pouvez pas dupliquer un gestionnaire de proxy à l’aide de CopyProxy.
Les copies du même proxy ont une relation spéciale par rapport à QueryInterface. Étant donné un proxy, a, de l’interface IA d’un objet distant, supposons qu’une copie de a soit créée, appelée b. Dans ce cas, l’appel de QueryInterface à partir du proxy b pour IID_IA ne récupère pas l’interface IA sur b, mais celle sur a, le proxy d’origine.
Notez que tout le monde peut interroger un proxy et modifier sa sécurité à l’aide de SetBlanket. Toutefois, lorsque vous avez effectué une copie d’un proxy, personne ne peut obtenir la copie à moins que vous ne la lui doniez. Seules les personnes qui ont la copie peuvent définir la sécurité sur celle-ci.
La fonction d’assistance CoCopyProxy encapsule un appel QueryInterface pour un pointeur vers IClientSecurity, un appel à CopyProxy avec le pointeur IClientSecurity et la publication du pointeur IClientSecurity .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | objidl.h (inclure ObjIdl.h) |