![]() |
![]() |
![]() |
![]() |
This section defines the COM-based objects, including the interfaces and methods through which a client application makes use of object instances.
The objects are:
Each conference that is created gets all default channels for a normal conference automatically. For this release, the conference will get four default channelsdata transfer, file transfer, application sharing, and application control. Future releases will include channels for audio and video.
If the default channels are used, everyone in the conference sees the results. A file sent through the file transfer channel goes to everyone in the conference, for instance. However, some methods allow a user to operate on a particular memberfor example, a file can be sent to one member through this open-to-all channel.
In a future release, new data channels can be created to include just a subset of conference members. For example, you will be able to create a file transfer channel that sends the file to only three of the four people in your conference.
A channel is allowed to have only one of the following usage-specific interfaces (for example, a channel cannot have both IConfDataExchange and IConfFileExchange):
Conference Manager is the first COM object a COM application must create. Only one Conference Manager object needs to be created per an application instance.
Objects other than Conference Manager are created in one of two ways:
The Conference, User, Communication Channel, and File Transfer objects are created this way.
The objects created this way are:
This automatically provides the context of the objects to be enumerated. For instance, a list of Client Application objects whose enumerator is obtained from the IConfUser interface is the set of applications that the User object had, whereas a list of Client Application objects whose enumerator is obtained from the IConference interface is the set of applications that can make use of the particular conference session.
Some methods in the objects' interfaces are asynchronous and require a notification to the client application when an event takes place. This will be accomplished with outgoing interfaces as defined by COM's Connectable Objects. The object defines the interface; however, the actual implementation of the interface is in the client of the object. The object (notification sender) is called a source, and the client (notification receiver) is called a sink.
To have outgoing interfaces, an object must implement the IConnectionPointContainer interface. With this interface, the client can browse through each outgoing interface, called a connection point. Each connection point implements the IConnectionPoint interface. It is through IConnectionPoint that the client can ask for the identifier of an outgoing interface, and can give the connection point an interface pointer through which the connectable object sends notifications (that is, calls the functions in the sink). The outgoing interfaces and notifications are shown in the following table.
Object | Outgoing interface | Function/Notification |
Conference Manager | IConfMgrNotify | InvitedToConference |
ConferenceCreated | ||
Conference | IConferenceNotify | StateChanged |
RequestToJoin | ||
MemberChanged | ||
ChannelChanged | ||
Communication Channel | IConfDataExchangeNotify | DataSent |
DataReceived | ||
IConfFileExchangeNotify | FileSent | |
FileReceived | ||
IConfAppSharingNotify | StatusChanged | |
IConfAppControlNotify | StatusChanged |
Not all the interfaces nor methods in this specification need to be implemented. If an interface is not supported, the object returns E_NOINTERFACE. If the method is not supported, the calling method returns E_NOTIMPL.
The overall hierarchy of objects, interfaces, and methods are shown below.
The Conference Manager object is created with the CoCreateInstance function using a predefined class identifier (CLSID_ConferenceManager) and interface identifier (IID_IConferenceManager). It is the first COM object a client application must create. Only one Conference Manager object need be created per application instance. The object provides the following interfaces:
IConferenceManager provides the following methods:
HRESULT Initialize( REFGUID rguid);
Activates the Conference Manager object and allows the calling application to register itself to the conference services.
S_OK | Success. |
E_INVALIDARG | The rguid parameter is invalid. |
E_FAIL | The Conference Manager object was already initialized, or the conference services are not available. |
HRESULT GetConferenceCapabilities( ULONG *puConfCaps);
Determines which type of conferencing (audio, data, or video) is available on the local computer.
S_OK | Success. |
E_POINTER | The address in puConfCaps is invalid. |
E_FAIL | The Conference Manager object has not been initialized. |
CNFF_CAPS_NONE | Not capable of conferencing. |
CNFF_CAPS_DATA | Data conferencing. |
CNFF_CAPS_AUDIO | Audio conferencing. |
CNFF_CAPS_VIDEO | Video conferencing. |
HRESULT EnumConference( IEnumConf**ppEnumConf);
Determines if a conference is in progress.
S_OK | Success. |
E_POINTER | The address in ppEnumConf is invalid. |
E_FAIL | The Conference Manager object was not initialized, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method returns an instance of the enumerator for Conference objects for existing conferences. If there is a conference in progress, the person setting up another may choose to use the first rather than start a new one.
HRESULT EnumUser( IEnumConfUser **ppEnumUser);
Determines available users who can become participants in a conference. It returns an instance of the enumerator for existing User objects.
S_OK | Success. |
E_POINTER | The address in ppEnumUser is invalid. |
E_FAIL | The Conference Manager object was not initialized, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not currently supported.
HRESULT CreateConference( BSTR bstrName, ULONG uConfCaps, Iconference **ppConference);
Returns an instance of a new Conference object with the IConference interface.
S_OK | Success. |
E_POINTER | The address in ppConference is invalid. |
E_INVALIDARG | The bstrName string is invalid, or uConfCaps contains an invalid value. |
E_FAIL | The Conference Manager object was not initialized, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT GetRemoteConference( Iconference **ppConference);
Returns an instance of an ongoing Conference object from which the application was remotely activated by a remote node.
S_OK | Success. |
E_POINTER | The address in ppConference is invalid. |
E_FAIL | The Conference Manager object is not initialized, the application was not activated remotely, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
The calling application should use the Conference object to communicate with the remote node.
HRESULT CreateUser( BSTR bstrName, CONFUSERTYPE uType, IConfUser **ppUser);
Returns an instance of a new User object with the IConfUser interface.
S_OK | Success. |
E_POINTER | The address in ppUser is invalid. |
E_INVALIDARG | The bstrName string is invalid, or uType is not one of the valid types. |
E_FAIL | The Conference Manager object was not initialized, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
CNF_USER_UNKNOWN | Unknown transport. |
CNF_USER_IP | The user name contains an IP address. |
CNF_USER_MACHINENAME | The user name contains a computer name. |
CNF_USER_PSTN | The user name contains a telephone number. |
This interface is instantiated from IID_IConnectionPointContainer to identify Conference Manager as a connectable object. The interface contains the standard set of methods for IConnectionPointContainer.
This interface is instantiated from IConnectionPointContainer. The client uses this interface to:
To receive asynchronous event notifications from a Conference Manager object, a client application must implement the methods in the IConfMgrNotify interface, which is instantiated from IID_IConfMgrNotify.
The IConfMgrNotify interface provides the following methods:
HRESULT InvitedToConference( IConfUser *pUser, Iconference *pConference);
Starts when an application receives a call to give the application a pointer to the Conference object it is being invited to. Conference Manager must be initialized.
S_OK | Success. |
This event is not supported in the current version.
HRESULT ConferenceCreated( Iconference *pConference);
Starts when a new conference is activated by other applications. The Conference object can be used as if it were activated by the client application.
S_OK | Success. |
The User object is enumerated from the enumerator obtained from the IConferenceManager::EnumUser method.
This object provides one interface:
IConfUser is instantiated automatically when the object is obtained from the enumerator. It provides the following methods:
HRESULT GetName( BSTR *pbstrName);
Returns the string for the user name.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_FAIL | The name is not valid, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT GetType( CONFUSERTYPE *puType);
Determines the type of name for the User object.
S_OK | Success. |
E_POINTER | The address in puType is invalid. |
HRESULT GetConferenceCapabilities( ULONG *puConfCaps);
Determines which type of conferencing (audio, data, or video) is available on the user's computer.
S_OK | Success. |
E_POINTER | The address in puConfCaps is invalid. |
This method is not supported in the current version.
HRESULT IsMCU(void);
Determines whether the User object is a multipoint control unit (MCU).
S_OK | The user is an MCU. |
S_FALSE | The user is not an MCU. |
This method is not supported in the current version.
HRESULT EnumConference( IEnumConf **ppEnumConf);
Returns an instance of the enumerator for existing Conference objects for the User object.
S_OK | Success. |
E_POINTER | The address in ppEnumConf is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not supported in the current version.
HRESULT EnumApplication( IEnumConfApp **ppEnumApp);
Returns an instance of the enumerator for the Client Application object.
S_OK | Success. |
E_POINTER | The address in ppEnumApp is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not supported in the current version.
A Conference object may be:
The object provides the following interfaces:
The IConference interface provides the following methods:
HRESULT GetName( BSTR *pbstrName);
Returns the string for the conference name.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_FAIL | The name is not valid, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
The conference name is passed in when the object is created by IConferenceManager::CreateConference, or is the name that existed when another user's conference was joined.
HRESULT GetConferenceCapabilities( ULONG *puConfCaps);
Determines which type of conferencing (audio, data, or video) the Conference object was originally created with.
S_OK | Success. |
E_POINTER | The address in puConfCaps is invalid. |
HRESULT GetConferenceState( CONFSTATE *puConfState);
Returns the state of the Conference object.
S_OK | Success. |
E_POINTER | The address in pConfState is invalid. |
CNF_STATE_IDLE | The conference is idle (just created). |
CNF_STATE_INITIALIZING | The conference is being initialized. |
CNF_STATE_ACTIVE | The conference is active and can be used. |
CNF_STATE_STOPPING | The conference is being terminated. |
CNF_STATE_OFFERED | The conference is offered. |
HRESULT IsSameAs( IConference *pConference);
Identifies whether the two Conference objects represent the same conference.
S_OK | Both Conference objects represent the same conference. |
S_FALSE | Both Conference objects do not represent the same conference. |
E_INVALIDARG | The pConference address is invalid. |
E_NOINTERFACE | The pConference object does not have the required interface. |
HRESULT Invite( IConfUser *pUser);
Invites a new user to the conference. If the Conference object is inactive, it becomes active when the invited user accepts the invitation.
S_OK | Success. |
E_INVALIDARG | The pUser address is invalid. |
E_NOINTERFACE | The object in pUser does not have the required interface. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is asynchronous (an event notification will be returned later if it is successful).
HRESULT AcceptInvite(void);
Accepts an invitation to a conference. It is called in response to the IConfMgrNotify::InvitedToConference sink method.
S_OK | Success. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method will not be implemented for the first release because SCRAPI does not support it. For the first release, invitations will have to be accepted from Microsoft NetMeeting.
HRESULT RejectInvite(void);
Rejects an invitation to a conference. It is called in response to the IConfMgrNotify::InvitedToConference sink method.
S_OK | Success. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method will not be implemented for the first release because SCRAPI does not support it. For the first release, invitations will have to be rejected from Microsoft NetMeeting.
HRESULT Join( IConfUser *pUser);
Joins a user who already has a conference running.
S_OK | Success. |
E_INVALIDARG | The pUser address is invalid. |
E_NOINTERFACE | The object in pUser does not have the required interface. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT AcceptJoin( IConfUser *pUser);
Accepts a request from a user to join a conference. This method is called in response to the IConferenceNotify::RequestToJoin sink method.
S_OK | Success. |
E_INVALIDARG | The pUser address is invalid. |
E_NOINTERFACE | The object in pUser does not have the required interface |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method will not be implemented for the first release because SCRAPI does not support it. For the first release, invitations will have to be accepted from Microsoft NetMeeting.
HRESULT RejectJoin( IConfUser *pUser);
Rejects a request from a user to join a conference. This method is called in response to the IConferenceNotify::RejectJoin sink method.
S_OK | Success. |
E_INVALIDARG | The pUser address is invalid. |
E_NOINTERFACE | The object in pUser does not have the required interface. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method will not be implemented for the first release because SCRAPI does not support it. For the first release, invitations will have to be rejected from Microsoft NetMeeting.
HRESULT EnumMember( IEnumConfMember **ppEnumMember);
Returns an instance of the enumerator for the Member object when the conference is active.
S_OK | Success. |
E_POINTER | The address in ppEnumMember is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT EnumApplication( IEnumConfApp **ppEnumApp);
Returns an instance of the enumerator of the Application object when the conference is active.
S_OK | Success. |
E_POINTER | The address in ppEnumApp is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT EnumChannelInterface( IEnumChanInterface **ppEnumChanInterface);
Returns an instance of the enumerator of the Channel interface object available in the conference. The interface signifies how the channel can be used.
S_OK | Success. |
E_POINTER | The address in ppEnumChanInterface is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT EnumChannel( IEnumConfChannel **ppEnumChannel);
Returns an instance of the enumerator of the existing Channel object in the conference.
S_OK | Success. |
E_POINTER | The address in ppEnumChannel is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT CreateChannel( REFIID riid, IConfChannel *ppChannel);
Returns an instance of a new Channel object with the specified interface.
S_OK | Success. |
E_POINTER | The address in ppChannel is invalid. |
E_INVALIDARG | The riid parameter contains a channel interface that is not available in this conference. |
E_FAIL | The channel cannot be created, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not supported in the current version.
HRESULT Leave(void);
Removes the local computer from the active conference.
S_OK | Success. |
E_FAIL | The conference is not in the proper state, the operation failed, or internal resources are not available. |
This interface is instantiated from IID_IConnectionPointContainer to identify a Conference object as connectable. The interface contains the standard set of methods for IConnectionPointContainer.
This interface is instantiated from IConnectionPointContainer. The client uses this interface to:
To receive asynchronous event notifications from the Conference object, a client application must implement the methods in the IConferenceNotify interface, which is instantiated from IID_IConferenceNotify.
The IConferenceNotify interface must provide the following methods:
HRESULT StateChanged( CONFSTATE uConfState, HRESULT hr);
Notifies the client that the status of the conference has changed. It also notifies the error result if the previous asynchronous method fails.
S_OK | Success. |
HRESULT RequestToJoin( IConfUser *pUser);
Notifies the client that a user has made a request to join the conference.
S_OK | Success. |
This event is not supported in the current version.
HRESULT MemberChanged( IConfMember *pConfMember, CONFMEMBNOTIFY uNotify);
Notifies the client that the member roster for the conference has changed (someone has joined or left the conference).
S_OK | Success. The requested number of elements was returned. |
CNF_MEMB_ADDED | The member is being added to the conference. |
CNF_MEMB_REMOVED | The member is being removed from the conference. |
CNF_MEMB_UPDATED | The member information is changed. |
HRESULT ChannelChanged( IConfChannel *pChannel, CONFCHANNOTIFY uNotify);
Notifies the client that a new channel is available in the conference.
S_OK | Success. The requested number of elements was returned. |
CNF_CHAN_ADDED | The channel is being added to the conference. |
CNF_CHAN_REMOVED | The channel is being removed from the conference. |
This event is not supported in the current version.
A Member object is enumerated from the enumerator obtained from the IConference::EnumMember or the IConfChannel::EnumMember method. The object is derived from the User object and provides only one interface:
The IConfMember interface provides the following methods:
HRESULT GetName( BSTR *pbstrName);
Returns the string for the member name.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_FAIL | The name is not valid, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT GetType( CONFUSERTYPE *puType);
Determines the type of name for the Member object.
S_OK | Success. |
E_POINTER | The address in puType is invalid. |
HRESULT GetConferenceCapabilities( ULONG *puConfCaps);
Determines which type of conferencing (audio, data, or video) is available on the member's computer in the context of this conference.
S_OK | Success. |
E_POINTER | The address in puConfCaps is invalid. |
HRESULT IsMCU(void);
Determines whether the Member object is a multipoint control unit (MCU).
S_OK | The user is an MCU. |
S_FALSE | The user is not an MCU. |
This method is not supported in the current version.
HRESULT EnumConference( IEnumConf **ppEnumConf);
Returns an instance of the enumerator for existing Conference objects for the Member object.
S_OK | Success. |
E_POINTER | The address in ppEnumConf is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not supported in the current version.
HRESULT EnumApplication( IEnumConfApp **ppEnumApp);
Returns an instance of the enumerator for the Client Application object.
S_OK | Success. |
E_POINTER | The address in ppEnumApp is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This method is not supported in the current version.
HRESULT GetConference( Iconference **ppConference);
Returns the instance of the Conference object where the member belongs.
S_OK | Success. |
E_POINTER | The address in ppConference is invalid. |
E_FAIL | The conference no longer exists. |
HRESULT IsSelf(void);
Determines if the Member object represents the local computer.
S_OK | The Member object represents the local machine. |
S_FALSE | The Member object does not represent the local machine. |
HRESULT IsSameAs( IConfMember *pConfMember);
Determines if the two Member objects represent the same conference member.
S_OK | Both Member objects represent the same conference member. |
S_FALSE | Both Member objects do not represent the same conference member. |
E_INVALIDARG | The pConfMember address is invalid. |
E_NOINTERFACE | The pConfMember object does not have the required interface. |
The Communication Channel object may be:
The object provides the following interfaces:
The IConfChannel interface is instantiated automatically when the Conference object is created, explicitly created through the Conference object, obtained from the enumerator, or offered. The interface is common to all the Channel objects. It provides the following methods:
HRESULT GetConference( Iconference **ppConference);
Returns an instance of the Conference object to which the channel belongs. The Conference object is returned with the IConference interface.
S_OK | Success. |
E_POINTER | The address in ppConference is invalid. |
E_FAIL | The conference no longer exists. |
HRESULT GetInterface( IID *piid);
Obtains the Channel-specific interface.
S_OK | Success. |
E_POINTER | The address in piid is invalid. |
HRESULT IsSameAs( IConfChannel *pConfChannel);
Identifies whether the two Channel objects represent the same channel.
S_OK | Both Member objects represent the same conference member. |
S_FALSE | Both Member objects do not represent the same conference member. |
E_INVALIDARG | The pConfChannel address is invalid. |
E_NOINTERFACE | The pConfChannel object does not have the required interface. |
HRESULT IncludeMember( IConfMember *pMember);
Gives a Member object use of the channel.
S_OK | Success. The requested number of elements was returned. |
E_INVALIDARG | The pMember address is invalid. |
E_NOINTERFACE | The pMember object does not have the required interface. |
E_FAIL | The operation failed, or internal resources are not available. |
This method is not supported in the current version.
HRESULT ExcludeMember( IConfMember *pMember);
Prevents a Member object from using the channel.
S_OK | Success. The requested number of elements was returned. |
E_INVALIDARG | The pMember address is invalid. |
E_NOINTERFACE | The pMember object does not have the required interface. |
E_FAIL | The operation failed, or internal resources are not available. |
This method is not supported in the current version.
HRESULT EnumMember( IEnumConfMember **ppEnumMember);
Returns an instance of the enumerator for the Member objects that are currently allowed to use the channel.
S_OK | Success. |
E_POINTER | The address in ppEnumMember is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
The IConfDataExchange interface is instantiated by an application, from the Channel object with IID_IConfDataExchange, when the application wants to exchange blocks of data with other members.
This interface provides the following method:
HRESULT SendData( IConfMember *pMember, IConfApplication *pApplication, ULONG uSize, byte *pvbuffer, ULONG uOptions);
Sends a block of data bytes through the channel to a specified application on the specified member's computer. The caller must not free the buffer until it receives the IConfDataExchangeNotify::DataSent event.
S_OK | Success. |
E_INVALIDARG | The pvBuffer address is invalid, or uOptions contains an invalid option. |
E_NOINTERFACE | The pMember or pApplication object does not have the required interface. |
E_FAIL | The specified data buffer was not sent, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
CNFF_SDOPT_NONE | No option is specified. |
The IConfFileExchange interface is instantiated by an application, from the Channel object with IID_IConfFileExchange, when the application wants to exchange files with other members.
This interface provides the following methods:
HRESULT SetReceiveFileDir( BSTR bstrDir);
Sets the path to the directory where the received file will be stored on the local computer.
S_OK | Success. |
E_INVALIDARG | The bstrDir path is invalid. |
E_FAIL | The operation failed, or internal resources are not available. |
HRESULT GetReceiveFileDir( BSTR *pbstrDir);
Gets the path to the directory where the received file will be stored.
S_OK | Success. |
E_POINTER | The address in pbstrDir is invalid. |
E_FAIL | The operation failed, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT SendFile( IConfMember *pMember, IConfApplication *pApplication, BSTR bstrFile, ULONG uOptions, IConfFileTransfer **ppFileTransfer);
Sends a file through the channel.
S_OK | Success. |
E_POINTER | The address in ppFileTransfer is invalid. |
E_INVALIDARG | The bstrFile string is invalid, or uOptions contains an invalid option. |
E_NOINTERFACE | The pMember or pApplication object does not have the required interface. |
E_FAIL | The specified file was not sent, the specified file does not exist, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
CNFF_SFOPT_NONE | No option is specified. |
CNFF_SFOPT_NOUI | The default progress dialog user interface should not be used. |
CNFF_SFOPT_NOCOMPRESS | The file should not be compressed. |
HRESULT Cancel( IConfFileTransfer *pFileTransfer);
Cancels the file being sent or received.
S_OK | Success. |
E_INVALIDARG | The pFileTransfer address is invalid. |
E_NOINTERFACE | The pFileTransfer object does not have the required interface. |
E_FAIL | The operation cannot be canceled, or internal resources are not available. |
The IConfAppSharing interface is instantiated by an application from the Channel object with IID_IConfAppSharing when it wants to share an application.
This interface provides the following method:
HRESULT EnumSharableApp( IEnumConfShareApp **ppEnumShareApp);
Returns an instance of the ConfShareApp object enumerator for the applications that can be shared.
S_OK | Success. |
E_POINTER | The address in ppEnumShareApp is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
The ConfShareApp object provides methods for sharing and unsharing the application.
The IConfAppControl interface is instantiated by an application from the Channel object with IID_IConfAppControl.
This interface provides the following methods:
HRESULT StartRemoteInstance( IConfMember *pMember, IConfApplication *pApplication);
Accepts an Application object and starts its instance on the specified member in the channel.
S_OK | Success. |
E_NOINTERFACE | The pMember or pApplication object does not have the required interface. |
E_FAIL | The remote instance cannot be started, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT EnumPeer( IConfApplication *pApplication, IEnumConfMember **ppEnumMember);
Returns an instance of the enumerator for the Member object that currently has the application running.
S_OK | Success. |
E_POINTER | The address in ppEnumMember is invalid. |
E_NOINTERFACE | The pApplication object does not have the required interface. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
This interface is instantiated from IID_IConnectionPointContainer to identify the Communication Channel object as a connectable object. The interface contains the standard set of methods for IConnectionPointContainer.
This interface is instantiated from IConnectionPointContainer. The client uses this interface to:
To receive asynchronous event notifications relating to the exchange of data from the Communications Channel object, a client application must implement the methods in the IConfDataExchangeNotify interface, which is instantiated from IID_IConfDataExchangeNotify.
The IConfDataExchangeNotify interface must provide the following methods:
HRESULT DataSent( IConfMember *pMember, ULONG uSize, byte *pvBuffer, HRESULT hr);
Provides status notification of data sent, including the result of the operation.
S_OK | Success. The requested number of elements was returned. |
HRESULT DataReceived( IConfMember *pMember, ULONG uSize, byte *pvBuffer, HRESULT hr);
Provides status notification of data received.
S_OK | Success. The requested number of elements was returned. |
The data buffer is valid only during the event notification, and is freed by the source object once the notification is over.
To receive asynchronous event notifications relating to the exchange of files from the Communications Channel object, a client application must implement the methods in the IConfFileExchangeNotify interface, which is instantiated from IID_IConfFileExchangeNotify.
The IConfFileExchangeNotify interface provides the following methods:
HRESULT FileSent( IConfMember *pMember, IConfFileTransfer *pFileTransfer, HRESULT hr);
Provides notification of file sent status. This method can be used multiple times to get progress information from the File Transfer object.
S_OK | Success. The requested number of elements was returned. |
HRESULT FileReceived( IConfMember *pMember IConfFileTransfer *pFileTransfer, HRESULT hr);
Provides notification of file received status. This method can be used multiple times to get progress information.
S_OK | Success. The requested number of elements was returned. |
To receive asynchronous event notifications relating to the sharing of applications from the Communications Channel object, a client application must implement the methods in the IConfAppSharingNotify interface, which is instantiated from IID_IConfAppSharingNotify.
The IConfAppSharingNotify interface provides the following method:
HRESULT StatusChanged( IConfShareApp *pShrApp, CONFSHRSTATE uShareStatus HRESULT hr);
Provides notification when a sharable application becomes shared or unshared.
S_OK | Success. The requested number of elements was returned. |
CNF_SHR_UNKNOWN | The application status is unknown. |
CNF_SHR_SHARED | The application is shared. |
CNF_SHR_UNSHARED | The application is not shared. |
To receive asynchronous event notifications relating to the control of the remote instance of the application from the Communications Channel object, a client application must implement the methods in the IConfAppControlNotify interface, which is instantiated from IID_IConfAppControlNotify.
The IConfAppControlNotify interface provides the following method:
HRESULT StatusChanged( IConfMember *pMember, IConfApplication *pApplication, CONFAPPSTATE uAppStatus, HRESULT hr);
Provides notification when the remote instance of an application on a member changes its status.
S_OK | Success. The requested number of elements was returned. |
CNF_APP_UNKNOWN | The state of the remote instance of the application is unknown. |
CNF_APP_STARTED | The remote instance of the application is started. |
CNF_APP_STOPPED | The remote instance of the application is stopped. |
The Client Application object, or Application object, is enumerated from the enumerator obtained from the IConfUser::EnumApplication or the IConference::EnumApplication method.
The object provides the following interface:
The IConfApplication interface is instantiated automatically when the object is enumerated from the enumerator.
The interface provides the following methods:
HRESULT GetGUID( GUID *pGUID);
Returns the application's globally unique identifier (GUID).
S_OK | Success. |
E_POINTER | The address in pGUID is invalid. |
HRESULT GetName( BSTR *pbstrName);
Returns the string to contain the application name.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
The Sharable Application object, or Share Application object, is enumerated from the enumerator obtained from the IConfAppSharing::EnumSharableApp method.
The object provides the following interface:
The IConfShareApp interface is instantiated automatically when the object is enumerated from the enumerator.
The interface provides the following methods:
HRESULT GetName( BSTR *pbstrName);
Returns the string for the share application name.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_FAIL | The application no longer exists, or internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT Share(void);
Shares the application on all the members in the channel.
S_OK | Success. The requested number of elements was returned. |
E_FAIL | The operation failed. |
HRESULT Unshare(void);
Unshares the application on all the members in the channel.
S_OK | Success. The requested number of elements was returned. |
E_FAIL | The operation failed. |
HRESULT GetShareState( CONFSHRSTATE *puShrState);
Retrieves the "share" state of the application.
S_OK | Success. |
E_POINTER | The address in puShrState is invalid. |
CNF_SHR_UNKNOWN | The application state is unknown. |
CNF_SHR_SHARED | The application is being shared. |
CNF_SHR_UNSHARED | The application is not being shared. |
A File Transfer object is obtained from the IConfFileExchangeNotify::FileSent or IConfFileExchangeNotify::FileReceived method.
The object provides the following interface:
The IConfFileTransfer interface provides the following methods:
HRESULT GetName( BSTR *pbstrName);
Returns the string for the full path of the file.
S_OK | Success. |
E_POINTER | The address in pbstrName is invalid. |
E_FAIL | Internal resources are not available. |
E_OUTOFMEMORY | Memory could not be allocated to service the request. |
HRESULT GetBytesTransferred( ULONG *puBytes);
Returns the number of bytes transferred.
S_OK | Success. |
E_POINTER | The address in puBytes is invalid. |
HRESULT GetTotalSize( ULONG *puBytes);
Returns the size, in bytes, of the file.
S_OK | Success. |
E_POINTER | The address in puBytes is invalid. |
HRESULT GetFileState( CONFFILESTATE *puState);
Returns the state of the File Transfer object.
S_OK | Success. |
E_POINTER | The address in puState is invalid. |
CNF_FILE_IDLE | The file-transfer operation was requested but not yet initialized. |
CNF_FILE_INITIALIZING | The file-transfer operation was requested and is now initialized. |
CNF_FILE_PROGRESS | The file-transfer operation is in progress. |
CNF_FILE_COMPLETE | The file-transfer operation is completed. |
Note that the CNF_FILE_COMPLETE value simply represents completion of the operation. The operation may have completed due to success, cancellation, or failure.
HRESULT IsSameAs( IConfFileTransfer *pFileTransfer);
Identifies whether the two File Transfer objects represent the same file-transfer operation.
S_OK | Both File Transfer objects represent the same operation. |
S_FALSE | Both File Transfer objects do not represent the same operation. |
E_INVALIDARG | The pFileTransfer address is invalid. |
E_NOINTERFACE | The pFileTransfer object does not have the required interface. |
![]() |
![]() |
![]() |
![]() |