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