Sets or retrieves a Boolean value that declares whether the contact associated with this MessengerContact object. Not scriptable.

Syntax

HRESULT Blocked(
   [out, retval] VARIANT_BOOL* pBoolBlock
);


HRESULT Blocked(
   [in] VARIANT_BOOL* pBoolBlock
);

Parameters

pBoolBlock

Pointer to a variable of type VARIANT_BOOL that receives whether this user is blocked by the current client user. VARIANT_TRUE indicates that the user is blocked. VARIANT_FALSE indicates that the user is not blocked.

Return Value

Returns one of the following values. For managed code applications, these return values are received in the form of a COMException.

S_OK

Success.

S_FALSE

Attempted to block an already blocked user or unblock a user who was not blocked.

E_FAIL

A general internal failure occurred.

DISP_E_BADVARTYPE

The VARIANT handling library returned an error.

E_OUTOFMEMORY

The VARIANT handling library returned an error.

E_INVALIDARG

The argument requested an out-of-range property. This is not normally returned through this interface because the API calls a property that is known to be in range.

Remarks

Blocking is not necessarily reciprocal. User A might have blocked User B, but if User B has not blocked User A, User A can still receive status updates about User B if User B is on User A's contact list. Blocking a user does not remove the user from the contact list or the MessengerContacts collection. Clients should decide how to enforce a logical relationship between blocking users and removing blocked users from the contact list.

Assuming the MessengerContact object can be successfully created (which can only be done with an online client), calling this method against a MessengerContact object while the client is offline always return pBoolBlock==FALSE, even if the contact in question really is blocked. Property information cannot be determined while offline, but do not throw an error.

Example

The example demonstrates reading and setting the Blocked status of a contact. If the MessengerContact object is null, the attempt to read the Blocked property raises a COMException. To avoid the overhead of processing the exception, the code first checks to see if the MessengerContact object exists. If the contact Blocked status is true, the status is set to false. If false, the Blocked is set to true.

Copy Code
if (contact != null)
{
   try
   {
	if (contact.Blocked == true)
			contact.Blocked = false;
	else
			contact.Blocked = true;
   }
   catch (COMException CEB)
   {
	 Console.WriteLine(CEB.ErrorCode.ToString());
   }
}

Requirements

Client

Requires Microsoft DirectX 9.0, C Runtime libraries (msvcm80.dll) on Microsoft Windows© Vista, Microsoft Windows XP Service Pack 1 (SP1) or later, or Microsoft Windows 2000 with Service Pack 4 (SP4). Any Communicator-imposed restrictions apply. .

Server

Requires Microsoft Office Communications Server 2007, AV MCU (for Media Support), Media Relay (for NAT/Firewall traversal) on Microsoft Office Communications Server 2007.

Product

Microsoft Office Communicator 2007 Automation API

IDL file

Msgrua.idl

See Also

Reference

IMessengerContact