About Conferencing APIs

The purpose of the high-level Conferencing Application Program Interface is to enable productivity applications to take advantage of existing conferencing features while requiring minimal development effort.

The functions enabled by these APIs can be grouped into three areas:

•	Managing conference information

•	Sharing applications

•	Transferring data

It is not intended that these functions be used to streamline development of truly distributed conferencing applications. The Multipoint Communication Services (MCS) and Generic Call Control (GCC) APIs are available to applications for this purpose. The MCS and GCC APIs are beyond the scope of this document.

It should be noted that almost all of the APIs are synchronous. In general, the function call will not return until the specified action is complete. If the application requires the process to not lose control for an extended period of time, it should start a separate thread to handle the task.


Managing conference information

An application can start a call, terminate a call, or find out if a call is active. An application can also be notified when a call begins or ends.

The APIs for managing conference information are:

•	ConferenceConnect

•	ConferenceDisconnect

•	ConferenceGetInfo

•	ConferenceSetInfo

•	ConferenceSetNotify

•	ConferenceRemoveNotify

•	ConferenceLaunchRemote

•	ConferenceListen

ConferenceConnect and ConferenceDisconnect are used to create and terminate a conferencing call. Information about the call can be obtained using ConferenceGetInfo and modified through ConferenceSetInfo. A callback function can be established to receive notifications about changes in the conference.


Sharing applications

The ConferenceShareWindow API is provided to allow an application window to be shared or unshared without invoking the system applet for this purpose.

It can also be used to check if a window is capable of being shared or is currently shared.

Applications are notified through the notification callback function for the conference when their sharing status changes.

Although application sharing is currently done at the task level rather than the window level, all of these APIs use window handles (HWNDs) to identify the application. This is done for programming convenience and to allow for future versions of Microsoft NetMeeting that may support sharing individual windows.


Transferring data

Applications can transfer data and files between users in the call.

The APIs for data transfer are:

•	ConferenceSendData

•	ConferenceSendFile

•	ConferenceCancelTransfer

ConferenceSendData can be used to send data to a specific application of a conference participant. The information can be marked for use by a specific application. The notification callback function for the conference is informed of incoming data and file transfer progress.


ConferenceConnect

DWORD WINAPI ConferenceConnect(

HCONF    * phConf,

LPCONFADDR lpConfAddr,

LPCONFINFO lpConfInfo,

LPCONFNOTIFY lpConfNotify);

The ConferenceConnect function establishes a conference connection between two systems.

•	If the function succeeds, the return value is CONFERR_SUCCESS.

If there was a problem, the return value is one of the CONFERR values, such as:

CONFERR_INVALID_HCONF	The value pointed to by phConf is invalid

CONFERR_INVALID_PARAMETER	One of the other parameters or their fields is not valid

phConf

Points to an HCONF that can be used to identify the conference. If the value pointed to by phConf is set to NULL, a new conference is created and the new conference identifier is returned through this parameter. If it is initially set to a valid conference identifier, the node associated with lpConfAddr is added to that existing conference.

lpConfAddr

Points to a CONFADDR structure that indicates the address of the machine to connect to.

lpConfInfo

Points to a CONFINFO structure that contains the initial conference settings.

lpConfNotify

Points to a CONFNOTIFY structure that contains the notification callback information.

This function can be used to establish a new conference or add another user to an existing conference.

The callback routine receives the following notifications as a result of this function:

CONFN_CONFERENCE_INIT	The function parameters have been validated and connection request is being processed. This notification is not received when adding users to an existing conference.

CONFN_CONFERENCE_START	The conference has officially started.

CONFN_CONFERENCE_ERROR	An error was encountered when attempting to create the conference.


ConferenceDisconnect

DWORD WINAPI ConferenceDisconnect(

HCONF hConf);

The ConferenceDisconnect function stops an existing conference.

•	The return value is CONFERR_SUCCESS if the function succeeded or CONFERR_INVALID_HCONF if hConf is not a valid conference.

hConf

Specifies the conference to stop.

If the conference was successfully terminated, the callback receives a CONFN_CONFERENCE_STOP notification.


ConferenceGetInfo

DWORD WINAPI ConferenceGetInfo(

HCONF  hConf,

DWORD  dwCode,

LPVOID lpv);

The ConferenceGetInfo function obtains information about a conference or the users in a conference.

•	If the function succeeds in obtaining the information, the return value is CONFERR_SUCCESS.

If the return value is CONFERR_BUFFER_TOO_SMALL, then the DWORD pointed to by lpv contains the size of the buffer necessary to hold the data.

hConf

The HCONF used to identify the conference.

dwCode

Indicates the type of information to put into the buffer. See the table below for valid values.

lpv

Points to a buffer that will be modified to contain the information requested. The first 4 bytes must be set to indicate the total size of the buffer. This will be modified, if the function succeeds, to indicate the amount actually used.

The following table describes the dwCode values and associated structures.

dwCode	lpv (structure)	Description
CONF_GET_USER	CONFUSERINFO	Get information on a specific user. On entry, dwUserId must be a valid user identifier or 0 to obtain the data for the local user.
CONF_ENUM_USER	CONFUSERINFO	Enumerate the users in a conference. On entry, dwUserId must be 0 to get the first user data, or the previous user identifier to get the next one in the list.
CONF_GET_CONF	CONFINFO	Get conference information. On entry, hConf must be the handle of an existing conference or NULL to get the data for the default conference.
CONF_ENUM_CONF	CONFINFO	Enumerate existing conferences. On entry, hConf must be 0 to get data for the first conference, or the hConf from the previous call to get the next one.
CONF_ENUM_PEER	CONFDEST	Enumerate the peer users for an application in a conference. On entry, dwUserId must be 0 to get the first peer information, or the previous user identifier to get the next one in the list.
CONF_GET_RECDIR	CONFRECDIR	Get the default directory for received files.
CONF_GET_FILEINFO	CONFFILEINFO	Get file transfer progress information. On entry, dwFileId is the file identifier provided in the notification callback.
On entry to this routine, the DWORD pointed to by lpv (the first four bytes) must be set to the size, in bytes, of the appropriate structure.


ConferenceSetInfo

DWORD WINAPI ConferenceSetInfo(

HCONF  hConf,

DWORD  dwCode,

LPVOID lpv);

The ConferenceSetInfo function changes conference settings.

•	If the function succeeds in setting the information, the return value is CONFERR_SUCCESS.

hConf

The HCONF used to identify the conference. This parameter may be NULL.

dwCode

Indicates the type of information in the buffer. See the table below for valid values.

lpv

Points to a buffer that holds the new conference data. The first 4 bytes must be set to indicate the total size of the structure.

The following table describes the valid dwCode values and associated structures.

dwCode	lpv (structure)	Description
CONF_SET_RECDIR	CONFRECDIR	Set the default directory for receiving files. On entry, szRecDir is a null-terminated pathname to a valid directory. This change affects all subsequent file transfers on the local machine.
CONF_SET_GUID	CONFGUID	Register the data specified in the CONFGUID structure. If the pszApplication and pszCommandLine are both empty strings, the entry for the guid is removed from the registry.


ConferenceSendData

DWORD WINAPI ConferenceSendData(

HCONF      hConf,

LPCONFDEST lpConfDest,

LPVOID     lpv,

DWORD      cb,

DWORD      dwFlags);

The ConferenceSendData function sends data to participants in a conference.

•	The return value is CONFERR_SUCCESS if the data was sent successfully.

hConf

The HCONF used to identify the conference.

lpConfDest

Points to a CONFDEST structure

dwSize	must be set to the size of this structure

dwFlags	this field should be set to 0

dwUserId	the destination identifier for a single user, or 0 to indicate all participants in the conference

dwReserved	this field is reserved and should be set to 0

guid	the unique application identifier GUID

lpv

Points to the buffer of data to be sent.

cb

The number of bytes in the buffer pointed to by lpv.

dwFlags

Reserved for future use.

Notifications of data transmission are made through the notification callback routine for the process. The process receiving the data receives the CONFN_DATA_RECEIVED notification while the sending process gets CONFN_DATA_SENT. In each case, the dwParam parameter is the number of bytes pointed to by lpv2, while lpv1 is the LPCONFDEST. The dwFlags field of the CONFDEST structure will be set to either CONF_DF_BROADCAST or CONF_DF_PRIVATE.

The receiving application must have a callback registered with the same guid as specified in the lpConfDest.


ConferenceSendFile

DWORD WINAPI ConferenceSendFile(

HCONF      hConf,

LPCONFDEST lpConfDest,

LPCTSTR    szFileName,

DWORD      dwFlags);

The ConferenceSendFile function sends a file to one or more participants in a conference.

•	The return value is CONFERR_SUCCESS if the file was sent successfully.

CONFERR_FILE_NOT_FOUND is returned if the file or pathname is invalid.

CONFERR_INVALID_PARAMETER is returned if there was a problem the dwFlags parameter or any of the members in the structure pointed to by lpConfDest.

hConf

The HCONF used to identify the conference.

lpConfDest

Points to a CONFDEST structure

dwSize	must be set to the size of this structure

dwFlags	this field should be set to 0

dwUserId	the destination identifier for a single user, or 0 to indicate all participants in the conference

dwReserved	this field is reserved and should be set to 0

guid	this field is not used and should be set to 0

szFileName

The null terminated name of the file to send.

dwFlags

Specifies the options used to send the file. This parameter can be a combination of any of the following:

CONF_SF_NOWAIT	The function should start the file transfer immediate and return without waiting for it to complete.

CONF_SF_NOUI	The default progress indicator should not be used.

CONF_SF_NOCOMPRESS	The file should not be compressed.

Notifications of file transfers are made through the CONFNOTIFYPROC for the process. The notification callback receives the following information:

dwParam	the unique file identifier (dwFileId).

lpv1	a pointer to the CONFDEST structure

lpv2	a pointer to the CONFFILEINFO


ConferenceCancelTransfer

DWORD WINAPI ConferenceCancelTransfer(

HCONF hConf,

DWORD dwFileId);

The ConferenceCancelTransfer function stops the transfer of a file.

•	The return value is CONFERR_SUCCESS if the request was successfully processed.

hConf

The HCONF used to identify the conference.

dwFileId

The value used to identify a file transfer. This is the dwParam parameter passed to the callback for any of the CONFN_FILESEND or CONFN_FILERECEIVE notifications.

Note that it is possible for the transfer to complete before the request to cancel has been processed.


ConferenceShareWindow

DWORD WINAPI ConferenceShareWindow(

HCONF hConf,

HWND  hwnd,

DWORD dwCode);

The ConferenceShareWindow function shares an application window to the participants of the specified conference.

•	The function returns one of the following values

CONFERR_SUCCESS	The function was successful

CONFERR_NO_APP_SHARING	Application sharing is not currently active

CONFERR_NOT_SHARED	The hwnd is not shared

CONFERR_NOT_SHAREABLE	The hwnd can not be shared

hConf

Identifies the conference in which to share the window. If this is NULL, the default conference is used.

hwnd

Identifies the window to share.

dwCode

Specifies the sharing option. This must be one of:

CONF_SW_SHARE	Share the application associated with the hwnd

CONF_SW_UNSHARE	Stop sharing the application associated with the hwnd

CONF_SW_SHAREABLE	Check if the hwnd is capable of being shared

CONF_SW_IS_SHARED	Check if the hwnd is currently shared

The notification callback routine receives CONFN_WINDOW_SHARED or CONFN_WINDOW_UNSHARED when a window changes its sharing status. The dwParam is the window handle. A dwParam of 0 indicates application sharing has stopped.


ConferenceLaunchRemote

DWORD WINAPI ConferenceLaunchRemote(

HCONF      hConf,

LPCONFDEST lpConfDest,

DWORD      dwReserved);

The ConferenceLaunchRemote function informs a remote system it should attempt to start an application that has been registered.

•	The return value is CONFERR_SUCCESS if the request was successfully processed.

hConf

The HCONF used to identify the conference.

lpConfDest

Points to a CONFDEST structure

dwSize	must be set to the size of this structure

dwFlags	this field should be set to 0

dwUserId	the destination identifier for a single user, or 0 to indicate all participants in the conference

dwReserved	this field is reserved and should be set to 0

guid	the unique application identifier GUID

dwReserved

This parameter is reserved for future use and should be set to 0.

When a destination node receives this notification, it searches the registry for a matching guid. If an entry for an application is found, it attempts to start it, based on the data supplied when it was registered.

There is no notification given if the guid is not found or the application fails to start.

Note that a return value of CONFERR_SUCCESS does not guarantee the remote application has been started.

To detect when a remote application has joined the conference, it could register a callback with a guid, usually the same as the one used to launch the application. When the remote version of the application is launched and establishes its callback with the same guid the local application will receive a CONFN_PEER_ADDED notification.


ConferenceListen

DWORD WINAPI ConferenceListen(

DWORD dwReserved);

The ConferenceListen function starts the conferencing system in background mode, allowing it to accept incoming calls.

•	The return value is CONFERR_SUCCESS if the request was successfully processed.

dwReserved

This parameter is reserved for future use and should be set to 0.

Note that the user can set the option to automatically accept incoming calls or shut down the conferencing system.

There is no effect if conferencing is already running.


ConferenceSetNotify

DWORD WINAPI ConferenceSetNotify(

HCONF        hConf,

LPCONFNOTIFY lpConfNotify,

HCONFNOTIFY * phConfNotify);

The ConferenceSetNotify function establishes a notification callback routine for an application

•	The return value is CONFERR_SUCCESS if the request was successfully processed.

hConf

The HCONF used to identify the conference. If this is NULL, the notification procedure will receive events for all conferences, otherwise the callback will be automatically removed when the conference is terminated.

lpConfNotify

Points to a CONFNOTIFY structure.

dwSize	must be set to the size of this structure

dwUser	this field is available for the application's use and will be passed back through the notification callback function

dwFlags	reserved for future use

guid	the field should be set to 0 unless the application intends to receive data sent via ConferenceSendData

pfnNotifyProc	a pointer to the notification callback function (See CONFNOTIFYPROC)

phConfNotify

Points to a HCONFNOTIFY identifier that must be used to remove the notification procedure. (See ConferenceRemoveNotify)


ConferenceRemoveNotify

DWORD WINAPI ConferenceRemoveNotify(

HCONF       hConf,

HCONFNOTIFY hConfNotify);

The ConferenceRemoveNotify function requests that a procedure, established by ConferenceSetNotify no longer receive notifications about conferencing events.

•	The return value is CONFERR_SUCCESS if the request was successfully processed.

hConf

The HCONF used to identify the conference.

hConfNotify

The HCONFNOTIFY returned from a call to ConferenceSetNotify.


CONFNOTIFYPROC

DWORD WINAPI ConfNotifyProc(

HCONF  hConf,

DWORD  dwCode,

DWORD  dwParam,

LPVOID lpv1,

LPVOID lpv2,

DWORD  dwUser);

CONFNOTIFYPROC is an application-defined callback function for conference events.

•	The function should normally return 0.

hConf

Provides a conference identifier to the ConfNotifyProc.

dwCode

Specifies the conference event that occurred. See the comments section for a table of valid notification codes.

dwParam

Specifies a parameter for the event corresponding to dwCode.

lpv1

Specifies a parameter for the event corresponding to dwCode.

lpv2

Specifies a parameter for the event corresponding to dwCode.

dwUser

The application specific value specified in the CONFNOTIFY structure.

The following is a table of notification codes with their associated parameter definitions.

dwCode	dwParam	lpv1	lpv2
CONFN_CONFERENCE_INIT	--	--	LPCONFINFO
CONFN_CONFERENCE_START	--	--	LPCONFINFO
CONFN_CONFERENCE_STOP	--	--	LPCONFINFO
CONFN_CONFERENCE_ERROR	--	--	LPCONFINFO
CONFN_USER_ADDED	dwUserId	LPCONFADDR	LPCONFUSERINFO
CONFN_USER_REMOVED	dwUserId	LPCONFADDR	LPCONFUSERINFO
CONFN_USER_UPDATE	dwUserId	LPCONFADDR	LPCONFUSERINFO
CONFN_PEER_ADDED	dwUserId	LPCONFDEST	--
CONFN_PEER_REMOVED	dwUserId	LPCONFDEST	--
CONFN_WINDOW_SHARED	HWND	--	--
CONFN_WINDOW_UNSHARED	HWND	--	--
CONFN_DATA_RECEIVED	the number of bytes pointed to by lpv2	LPCONFDEST	pointer to data received
CONFN_DATA_SENT	the number of bytes pointed to by lpv2	LPCONFDEST	pointer to data sent
CONFN_FILESEND_START	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILESEND_PROGRESS	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILESEND_COMPLETE	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILESEND_ERROR	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILERECEIVE_START	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILERECEIVE_PROGRESS	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILERECEIVE_COMPLETE	dwFileId	LPCONFDEST	LPCONFFILEINFO
CONFN_FILERECEIVE_ERROR	dwFileId	LPCONFDEST	LPCONFFILEINFO
The values of lpv1 and lpv2 must not be used past the return from this callback. If necessary, the data pointed to by the structures may be copied.


Conference Error Codes

typedef DWORD CONFERR;

The return value of a conferencing function can be any one of the following values:

Error Code	Description
CONFERR_ACCESS_DENIED	Access to an object (file, user, etc.) was denied.
CONFERR_BUFFER_TOO_SMALL	The buffer pointed to by a parameter is not large enough for the operation
CONFERR_ENUM_COMPLETE	Enumeration complete
CONFERR_FILE_NOT_FOUND	The file was not found
CONFERR_FILE_RECEIVE_ABORT	The receiving of the file was canceled.
CONFERR_FILE_SEND_ABORT	The file send was canceled
CONFERR_FILE_TRANSFER	There was a problem transferring the file
CONFERR_INVALID_ADDRESS	The address is invalid or not found
CONFERR_INVALID_BUFFER	The buffer pointed to by a parameter is not valid for read/write.
CONFERR_INVALID_HCONF	The hConf parameter is not valid.
CONFERR_INVALID_HWND	The value passed to ConferenceShareWindow is not a valid hwnd
CONFERR_INVALID_OPERATION	The requested operation is not valid at this time.
CONFERR_INVALID_PARAMETER	One of the calling parameters is incorrect.
CONFERR_NO_APP_SHARING	Application Sharing is not currently available
CONFERR_NOT_SHARED	The application window is not currently shared
CONFERR_NOT_SHAREABLE	The application window can not be shared
CONFERR_OUT_OF_MEMORY	A function could not allocate sufficient memory to complete the operation.
CONFERR_PATH_NOT_FOUND	The path was not found
CONFERR_RECEIVE_DIR	There was a problem with the receive directory
CONFERR_SUCCESS	The function completed the requested operation successfully


CONFADDR

typedef struct tagConfAddr {

DWORD dwSize;

DWORD dwAddrType;

union {

DWORD dwIp;

PTSTR psz;

};

} CONFADDR;

A CONFADDR structure describes the address of another machine.

dwSize

Specifies the total size of the structure in bytes.

dwAddrType

Specifies the type of address following this member. This can be one of the following:

CONF_ADDR_IP	dwIp holds the IP address

CONF_ADDR_MACHINENAME	psz is the name of a machine on the local network

CONF_ADDR_PSTN	psz is the TAPI canonical telephone number

CONF_ADDR_UNKNOWN	neither dwIp nor psz are used

dwIp

The IP address as a set of 4 bytes.

psz

A pointer to the address as a null-terminated string. The definition of this depends upon the dwAddrType field.


CONFDEST

typedef struct tagConfDest {

DWORD dwSize;

DWORD dwFlags;

DWORD dwUserId;

DWORD dwReserved;

GUID  guid;

} CONFDEST;

A CONFDEST structure defines a destination node within a conference.

dwSize

Specifies the structure size in bytes.

dwFlags

Specifies the destination flags for the transfer. When receiving the CONFN_DATA_SENT or CONFN_DATA_RECEIVED notifications, this will be set to one of the following:

CONF_DF_BROADCAST	data was broadcast to everyone in the conference

CONF_DF_PRIVATE	data was sent from one peer to another

dwUserId

Specifies a unique user identification code. If this is 0, it implies everyone in the conference.

guid

Specifies a unique application identifier GUID. The fields of this structure can be set to 0, if not required.


CONFFILEINFO

typedef struct tagConfFileInfo {

DWORD dwSize;

DWORD dwFileId;

DWORD dwReserved1;

DWORD dwFileSize;

DWORD dwReserved2;

DWORD dwBytesTransferred;

DWORD dwFileAttributes;

FILETIME ftCreationTime;

FILETIME ftLastAccessTime;

FILETIME ftLastWriteTime;

TCHAR szFileNameSrc[MAX_PATH];

TCHAR szFileNameDest[MAX_PATH];

} CONFFILEINFO;

A CONFFILEINFO structure describes a file in the process of being transferred.

dwSize

Specifies the structure size in bytes.

dwFileId

Specifies a unique identifier for the file.

dwFileSize

Specifies the size of the file, in bytes.

dwBytesTransferred

Specfies the number of bytes that have been transferred.

dwFileAttributes

Specifies the DOS file attributes.

ftCreationTime

Specifies the creation time/date of the file.

ftLastAccessTime

Specfies the last time/date the file was accessed.

ftLastWriteTime

Specifies the last time/date the file was modified.

szFileNameSrc

Specifies the original file name.

szFileNameDest

Specifies the destination file name. This is only valid for the receiving process and may be not be the same as the original file name


CONFGUID

typedef struct tagConfGuid {

DWORD   dwSize;

GUID    guid;

LPCTSTR pszApplication;

LPCTSTR pszCommandLine;

LPCTSTR pszDirectory;

} CONFGUID;

A CONFGUID structure specifies the parameters passed to CreateProcess when an active conference receives a notification to invoke the application associated with the guid.

dwSize

Specifies the structure size in bytes.

guid

Specifies the unique application identifier GUID.

pszApplication

Pointer to a null-terminated string that specifies the module to execute. The string should specify the full path and filename of the module to execute. If pszApplication is NULL, the module name must be the first white space-delimited token in the pszCommandLine string.

pszCommandLine

Pointer to a null-terminated string that specifies the command line to execute. The pszCommandLine field can be NULL. In that case, the function uses the string pointed to by pszApplication as the command line.

pszDirectory

Points to a null-terminated string that specifies the current drive and directory for the process. The string must be a full path and filename that includes a drive letter. This field may be NULL.


CONFINFO

typedef struct tagConfInfo {

DWORD dwSize;

HCONF hConf;

DWORD dwMediaType;

DWORD dwState;

DWORD cUsers;

DWORD dwGCCID;

TCHAR szConferenceName[CONF_MAX_CONFERENCENAME];

} CONFINFO;

A CONFINFO structure defines the current conference settings.

dwSize

Specifies the structure size in bytes.

hConf

The handle for the conference.

dwMediaType

Specifies the media type. This may be a combination of one or more of the following:

CONF_MT_DATA	Data conference

CONF_MT_AUDIO	Audio is available

CONF_MT_VIDEO	Video is available

Use CONF_MT_ALL to specify all supported types.

dwState

Specifies the current conference state. This may be one of the following:

CONF_CS_INVALID	This is not a valid state

CONF_CS_INITIALIZING	The conference is being initialized

CONF_CS_ACTIVE	The conference is active

CONF_CS_STOPPING	The conference is being terminated

cUsers

The number of users in the conference.

dwGCCID

The GCC conference identifier.

szConferenceName

Specifies the null terminated name of the conference.


CONFNOTIFY

typedef struct tagConfNotify {

DWORD dwSize;

DWORD dwUser;

DWORD dwFlags;

CONFNOTIFYPROC pfnNotifyProc;

GUID guid;

} CONFNOTIFY;

A CONFNOTIFY structure specifies the notification callback routine for a process in a conference.

dwSize

Specifies the structure size in bytes.

dwUser

Available for use by the application. This is passed back to the notification callback as the dwUser parameter.

dwFlags

Reserved for future use

pfnNotifyProc

Specifies the address of the notification callback routine.

guid

Specifies the unique application identifier GUID. A null guid (all zeros) should be used unless the application intends to send or receive data using ConferenceSendData. If a non-zero guid is specified, then the callback will receive notifications of incoming data.

An application must fill out the dwSize and pfnNotifyProc fields of this structure.


CONFRECDIR

typedef struct tagConfRecDir {

DWORD dwSize;

TCHAR  szRecDir[MAX_PATH];

} CONFRECDIR;

A CONFRECDIR structure describes the default directory for received files.

dwSize

Specifies the structure size in bytes.

szRecDir

Specifies the full path of the default directory for received files.

Note there is only one current receive directory for the local machine and it is saved across sessions.


CONFUSERINFO

typedef struct tagConfUserInfo {

DWORD dwSize;

DWORD dwUserId;

DWORD dwFlags;

DWORD dwReserved;

TCHAR  szUserName[CONF_MAX_USERNAME];

} CONFUSERINFO;

A CONFUSERINFO structure describes a single user in a conference.

dwSize

Specifies the structure size in bytes.

dwUserId

Specifies a unique value to identify a user within a conference.

dwFlags

This may be a combination of any of the following:

CONF_UF_DATA	The user is in the data conference

CONF_UF_AUDIO	The user is participating in the audio conference

CONF_UF_VIDEO	The user is displaying a video image

CONF_UF_LOCAL	This indicates the local user

dwReserved

Reserved for future use. This must be 0.

szUserName

The null terminated string representing the user's name.


GUID

 typedef struct _GUID {

unsigned long   Data1;

unsigned short  Data2;

unsigned short  Data3;

unsigned char   Data4[8];

} GUID;

The GUID structure holds a globally unique identifier (GUID), which identifies a particular object class and interface. This identifier is a 128-bit value. For more information about GUIDs, see the Remote Procedure Call (RPC) documentation or the OLE Programmer's Reference

Use the guidgen.exe utility to generate new values.


HCONF

typedef HANDLE HCONF;

This identifies a conference.

A NULL hConf implies the default conference, if one is available.


HCONFNOTIFY

typedef HANDLE HCONFNOTIFY;

This identifies a conferencing notification callback.

This is returned by ConferenceSetNotify to identify a specific callback and must be passed to ConferenceRemoveNotify.