home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / MSCONF.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  13.4 KB  |  437 lines

  1. /* Copyright (c) 1995-1996, Microsoft Corporation, all rights reserved
  2. **
  3. ** msconf.h
  4. **
  5. ** Microsoft NetMeeting API
  6. ** Version 1.0.
  7. **
  8. ** Public header for external API clients
  9. */
  10.  
  11. #ifndef _MSCONF_H_
  12. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  13. #define _MSCONF_H_
  14. #pragma option push -b
  15.  
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21.  
  22. #include <pshpack4.h>
  23.  
  24.  
  25. #define CONF_VERSION            0x0002
  26.  
  27.  
  28. // String constants
  29. #define CONF_MAX_USERNAME       128
  30. #define CONF_MAX_CONFERENCENAME 128
  31.  
  32.  
  33. /* Error constants
  34. */
  35.  
  36. #define CONFERR_BASE                   0x09000L
  37.  
  38. #define CONFERR_INVALID_PARAMETER      (CONFERR_BASE + 1)
  39. #define CONFERR_INVALID_HCONF          (CONFERR_BASE + 2)
  40. #define CONFERR_INVALID_BUFFER         (CONFERR_BASE + 3)
  41. #define CONFERR_BUFFER_TOO_SMALL       (CONFERR_BASE + 4)
  42. #define CONFERR_ENUM_COMPLETE          (CONFERR_BASE + 5)
  43. #define CONFERR_INVALID_OPERATION      (CONFERR_BASE + 6)
  44. #define CONFERR_INVALID_ADDRESS        (CONFERR_BASE + 7)
  45.  
  46. // File Transfer error codes
  47. #define CONFERR_FILE_TRANSFER          (CONFERR_BASE + 10)
  48. #define CONFERR_FILE_SEND_ABORT        (CONFERR_BASE + 11)
  49. #define CONFERR_FILE_RECEIVE_ABORT     (CONFERR_BASE + 12)
  50.  
  51. // Application sharing
  52. #define CONFERR_NO_APP_SHARING         (CONFERR_BASE + 20)
  53. #define CONFERR_NOT_SHARED             (CONFERR_BASE + 21)
  54. #define CONFERR_NOT_SHAREABLE          (CONFERR_BASE + 22)
  55. #define CONFERR_ALREADY_SHARED         (CONFERR_BASE + 23)
  56.  
  57.  
  58. // Overloaded Error Codes
  59. #define CONFERR_OUT_OF_MEMORY          ERROR_NOT_ENOUGH_MEMORY
  60. #define CONFERR_FILE_NOT_FOUND         ERROR_FILE_NOT_FOUND
  61. #define CONFERR_PATH_NOT_FOUND         ERROR_PATH_NOT_FOUND
  62. #define CONFERR_ACCESS_DENIED          ERROR_ACCESS_DENIED
  63. #define CONFERR_RECEIVE_DIR            ERROR_DISK_FULL
  64. #define CONFERR_NOT_IMPLEMENTED        ERROR_CALL_NOT_IMPLEMENTED
  65. #define CONFERR_INVALID_HWND           ERROR_INVALID_WINDOW_HANDLE
  66.  
  67. #define CONFERR_INTERNAL               (CONFERR_BASE + 99)
  68. #define CONFERR_SUCCESS                0  /* ERROR_SUCCESS */
  69.  
  70. typedef DWORD CONFERR;
  71.  
  72.  
  73. /* Main conferencing identifier
  74. */
  75. typedef HANDLE HCONF;
  76.  
  77.  
  78. /* Notification Callback identifier
  79. */
  80. typedef HANDLE HCONFNOTIFY;
  81.  
  82.  
  83. /* Notification Callback
  84. */
  85. typedef LONG (CALLBACK* CONFNOTIFYPROC)(HCONF, DWORD, DWORD, LPVOID, LPVOID, DWORD);
  86.  
  87.  
  88.  
  89. /* Describes a conference connection address
  90. */
  91. #ifndef ANSI_ONLY
  92. typedef struct _CONFADDRW {
  93.     DWORD dwSize;                // size of this structure, in bytes
  94.     DWORD dwAddrType;            // type of address that follows
  95.     union {
  96.         DWORD dwIp;              // IP Address (a.b.c.d)
  97.         LPCWSTR psz;             // pointer to a null terminated string
  98.         };
  99. } CONFADDRW, *LPCONFADDRW;
  100. #endif //!ANSI_ONLY
  101. #ifndef UNICODE_ONLY
  102. typedef struct _CONFADDRA {
  103.     DWORD dwSize;                // size of this structure, in bytes
  104.     DWORD dwAddrType;            // type of address that follows
  105.     union {
  106.         DWORD dwIp;              // IP Address (a.b.c.d)
  107.         LPCSTR psz;              // pointer to a null terminated string
  108.         };
  109. } CONFADDRA, *LPCONFADDRA;
  110. #endif //!UNICODE_ONLY
  111. #ifdef UNICODE
  112. typedef CONFADDRW CONFADDR;
  113. typedef LPCONFADDRW LPCONFADDR;
  114. #else
  115. typedef CONFADDRA CONFADDR;
  116. typedef LPCONFADDRA LPCONFADDR;
  117. #endif // UNICODE
  118.  
  119. // CONFADDR dwAddrType values
  120. #define CONF_ADDR_UNKNOWN      0x0000 // address type is not known
  121. #define CONF_ADDR_IP           0x0001 // use dwIp as a binary IP address
  122. #define CONF_ADDR_MACHINENAME  0x0002 // use sz as a local machine name
  123. #define CONF_ADDR_PSTN         0x0003 // use sz as a TAPI canonical telephone number
  124.  
  125.  
  126. /* Describes a destination within a conference
  127. */
  128. typedef struct tagConfDest {
  129.     DWORD dwSize;                   // size of this structure, in bytes
  130.     DWORD dwFlags;                  // destination flags (CONF_DF_xxx)
  131.     DWORD dwUserId;                 // unique user identifier
  132.     DWORD dwReserved;               // reserved
  133.     GUID  guid;                     // globally unique application identifier
  134. } CONFDEST;
  135. typedef CONFDEST * LPCONFDEST;
  136.  
  137. // CONFDEST dwFlags
  138. #define CONF_DF_BROADCAST           0x0100 // data was broadcast to everyone
  139. #define CONF_DF_PRIVATE             0x0200 // data was sent privately
  140. #define CONF_DF_DATA_SEGMENT_BEGIN  0x0400 // start of data block
  141. #define CONF_DF_DATA_SEGMENT_END    0x0800 // end of data block
  142.  
  143.  
  144. /* Describes the conference settings
  145. */
  146. #ifndef ANSI_ONLY
  147. typedef struct _CONFINFOW {
  148.     DWORD dwSize;
  149.     HCONF hConf;
  150.     DWORD dwMediaType;
  151.     DWORD dwState;
  152.     DWORD cUsers;
  153.     DWORD dwGCCID;
  154.     WCHAR szConferenceName[CONF_MAX_CONFERENCENAME];
  155. } CONFINFOW, * LPCONFINFOW;
  156. #endif //!ANSI_ONLY
  157. #ifndef UNICODE_ONLY
  158. typedef struct _CONFINFOA {
  159.     DWORD dwSize;
  160.     HCONF hConf;
  161.     DWORD dwMediaType;
  162.     DWORD dwState;
  163.     DWORD cUsers;
  164.     DWORD dwGCCID;
  165.     CHAR  szConferenceName[CONF_MAX_CONFERENCENAME];
  166. } CONFINFOA, * LPCONFINFOA;
  167. #endif //!UNICODE_ONLY
  168. #ifdef UNICODE
  169. typedef CONFINFOW CONFINFO;
  170. typedef LPCONFINFOW LPCONFINFO;
  171. #else
  172. typedef CONFINFOA CONFINFO;
  173. typedef LPCONFINFOA LPCONFINFO;
  174. #endif // UNICODE
  175.  
  176. // CONFINFO dwMediaType
  177. #define CONF_MT_DATA          0x0001
  178. #define CONF_MT_AUDIO         0x0002
  179. #define CONF_MT_VIDEO         0x0004
  180. #define CONF_MT_ALL           0x00FF
  181.  
  182. // CONFINFO dwState
  183. #define CONF_CS_INVALID       0x0000
  184. #define CONF_CS_INITIALIZING  0x0001
  185. #define CONF_CS_ACTIVE        0x0002
  186. #define CONF_CS_STOPPING      0x0003
  187.  
  188.  
  189. /* Describes a user within a conference
  190. */
  191. #ifndef ANSI_ONLY
  192. typedef struct _CONFUSERINFOW {
  193.     DWORD dwSize;
  194.     DWORD dwUserId;
  195.     DWORD dwFlags;
  196.     DWORD dwReserved;
  197.     WCHAR szUserName[CONF_MAX_USERNAME];
  198. } CONFUSERINFOW, *LPCONFUSERINFOW;
  199. #endif //!ANSI_ONLY
  200. #ifndef UNICODE_ONLY
  201. typedef struct _CONFUSERINFOA {
  202.     DWORD dwSize;
  203.     DWORD dwUserId;
  204.     DWORD dwFlags;
  205.     DWORD dwReserved;
  206.     CHAR  szUserName[CONF_MAX_USERNAME];
  207. } CONFUSERINFOA, *LPCONFUSERINFOA;
  208. #endif //!UNICODE_ONLY
  209. #ifdef UNICODE
  210. typedef CONFUSERINFOW CONFUSERINFO;
  211. typedef LPCONFUSERINFOW LPCONFUSERINFO;
  212. #else
  213. typedef CONFUSERINFOA CONFUSERINFO;
  214. typedef LPCONFUSERINFOA LPCONFUSERINFO;
  215. #endif // UNICODE
  216.  
  217. // CONFINFO dwFlags
  218. #define CONF_UF_DATA       0x00000001
  219. #define CONF_UF_AUDIO      0x00000002
  220. #define CONF_UF_VIDEO      0x00000004
  221.  
  222. #define CONF_UF_LOCAL      0x00010000
  223.  
  224.  
  225. /* Describes the default receive directory for transferred files
  226. */
  227. #ifndef ANSI_ONLY
  228. typedef struct _CONFRECDIRW {
  229.     DWORD dwSize;
  230.     WCHAR szRecDir[MAX_PATH];
  231. } CONFRECDIRW, *LPCONFRECDIRW;
  232. #endif //!ANSI_ONLY
  233. #ifndef UNICODE_ONLY
  234. typedef struct _CONFRECDIRA {
  235.     DWORD dwSize;
  236.     CHAR  szRecDir[MAX_PATH];
  237. } CONFRECDIRA, *LPCONFRECDIRA;
  238. #endif //!UNICODE_ONLY
  239. #ifdef UNICODE
  240. typedef CONFRECDIRW CONFRECDIR;
  241. typedef LPCONFRECDIRW LPCONFRECDIR;
  242. #else
  243. typedef CONFRECDIRA CONFRECDIR;
  244. typedef LPCONFRECDIRA LPCONFRECDIR;
  245. #endif // UNICODE
  246.  
  247.  
  248. /* Describes the notification callback
  249. */
  250. typedef struct _CONFNOTIFY {
  251.     DWORD dwSize;
  252.     DWORD dwUser;
  253.     DWORD dwFlags;
  254.     GUID  guid;
  255.     CONFNOTIFYPROC pfnNotifyProc;
  256. } CONFNOTIFY;
  257. typedef CONFNOTIFY * LPCONFNOTIFY;
  258.  
  259.  
  260. /* Describes an application to be launched
  261. */
  262. #ifndef ANSI_ONLY
  263. typedef struct _CONFGUIDW {
  264.     DWORD   dwSize;
  265.     GUID    guid;
  266.     LPCWSTR pszApplication;
  267.     LPCWSTR pszCommandLine;
  268.     LPCWSTR pszDirectory;
  269. } CONFGUIDW, *LPCONFGUIDW;
  270. #endif //!ANSI_ONLY
  271. #ifndef UNICODE_ONLY
  272. typedef struct _CONFGUIDA {
  273.     DWORD   dwSize;
  274.     GUID    guid;
  275.     LPCSTR  pszApplication;
  276.     LPCSTR  pszCommandLine;
  277.     LPCSTR  pszDirectory;
  278. } CONFGUIDA, *LPCONFGUIDA;
  279. #endif //!UNICODE_ONLY
  280. #ifdef UNICODE
  281. typedef CONFGUIDW CONFGUID;
  282. typedef LPCONFGUIDW LPCONFGUID;
  283. #else
  284. typedef CONFGUIDA CONFGUID;
  285. typedef LPCONFGUIDA LPCONFGUID;
  286. #endif // UNICODE
  287.  
  288.  
  289. /* Describes a file in the process of being transferred
  290. */
  291. #ifndef ANSI_ONLY
  292. typedef struct _CONFFILEINFOW {
  293.     DWORD dwSize;
  294.     DWORD dwFileId;
  295.     DWORD dwReserved1;
  296.     DWORD dwFileSize;
  297.     DWORD dwReserved2;
  298.     DWORD dwBytesTransferred;
  299.     DWORD dwFileAttributes;
  300.     FILETIME ftCreationTime;
  301.     FILETIME ftLastAccessTime;
  302.     FILETIME ftLastWriteTime;
  303.     WCHAR szFileNameSrc[MAX_PATH];
  304.     WCHAR szFileNameDest[MAX_PATH];
  305. } CONFFILEINFOW, * LPCONFFILEINFOW;
  306. #endif //!ANSI_ONLY
  307. #ifndef UNICODE_ONLY
  308. typedef struct _CONFFILEINFOA {
  309.     DWORD dwSize;
  310.     DWORD dwFileId;
  311.     DWORD dwReserved1;
  312.     DWORD dwFileSize;
  313.     DWORD dwReserved2;
  314.     DWORD dwBytesTransferred;
  315.     DWORD dwFileAttributes;
  316.     FILETIME ftCreationTime;
  317.     FILETIME ftLastAccessTime;
  318.     FILETIME ftLastWriteTime;
  319.     CHAR  szFileNameSrc[MAX_PATH];
  320.     CHAR  szFileNameDest[MAX_PATH];
  321. } CONFFILEINFOA, * LPCONFFILEINFOA;
  322. #endif //!UNICODE_ONLY
  323. #ifdef UNICODE
  324. typedef CONFFILEINFOW CONFFILEINFO;
  325. typedef LPCONFFILEINFOW LPCONFFILEINFO;
  326. #else
  327. typedef CONFFILEINFOA CONFFILEINFO;
  328. typedef LPCONFFILEINFOA LPCONFFILEINFO;
  329. #endif // UNICODE
  330.  
  331.  
  332.  
  333. /* ConferenceGetInfo dwCode
  334. */
  335. #define CONF_GET_CONF                0x0001 // LPCONFINFO
  336. #define CONF_ENUM_CONF               0x0002 // LPCONFINFO
  337. #define CONF_GET_USER                0x0011 // LPCONFUSERINFO
  338. #define CONF_ENUM_USER               0x0012 // LPCONFUSERINFO
  339. #define CONF_ENUM_PEER               0x0018 // LPCONFDEST
  340. #define CONF_GET_RECDIR              0x0020 // LPCONFRECDIR
  341. #define CONF_GET_FILEINFO            0x0021 // LPCONFFILEINFO
  342.  
  343.  
  344. /* ConferenceSetInfo dwCode
  345. */
  346. #define CONF_SET_RECDIR              0x1020 // LPCONFRECDIR
  347. #define CONF_SET_GUID                0x1041 // LPCONFGUID
  348.  
  349.  
  350. /* ConferenceSendFile dwFlags
  351. */
  352. #define CONF_SF_NOWAIT               0x0001
  353. #define CONF_SF_NOUI                 0x0002
  354. #define CONF_SF_NOCOMPRESS           0x0004
  355.  
  356.  
  357. /* ConferenceShareWindow dwCode
  358. */
  359. #define CONF_SW_SHARE                0x0001
  360. #define CONF_SW_UNSHARE              0x0002
  361. #define CONF_SW_SHAREABLE            0x0003
  362. #define CONF_SW_IS_SHARED            0x0004
  363.  
  364.  
  365. /* Notification Codes
  366. */
  367. #define CONFN_CONFERENCE_INIT        0x0001 // 0,        LPCONFADDR, LPCONFINFO
  368. #define CONFN_CONFERENCE_START       0x0002 // 0,        LPCONFADDR, LPCONFINFO
  369. #define CONFN_CONFERENCE_STOP        0x0003 // 0,        LPCONFADDR, LPCONFINFO
  370. #define CONFN_CONFERENCE_ERROR       0x0004 // 0,        LPCONFADDR, LPCONFINFO
  371. #define CONFN_USER_ADDED             0x0011 // dwUserId, LPCONFADDR, LPCONFINFO
  372. #define CONFN_USER_REMOVED           0x0012 // dwUserId, LPCONFADDR, LPCONFINFO
  373. #define CONFN_USER_UPDATE            0x0013 // dwUserId, LPCONFADDR, LPCONFINFO
  374. #define CONFN_PEER_ADDED             0x0021 // dwUserId, LPCONFDEST, 0
  375. #define CONFN_PEER_REMOVED           0x0022 // dwUserId, LPCONFDEST, 0
  376. #define CONFN_WINDOW_SHARED          0x0041 // HWND,     0         , 0
  377. #define CONFN_WINDOW_UNSHARED        0x0042 // HWND,     0         , 0
  378. #define CONFN_DATA_SENT              0x0101 // DWORD,    LPCONFDEST, LPVOID
  379. #define CONFN_DATA_RECEIVED          0x0102 // DWORD,    LPCONFDEST, LPVOID
  380. #define CONFN_FILESEND_START         0x0111 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  381. #define CONFN_FILESEND_PROGRESS      0x0112 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  382. #define CONFN_FILESEND_COMPLETE      0x0113 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  383. #define CONFN_FILESEND_ERROR         0x0114 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  384. #define CONFN_FILERECEIVE_START      0x0121 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  385. #define CONFN_FILERECEIVE_PROGRESS   0x0122 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  386. #define CONFN_FILERECEIVE_COMPLETE   0x0123 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  387. #define CONFN_FILERECEIVE_ERROR      0x0124 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  388.  
  389.  
  390. /* Conferencing functions found in MSCONF.DLL
  391. */
  392.  
  393. #ifndef ANSI_ONLY
  394. DWORD WINAPI ConferenceConnectW(HCONF * phConf, LPCONFADDRW lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify);
  395. DWORD WINAPI ConferenceSendFileW(HCONF hConf, LPCONFDEST lpConfDest, LPCWSTR szFileName, DWORD dwFlags);
  396. DWORD WINAPI ConferenceGetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv);
  397. DWORD WINAPI ConferenceSetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv);
  398. #endif //!ANSI_ONLY
  399. #ifndef UNICODE_ONLY
  400. DWORD WINAPI ConferenceConnectA(HCONF * phConf, LPCONFADDRA lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify);
  401. DWORD WINAPI ConferenceSendFileA(HCONF hConf, LPCONFDEST lpConfDest, LPCSTR szFileName, DWORD dwFlags);
  402. DWORD WINAPI ConferenceGetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv);
  403. DWORD WINAPI ConferenceSetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv);
  404. #endif //!UNICODE_ONLY
  405. #ifdef UNICODE
  406. #define ConferenceConnect  ConferenceConnectW
  407. #define ConferenceGetInfo  ConferenceGetInfoW
  408. #define ConferenceSetInfo  ConferenceSetInfoW
  409. #define ConferenceSendFile ConferenceSendFileW
  410. #else
  411. #define ConferenceConnect  ConferenceConnectA
  412. #define ConferenceGetInfo  ConferenceGetInfoA
  413. #define ConferenceSetInfo  ConferenceSetInfoA
  414. #define ConferenceSendFile ConferenceSendFileA
  415. #endif // !UNICODE
  416.  
  417. DWORD WINAPI ConferenceListen(DWORD dwReserved);
  418. DWORD WINAPI ConferenceDisconnect(HCONF hConf);
  419. DWORD WINAPI ConferenceSetNotify(HCONF hConf, LPCONFNOTIFY lpConfNotify, HCONFNOTIFY * phConfNotify);
  420. DWORD WINAPI ConferenceRemoveNotify(HCONF hConf, HCONFNOTIFY hConfNotify);
  421. DWORD WINAPI ConferenceCancelTransfer(HCONF hConf, DWORD dwFileId);
  422. DWORD WINAPI ConferenceSendData(HCONF hConf, LPCONFDEST lpConfDest, LPVOID lpv, DWORD cb, DWORD dwFlags);
  423. DWORD WINAPI ConferenceLaunchRemote(HCONF hConf, LPCONFDEST lpConfDest, DWORD dwReserved);
  424. DWORD WINAPI ConferenceShareWindow(HCONF hConf, HWND hwnd, DWORD dwCode);
  425.  
  426.  
  427. #include <poppack.h>
  428.  
  429.  
  430. #ifdef __cplusplus
  431. }
  432. #endif
  433.  
  434. #pragma option pop
  435. #pragma option pop /*P_O_Pop*/
  436. #endif // _MSCONF_H_
  437.