The Conference object manages a conference.
The Conference object is instantiated with the INmManager::CreateConference method.
An application may instantiate any number of Conference objects, but only one may be active at any given time. The rest must be idle. An idle conference has no members and no channels, while an active conference will always have at least one member.
Successful completion of the INmManager::CreateCall, INmConference::Host, or INmCall::Accept methods will result in an NM_CONFERENCE_ACTIVE state for the Conference object.
Use the IEnumNmConference Interface interface to navigate through the currently instantiated Conference objects.
INmConference Interface |
INmConferenceNotify Interface |
This interface manages channels and members and also maintains conference-specific information.
CreateDataChannel |
EnumChannel |
EnumMember |
GetChannelCount |
GetID |
GetMemberCount |
GetName |
GetNmchCaps |
GetState |
GetTopProvider |
Host |
IsHosting |
LaunchRemote |
Leave |
HRESULT CreateDataChannel(
[out] INmChannelData **ppChannel,
[in] REFGUID rguid);
Provides a pointer to an INmChannelData Interface on a new Channel object. This Data Channel, identified by your application's globally unique identifier (GUID), can be used to transmit information between instances of your application running on each conference participant's computer.
S_OK | Success. |
E_POINTER | ppChannel is an invalid pointer. |
E_INVALIDARG | The rguid parameter contains an invalid value. |
E_FAIL | The channel cannot be created, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Typically, an application will have only one Data Channel and will use its own application GUID to identify the Channel. However, an application can create multiple Data Channels and identify each one with a different GUID.
The Using the NetMeeting Data Channel tutorial has more information on this subject.
For more information on creating GUIDs, see Inside OLE 2, by Kraig Brockschmidt.
Back to INmConference Interface
HRESULT EnumChannel(
[out] IEnumNmChannel **ppEnum);
Returns an instance of the enumerator for the existing Channel objects in the conference. The IEnumNmChannel Interface methods can be used to manipulate this enumerator.
S_OK | Success. |
E_POINTER | ppEnum is an invalid pointer. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Back to INmConference Interface
HRESULT EnumMember(
[out] IEnumNmMember **ppEnum);
Provides an instance of the enumerator for the Member objects in the current conference. The IEnumNmMember Interface methods can be used to manipulate this enumerator.
S_OK | Success. |
E_POINTER | ppEnum is an invalid pointer. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Back to INmConference Interface
HRESULT GetChannelCount(
[out] ULONG *puCount);
Retrieves the current number of channels in the conference.
S_OK | Success. |
E_POINTER | The puCount pointer is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Back to INmConference Interface
HRESULT GetID(
[out] ULONG *puID);
Retrieves the unique identifier of the Conference object. This method will only return an identifier if the Conference object has data capabilities.
S_OK | |
Success. | |
E_POINTER | |
The puID pointer is invalid. | |
NM_E_NO_T120_CONFERENCE | |
The conference is audio and video only, or the conference is idle (waiting for others to join). |
Back to INmConference Interface
HRESULT GetMemberCount(
[out] ULONG *puCount);
Retrieves the current number of members in the conference.
S_OK | Success. |
E_POINTER | The puCount pointer is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Back to INmConference Interface
HRESULT GetName(
[out] BSTR *pbstrName);
Retrieves the string for the conference name.
S_OK | Success. |
E_POINTER | The pbstrName pointer is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
Back to INmConference Interface
HRESULT GetNmchCaps(
[out] ULONG *puchCaps);
Retrieves the channel capabilities with which the Conference object was created. The capabilities define the channels for which the application will receive notifications.
NMCH_AUDIO | Audio Channel capabilities. |
NMCH_DATA | Data Channel capabilities. |
NMCH_FT | File Transfer Channel capabilities. |
NMCH_SHARE | Application Sharing Channel capabilities. |
NMCH_VIDEO | Video Channel capabilities. |
Back to INmConference Interface
HRESULT GetState(
[out] NM_CONFERENCE_STATE *pState);
Retrieves the state of the Conference object. Though an application may have any number of Conference objects instantiated, only one Conference object may be active at any given time.
Back to INmConference Interface
HRESULT GetTopProvider(
[out] INmMember **ppMember);
Retrieves the top provider, which is the member in charge of the conference.
If the top provider leaves the conference, the conference will end.
Back to INmConference Interface
HRESULT Host(void);
Activates a conference and makes the local user a member of the conference.
S_OK | Success. |
E_FAIL | Conference is not idle. |
NM_E_NO_T120_CONFERENCE | Conference does not have data capabilities. |
The conference must be in the idle state to be set as a host (state must be NM_CONFERENCE_IDLE).
The conference must have data capabilities to be a host (must have NMCH_DATA set). For more information, see INmManager::CreateConference.
This method ensures that the local user will be the top provider (member in charge of the conference).
This method has the same effect as choosing the "Host Meeting" menu item in NetMeeting.
A hosted conference will not end when the last remote participant leaves the conference.
Back to INmConference Interface
HRESULT IsHosting(void);
Determines if the conference is being hosted by the local computer.
Back to INmConference Interface
HRESULT LaunchRemote(
[in] REFGUID rguid,
[in] INmMember *pMember);
Starts the application associated with the specified globally unique identifier (GUID) on the remote member's system.
If pMember is NULL, NetMeeting attempts to start the remote application on all members in the conference.
In most cases, each application will have one Data Channel and the same GUID will be used to identify the Data Channel and the application. In some cases, an application may have multiple Data Channels, each identified with its own GUID. In this case, the application will use one of these GUIDs as its own launching GUID.
For more information, see the Remotely Launching Your Program tutorial.
Back to INmConference Interface
HRESULT Leave(void);
Removes the local computer from the active conference.
If other computers are connected to the conference through this computer, they will also be disconnected. If the local user is the top provider (member in charge of the conference), the conference will end.
Back to INmConference Interface
This is an event notification sink interface for the INmConference interface. The methods in this interface are called by the Conference object interface when specific events occur.
These event sink methods should be defined and implemented by the client application to respond to notifications from a Conference object. For example, the INmConferenceNotify::MemberChanged method is notified when the member roster for the Conference object has changed. The client application implementation of this method could provide a display to the user informing him or her of the addition or removal of the specific member.
ChannelChanged |
MemberChanged |
NmUI |
StateChanged |
HRESULT ChannelChanged(
[in] NM_CHANNEL_NOTIFY uNotify,
[in] INmChannel *pChannel);
Notifies the client that a channel for the conference has changed.
NM_MEMBER_ADDED | A channel was added to the conference. |
NM_MEMBER_REMOVED | A channel was removed from the conference. |
NM_MEMBER_UPDATED | Information for a channel was updated. |
Back to INmConferenceNotify Interface
HRESULT MemberChanged(
[in] NM_MEMBER_NOTIFY uNotify,
[in] INmMember *pMember);
Notifies the client that the member roster for the conference has changed (someone has joined or left the conference or the member's capabilities has been updated).
NM_MEMBER_ADDED | A member was added to the conference. |
NM_MEMBER_REMOVED | A member was removed from the conference. |
NM_MEMBER_UPDATED | Information for a conference member was updated. |
Back to INmConferenceNotify Interface
HRESULT NmUI(
[in] CONFN uNotify);
Receives event notification when a conference change occurs.
Back to INmConferenceNotify Interface
HRESULT StateChanged(
[in] NM_CONFERENCE_STATE uState);
Notifies the application when the conference state has changed.
NM_CONFERENCE_ACTIVE | The conference is active. Most operations on a conference require it to be in this state. |
NM_CONFERENCE_IDLE | The conference is not active. It contains no members or channels. |
NM_CONFERENCE_INITIALIZING | The conference is transitioning between the idle and active states. The application should wait for a notification that the state has changed to either waiting or active before attempting to perform any other conference operations. |
NM_CONFERENCE_WAITING | A hosted conference with only the local member participating. |
Back to INmConferenceNotify Interface
Last Updated: November 1, 1997
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.