IObjectContext::IsCallerInRole method

Indicates whether the object's direct caller is in a specified role (either directly or as part of a group).


HRESULT IsCallerInRole(
  [in]  BSTR bstrRole,
  [out] BOOL *pfIsInRole


bstrRole [in]

The name of the role.

pfIsInRole [out]

TRUE if the caller is in the specified role; FALSE if not. This parameter is also set to TRUE if security is not enabled.

Return value

This method can return the following values.

Return codeDescription

The role specified in the bstrRole parameter is a recognized role, and the Boolean result returned in the pbIsInRole parameter indicates whether the caller is in that role.


The role specified in the bstrRole parameter does not exist.


One or more of the arguments passed in is not valid.


An unexpected error occurred. This can happen if one object passes its IObjectContext pointer to another object and the other object calls IsCallerInRole using this pointer. An IObjectContext pointer is not valid outside the context of the object that originally obtained it.



You use this method to determine whether the direct caller of the currently executing method is associated with a specific role. A role is a symbolic name that represents a user or group of users who have specific access permissions to all components in a given COM+ application. Developers define roles when they create a component, and roles are mapped to individual users or groups at deployment time.

IsCallerInRole applies only to the direct caller of the currently executing method. (The direct caller is the process calling into the current server process. It can be either a base client process or a server process.) IsCallerInRole does not apply to the process that initiated the call sequence from which the current method was called or to any other callers in that sequence.

Because IsCallerInRole returns TRUE when the object that invokes it is executing in a client's process, it's a good idea to call IsSecurityEnabled before calling IsCallerInRole. If security isn't enabled, IsCallerInRole will not return an accurate result.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]



See also




Community Additions