Previous Up Index Next

COM Objects, Interfaces, and Functions


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 channels—data 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 member—for 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:

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.

Conference Manager
IConferenceManager Initialize
GetConferenceCapabilities
EnumConference
EnumUser
CreateConference
GetRemoteConference
CreateUser
IConnectionPointContainer
IConnectionPointIConfMgrNotify InvitedToConference
ConferenceCreated
User
IConfUser GetName
GetType
GetConferenceCapabilities
IsMCU
EnumConference
EnumApplication
Conference
IConference GetName
GetConferenceCapabilities
GetConferenceState
IsSameAs>IsSameAs
Invite
AcceptInvite
RejectInvite
Join
AcceptJoin
RejectJoin
EnumMember
EnumApplication
EnumChannelInterface
EnumChannel
CreateChannel
Leave
IConnectionPointContainer
IConnectionPointIConferenceNotify StateChanged
RequestToJoin
MemberChanged
ChannelChanged
Member
IConfMember GetName
GetType
GetConferenceCapabilities
IsMCU
EnumConference
EnumApplication
GetConference
IsSelf
IsSameAs
Communication Channel
IConfChannel GetConference
GetInterface
IsSameAs
IncludeMember
ExcludeMember
EnumMember
IConfDataExchange SendData
IConfFileExchange SetReceiveFileDir
GetReceiveFileDir
SendFile
Cancel
IConfAppSharing EnumSharableApp
IConfAppControl StartRemoteInstance
EnumPeer
IConnectionPointContainer
IConnectionPointIConfDataExchangeNotify DataSent
DataReceived
IConnectionPointIConfFileExchangeNotify FileSent
FileReceived
IConnectionPointIConfAppSharingNotify StatusChanged
IConnectionPointIConfAppControlNotify StatusChanged
Client Application
IConfApplication GetGUID
GetName
Sharable Application
IConfShareApp GetName
Share
Unshare
GetShareState
File Transfer Object
IConfFileTransfer GetName
GetBytesTransferred
GetTotalSize
GetFileState
IsSameAs

Conference Manager Object

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

IConferenceManager provides the following methods:

IConferenceManager::Initialize

HRESULT Initialize(
    REFGUID rguid);

Activates the Conference Manager object and allows the calling application to register itself to the conference services.

rguid
Globally unique identifier (GUID) that identifies the calling application.

IConferenceManager::GetConferenceCapabilities

HRESULT GetConferenceCapabilities(
    ULONG *puConfCaps);

Determines which type of conferencing (audio, data, or video) is available on the local computer.

puConfCaps
Address of a buffer to receive a bitmap of the local computer conferencing capabilities. Any of the following messages can be returned:
CNFF_CAPS_NONE Not capable of conferencing.
CNFF_CAPS_DATA Data conferencing.
CNFF_CAPS_AUDIO Audio conferencing.
CNFF_CAPS_VIDEO Video conferencing.

IConferenceManager::EnumConference

HRESULT EnumConference(
    IEnumConf**ppEnumConf);

Determines if a conference is in progress.

ppEnumConf
Address to receive an instance of the enumerator for existing Conference objects.

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.

IConferenceManager::EnumUser

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.

ppEnumUser
An address to receive an instance of the enumerator for existing User objects.

This method is not currently supported.

IConferenceManager::CreateConference

HRESULT CreateConference(
    BSTR bstrName,
    ULONG uConfCaps,
    Iconference **ppConference);

Returns an instance of a new Conference object with the IConference interface.

bstrName
String to contain the conference name.
uConfCaps
Bitmap to contain conferencing capabilities.
ppConference
Address to receive an instance of the Conference object.

IConferenceManager::GetRemoteConference

HRESULT GetRemoteConference(
    Iconference **ppConference);

Returns an instance of an ongoing Conference object from which the application was remotely activated by a remote node.

ppConference
Address to receive an instance of the Conference object.

The calling application should use the Conference object to communicate with the remote node.

IConferenceManager::CreateUser

HRESULT CreateUser(
    BSTR bstrName,
    CONFUSERTYPE uType,
    IConfUser **ppUser);

Returns an instance of a new User object with the IConfUser interface.

bstrName
String to contain the user's name or address.
uType
Constant that shows the type of the user name/address:
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.
ppUser
Address to receive an instance of the User object.

IConnectionPointContainer

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.

IConnectionPoint

This interface is instantiated from IConnectionPointContainer. The client uses this interface to:

IConfMgrNotify

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:

IConfMgrNotify::InvitedToConference

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.

pUser
User who invited the local computer to the conference.
pConference
Instance of the Conference object. The sink method needs to call the AddRef method to the Conference object if it wants to keep the object.

This event is not supported in the current version.

IConfMgrNotify::ConferenceCreated

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.

pConference
Instance of the Conference object. The sink method needs to call the AddRef method to the Conference object if it wants to keep the object.

User Object

The User object is enumerated from the enumerator obtained from the IConferenceManager::EnumUser method.

This object provides one interface:

IConfUser

IConfUser is instantiated automatically when the object is obtained from the enumerator. It provides the following methods:

IConfUser::GetName

HRESULT GetName(
    BSTR *pbstrName);

Returns the string for the user name.

pbstrName
Address to receive a string for the user name or address.

IConfUser::GetType

HRESULT GetType(
    CONFUSERTYPE *puType);

Determines the type of name for the User object.

puType
Address of a buffer to receive the type of the user's name.

IConfUser::GetConferenceCapabilities

HRESULT GetConferenceCapabilities(
    ULONG *puConfCaps);

Determines which type of conferencing (audio, data, or video) is available on the user's computer.

puConfCaps
Address of a buffer to contain the capabilities of the computer.

This method is not supported in the current version.

IConfUser::IsMCU

HRESULT IsMCU(void);

Determines whether the User object is a multipoint control unit (MCU).

This method is not supported in the current version.

IConfUser::EnumConference

HRESULT EnumConference(
    IEnumConf  **ppEnumConf);

Returns an instance of the enumerator for existing Conference objects for the User object.

ppEnumConf
Address to receive a conference enumerator

This method is not supported in the current version.

IConfUser::EnumApplication

HRESULT EnumApplication(
    IEnumConfApp  **ppEnumApp);

Returns an instance of the enumerator for the Client Application object.

ppEnumApp
Address to receive a Client Application enumerator.

This method is not supported in the current version.

Conference Object

A Conference object may be:

The object provides the following interfaces:

IConference

The IConference interface provides the following methods:

IConference::GetName

HRESULT GetName(
    BSTR *pbstrName);

Returns the string for the conference name.

pbstrName
Address to receive a string for the conference name.

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.

IConference::GetConferenceCapabilities

HRESULT GetConferenceCapabilities(
    ULONG *puConfCaps);

Determines which type of conferencing (audio, data, or video) the Conference object was originally created with.

puConfCaps
Address of a buffer to contain the capabilities of the conference.

IConference::GetConferenceState

HRESULT GetConferenceState(
    CONFSTATE *puConfState);

Returns the state of the Conference object.

pConfState
Address to receive a conference state. This can be any of the following values:
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.

IConference::IsSameAs

HRESULT IsSameAs(
    IConference *pConference);

Identifies whether the two Conference objects represent the same conference.

pConference
Address of a Conference object instance to compare with.

IConference::Invite

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.

pUser
Address of an instance of the User object.

This method is asynchronous (an event notification will be returned later if it is successful).

IConference::AcceptInvite

HRESULT AcceptInvite(void);

Accepts an invitation to a conference. It is called in response to the IConfMgrNotify::InvitedToConference sink method.

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.

IConference::RejectInvite

HRESULT RejectInvite(void);

Rejects an invitation to a conference. It is called in response to the IConfMgrNotify::InvitedToConference sink method.

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.

IConference::Join

HRESULT Join(
    IConfUser *pUser);

Joins a user who already has a conference running.

pUser
Address of an instance of the User object.

IConference::AcceptJoin

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.

pUser
Address of an instance of the User object.

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.

IConference::RejectJoin

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.

pUser
Addrress of an instance of the User object.

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.

IConference::EnumMember

HRESULT EnumMember(
    IEnumConfMember **ppEnumMember);

Returns an instance of the enumerator for the Member object when the conference is active.

ppEnumMember
Address to receive a member enumerator.

IConference::EnumApplication

HRESULT EnumApplication(
    IEnumConfApp **ppEnumApp);

Returns an instance of the enumerator of the Application object when the conference is active.

ppEnumApp
Address to receive an application enumerator.

IConference::EnumChannelInterface

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.

ppEnumChanInterface
Address to receive a channel interface enumerator.

IConference::EnumChannel

HRESULT EnumChannel(
    IEnumConfChannel **ppEnumChannel);

Returns an instance of the enumerator of the existing Channel object in the conference.

ppEnumChannel
An address to receive a channel enumerator.

IConference::CreateChannel

HRESULT CreateChannel(
    REFIID riid,
    IConfChannel *ppChannel);

Returns an instance of a new Channel object with the specified interface.

riid
An interface ID of the specific-type channel.
ppChannel
Address to receive an instance of a new channel object.

This method is not supported in the current version.

IConference::Leave

HRESULT Leave(void);

Removes the local computer from the active conference.

IConnectionPointContainer

This interface is instantiated from IID_IConnectionPointContainer to identify a Conference object as connectable. The interface contains the standard set of methods for IConnectionPointContainer.

IConnectionPoint

This interface is instantiated from IConnectionPointContainer. The client uses this interface to:

IConferenceNotify

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:

IConferenceNotify::StateChanged

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.

uConfState
The current conference state.
hr
The result of the previous asynchronous operation.

IConferenceNotify::RequestToJoin

HRESULT RequestToJoin(
    IConfUser *pUser);

Notifies the client that a user has made a request to join the conference.

pUser
An instance of the User object that wants to join the conference.

This event is not supported in the current version.

IConferenceNotify::MemberChanged

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).

pConfMember
An instance of the Member object that is added or removed from the conference.
uNotify
The enumerated constant for the notification type can be one of the following values:
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.

IConferenceNotify::ChannelChanged

HRESULT ChannelChanged(
    IConfChannel *pChannel,
    CONFCHANNOTIFY uNotify);

Notifies the client that a new channel is available in the conference.

pChannel
An instance of the Channel object that is added or removed from the conference.
uNotify
The enumerated constant for the notification type can be one of the following values:
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.

Member Object

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:

IConfMember

The IConfMember interface provides the following methods:

IConfMember::GetName

HRESULT GetName(
    BSTR *pbstrName);

Returns the string for the member name.

pbstrName
Address to receive a string for the user name or address.

IConfMember::GetType

HRESULT GetType(
    CONFUSERTYPE *puType);

Determines the type of name for the Member object.

puType
Address to a buffer to receive the type of the member's name.

IConfMember::GetConferenceCapabilities

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.

puConfCaps
Address to a buffer that contains the capabilities of the machine.

IConfMember::IsMCU

HRESULT IsMCU(void);

Determines whether the Member object is a multipoint control unit (MCU).

This method is not supported in the current version.

IConfMember::EnumConference

HRESULT EnumConference(
    IEnumConf **ppEnumConf);

Returns an instance of the enumerator for existing Conference objects for the Member object.

ppEnumConf
Address to receive a conference enumerator.

This method is not supported in the current version.

IConfMember::EnumApplication

HRESULT EnumApplication(
    IEnumConfApp **ppEnumApp);

Returns an instance of the enumerator for the Client Application object.

ppEnumApp
Address to receive a Client Application enumerator.

This method is not supported in the current version.

IConfMember::GetConference

HRESULT GetConference(
    Iconference **ppConference);

Returns the instance of the Conference object where the member belongs.

ppConference
Address of a buffer to receive the instance of the Conference object.

IConfMember::IsSelf

HRESULT IsSelf(void);

Determines if the Member object represents the local computer.

IConfMember::IsSameAs

HRESULT IsSameAs(
    IConfMember *pConfMember);

Determines if the two Member objects represent the same conference member.

pConfMember
Address of the Member object to be compared.

Communication Channel Object

The Communication Channel object may be:

The object provides the following interfaces:

IConfChannel

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:

IConfChannel::GetConference

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.

ppConference
Address of a buffer to receive the instance of the conference object.

IConfChannel::GetInterface

HRESULT GetInterface(
    IID *piid);

Obtains the Channel-specific interface.

piid
Address of a buffer to receive the channel-specific interface ID.

IConfChannel::IsSameAs

HRESULT IsSameAs(
    IConfChannel *pConfChannel);

Identifies whether the two Channel objects represent the same channel.

pConfChannel
Address of the Channel object to be compared.

IConfChannel::IncludeMember

HRESULT IncludeMember(
    IConfMember *pMember);

Gives a Member object use of the channel.

pMember
Address of the Member object to be given use of the channel.

This method is not supported in the current version.

IConfChannel::ExcludeMember

HRESULT ExcludeMember(
    IConfMember *pMember);

Prevents a Member object from using the channel.

pMember
Address of the Member object to be prevented from using the channel.

This method is not supported in the current version.

IConfChannel::EnumMember

HRESULT EnumMember(
    IEnumConfMember **ppEnumMember);

Returns an instance of the enumerator for the Member objects that are currently allowed to use the channel.

ppEnumMember
Address to receive the Member object enumerator.

IConfDataExchange

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:

IConfDataExchange::SendData

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.

pMember
An instance of the Member object to send data to. If the parameter is NULL, the data is sent to all the members in the channel.
pApplication
An instance of the Application object to send data to. If the parameter is NULL, the data is sent to the remote instance of the calling application.
uSize
The size, in bytes, of the data in the buffer.
pvBuffer
Address to a buffer that contains the data to be sent (size_is(uSize)).
uOptions
Flags for data transfer options follow:
CNFF_SDOPT_NONE No option is specified.

IConfFileExchange

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:

IConfFileExchange::SetReceiveFileDir

HRESULT SetReceiveFileDir(
    BSTR bstrDir);

Sets the path to the directory where the received file will be stored on the local computer.

bstrDir
A string for the path to the directory where a received file will be stored.

IConfFileExchange::GetReceiveFileDir

HRESULT GetReceiveFileDir(
    BSTR *pbstrDir);

Gets the path to the directory where the received file will be stored.

pbstrDir
Address of a string for the path to the directory where a received file will be stored.

IConfFileExchange::SendFile

HRESULT SendFile(
    IConfMember *pMember,
    IConfApplication *pApplication,
    BSTR bstrFile,
    ULONG uOptions,
    IConfFileTransfer **ppFileTransfer);

Sends a file through the channel.

pMember
A Member object that will receive the file. If this parameter is NULL, the file is sent to all the members in the channel.
pApplication
An Application object that will receive the transfer progress notification. If this parameter is NULL, the notification is sent to the remote instance of the calling application.
bstrFile
The full path of the file to be sent.
uOptions
Flags for file transfer options follow:
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.
ppFileTransfer
An address to a buffer to receive a File Transfer object.

IConfFileExchange::Cancel

HRESULT Cancel(
    IConfFileTransfer *pFileTransfer);

Cancels the file being sent or received.

pFileTransfer
Address of a File Transfer object to be sent or received.

IConfAppSharing

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:

IConfAppSharing::EnumSharableApp

HRESULT EnumSharableApp(
    IEnumConfShareApp **ppEnumShareApp);

Returns an instance of the ConfShareApp object enumerator for the applications that can be shared.

ppEnumShareApp
Address to receive the sharable application enumerator.

The ConfShareApp object provides methods for sharing and unsharing the application.

IConfAppControl

The IConfAppControl interface is instantiated by an application from the Channel object with IID_IConfAppControl.

This interface provides the following methods:

IConfAppControl::StartRemoteInstance

HRESULT StartRemoteInstance(
    IConfMember *pMember,
    IConfApplication *pApplication);

Accepts an Application object and starts its instance on the specified member in the channel.

pMember
A Member object where the remote instance of the application will be started. If the parameter is NULL, the application will be started on all the members in the channel.
pApplication
An Application object whose remote instance will be started. If the parameter is NULL, the method starts the remote instance of the calling application.

IConfAppControl::EnumPeer

HRESULT EnumPeer(
    IConfApplication *pApplication,
    IEnumConfMember **ppEnumMember);

Returns an instance of the enumerator for the Member object that currently has the application running.

pApplication
An Application object whose remote instance. If the parameter is NULL, the method uses the calling application.
ppEnumMember
Addrerss of the Member object enumerator.

IConnectionPointContainer

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.

IConnectionPoint

This interface is instantiated from IConnectionPointContainer. The client uses this interface to:

IConfDataExchangeNotify

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:

IConfDataExchangeNotify::DataSent

HRESULT DataSent(
    IConfMember *pMember,
    ULONG uSize,
    byte *pvBuffer,
    HRESULT hr);

Provides status notification of data sent, including the result of the operation.

pMember
An instance of the Member object that received the data. The parameter is NULL if the data was sent to all the members.
uSize
The amount of data sent, in bytes.
pvBuffer
Address to the buffer that contains the sent data (size_is(uSize)). This is the same address that the caller passed into the IConfDataExchange::SendData method. When the sink object receives this event, the data buffer can be released.
hr
The result of the data transfer.

IConfDataExchangeNotify::DataReceived

HRESULT DataReceived(
    IConfMember *pMember,
    ULONG uSize,
    byte *pvBuffer,
    HRESULT hr);

Provides status notification of data received.

pMember
The instance of the Member object from which the data was received.
uSize
The amount of data received, in bytes.
pvBuffer
Address to the buffer that contains the received data (size_is(uSize)).
hr
The result of the data transfer.

The data buffer is valid only during the event notification, and is freed by the source object once the notification is over.

IConfFileExchangeNotify

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:

IConfFileExchangeNotify::FileSent

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.

pMember
An instance of the Member object where the file is sent.
pFileTransfer
An instance of the File Transfer object.
hr
The result of the file transfer operation.

IConfFileExchangeNotify::FileReceived

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.

pMember
The instance of the Member object from which the file was received.
pFileTransfer
An instance of the File Transfer object.
hr
The result of the file transfer operation.

IConfAppSharingNotify

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:

IConfAppSharingNotify::StatusChanged

HRESULT StatusChanged(
    IConfShareApp *pShrApp,
    CONFSHRSTATE uShareStatus
    HRESULT hr);

Provides notification when a sharable application becomes shared or unshared.

pShrApp
The instance of the ConfShareApp object.
uShareStatus
The current sharing status can be one of the following values:
CNF_SHR_UNKNOWN The application status is unknown.
CNF_SHR_SHARED The application is shared.
CNF_SHR_UNSHARED The application is not shared.
hr
The result of the application sharing operation.

IConfAppControlNotify

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:

IConfAppControlNotify::StatusChanged

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.

pMember
An instance of the Member object whose application instance is changing its status.
pApplication
An instance of the Application object.
uAppStatus
The current status for application invocation is represented by one of the values below:
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.
hr
The result of the remote instance invocation.

Client Application Object

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:

IConfApplication

The IConfApplication interface is instantiated automatically when the object is enumerated from the enumerator.

The interface provides the following methods:

IConfApplication::GetGUID

HRESULT GetGUID(
    GUID *pGUID);

Returns the application's globally unique identifier (GUID).

pGUID
Address of a buffer to receive the application's unique identifier.

IConfApplication::GetName

HRESULT GetName(
    BSTR *pbstrName);

Returns the string to contain the application name.

pbstrName
Address to receive a string for the application name.

Sharable Application Object

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:

IConfShareApp

The IConfShareApp interface is instantiated automatically when the object is enumerated from the enumerator.

The interface provides the following methods:

IConfShareApp::GetName

HRESULT GetName(
    BSTR *pbstrName);

Returns the string for the share application name.

pbstrName
An address to receive a string for the share application name.

IConfShareApp::Share

HRESULT Share(void);

Shares the application on all the members in the channel.

IConfShareApp::Unshare

HRESULT Unshare(void);

Unshares the application on all the members in the channel.

IConfShareApp::GetShareState

HRESULT GetShareState(
    CONFSHRSTATE *puShrState);

Retrieves the "share" state of the application.

puShrState
Address of a buffer to receive the current "share" state of the application:
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.

File Transfer Object

A File Transfer object is obtained from the IConfFileExchangeNotify::FileSent or IConfFileExchangeNotify::FileReceived method.

The object provides the following interface:

IConfFileTransfer

The IConfFileTransfer interface provides the following methods:

IConfFileTransfer::GetName

 HRESULT GetName(
    BSTR *pbstrName);

Returns the string for the full path of the file.

pbstrName
Address to receive a string for the full path of the file.

IConfFileTransfer::GetBytesTransferred

HRESULT GetBytesTransferred(
    ULONG *puBytes);

Returns the number of bytes transferred.

puBytes
Address of a buffer to receive the number of bytes transferred.

IConfFileTransfer::GetTotalSize

HRESULT GetTotalSize(
    ULONG *puBytes);

Returns the size, in bytes, of the file.

puBytes
An address to a buffer to receive the size (in bytes) of the file.

IConfFileTransfer::GetFileState

HRESULT GetFileState(
    CONFFILESTATE *puState);

Returns the state of the File Transfer object.

puState
Address to a buffer to receive the state of the file. This can be filled by one of the following values:
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.

IConfFileTransfer::IsSameAs

HRESULT IsSameAs(
    IConfFileTransfer *pFileTransfer);

Identifies whether the two File Transfer objects represent the same file-transfer operation.

pFileTransfer
Address of the File Transfer object to compare with.
Previous Up Index Next

© 1996 Microsoft Corporation