/* Copyright (c) 1995-1996, Microsoft Corporation, all rights reserved ** ** msconf.h ** ** Microsoft NetMeeting API ** Version 1.0. ** ** Public header for external API clients */ #ifndef _MSCONF_H_ #define _MSCONF_H_ #ifdef __cplusplus extern "C" { #endif #include #define CONF_VERSION 0x0002 // String constants #define CONF_MAX_USERNAME 128 #define CONF_MAX_CONFERENCENAME 128 /* Error constants */ #define CONFERR_BASE 0x09000L #define CONFERR_INVALID_PARAMETER (CONFERR_BASE + 1) #define CONFERR_INVALID_HCONF (CONFERR_BASE + 2) #define CONFERR_INVALID_BUFFER (CONFERR_BASE + 3) #define CONFERR_BUFFER_TOO_SMALL (CONFERR_BASE + 4) #define CONFERR_ENUM_COMPLETE (CONFERR_BASE + 5) #define CONFERR_INVALID_OPERATION (CONFERR_BASE + 6) #define CONFERR_INVALID_ADDRESS (CONFERR_BASE + 7) // File Transfer error codes #define CONFERR_FILE_TRANSFER (CONFERR_BASE + 10) #define CONFERR_FILE_SEND_ABORT (CONFERR_BASE + 11) #define CONFERR_FILE_RECEIVE_ABORT (CONFERR_BASE + 12) // Application sharing #define CONFERR_NO_APP_SHARING (CONFERR_BASE + 20) #define CONFERR_NOT_SHARED (CONFERR_BASE + 21) #define CONFERR_NOT_SHAREABLE (CONFERR_BASE + 22) #define CONFERR_ALREADY_SHARED (CONFERR_BASE + 23) // Overloaded Error Codes #define CONFERR_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY #define CONFERR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND #define CONFERR_PATH_NOT_FOUND ERROR_PATH_NOT_FOUND #define CONFERR_ACCESS_DENIED ERROR_ACCESS_DENIED #define CONFERR_RECEIVE_DIR ERROR_DISK_FULL #define CONFERR_NOT_IMPLEMENTED ERROR_CALL_NOT_IMPLEMENTED #define CONFERR_INVALID_HWND ERROR_INVALID_WINDOW_HANDLE #define CONFERR_INTERNAL (CONFERR_BASE + 99) #define CONFERR_SUCCESS 0 /* ERROR_SUCCESS */ typedef DWORD CONFERR; /* Main conferencing identifier */ typedef HANDLE HCONF; /* Notification Callback identifier */ typedef HANDLE HCONFNOTIFY; /* Notification Callback */ typedef LONG (CALLBACK* CONFNOTIFYPROC)(HCONF, DWORD, DWORD, LPVOID, LPVOID, DWORD); /* Describes a conference connection address */ #ifndef ANSI_ONLY typedef struct _CONFADDRW { DWORD dwSize; // size of this structure, in bytes DWORD dwAddrType; // type of address that follows union { DWORD dwIp; // IP Address (a.b.c.d) LPCWSTR psz; // pointer to a null terminated string }; } CONFADDRW, *LPCONFADDRW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFADDRA { DWORD dwSize; // size of this structure, in bytes DWORD dwAddrType; // type of address that follows union { DWORD dwIp; // IP Address (a.b.c.d) LPCSTR psz; // pointer to a null terminated string }; } CONFADDRA, *LPCONFADDRA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFADDRW CONFADDR; typedef LPCONFADDRW LPCONFADDR; #else typedef CONFADDRA CONFADDR; typedef LPCONFADDRA LPCONFADDR; #endif // UNICODE // CONFADDR dwAddrType values #define CONF_ADDR_UNKNOWN 0x0000 // address type is not known #define CONF_ADDR_IP 0x0001 // use dwIp as a binary IP address #define CONF_ADDR_MACHINENAME 0x0002 // use sz as a local machine name #define CONF_ADDR_PSTN 0x0003 // use sz as a TAPI canonical telephone number /* Describes a destination within a conference */ typedef struct tagConfDest { DWORD dwSize; // size of this structure, in bytes DWORD dwFlags; // destination flags (CONF_DF_xxx) DWORD dwUserId; // unique user identifier DWORD dwReserved; // reserved GUID guid; // globally unique application identifier } CONFDEST; typedef CONFDEST * LPCONFDEST; // CONFDEST dwFlags #define CONF_DF_BROADCAST 0x0100 // data was broadcast to everyone #define CONF_DF_PRIVATE 0x0200 // data was sent privately #define CONF_DF_DATA_SEGMENT_BEGIN 0x0400 // start of data block #define CONF_DF_DATA_SEGMENT_END 0x0800 // end of data block /* Describes the conference settings */ #ifndef ANSI_ONLY typedef struct _CONFINFOW { DWORD dwSize; HCONF hConf; DWORD dwMediaType; DWORD dwState; DWORD cUsers; DWORD dwGCCID; WCHAR szConferenceName[CONF_MAX_CONFERENCENAME]; } CONFINFOW, * LPCONFINFOW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFINFOA { DWORD dwSize; HCONF hConf; DWORD dwMediaType; DWORD dwState; DWORD cUsers; DWORD dwGCCID; CHAR szConferenceName[CONF_MAX_CONFERENCENAME]; } CONFINFOA, * LPCONFINFOA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFINFOW CONFINFO; typedef LPCONFINFOW LPCONFINFO; #else typedef CONFINFOA CONFINFO; typedef LPCONFINFOA LPCONFINFO; #endif // UNICODE // CONFINFO dwMediaType #define CONF_MT_DATA 0x0001 #define CONF_MT_AUDIO 0x0002 #define CONF_MT_VIDEO 0x0004 #define CONF_MT_ALL 0x00FF // CONFINFO dwState #define CONF_CS_INVALID 0x0000 #define CONF_CS_INITIALIZING 0x0001 #define CONF_CS_ACTIVE 0x0002 #define CONF_CS_STOPPING 0x0003 /* Describes a user within a conference */ #ifndef ANSI_ONLY typedef struct _CONFUSERINFOW { DWORD dwSize; DWORD dwUserId; DWORD dwFlags; DWORD dwReserved; WCHAR szUserName[CONF_MAX_USERNAME]; } CONFUSERINFOW, *LPCONFUSERINFOW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFUSERINFOA { DWORD dwSize; DWORD dwUserId; DWORD dwFlags; DWORD dwReserved; CHAR szUserName[CONF_MAX_USERNAME]; } CONFUSERINFOA, *LPCONFUSERINFOA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFUSERINFOW CONFUSERINFO; typedef LPCONFUSERINFOW LPCONFUSERINFO; #else typedef CONFUSERINFOA CONFUSERINFO; typedef LPCONFUSERINFOA LPCONFUSERINFO; #endif // UNICODE // CONFINFO dwFlags #define CONF_UF_DATA 0x00000001 #define CONF_UF_AUDIO 0x00000002 #define CONF_UF_VIDEO 0x00000004 #define CONF_UF_LOCAL 0x00010000 /* Describes the default receive directory for transferred files */ #ifndef ANSI_ONLY typedef struct _CONFRECDIRW { DWORD dwSize; WCHAR szRecDir[MAX_PATH]; } CONFRECDIRW, *LPCONFRECDIRW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFRECDIRA { DWORD dwSize; CHAR szRecDir[MAX_PATH]; } CONFRECDIRA, *LPCONFRECDIRA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFRECDIRW CONFRECDIR; typedef LPCONFRECDIRW LPCONFRECDIR; #else typedef CONFRECDIRA CONFRECDIR; typedef LPCONFRECDIRA LPCONFRECDIR; #endif // UNICODE /* Describes the notification callback */ typedef struct _CONFNOTIFY { DWORD dwSize; DWORD dwUser; DWORD dwFlags; GUID guid; CONFNOTIFYPROC pfnNotifyProc; } CONFNOTIFY; typedef CONFNOTIFY * LPCONFNOTIFY; /* Describes an application to be launched */ #ifndef ANSI_ONLY typedef struct _CONFGUIDW { DWORD dwSize; GUID guid; LPCWSTR pszApplication; LPCWSTR pszCommandLine; LPCWSTR pszDirectory; } CONFGUIDW, *LPCONFGUIDW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFGUIDA { DWORD dwSize; GUID guid; LPCSTR pszApplication; LPCSTR pszCommandLine; LPCSTR pszDirectory; } CONFGUIDA, *LPCONFGUIDA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFGUIDW CONFGUID; typedef LPCONFGUIDW LPCONFGUID; #else typedef CONFGUIDA CONFGUID; typedef LPCONFGUIDA LPCONFGUID; #endif // UNICODE /* Describes a file in the process of being transferred */ #ifndef ANSI_ONLY typedef struct _CONFFILEINFOW { DWORD dwSize; DWORD dwFileId; DWORD dwReserved1; DWORD dwFileSize; DWORD dwReserved2; DWORD dwBytesTransferred; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; WCHAR szFileNameSrc[MAX_PATH]; WCHAR szFileNameDest[MAX_PATH]; } CONFFILEINFOW, * LPCONFFILEINFOW; #endif //!ANSI_ONLY #ifndef UNICODE_ONLY typedef struct _CONFFILEINFOA { DWORD dwSize; DWORD dwFileId; DWORD dwReserved1; DWORD dwFileSize; DWORD dwReserved2; DWORD dwBytesTransferred; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; CHAR szFileNameSrc[MAX_PATH]; CHAR szFileNameDest[MAX_PATH]; } CONFFILEINFOA, * LPCONFFILEINFOA; #endif //!UNICODE_ONLY #ifdef UNICODE typedef CONFFILEINFOW CONFFILEINFO; typedef LPCONFFILEINFOW LPCONFFILEINFO; #else typedef CONFFILEINFOA CONFFILEINFO; typedef LPCONFFILEINFOA LPCONFFILEINFO; #endif // UNICODE /* ConferenceGetInfo dwCode */ #define CONF_GET_CONF 0x0001 // LPCONFINFO #define CONF_ENUM_CONF 0x0002 // LPCONFINFO #define CONF_GET_USER 0x0011 // LPCONFUSERINFO #define CONF_ENUM_USER 0x0012 // LPCONFUSERINFO #define CONF_ENUM_PEER 0x0018 // LPCONFDEST #define CONF_GET_RECDIR 0x0020 // LPCONFRECDIR #define CONF_GET_FILEINFO 0x0021 // LPCONFFILEINFO /* ConferenceSetInfo dwCode */ #define CONF_SET_RECDIR 0x1020 // LPCONFRECDIR #define CONF_SET_GUID 0x1041 // LPCONFGUID /* ConferenceSendFile dwFlags */ #define CONF_SF_NOWAIT 0x0001 #define CONF_SF_NOUI 0x0002 #define CONF_SF_NOCOMPRESS 0x0004 /* ConferenceShareWindow dwCode */ #define CONF_SW_SHARE 0x0001 #define CONF_SW_UNSHARE 0x0002 #define CONF_SW_SHAREABLE 0x0003 #define CONF_SW_IS_SHARED 0x0004 /* Notification Codes */ #define CONFN_CONFERENCE_INIT 0x0001 // 0, LPCONFADDR, LPCONFINFO #define CONFN_CONFERENCE_START 0x0002 // 0, LPCONFADDR, LPCONFINFO #define CONFN_CONFERENCE_STOP 0x0003 // 0, LPCONFADDR, LPCONFINFO #define CONFN_CONFERENCE_ERROR 0x0004 // 0, LPCONFADDR, LPCONFINFO #define CONFN_USER_ADDED 0x0011 // dwUserId, LPCONFADDR, LPCONFINFO #define CONFN_USER_REMOVED 0x0012 // dwUserId, LPCONFADDR, LPCONFINFO #define CONFN_USER_UPDATE 0x0013 // dwUserId, LPCONFADDR, LPCONFINFO #define CONFN_PEER_ADDED 0x0021 // dwUserId, LPCONFDEST, 0 #define CONFN_PEER_REMOVED 0x0022 // dwUserId, LPCONFDEST, 0 #define CONFN_WINDOW_SHARED 0x0041 // HWND, 0 , 0 #define CONFN_WINDOW_UNSHARED 0x0042 // HWND, 0 , 0 #define CONFN_DATA_SENT 0x0101 // DWORD, LPCONFDEST, LPVOID #define CONFN_DATA_RECEIVED 0x0102 // DWORD, LPCONFDEST, LPVOID #define CONFN_FILESEND_START 0x0111 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILESEND_PROGRESS 0x0112 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILESEND_COMPLETE 0x0113 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILESEND_ERROR 0x0114 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILERECEIVE_START 0x0121 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILERECEIVE_PROGRESS 0x0122 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILERECEIVE_COMPLETE 0x0123 // dwFileId, LPCONFDEST, LPCONFFILEINFO #define CONFN_FILERECEIVE_ERROR 0x0124 // dwFileId, LPCONFDEST, LPCONFFILEINFO /* Conferencing functions found in MSCONF.DLL */ #ifndef ANSI_ONLY DWORD WINAPI ConferenceConnectW(HCONF * phConf, LPCONFADDRW lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify); DWORD WINAPI ConferenceSendFileW(HCONF hConf, LPCONFDEST lpConfDest, LPCWSTR szFileName, DWORD dwFlags); DWORD WINAPI ConferenceGetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv); DWORD WINAPI ConferenceSetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv); #endif //!ANSI_ONLY #ifndef UNICODE_ONLY DWORD WINAPI ConferenceConnectA(HCONF * phConf, LPCONFADDRA lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify); DWORD WINAPI ConferenceSendFileA(HCONF hConf, LPCONFDEST lpConfDest, LPCSTR szFileName, DWORD dwFlags); DWORD WINAPI ConferenceGetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv); DWORD WINAPI ConferenceSetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv); #endif //!UNICODE_ONLY #ifdef UNICODE #define ConferenceConnect ConferenceConnectW #define ConferenceGetInfo ConferenceGetInfoW #define ConferenceSetInfo ConferenceSetInfoW #define ConferenceSendFile ConferenceSendFileW #else #define ConferenceConnect ConferenceConnectA #define ConferenceGetInfo ConferenceGetInfoA #define ConferenceSetInfo ConferenceSetInfoA #define ConferenceSendFile ConferenceSendFileA #endif // !UNICODE DWORD WINAPI ConferenceListen(DWORD dwReserved); DWORD WINAPI ConferenceDisconnect(HCONF hConf); DWORD WINAPI ConferenceSetNotify(HCONF hConf, LPCONFNOTIFY lpConfNotify, HCONFNOTIFY * phConfNotify); DWORD WINAPI ConferenceRemoveNotify(HCONF hConf, HCONFNOTIFY hConfNotify); DWORD WINAPI ConferenceCancelTransfer(HCONF hConf, DWORD dwFileId); DWORD WINAPI ConferenceSendData(HCONF hConf, LPCONFDEST lpConfDest, LPVOID lpv, DWORD cb, DWORD dwFlags); DWORD WINAPI ConferenceLaunchRemote(HCONF hConf, LPCONFDEST lpConfDest, DWORD dwReserved); DWORD WINAPI ConferenceShareWindow(HCONF hConf, HWND hwnd, DWORD dwCode); #include #ifdef __cplusplus } #endif #endif // _MSCONF_H_