## ActiveX Control Objects, Properties, Methods, and Events

All events fired by the control go through the Conference Manager object. The following hierarchy shows the control's objects, and the properties, methods, and events for each. Brackets indicate the object from which each event originates.

Conference Manager
IConferenceManagerX
Properties | ConferenceCapabilities
| RemoteConference
| Conferences
| Users
| NullObject
Methods | Initialize
| Uninitialize
| CreateConference
| CreateUser
| Advise
| Unadvise
Events | InvitedToConference {Conference Manager}
| ConferenceCreated {Conference Manager}
| StateChanged {Conference}
| RequestToJoin {Conference}
| MemberChanged {Conference}
| ChannelChanged {Conference}
| DataSent {Communication Channel}
| DataReceived {Communication Channel}
| FileSent {Communication Channel}
| FileReceived {Communication Channel}
| AppSharingStatusChanged {Communication Channel}
| AppControlStatusChanged {Communication Channel}
User
IConfUserX
Properties | Name
| Type
| ConferenceCapabilities
| IsMCU
| Conferences
| Applications
Conference
IConferenceX
Properties | Name
| Capabilities
| State
| Members
| Applications
| ChannelInterfaces
| Channels
Methods | Invite
| AcceptInvite
| RejectInvite
| Join
| AcceptJoin
| RejectJoin
| CreateChannel
| Leave
| IsSameAs
| Advise
| Unadvise
Member
IConfMemberX
Properties | Name
| Type
| ConferenceCapabilities
| IsMCU
| Conferences
| Applications
| Conference
| IsSelf
Method | IsSameAs
Communication Channel
IConfChannelX
Properties | Conference
| Interface
| Members
| Object
Methods | IncludeMember
| ExcludeMember
| IsSameAs
IConfDataExchangeX
Methods | SendData
| Advise
| Unadvise
IConfFileExchangeX
Property | ReceiveFileDir
Methods | SendFile
| Cancel
| Advise
| Unadvise
IConfAppSharingX
Property | SharableApps
Methods | Advise
| Unadvise
IConfAppControlX
Methods | StartRemoteInstance
| Advise
| Unadvise
Client Application
IConfApplicationX
Properties | GUID
| Name
Sharable Application
IConfShareAppX
Properties | Name
| ShareState
Methods | Share
| Unshare
Data Transfer Object
IConfDataTransferX
Properties | BytesTransferred
| String
| Array
File Transfer Object
IConfFileTransferX
Properties | Name
| BytesTransferred
| TotalSize
| State
Method | IsSameAs

### Conference Manager Object

The Conference Manager object provides the following interface:

- IConferenceManagerX

### IConferenceManagerX

The IConferenceManagerX interface provides the following properties:

- ConferenceCapabilities
- RemoteConference
- Conferences
- Users
- NullObject

and the following methods:

- Initialize
- Uninitialize
- CreateConference
- CreateUser
- Advise
- Unadvise

### IConferenceManagerX Properties

Following is a description of the properties for the IConferenceManagerX interface.

#### IConferenceManagerX::ConferenceCapabilities

    HRESULT ConferenceCapabilities(
        LONG *plConfCaps);

Indicates which types of conferences (audio, data, or video) are available on the local computer.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | The Conference Manager object was not initialized.

plConfCaps
  Field with one or more of the following values set:

  CNFF_CAPS_NONE | Not capable of conferencing.
  CNFF_CAPS_DATA | Data conferencing.
  CNFF_CAPS_AUDIO | Audio conferencing.
  CNFF_CAPS_VIDEO | Video conferencing.

#### IConferenceManagerX::RemoteConference

    HRESULT RemoteConference(
        IConferenceX **ppConference);

Indicates the ongoing Conference object from which the application was remotely activated by a remote node. The calling application should use the Conference object to communicate with the remote node.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | The Conference Manager object was not initialized.

ppConference
  Address to receive an instance of the Conference object.

#### IConferenceManagerX::Conferences

    HRESULT Conferences(
        Iconferences **ppConferences);

Returns the collection of existing Conference objects. If there is a conference in progress, the person setting up the conference can choose to use that one instead of starting a new one.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | The Conference Manager object was not initialized.

ppConferences
  Address to a collection of Conference objects.

#### IConferenceManagerX::Users

    HRESULT Users(
        IConfUsers **ppUsers);

Indicates a collection of users who can become participants in a conference. It returns a pointer to a collection of existing User objects.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | The Conference Manager object was not initialized.

ppUsers
  Address to a collection of User objects.

This method is not supported in the current version.

#### IConferenceManagerX::NullObject

    HRESULT NullObject(
        IDispatch **pIDispatch);

Indicates the IDispatch pointer set to null.

- Returns the following value:

  S_OK | Success. The requested number of elements was returned.

pIDispatch
  Address to the IDispatch pointer to be set to null.

### IConferenceManagerX Methods

Following is a description of the methods for the IConferenceManagerX interface.

#### IConferenceManagerX::Initialize

    HRESULT Initialize(
        BSTR bstrID,
        BOOLEAN *pfSucceeded);

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

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_INVALIDARG | The bstrID parameter is invalid.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

bstrID
  Interface ID of the calling application (textual description of a globally unique identifier [GUID]).
pfSucceeded
  TRUE if the conference was initialized successfully, FALSE otherwise.

#### IConferenceManagerX::Uninitialize

    HRESULT Uninitialize(void);

Must be called by scripts and Visual Basic applications before the control is unloaded.

- Returns one of the following values:

  S_OK | Success.
  E_UNEXPECTED | An unknown error occurred.

If the Initialize method has not yet been called, it is not to call Uninitialize.

#### IConferenceManagerX::CreateConference

    HRESULT CreateConference(
        BSTR bstrName,
        LONG lConfCaps,
        IConferenceX **ppConference);

Retrieves an instance of a new Conference object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | The Conference Manager object was not initialized.

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

#### IConferenceManagerX::CreateUser

    HRESULT CreateUser(
        BSTR bstrName,
        LONG lType,
        IConfUserX **ppUser);

Retrieves an instance of a new User object.

- Returns one of the following values:

  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | The Conference Manager object was not initialized.
  S_OK | Success. The requested number of elements was returned.

bstrName
  String for the user's name or address.
lType
  Constant that indicates the type of the user name/address. Can be one of the following values:

  CNF_USER_UNKNOWN | The transport is unknown.
  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.

#### IConferenceManagerX::Advise

    HRESULT Advise(void);

Enables advisements (events) for the IConferenceManagerX interface.

- Returns one of the following values:

  S_OK | Success.
  E_UNEXPECTED | An unknown error occurred.

#### IConferenceManagerX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) for the IConferenceManagerX interface.

- Returns one of the following values:

  S_OK | Success.
  E_UNEXPECTED | An unknown error occurred.

### Events

Following are the events fired by the control. All events are fired by the Conference Manager object.

#### InvitedToConference

    void InvitedToConference(
        IConfUserX *pUser,
        IConferenceX *pConference);

Retrieves a pointer to the conference that the called application is being invited to join.

pUser
  User who invited the local computer to the conference.
pConference
  Instance of the Conference object.

This event is not supported in the current version.

#### ConferenceCreated

    void ConferenceCreated(
        IConferenceX *pConference);

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

#### StateChanged

    void StateChanged(
        IConferenceX *pConference,
        LONG lConfState,
        LONG hr);

Fires when the status of the conference has changed.

pConference
  Instance of the Conference object.
lConfState
  State of the conference.
hr
  Result of the status change operation.

#### RequestToJoin

    void RequestToJoin(
        IConferenceX *pConference,
        IConfUserX *pUser);

Fires when a user has made a request to join a conference.

pConference
  Instance of the Conference object to be joined.
pUser
  Instance of the User object who wants to join the conference.

This event is not supported in the current version.

#### MemberChanged

    void MemberChanged(
        IConferenceX *pConference,
        IConfMemberX *pMember,
        LONG lNotify);

Fires when the member roster for the conference has changed (someone has joined or left the conference).

pConference
  Instance of the Conference object.
pMember
  Instance of the Member object that is added or removed from the conference.
lNotify
  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.

#### ChannelChanged

    void ChannelChanged(
        IConferenceX *pConference,
        IConfChannelX *pChannel,
        LONG lNotify);

Fires when a channel has been added or removed from a conference.

pConference
  Instance of the Conference object.
pChannel
  Instance of the Channel object that is added or removed from the conference
lNotify
  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.

#### DataSent

    void DataSent(
        IConfDataExchangeX *pDataExchange,
        IConfMemberX *pMember,
        IConfDataTransferX *pDataTransfer,
        LONG hr);

Fires when data has been sent, and indicates the result of the operation.

pDataExchange
  Address to the ConfDataExchange object used to send the data.
pMember
  Instance of the Member object that received the data. This parameter's value is NULL if the data was sent to all members.
pDataTransfer
  IConfDataTransferX object.
hr
  Result of the data transfer.

#### DataReceived

    void DataReceived(
        IConfDataExchangeX *pDataExchange,
        IConfMemberX *pMember,
        IConfDataTransferX *pDataTransfer,
        LONG hr);

Fires when data has been received.

pDataExchange
  Address to the ConfDataExchange object used to send the data
pMember
  Instance of the Member object that sent the data.
pDataTransfer
  IConfDataTransferX object.
hr
  Result of the data transfer.

The data buffer is valid only during the event notification, that is, the data buffer is freed by the source object after the event notification.

#### FileSent

    void FileSent(
        IConfFileExchangeX *pFileExchange,
        IConfMemberX *pMember,
        IConfFileTransferX *pFileTransfer,
        LONG hr);

Fires when a file has been sent.

pFileExchange
  Address to the File Exchange object that was used to send the file.
pMember
  Instance of the Member object where the file is sent. Will be NULL if the file was sent to everyone.
pFileTransfer
  Instance of the File Transfer object.
hr
  Result of the data transfer.

This event can be fired multiple times to get progress information from the ConfFileTransfer object.

#### FileReceived

    void FileReceived(
        IConfFileExchangeX *pFileExchange,
        IConfMemberX *pMember,
        IConfFileTransferX *pFileTransfer,
        LONG hr);

Fires when a file has been received.

pFileExchange
  Address to the ConfFileExchange object that was used to receive the file.
pMember
  Instance of the Member object where the file is received.
pFileTransfer
  Instance of the File Transfer object.
hr
  Result of the data transfer.

It can be fired multiple times to get progress information.

#### AppSharingStatusChanged

    void AppSharingStatusChanged(
        IConfAppSharingX *pAppSharing,
        IConfShareAppX *pShrApp,
        LONG lAppStatus
        LONG hr);

Fires when a sharable application becomes shared or unshared.

pAppSharing
  Address to the App Sharing channel.
pShrApp
  Instance of the Sharable Application object.
lAppStatus
  Current sharing status. Can be one of the following values:

  CNF_SHR_SHARED | The application is shared.
  CNF_SHR_UNSHARED | The application is not shared.

hr
  Result of the application sharing operation.

#### AppControlStatusChanged

    void AppControlStatusChanged(
        IConfAppControlX *pAppControl,
        IConfMemberX *pMember,
        IConfApplicationX *pApplication,
        LONG lAppStatus
        LONG hr);

Fires when the remote instance of an application on a member's computer changes its status.

pAppControl
  Address to the App Control channel.
pMember
  Member object whose application instance is changing its status.
pApplication
  Instance of the Application object.
lAppStatus
  Current sharing status for application invocation. Can be one of the following values:

  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
  Result of the application sharing operation.

### User Object

The User object provides the following interface:

- IConfUserX

### IConfUserX

The IConfUserX interface provides the following properties:

- Name
- Type
- ConferenceCapabilities
- IsMCU
- Conferences
- Applications

### IConfUserX Properties

Following is a description of the properties for the IConfUserX interface.

#### IConfUserX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates a user name string.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

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

#### IConfUserX::Type

    HRESULT Type(
        LONG *plType);

Indicates the type of name for the User object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plType
  Address to the type of name of the user.

#### IConfUserX::ConferenceCapabilities

    HRESULT ConferenceCapabilities(
        LONG *plConfCaps);

Indicates which types of conferences (audio, data, or video) are available on the user's computer.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plConfCaps
  Address to a buffer that upon return will contain the capabilities of the computer.

This property is not supported in the current version.

#### IConfUserX::IsMCU

    HRESULT IsMCU(
        BOOLEAN *pfMCU);

Indicates whether the user is a multipoint control unit (MCU).

- Returns one of the following values:

  S_OK | User is an MCU.
  S_FALSE | User is not an MCU.

pfMCU
  TRUE if the user is an MCU, FALSE otherwise.

This property is not supported in the current version.

#### IConfUserX::Conferences

    HRESULT Conferences(
        IConferences **ppConferences);

Indicates a collection of Conference objects that a user is participating in.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppConferences
  Address to a collection of conference objects.

This property is not supported in the current version.

#### IConfUserX::Applications

    HRESULT Applications(
        IConfApplications **ppApplications);

Indicates a collection of Client Application objects for a user.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppApplications
  Address to a collection of Client Application objects.

This property is not supported in the current version.

### Conference Object

The Conference object provides the following interface:

- IConferenceX

### IConferenceX

The IConferenceX interface provides the following properties:

- Name
- Capabilites
- State
- Members
- Applications
- ChannelInterfaces
- Channels

and the following methods:

- Invite
- AcceptInvite
- RejectInvite
- Join
- AcceptJoin
- RejectJoin
- CreateChannel
- Leave
- IsSameAs
- Advise
- Unadvise

### IConferenceX Properties

Following is a description of the properties for the IConferenceX interface.

#### IConferenceX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates a conference name string. The conference name is the name passed in when the object is created by CreateConference, or is the name that exists when another user's conference is joined.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrName
  Address to receive a string for the conference name.

#### IConferenceX::Capabilities

    HRESULT Capabilities(
        LONG *plConfCaps);

Indicates which types of conferences (audio, data, video) the conference was originally created with.

- Returns one of the following values:

  E_UNEXPECTED | An unknown error occurred.
  S_OK | Success. The requested number of elements was returned.

plConfCaps
  Address to a buffer that contains the capabilities of the conference.

#### IConferenceX::State

    HRESULT State(
        LONG *plConfState);

Indicates the state of the conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plConfState
  Address to receive a conference state. Can receive one 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.

#### IConferenceX::Members

    HRESULT Members(
        IConfMembers **ppMembers);

Indicates a collection of existing Member objects when a conference is active.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppMembers
  Address to a collection of Member objects.

#### IConferenceX::Applications

    HRESULT Applications(
        IConfApplications **ppApplications);

Indicates a collection of Client Application objects available to this conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppApplications
  Address to a collection of Client Application objects.

#### IConferenceX::ChannelInterfaces

    HRESULT ChannelInterfaces(
        IChanInterfaces **ppChanInterfaces);

Indicates a collection of Channel interfaces available to the conference. The interfaces signify how the channel can be used.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppChanInterfaces
  Address to a collection of Channel interfaces.

#### IConferenceX::Channels

    HRESULT Channels(
        IConfChannels **ppChannels);

Indicates a collection of Channel objects available to the conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppChannels
  Address to a collection of Channel objects.

### IConferenceX Methods

Following is a description of the methods for the IConferenceX interface.

#### IConferenceX::Invite

    HRESULT Invite(
        IConfUserX *pUser,
        BOOLEAN *pfSucceeded);

Invites a new user to the conference. If the conference is inactive, it becomes active when the invited user accepts the invitation.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pUser
  Instance of the User object.
pfSucceeded
  TRUE if the invitation is accepted, FALSE otherwise.

This method is asynchronous (an event notification will be returned later if the invitee accepts).

#### IConferenceX::AcceptInvite

    HRESULT AcceptInvite(
        BOOLEAN *pfSucceeded);

Accepts an invitation to a conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pfSucceeded
  TRUE if the invitation is accepted, FALSE otherwise.

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.

#### IConferenceX::RejectInvite

    HRESULT RejectInvite(
        BOOLEAN *pfSucceeded);

Rejects an invitation to a conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pfSucceeded
  TRUE if the user who rejects the invitation is not added to the conference, FALSE otherwise.

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.

#### IConferenceX::Join

    HRESULT Join(
        IConfUserX *pUser,
        BOOLEAN *pfSucceeded);

Joins a user who already has a conference running.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pUser
  Instance of the User object.
pfSucceeded
  TRUE if the join is successful, FALSE otherwise.

#### IConferenceX::AcceptJoin

    HRESULT AcceptJoin(
        IConfUserX *pUser,
        BOOLEAN *pfSucceeded);

Accepts a request from a user to join a conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pUser
  Instance of the User object.
pfSucceeded
  TRUE if the join is successful, FALSE otherwise.

This method will not be implemented for the first release because SCRAPI does not support it. For the first release, joining will have to be accepted from Microsoft NetMeeting.

#### IConferenceX::RejectJoin

    HRESULT RejectJoin(
        IConfUserX *pUser,
        BOOLEAN *pfSucceeded);

Rejects a request from a user to join a conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pUser
  Instance of the User object.
pfSucceeded
  TRUE if the user is not added to the conference, FALSE otherwise.

This method will not be implemented for the first release because SCRAPI does not support it. For the first release, joining will have to be rejected from Microsoft NetMeeting.

#### IConferenceX::CreateChannel

    HRESULT CreateChannel(
        BSTR bstrID,
        IConfChannelX **ppChannel);

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

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

bstrID
  Interface ID of the specific-type channel (textual representation of a GUID). See samples for acceptable GUID string format.
ppChannel
  Address to receive an instance of a new Channel object.

This method is not supported in the current version.

#### IConferenceX::Leave

    HRESULT Leave(
        BOOLEAN *pfSucceeded);

Removes the local computer from the active conference.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  S_FALSE | An unknown error occurred.

pfSucceeded
  Request to leave the conference was accepted.

#### IConferenceX::IsSameAs

    HRESULT IsSameAs(
        IConferenceX *pConference,
        BOOLEAN *pfSame);

Identifies whether the two Conference objects represent the same conference.

- Returns one of the following values:

  S_OK | Both Conference objects represent the same conference.
  S_FALSE | Both Conference objects do not represent the same conference.

pConference
  Instance of the Conference object to compare with.
pfSame
  TRUE if it is the same conference, FALSE otherwise.

#### IConferenceX::Advise

    HRESULT Advise(void);

Enables advisements (events) for the IConferenceX interface.

- Returns one of the following values:

  S_OK | Both Conference objects represent the same conference.
  E_UNEXPECTED | An unknown error occurred.

#### IConferenceX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) for the IConferenceX interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

### Member Object

The Member object is derived from the user:

- IConfMemberX

### IConfMemberX

The IConfMemberX interface provides the following properties:

- Name
- Type
- ConferenceCapabilities
- IsMCU
- Conferences
- Applications
- Conference
- IsSelf

and the following method:

- IsSameAs

### IConfMemberX Properties

Following is a description of the properties for the IConfMemberX interface.

#### IConfMemberX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates a user name string.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

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

#### IConfMemberX::Type

    HRESULT Type(
        LONG *plType);

Indicates the type of name for the User object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plType
  Address to the type of name of the user.

#### IConfMemberX::ConferenceCapabilities

    HRESULT ConferenceCapabilities(
        LONG *plConfCaps);

Indicates which types of conferences (audio, data, or video) are available on the user's computer.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plConfCaps
  Address to a buffer that upon return will contain the capabilities of the computer.

This property is not supported in the current version.

#### IConfMemberX::IsMCU

    HRESULT IsMCU(
        BOOLEAN *pfMCU);

Indicates whether the user is a multipoint control unit (MCU).

- Returns one of the following values:

  S_OK | The user is an MCU.
  S_FALSE | The user is not an MCU.

pfMCU
  TRUE if the user is an MCU, FALSE otherwise.

This property is not supported in the current version.

#### IConfMemberX::Conferences

    HRESULT Conferences(
        IConferences **ppConferences);

Indicates a collection of Conference objects that a user is participating in.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppConferences
  Address to a collection of conference objects.

This property is not supported in the current version.

#### IConfMemberX::Applications

    HRESULT Applications(
        IConfApplications **ppApplications);

Indicates a collection of Client Application objects for a user.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppApplications
  Address to a collection of Client Application objects.

This property is not supported in the current version.

#### IConfMemberX::Conference

    HRESULT Conference(
        IConferenceX **ppConference);

Indicates an instance of the Conference object to which the member belongs.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

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

#### IConfMemberX::IsSelf

    HRESULT IsSelf(
        BOOLEAN *pfSelf);

Identifies whether the Member object represents the local computer.

- Returns one of the following values:

  S_OK | The Member object represents the local computer.
  S_FALSE | The Member object does not represent the local computer.

pfSelf
  TRUE if self, FALSE otherwise.

### IConfMemberX Method

Following is a description of the method for the IConfMemberX interface.

#### IConfMemberX::IsSameAs

    HRESULT IsSameAs(
        IConfMemberX *pConfMember,
        BOOLEAN *pfSame);

Indicates whether two Member objects represent the same member.

- Returns one of the following values:

  S_OK | Both Conference objects represent the same conference.
  S_FALSE | Both Conference objects do not represent the same conference.

pConfMember
  Instance of the Member object to compare with.
pfSame
  TRUE if it is the same member, FALSE otherwise.

### Channel Object

The Channel object provides the following interfaces:

- IConfChannelX
- IConfDataExchangeX
- IConfFileExchangeX
- IConfAppSharingX
- IConfAppControlX

### IConfChannelX

The IConfChannelX interface provides the following properties:

- Conference
- Interface
- Members
- Object

and the following methods:

- IncludeMember
- ExcludeMember
- IsSameAs

### IConfChannelX Properties

Following is a description of the properties for the IConfChannelX interface.

#### IConfChannelX::Conference

    HRESULT Conference(
        IConferenceX **ppConference);

Indicates the Conference object to which the channel belongs.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

ppConference
  Address to a collection of instances of the Conference object.

#### IConfChannelX::Interface

    HRESULT Interface(
        BSTR *pbstrID);

Indicates a Channel-specific interface identifier.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrID
  Address to an interface's unique identifier.

#### IConfChannelX::Members

    HRESULT Members(
        IConfMembers **ppMembers);

Indicates a collection of Member objects that are currently allowed to use the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppMembers
  Address to receive the Member object enumerator.

This property is not supported in the current version.

#### IConfChannelX::Object

    HRESULT Object(
        IDispatch **ppObject);

Retrieves either a data exchange object, a file exchange object, an app control object, or an app sharing object, depending on the channel type.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppObject
  Address to receive the data exchange, file exchange, app control, or app sharing object.

### IConfChannelX Methods

Following is a description of the methods for the IConfChannelX interface.

#### IConfChannelX::IncludeMember

    HRESULT IncludeMember(
        IConfMemberX *pMember,
        BOOLEAN *pfSucceeded);

Allows a Member object to use the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pMember
  Instance of the Member object to be given use of the channel.
pfSucceeded
  TRUE if the request to use the channel is accepted, FALSE otherwise.

This method is not supported in the current version.

#### IConfChannelX::ExcludeMember

    HRESULT ExcludeMember(
        IConfMemberX *pMember,
        BOOLEAN *pfSucceeded);

Prevents a Member object from using the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pMember
  Instance of the Member object to be prevented from using the channel.
pfSucceeded
  TRUE if the request to exclude a member is accepted, FALSE otherwise.

This method is not supported in the current version.

#### IConfChannelX::IsSameAs

    HRESULT IsSameAs(
        IConfChannelX *pConfChannel,
        BOOLEAN *pfSame);

Indicates whether the two Channel objects represent the same channel.

- Returns one of the following values:

  S_OK | Both Conference objects represent the same conference.
  S_FALSE | Both Conference objects do not represent the same conference.

pConfChannel
  Instance of the Channel object to compare with.
pfSame
  TRUE if it is the same channel, FALSE otherwise.

### IConfDataExchangeX

The IConfDataExchangeX interface provides the following methods:

- SendData
- Advise
- Unadvise

### IConfDataExchangeX Methods

Following is a description of the methods for the IConfDataExchangeX interface.

#### IConfDataExchangeX::SendData

    HRESULT SendData(
        IConfMemberX *pMember,
        IConfApplicationX *pApplication,
        VARIANT data,
        LONG lOptions,
        BOOLEAN *pfSucceeded);

Sends a block of data bytes through the channel to a specified application on the specified member's computer. The buffer can be freed anytime after calling this method.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

pMember
  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
  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.
data
  Data to be sent. Can be either a string or an array of bytes, integers, and so on.
lOptions
  Flags for data transfer options. Can be the following value:

  CNFF_SDOPT_NONE | No option is specified.

pfSucceeded
  TRUE if the data transfer succeeded, FALSE otherwise.

#### IConfDataExchangeX::Advise

    HRESULT Advise(void);

Enables advisements (events) for this object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

#### IConfDataExchangeX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) generated by the object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

### IConfFileExchangeX

The IConfFileExchangeX interface provides the following property:

- ReceiveFileDir

and the following methods:

- SendFile
- Cancel
- Advise
- Unadvise

### IConfFileExchangeX Property

Following is a description of the property for the IConfFileExchangeX interface.

#### IConfFileExchangeX::ReceiveFileDir

    HRESULT ReceiveFileDir(
        BSTR *pbstrDir);

Sets the path of the directory where received files will be stored.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

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

#### IConfFileExchangeX::ReceiveFileDir

    HRESULT ReceiveFileDir(
        BSTR strDir);

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

- Returns one of the following values:

  E_UNEXPECTED | An unknown error occurred.
  S_OK | Success. The requested number of elements was returned.

bstrDir
  String for the path of the directory where a received file will be stored.

### IConfFileExchangeX Methods

Following is a description of the methods for the IConfFileExchangeX interface.

#### IConfFileExchangeX::SendFile

    HRESULT SendFile(
        IConfMemberX *pMember,
        IConfApplicationX *pApplication,
        BSTR bstrFile,
        LONG lOptions,
        IConfFileTransferX **ppFileTransfer);

Sends a file through the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pMember
  Member object that will receive the file. If the parameter is NULL, the file is sent to all members in the channel.
pApplication
  Application object that will receive the transfer progress notification. If the parameter is NULL, the notification is sent to the remote instance of the calling application.
bstrFile
  Full path of the file to be sent.
lOptions
  Flags for file transfer options. Can be one of the following values:

  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
  Address to a buffer to receive a File Transfer object.

#### IConfFileExchangeX::Cancel

    HRESULT Cancel(
        IConfFileTransferX *pFileTransfer,
        BOOLEAN *pfSucceeded);

Cancels the file being sent or received.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pFileTransfer
  Instance of a File Transfer object being sent or received.
pfSucceeded
  TRUE if the send is canceled, FALSE otherwise.

#### IConfFileExchangeX::Advise

    HRESULT Advise(void);

Enables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

#### IConfFileExchangeX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

### IConfAppSharingX

The IConfAppSharingX interface provides the following property:

- SharableApps

and the following methods:

- Advise
- Unadvise

### IConfAppSharingX Property

Following is a description of the property for the IConfAppSharingX interface.

#### IConfAppSharingX::SharableApps

    HRESULT SharableApps(
        IConfShareApps **ppSharableApps);

Retrieves a pointer to a collection of the Sharable Applications objects for the applications that can be shared.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

ppSharableApps
  Address to a collection of sharable applications.

### IConfAppSharingX Methods

Following is a description of the methods for the IConfAppSharingX interface.

#### IConfAppSharingX::Advise

    HRESULT Advise(void);

Enables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

#### IConfAppSharingX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

### IConfAppControlX

The IConfAppControlX interface provides the following methods:

- StartRemoteInstance
- Advise
- Unadvise

### IConfAppControlX Methods

Following is a description of the methods for the IConfAppControlX interface.

#### IConfAppControlX::StartRemoteInstance

    HRESULT StartRemoteInstance(
        IConfMemberX *pMember,
        IConfApplicationX *pApplication,
        BOOLEAN *pfSucceeded);

Accepts an Application object and starts an instance of the application on the specified member's computer.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_OUTOFMEMORY | Memory could not be allocated to service the request.
  E_UNEXPECTED | An unknown error occurred.

pMember
  Member object where the remote instance of the application will be started. If the parameter is NULL, the application will be started on all members in the channel.
pApplication
  Application object whose remote instance will be started. If the parameter is NULL, the method starts the remote instance of the calling application.
pfSucceeded
  TRUE if the application was started, FALSE otherwise.

#### IConfAppControlX::Advise

    HRESULT Advise(void);

Enables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

#### IConfAppControlX::Unadvise

    HRESULT Unadvise(void);

Disables advisements (events) for this interface.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

### Client Application Object

The Client Application object provides the following interface:

- IConfApplicationX

### IConfApplicationX

The IConfApplicationX interface provides the following properties:

- GUID
- Name

### IConfApplicationX Properties

Following is a description of the properties for the IConfApplicationX interface.

#### IConfApplicationX::GUID

    HRESULT GUID(
        BSTR *pbstrID);

Indicates a string form of an application's globally unique identifier (GUID).

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrID
  Address to a string containing the application's unique identifier.

#### IConfApplicationX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates an application name string.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrName
  Address to receive a string for the application name.

### Sharable Application Object

The Sharable Application object provides the following interface:

- IConfShareAppX

### IConfShareAppX

The IConfShareAppX interface provides the following properties:

- Name
- ShareState

and the following methods:

- Share
- Unshare

### IConfShareAppX Properties

Following is a description of the properties for the IConfShareAppX interface.

#### IConfShareAppX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates a string for the sharable application name.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrName
  Address to receive a string for the share application name.

#### IConfShareAppX::ShareState

    HRESULT ShareState(
        LONG *puShrState);

Retrieves the "share" state of the application.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

puShrState
  Address to the current "share" state of the application. Can be one of the following values:

  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.

### IConfShareAppX Methods

Following is a description of the methods for the IConfShareAppX interface.

#### IConfShareAppX::Share

    HRESULT Share(
        BOOLEAN *pfSucceeded);

Shares the application on all the members in the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pfSucceeded
  TRUE if the application is shared, FALSE otherwise.

#### IConfShareAppX::Unshare

    HRESULT Unshare(
        BOOLEAN *pfSucceeded);

Unshares the application on all the members in the channel.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pfSucceeded
  TRUE if the application is unshared, FALSE otherwise.

### Data Transfer Object

The Data Transfer object provides the following interface:

- IConfDataTransferX

### IConfDataTransferX

The IConfDataTransferX interface provides the following properties:

- BytesTransferred
- String
- Array

### IConfDataTransferX Properties

Following is a description of the properties for the IConfDataTransferX interface.

#### IConfDataTransferX::BytesTransferred

    HRESULT BytesTransferred(
        LONG *plBytes);

Indicates the number of bytes transferred.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plBytes
  Address to the number of bytes transferred.

#### IConfDataTransferX::String

    HRESULT String(
        BSTR *pbstrData);

Retrieves the data to be transferred as a string.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

pbstrData
  Address to the string of data to be transferred.

#### IConfDataTransferX::Array

    HRESULT Array(
        LONG cbElements
        SAFEARRAY (unsigned char) *array);

Retrieves an array (SAFEARRAY) of the data to be transferred.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

cbElements
  Width, in bytes, of each element (for example, 1 is a Byte, 2 is an Integer, 4 is a Long).
array
  Address to the string of data to be transferred.

### File Transfer Object

The File Transfer object provides the following interface:

- IConfFileTransferX

### IConfFileTransferX

The IConfFileTransferX interface provides the following properties:

- Name
- BytesTransferred
- TotalSize
- State

and the following method:

- IsSameAs

### IConfFileTransferX Properties

Following is a description of the properties for the IConfFileTransferX interface.

#### IConfFileTransferX::Name

    HRESULT Name(
        BSTR *pbstrName);

Indicates a string for the full path of the file.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

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

#### IConfFileTransferX::BytesTransferred

    HRESULT BytesTransferred(
        LONG *plBytes);

Indicates the number of bytes transferred.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plBytes
  Address to a collection of the number of bytes transferred.

#### IConfFileTransferX::TotalSize

    HRESULT TotalSize(
        LONG *plBytes);

Indicates the size, in bytes, of the file.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plBytes
  Address to a collection of the size, in bytes, of the file.

#### IConfFileTransferX::State

    HRESULT State(
        LONG *plState);

Indicates the state of the File Transfer object.

- Returns one of the following values:

  S_OK | Success. The requested number of elements was returned.
  E_UNEXPECTED | An unknown error occurred.

plState
  Address to a collection of the state of the file. Can be 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 but 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 can represent three reasons for file-transfer operation completion: success, cancellation, or failure.

### IConfFileTransferX Method

Following is a description of the method for the IConfFileTransferX interface.

#### IConfFileTransferX::IsSameAs

    HRESULT IsSameAs(
        IConfFileTransfer *pFileTransfer,
        BOOLEAN *pfSame);

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

- Returns one of the following values:

  S_OK | Both File Transfer objects represent the same operation.
  S_FALSE | Both File Transfer objects do not represent the same operation.

pFileTransfer
  Instance of the File Transfer object to compare with.
pfSame
  TRUE if it is the same file transfer, FALSE otherwise.

© 1996 Microsoft Corporation