IClientSecurity::CopyProxy  L17HLS

Makes a private copy of the specified proxy.

HRESULT CopyProxy(

    IUnknown *  punkProxy ,

//IUnknown pointer to the proxy to copy

    IUnknown **  ppunkCopy

//Indirect IUnknown pointer to the copy

   );

 

 

Parameter

punkProxy

[in] Points to the IUnknown interface on the proxy to be copied. May not be NULL.

ppunkCopy

[out] On successful return, points to the location of the IUnknown pointer to the copy of the proxy. It may not be NULL.

 

Return Values

S_OK

Success.

E_INVALIDARG

One or more arguments are invalid.

 

Remarks

IClientSecurity::CopyProxy makes a private copy of the specified proxy for the calling client. Its authentication information may be changed through a call to IClientSecurity::SetBlanket without affecting any other clients of the original proxy. The copy has the default values for the authentication information. The copy has one reference and must be released.

The helper function CoCopyProxy encapsulates a QueryInterface call on the proxy for a pointer to IClientSecurity, and with that pointer calls IClientSecurity::CopyProxy, and then releases the IClientSecurity pointer.

Local interfaces may not be copied. IUnknown1NEM0LU and IClientSecurity1MZKD73 are examples of existing local interfaces.

Copies of the same proxy have a special relationship with respect to QueryInterface. Given a proxy, a, of the IA interface of a remote object, suppose a copy of a is created, called b. In this case, calling QueryInterface from the b proxy for IID_IA will not retrieve the IA interface on b, but the one on a, the original proxy with the  default  security settings for the IA interface.

See Also

CoCopyProxy