home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 December / PCWKCD1296.iso / vjplusb / activex / inetsdk / include / msconf.h < prev    next >
C/C++ Source or Header  |  1996-07-03  |  13KB  |  426 lines

  1. /* Copyright (c) 1995-1996, Microsoft Corporation, all rights reserved
  2. **
  3. ** msconf.h
  4. **
  5. ** Microsoft NetMeeting API
  6. ** Version 1.0.  Beta 2
  7. ** Unpublished work.
  8. **
  9. ** Public header for external API clients
  10. */
  11.  
  12. #ifndef _MSCONF_H_
  13. #define _MSCONF_H_
  14.  
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18.  
  19. #include <pshpack4.h>
  20.  
  21. #define CONF_VERSION            0x0002
  22.  
  23.  
  24. // String constants
  25. #define CONF_MAX_USERNAME       128
  26. #define CONF_MAX_CONFERENCENAME 128
  27.  
  28.  
  29. /* Error constants
  30. */
  31.  
  32. #define CONFERR_BASE                   0x09000L
  33.  
  34. #define CONFERR_INVALID_PARAMETER      (CONFERR_BASE + 1)
  35. #define CONFERR_INVALID_HCONF          (CONFERR_BASE + 2)
  36. #define CONFERR_INVALID_BUFFER         (CONFERR_BASE + 3)
  37. #define CONFERR_BUFFER_TOO_SMALL       (CONFERR_BASE + 4)
  38. #define CONFERR_ENUM_COMPLETE          (CONFERR_BASE + 5)
  39. #define CONFERR_INVALID_OPERATION      (CONFERR_BASE + 6)
  40. #define CONFERR_INVALID_ADDRESS        (CONFERR_BASE + 7)
  41.  
  42. // File Transfer error codes
  43. #define CONFERR_FILE_TRANSFER          (CONFERR_BASE + 10)
  44. #define CONFERR_FILE_SEND_ABORT        (CONFERR_BASE + 11)
  45. #define CONFERR_FILE_RECEIVE_ABORT     (CONFERR_BASE + 12)
  46.  
  47. // Application sharing
  48. #define CONFERR_NO_APP_SHARING         (CONFERR_BASE + 20)
  49. #define CONFERR_NOT_SHARED             (CONFERR_BASE + 21)
  50. #define CONFERR_NOT_SHAREABLE          (CONFERR_BASE + 22)
  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 UNICODE_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 //!UNICODE_ONLY
  96. #ifndef ANSI_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 //!ANSI_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 private
  135.  
  136.  
  137. /* Describes the conference settings
  138. */
  139. #ifndef UNICODE_ONLY
  140. typedef struct _CONFINFOW {
  141.     DWORD dwSize;
  142.     HCONF hConf;
  143.     DWORD dwMediaType;
  144.     DWORD dwState;
  145.     DWORD cUsers;
  146.     DWORD dwGCCID;
  147.     WCHAR szConferenceName[CONF_MAX_CONFERENCENAME];
  148. } CONFINFOW, * LPCONFINFOW;
  149. #endif //!UNICODE_ONLY
  150. #ifndef ANSI_ONLY
  151. typedef struct _CONFINFOA {
  152.     DWORD dwSize;
  153.     HCONF hConf;
  154.     DWORD dwMediaType;
  155.     DWORD dwState;
  156.     DWORD cUsers;
  157.     DWORD dwGCCID;
  158.     CHAR  szConferenceName[CONF_MAX_CONFERENCENAME];
  159. } CONFINFOA, * LPCONFINFOA;
  160. #endif //!ANSI_ONLY
  161. #ifdef UNICODE
  162. typedef CONFINFOW CONFINFO;
  163. typedef LPCONFINFOW LPCONFINFO;
  164. #else
  165. typedef CONFINFOA CONFINFO;
  166. typedef LPCONFINFOA LPCONFINFO;
  167. #endif // UNICODE
  168.  
  169. // CONFINFO dwMediaType
  170. #define CONF_MT_DATA          0x0001
  171. #define CONF_MT_AUDIO         0x0002
  172. #define CONF_MT_VIDEO         0x0004
  173. #define CONF_MT_ALL           0x00FF
  174.  
  175. // CONFINFO dwState
  176. #define CONF_CS_INVALID       0x0000
  177. #define CONF_CS_INITIALIZING  0x0001
  178. #define CONF_CS_ACTIVE        0x0002
  179. #define CONF_CS_STOPPING      0x0003
  180.  
  181.  
  182. /* Describes a user within a conference
  183. */
  184. #ifndef UNICODE_ONLY
  185. typedef struct _CONFUSERINFOW {
  186.     DWORD dwSize;
  187.     DWORD dwUserId;
  188.     DWORD dwFlags;
  189.     DWORD dwReserved;
  190.     WCHAR szUserName[CONF_MAX_USERNAME];
  191. } CONFUSERINFOW, *LPCONFUSERINFOW;
  192. #endif //!UNICODE_ONLY
  193. #ifndef ANSI_ONLY
  194. typedef struct _CONFUSERINFOA {
  195.     DWORD dwSize;
  196.     DWORD dwUserId;
  197.     DWORD dwFlags;
  198.     DWORD dwReserved;
  199.     CHAR  szUserName[CONF_MAX_USERNAME];
  200. } CONFUSERINFOA, *LPCONFUSERINFOA;
  201. #endif //!ANSI_ONLY
  202. #ifdef UNICODE
  203. typedef CONFUSERINFOW CONFUSERINFO;
  204. typedef LPCONFUSERINFOW LPCONFUSERINFO;
  205. #else
  206. typedef CONFUSERINFOA CONFUSERINFO;
  207. typedef LPCONFUSERINFOA LPCONFUSERINFO;
  208. #endif // UNICODE
  209.  
  210. // CONFINFO dwFlags
  211. #define CONF_UF_DATA       0x00000001
  212. #define CONF_UF_AUDIO      0x00000002
  213. #define CONF_UF_VIDEO      0x00000004
  214.  
  215. #define CONF_UF_LOCAL      0x00010000
  216.  
  217.  
  218. /* Describes the default receive directory for transferred files
  219. */
  220. #ifndef UNICODE_ONLY
  221. typedef struct _CONFRECDIRW {
  222.     DWORD dwSize;
  223.     WCHAR szRecDir[MAX_PATH];
  224. } CONFRECDIRW, *LPCONFRECDIRW;
  225. #endif //!UNICODE_ONLY
  226. #ifndef ANSI_ONLY
  227. typedef struct _CONFRECDIRA {
  228.     DWORD dwSize;
  229.     CHAR  szRecDir[MAX_PATH];
  230. } CONFRECDIRA, *LPCONFRECDIRA;
  231. #endif //!ANSI_ONLY
  232. #ifdef UNICODE
  233. typedef CONFRECDIRW CONFRECDIR;
  234. typedef LPCONFRECDIRW LPCONFRECDIR;
  235. #else
  236. typedef CONFRECDIRA CONFRECDIR;
  237. typedef LPCONFRECDIRA LPCONFRECDIR;
  238. #endif // UNICODE
  239.  
  240.  
  241. /* Describes the notification callback
  242. */
  243. typedef struct _CONFNOTIFY {
  244.     DWORD dwSize;
  245.     DWORD dwUser;
  246.     DWORD dwFlags;
  247.     GUID  guid;
  248.     CONFNOTIFYPROC pfnNotifyProc;
  249. } CONFNOTIFY;
  250. typedef CONFNOTIFY * LPCONFNOTIFY;
  251.  
  252.  
  253. /* Describes an application to be launched
  254. */
  255. #ifndef UNICODE_ONLY
  256. typedef struct _CONFGUIDW {
  257.     DWORD   dwSize;
  258.     GUID    guid;
  259.     LPCWSTR pszApplication;
  260.     LPCWSTR pszCommandLine;
  261.     LPCWSTR pszDirectory;
  262. } CONFGUIDW, *LPCONFGUIDW;
  263. #endif //!UNICODE_ONLY
  264. #ifndef ANSI_ONLY
  265. typedef struct _CONFGUIDA {
  266.     DWORD   dwSize;
  267.     GUID    guid;
  268.     LPCSTR  pszApplication;
  269.     LPCSTR  pszCommandLine;
  270.     LPCSTR  pszDirectory;
  271. } CONFGUIDA, *LPCONFGUIDA;
  272. #endif //!ANSI_ONLY
  273. #ifdef UNICODE
  274. typedef CONFGUIDW CONFGUID;
  275. typedef LPCONFGUIDW LPCONFGUID;
  276. #else
  277. typedef CONFGUIDA CONFGUID;
  278. typedef LPCONFGUIDA LPCONFGUID;
  279. #endif // UNICODE
  280.  
  281.  
  282. /* Describes a file in the process of being transferred
  283. */
  284. #ifndef UNICODE_ONLY
  285. typedef struct _CONFFILEINFOW {
  286.     DWORD dwSize;
  287.     DWORD dwFileId;
  288.     DWORD dwReserved1;
  289.     DWORD dwFileSize;
  290.     DWORD dwReserved2;
  291.     DWORD dwBytesTransferred;
  292.     DWORD dwFileAttributes;
  293.     FILETIME ftCreationTime;
  294.     FILETIME ftLastAccessTime;
  295.     FILETIME ftLastWriteTime;
  296.     WCHAR szFileNameSrc[MAX_PATH];
  297.     WCHAR szFileNameDest[MAX_PATH];
  298. } CONFFILEINFOW, * LPCONFFILEINFOW;
  299. #endif //!UNICODE_ONLY
  300. #ifndef ANSI_ONLY
  301. typedef struct _CONFFILEINFOA {
  302.     DWORD dwSize;
  303.     DWORD dwFileId;
  304.     DWORD dwReserved1;
  305.     DWORD dwFileSize;
  306.     DWORD dwReserved2;
  307.     DWORD dwBytesTransferred;
  308.     DWORD dwFileAttributes;
  309.     FILETIME ftCreationTime;
  310.     FILETIME ftLastAccessTime;
  311.     FILETIME ftLastWriteTime;
  312.     CHAR  szFileNameSrc[MAX_PATH];
  313.     CHAR  szFileNameDest[MAX_PATH];
  314. } CONFFILEINFOA, * LPCONFFILEINFOA;
  315. #endif //!ANSI_ONLY
  316. #ifdef UNICODE
  317. typedef CONFFILEINFOW CONFFILEINFO;
  318. typedef LPCONFFILEINFOW LPCONFFILEINFO;
  319. #else
  320. typedef CONFFILEINFOA CONFFILEINFO;
  321. typedef LPCONFFILEINFOA LPCONFFILEINFO;
  322. #endif // UNICODE
  323.  
  324.  
  325.  
  326. /* ConferenceGetInfo dwCode
  327. */
  328. #define CONF_GET_CONF                0x0001 // LPCONFINFO
  329. #define CONF_ENUM_CONF               0x0002 // LPCONFINFO
  330. #define CONF_GET_USER                0x0011 // LPUSERINFO
  331. #define CONF_ENUM_USER               0x0012 // LPUSERINFO
  332. #define CONF_ENUM_PEER               0x0018 // LPCONFDEST
  333. #define CONF_GET_RECDIR              0x0020 // LPCONFRECDIR
  334. #define CONF_GET_FILEINFO            0x0021 // LPFILEINFO
  335.  
  336.  
  337. /* ConferenceSetInfo dwCode
  338. */
  339. #define CONF_SET_RECDIR              0x1020 // LPCONFRECDIR
  340. #define CONF_SET_GUID                0x1041 // LPCONFGUID
  341.  
  342.  
  343. /* ConferenceSendFile dwFlags
  344. */
  345. #define CONF_SF_NOWAIT               0x0001
  346. #define CONF_SF_NOUI                 0x0002
  347. #define CONF_SF_NOCOMPRESS           0x0004
  348.  
  349.  
  350. /* ConferenceShareWindow dwCode
  351. */
  352. #define CONF_SW_SHARE                0x0001
  353. #define CONF_SW_UNSHARE              0x0002
  354. #define CONF_SW_SHAREABLE            0x0003
  355. #define CONF_SW_IS_SHARED            0x0004
  356.  
  357.  
  358. /* Notification Codes
  359. */
  360. #define CONFN_CONFERENCE_INIT        0x0001 // 0,        LPCONFADDR, LPCONFINFO
  361. #define CONFN_CONFERENCE_START       0x0002 // 0,        LPCONFADDR, LPCONFINFO
  362. #define CONFN_CONFERENCE_STOP        0x0003 // 0,        LPCONFADDR, LPCONFINFO
  363. #define CONFN_CONFERENCE_ERROR       0x0004 // 0,        LPCONFADDR, LPCONFINFO
  364. #define CONFN_USER_ADDED             0x0011 // dwUserId, LPCONFADDR, LPCONFINFO
  365. #define CONFN_USER_REMOVED           0x0012 // dwUserId, LPCONFADDR, LPCONFINFO
  366. #define CONFN_USER_UPDATE            0x0013 // dwUserId, LPCONFADDR, LPCONFINFO
  367. #define CONFN_PEER_ADDED             0x0021 // dwUserId, LPCONFDEST, 0
  368. #define CONFN_PEER_REMOVED           0x0022 // dwUserId, LPCONFDEST, 0
  369. #define CONFN_WINDOW_SHARED          0x0041 // HWND,     0         , 0
  370. #define CONFN_WINDOW_UNSHARED        0x0042 // HWND,     0         , 0
  371. #define CONFN_DATA_SENT              0x0101 // DWORD,    LPCONFDEST, LPVOID
  372. #define CONFN_DATA_RECEIVED          0x0102 // DWORD,    LPCONFDEST, LPVOID
  373. #define CONFN_FILESEND_START         0x0111 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  374. #define CONFN_FILESEND_PROGRESS      0x0112 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  375. #define CONFN_FILESEND_COMPLETE      0x0113 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  376. #define CONFN_FILESEND_ERROR         0x0114 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  377. #define CONFN_FILERECEIVE_START      0x0121 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  378. #define CONFN_FILERECEIVE_PROGRESS   0x0122 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  379. #define CONFN_FILERECEIVE_COMPLETE   0x0123 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  380. #define CONFN_FILERECEIVE_ERROR      0x0124 // dwFileId, LPCONFDEST, LPCONFFILEINFO
  381.  
  382.  
  383. /* Conferencing functions found in MSCONF.DLL
  384. */
  385.  
  386. #ifndef UNICODE_ONLY
  387. DWORD WINAPI ConferenceConnectW(HCONF * phConf, LPCONFADDRW lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify);
  388. DWORD WINAPI ConferenceSendFileW(HCONF hConf, LPCONFDEST lpConfDest, LPCWSTR szFileName, DWORD dwFlags);
  389. DWORD WINAPI ConferenceGetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv);
  390. DWORD WINAPI ConferenceSetInfoW(HCONF hConf, DWORD dwCode, LPVOID lpv);
  391. #endif //!UNICODE_ONLY
  392. #ifndef ANSI_ONLY
  393. DWORD WINAPI ConferenceConnectA(HCONF * phConf, LPCONFADDRA lpConfAddr, LPCONFINFO lpConfInfo, LPCONFNOTIFY lpConfNotify);
  394. DWORD WINAPI ConferenceSendFileA(HCONF hConf, LPCONFDEST lpConfDest, LPCSTR szFileName, DWORD dwFlags);
  395. DWORD WINAPI ConferenceGetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv);
  396. DWORD WINAPI ConferenceSetInfoA(HCONF hConf, DWORD dwCode, LPVOID lpv);
  397. #endif //!ANSI_ONLY
  398. #ifdef UNICODE
  399. #define ConferenceConnect  ConferenceConnectW
  400. #define ConferenceGetInfo  ConferenceGetInfoW
  401. #define ConferenceSetInfo  ConferenceSetInfoW
  402. #define ConferenceSendFile ConferenceSendFileW
  403. #else
  404. #define ConferenceConnect  ConferenceConnectA
  405. #define ConferenceGetInfo  ConferenceGetInfoA
  406. #define ConferenceSetInfo  ConferenceSetInfoA
  407. #define ConferenceSendFile ConferenceSendFileA
  408. #endif // !UNICODE
  409.  
  410. DWORD WINAPI ConferenceListen(DWORD dwReserved);
  411. DWORD WINAPI ConferenceDisconnect(HCONF hConf);
  412. DWORD WINAPI ConferenceSetNotify(HCONF hConf, LPCONFNOTIFY lpConfNotify, HCONFNOTIFY * phConfNotify);
  413. DWORD WINAPI ConferenceRemoveNotify(HCONF hConf, HCONFNOTIFY hConfNotify);
  414. DWORD WINAPI ConferenceCancelTransfer(HCONF hConf, DWORD dwFileId);
  415. DWORD WINAPI ConferenceSendData(HCONF hConf, LPCONFDEST lpConfDest, LPVOID lpv, DWORD cb, DWORD dwFlags);
  416. DWORD WINAPI ConferenceLaunchRemote(HCONF hConf, LPCONFDEST lpConfDest, DWORD dwReserved);
  417. DWORD WINAPI ConferenceShareWindow(HCONF hConf, HWND hwnd, DWORD dwCode);
  418.  
  419. #include <poppack.h>
  420.  
  421. #ifdef __cplusplus
  422. }
  423. #endif
  424.  
  425. #endif // _MSCONF_H_
  426.