CoImpersonateClient function (combaseapi.h)

Enables the server to impersonate the client of the current call for the duration of the call.

Syntax

HRESULT CoImpersonateClient();

Return value

This function supports the standard return values, including S_OK.

Remarks

This method allows the server to impersonate the client of the current call for the duration of the call. If you do not call CoRevertToSelf, COM reverts automatically for you. This function will fail unless the object is being called with RPC_C_AUTHN_LEVEL_CONNECT or higher authentication in effect (which is any authentication level except RPC_C_AUTHN_LEVEL_NONE). This function encapsulates the following sequence of common calls (error handling excluded):

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->ImpersonateClient();
    pss->Release();

CoImpersonateClient encapsulates the process of getting a pointer to an instance of IServerSecurity that contains data about the current call, calling its ImpersonateClient method, and then releasing the pointer. One call to CoRevertToSelf (or IServerSecurity::RevertToSelf) will undo any number of calls to impersonate the client.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header combaseapi.h (include Objbase.h)
Library Ole32.lib
DLL Ole32.dll

See also

Cloaking

IServerSecurity::ImpersonateClient

Impersonation

Impersonation and Asynchronous Calls

Security in COM