IClientSecurity::CopyProxy
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. IUnknown
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