Adds another user to the current conversation. Scriptable.

Syntax

HRESULT AddContact(
   [in] VARIANT vContact
);

Parameters

vContact

[in] VARIANT that can take as its value either a VT_BSTR or a VT_DISPATCH pointer to an existing IMessengerContact object. If the input value type is a string, this method creates a new MessengerContact object internally. The string should be the full sign-in name. If the input value type is a pointer to an existing MessengerContact object (should be type VT_DISPATCH), the existing object is used for contact information.

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.

E_INVALIDARG

One of the following:

  • vContact is null, the wrong type, points to a null string, or points to a string that has a space as the first character.

  • vContact is VT_BSTR that exceeded 129 characters.

  • vContact is VT_BSTR and contains a carriage return or linefeed.

E_FAIL

The client is not signed in to the primary service at the time this method is called or this method is called against the local client user.

S_FALSE

The string comparison failed.

MSGR_E_SESSION_FULL

The current conversation window is hosting a voice or video conversation or the maximum number of participants allowed in the session has been reached.

Remarks

This method adds any contact to an existing IM conversation. If the local client is already a participant in the conversation, your code should check the IMessengerContact::IsSelf property before adding the contact. If the boolean property has a true value, the contact should not be added to the conversation.

Example

The example code instantiates an IM conversation with foundContact, an IMessengerContact object. It uses an IMessengerConversationWnd interface object to add an additional contact to a current conversation represented by imWindow. The IMessengerContact parameter of the AddContact method is returned by a call to the IMessenger::GetContact method on the communicator object.

Copy Code
imWindow = (IMessengerConversationWnd)communicator.InstantMessage(foundContact);
try
{
  IMessengerContact contactToAdd = (IMessengerContact)communicator.GetContact("jaya@contoso.com", 
								communicator.MyServiceId
								)
  if (contactToAdd.IsSelf == false)
	 imWindow.AddContact(contactToAdd);
}
catch (COMException CE)
{
   resultsTextBox.Text = "COM Exception " + CE.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