Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1086 lines
28 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Copyright 1995 - 1997 Microsoft Corporation. All Rights Reserved.
  4. //
  5. // Contents: Conferencing Services Object interfaces
  6. //
  7. //----------------------------------------------------------------------------
  8. cpp_quote("//+-------------------------------------------------------------------------")
  9. cpp_quote("//")
  10. cpp_quote("// Microsoft Windows")
  11. cpp_quote("// Copyright 1995-1997 Microsoft Corporation. All Rights Reserved.")
  12. cpp_quote("//")
  13. cpp_quote("// File: imsconf2.h")
  14. cpp_quote("//")
  15. cpp_quote("//--------------------------------------------------------------------------")
  16. import "objidl.idl";
  17. import "oleidl.idl";
  18. import "oaidl.idl";
  19. interface INmManager;
  20. interface INmManagerNotify;
  21. interface INmSysInfo;
  22. interface INmMember;
  23. interface INmCall;
  24. interface INmCallNotify;
  25. interface INmConference;
  26. interface INmConferenceNotify;
  27. interface INmChannel;
  28. interface INmChannelNotify;
  29. interface INmChannelData;
  30. interface INmChannelDataNotify;
  31. interface INmChannelFt;
  32. interface INmChannelFtNotify;
  33. interface INmChannelVideo;
  34. interface INmChannelVideoNotify;
  35. interface INmChannelAudio;
  36. interface INmChannelAudioNotify;
  37. interface INmChannelAppShare;
  38. interface INmChannelAppShareNotify;
  39. interface INmFt;
  40. interface INmSharableApp;
  41. interface IEnumNmConference;
  42. interface IEnumNmMember;
  43. interface IEnumNmChannel;
  44. interface IEnumNmCall;
  45. interface IEnumNmSharableApp;
  46. cpp_quote("")
  47. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  48. cpp_quote("//")
  49. cpp_quote("// Constants")
  50. cpp_quote("")
  51. cpp_quote("// NetMeeting Channel Types")
  52. cpp_quote("#define NMCH_NONE 0x00000000")
  53. cpp_quote("#define NMCH_DATA 0x00000001")
  54. cpp_quote("#define NMCH_AUDIO 0x00000002")
  55. cpp_quote("#define NMCH_VIDEO 0x00000004")
  56. cpp_quote("#define NMCH_SHARE 0x00000010")
  57. cpp_quote("#define NMCH_FT 0x00000020")
  58. cpp_quote("#define NMCH_ALL 0x0000FFFF")
  59. cpp_quote("")
  60. cpp_quote("// Initialization options")
  61. cpp_quote("#define NM_INIT_NORMAL 0x00000000")
  62. cpp_quote("#define NM_INIT_CONTROL 0x00000001")
  63. cpp_quote("#define NM_INIT_NO_LAUNCH 0x00000002")
  64. cpp_quote("")
  65. cpp_quote("// INmChannelDataNotify.DataReceived dwFlags")
  66. cpp_quote("#define NM_DF_BROADCAST 0x00000010") // data was broadcast to everyone
  67. cpp_quote("#define NM_DF_PRIVATE 0x00000020") // data was private
  68. cpp_quote("#define NM_DF_SEGMENT_END 0x00000040") // end of data block
  69. cpp_quote("#define NM_DF_SEGMENT_BEGIN 0x00000080") // start of data block
  70. cpp_quote("")
  71. cpp_quote("// Audio")
  72. cpp_quote("#define NM_MAX_AUDIO_LEVEL 0x0000FFFF")
  73. cpp_quote("")
  74. cpp_quote("// Video")
  75. cpp_quote("#define NM_VIDEO_NO_AUTOSIZE 0x00000000")
  76. cpp_quote("#define NM_VIDEO_SMALL 0x00000001")
  77. cpp_quote("#define NM_VIDEO_MEDIUM 0x00000002")
  78. cpp_quote("#define NM_VIDEO_LARGE 0x00000004")
  79. cpp_quote("#define NM_VIDEO_MIN_QUALITY 0x00000000")
  80. cpp_quote("#define NM_VIDEO_MAX_QUALITY 0x0000001F")
  81. cpp_quote("#define NM_VIDEO_SOURCE_DIALOG 0x00000001")
  82. cpp_quote("#define NM_VIDEO_FORMAT_DIALOG 0x00000002")
  83. cpp_quote("")
  84. cpp_quote("// Version Numbers")
  85. cpp_quote("#define NM_VER_UNKNOWN 0x00000000")
  86. cpp_quote("#define NM_VER_1 0x00000001")
  87. cpp_quote("#define NM_VER_2 0x00000002")
  88. cpp_quote("#define NM_VER_FUTURE 0x0000000F")
  89. cpp_quote("")
  90. cpp_quote("")
  91. cpp_quote("// User Categories")
  92. cpp_quote("#define NM_CATEGORY_PERSONAL 0x00000001")
  93. cpp_quote("#define NM_CATEGORY_BUSINESS 0x00000002")
  94. cpp_quote("#define NM_CATEGORY_ADULT 0x00000004")
  95. cpp_quote("")
  96. cpp_quote("")
  97. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  98. cpp_quote("// Error Codes")
  99. cpp_quote("")
  100. cpp_quote("#define NM_E(e) (0x81000000UL | (ULONG) (e))")
  101. cpp_quote("")
  102. cpp_quote("enum {")
  103. cpp_quote("")
  104. cpp_quote("// NetMeeting specific error codes")
  105. cpp_quote("//")
  106. cpp_quote(" NM_S_NEXT_CONFERENCE = ((ULONG) 0x0201),") // INmSysInfo.SetProperty
  107. cpp_quote(" NM_S_ON_RESTART = ((ULONG) 0x0202),") // INmSysInfo.SetProperty
  108. cpp_quote("")
  109. cpp_quote("")
  110. cpp_quote("// Call specific error codes")
  111. cpp_quote("//")
  112. cpp_quote(" NM_CALLERR_NOT_INITIALIZED = NM_E(0x0100),") // Local system not initialized
  113. cpp_quote(" NM_CALLERR_MEDIA = NM_E(0x0101),") // Invalid channel/media types
  114. cpp_quote(" NM_CALLERR_NAME_RESOLUTION = NM_E(0x0102),") // Name resolution failed
  115. cpp_quote(" NM_CALLERR_PASSWORD = NM_E(0x0103),") // Invalid conference password
  116. cpp_quote(" NM_CALLERR_CONFERENCE_NAME = NM_E(0x0104),") // Problem with the conference name
  117. cpp_quote(" NM_CALLERR_IN_CONFERENCE = NM_E(0x0105),") // Remote system is in a conference
  118. cpp_quote(" NM_CALLERR_NOT_FOUND = NM_E(0x0106),") // User/Address not found
  119. cpp_quote(" NM_CALLERR_MCU = NM_E(0x0107),") // Can't invite MCU into existing conference
  120. cpp_quote(" NM_CALLERR_REJECTED = NM_E(0x0108),") // Remote system rejected the request
  121. cpp_quote(" NM_CALLERR_AUDIO = NM_E(0x0109),") // Audio connection failed
  122. cpp_quote(" NM_CALLERR_AUDIO_LOCAL = NM_E(0x010A),") // Local audio device already in use
  123. cpp_quote(" NM_CALLERR_AUDIO_REMOTE = NM_E(0x010B),") // Remote audio device in use
  124. cpp_quote(" NM_CALLERR_UNKNOWN = NM_E(0x01FF),") // Unknown call error
  125. cpp_quote("")
  126. cpp_quote("// other error codes")
  127. cpp_quote("//")
  128. cpp_quote(" NM_E_NOT_INITIALIZED = NM_E(0x0200),") // INmManager not Initialized
  129. cpp_quote(" NM_E_CHANNEL_ALREADY_EXISTS = NM_E(0x0201),") // Data channel already exists
  130. cpp_quote(" NM_E_NO_T120_CONFERENCE = NM_E(0x0202),") // Not in a T.120 data conference
  131. cpp_quote(" NM_E_NOT_ACTIVE = NM_E(0x0203),") // NetMeeting is not running
  132. cpp_quote("};")
  133. cpp_quote("")
  134. typedef enum tagNmConferenceState{
  135. NM_CONFERENCE_IDLE = 0,
  136. NM_CONFERENCE_WAITING = 1,
  137. NM_CONFERENCE_INITIALIZING = 2,
  138. NM_CONFERENCE_ACTIVE = 3,
  139. } NM_CONFERENCE_STATE;
  140. typedef enum tagNmCallType{
  141. NM_CALL_DEFAULT = 0,
  142. NM_CALL_T120 = 1,
  143. NM_CALL_H323 = 2,
  144. } NM_CALL_TYPE;
  145. typedef enum tagNmAddrType{
  146. NM_ADDR_UNKNOWN = 0,
  147. NM_ADDR_IP = 1,
  148. NM_ADDR_MACHINENAME = 2,
  149. NM_ADDR_PSTN = 3,
  150. NM_ADDR_ULS = 4,
  151. NM_ADDR_H323_GATEWAY = 5,
  152. } NM_ADDR_TYPE;
  153. typedef enum tagNmCallState{
  154. NM_CALL_INVALID = 0,
  155. NM_CALL_INIT = 1,
  156. NM_CALL_RING = 2,
  157. NM_CALL_SEARCH = 3,
  158. NM_CALL_WAIT = 4,
  159. NM_CALL_ACCEPTED = 5,
  160. NM_CALL_REJECTED = 6,
  161. NM_CALL_CANCELED = 7,
  162. } NM_CALL_STATE;
  163. typedef enum tagNmMemberNotify{
  164. NM_MEMBER_ADDED = 0,
  165. NM_MEMBER_REMOVED = 1,
  166. NM_MEMBER_UPDATED = 2,
  167. } NM_MEMBER_NOTIFY;
  168. typedef enum tagNmChannelNotify{
  169. NM_CHANNEL_ADDED = 0,
  170. NM_CHANNEL_REMOVED = 1,
  171. NM_CHANNEL_UPDATED = 2,
  172. } NM_CHANNEL_NOTIFY;
  173. typedef enum tagNmFtState{
  174. NM_FT_INVALID = 0,
  175. NM_FT_SENDING = 1,
  176. NM_FT_RECEIVING = 2,
  177. NM_FT_COMPLETE = 3,
  178. } NM_FT_STATE;
  179. typedef enum tagNmAudioState{
  180. NM_AUDIO_IDLE = 0,
  181. NM_AUDIO_LOCAL_PAUSED = 1,
  182. NM_AUDIO_TRANSFERRING = 3,
  183. } NM_AUDIO_STATE;
  184. typedef enum tagNmAudProp{
  185. NM_AUDPROP_LEVEL = 1,
  186. NM_AUDPROP_PAUSE = 2,
  187. } NM_AUDPROP;
  188. typedef enum tagNmVideoState{
  189. NM_VIDEO_IDLE = 0,
  190. NM_VIDEO_LOCAL_PAUSED = 1,
  191. NM_VIDEO_PREVIEWING = 2,
  192. NM_VIDEO_TRANSFERRING = 3,
  193. NM_VIDEO_BOTH_PAUSED = 5,
  194. NM_VIDEO_REMOTE_PAUSED = 7,
  195. } NM_VIDEO_STATE;
  196. typedef enum tagNmVidProp{
  197. NM_VIDPROP_PAUSE = 1,
  198. NM_VIDPROP_WINDOW_AUTO_SIZE = 2,
  199. NM_VIDPROP_WINDOW_SIZE = 3,
  200. NM_VIDPROP_WINDOW_POSITION = 4,
  201. NM_VIDPROP_WINDOW_TOP_MOST = 5,
  202. NM_VIDPROP_WINDOW_VISIBLE = 6,
  203. NM_VIDPROP_IMAGE_PREFERRED_SIZE = 7,
  204. NM_VIDPROP_IMAGE_QUALITY = 8,
  205. NM_VIDPROP_CAMERA_DIALOG = 9,
  206. } NM_VIDPROP;
  207. typedef enum tagNmShareState{
  208. NM_SHARE_UNKNOWN = 0,
  209. NM_SHARE_WORKING_ALONE = 1,
  210. NM_SHARE_COLLABORATING = 2,
  211. NM_SHARE_IN_CONTROL = 3,
  212. } NM_SHARE_STATE;
  213. typedef enum tagNmShAppState{
  214. NM_SHAPP_NOT_SHARED = 0,
  215. NM_SHAPP_SHARED = 1,
  216. } NM_SHAPP_STATE;
  217. typedef enum tagNmSysProp{
  218. NM_SYSPROP_EMAIL_NAME = 1,
  219. NM_SYSPROP_SERVER_NAME = 2,
  220. NM_SYSPROP_RESOLVE_NAME = 3,
  221. NM_SYSPROP_FIRST_NAME = 4,
  222. NM_SYSPROP_LAST_NAME = 5,
  223. NM_SYSPROP_USER_NAME = 6,
  224. NM_SYSPROP_USER_CITY = 7,
  225. NM_SYSPROP_USER_COUNTRY = 8,
  226. NM_SYSPROP_USER_COMMENTS = 9,
  227. NM_SYSPROP_USER_CATEGORY = 10,
  228. NM_SYSPROP_H323_GATEWAY = 20,
  229. NM_SYSPROP_H323_GATEWAY_ENABLE = 21,
  230. NM_SYSPROP_INSTALL_DIRECTORY = 50,
  231. NM_SYSPROP_APP_NAME = 51,
  232. NM_SYSPROP_ICA_ENABLE = 60,
  233. NM_SYSPROP_IS_RUNNING = 100,
  234. NM_SYSPROP_IN_CONFERENCE = 101,
  235. } NM_SYSPROP;
  236. typedef enum tagConfn{
  237. // File Transfer
  238. CONFN_FT_UI = 0x000211,
  239. CONFN_FT_OFFERED = 0x000212,
  240. CONFN_FT_STARTED = 0x000213,
  241. CONFN_FT_PROGRESS = 0x000214,
  242. CONFN_FT_COMPLETE = 0x000215,
  243. CONFN_FT_CANCELED = 0x000216,
  244. // Sharing
  245. CONFN_CLICK_CONTROL = 0x000220,
  246. CONFN_CLICK_OBSCURE = 0x000221,
  247. CONFN_CLICK_REMOTE_NOT_COLLABORATING = 0x000222,
  248. CONFN_CLICK_LOCAL_NOT_COLLABORATING = 0x000223,
  249. // Call control
  250. CONFN_CALL_INCOMPATIBLE = 0x000400,
  251. CONFN_CALL_OLDER = 0x000401,
  252. CONFN_CALL_NEWER = 0x000402,
  253. CONFN_CALL_IGNORED = 0x000403,
  254. CONFN_CALL_FAILED = 0x000404,
  255. CONFN_CALL_IN_CONFERENCE = 0x000405,
  256. // Manager notifications
  257. CONFN_NM_STARTED = 0x000600,
  258. CONFN_NM_STOPPED = 0x000601,
  259. } CONFN;
  260. //////////////////////////////////////////////////////////////////////////////////
  261. // GUID usage:
  262. // {068B0700-718C-11d0-8B1A-00A0C91BC90E} - {068B07FF-718C-11d0-8B1A-00A0C91BC90E}
  263. cpp_quote("")
  264. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  265. cpp_quote("// Interface Definitions")
  266. //--------------------------------------------------------------------------
  267. // INmManager Interface
  268. [
  269. object,
  270. uuid(068B0701-718C-11d0-8B1A-00A0C91BC90E),
  271. pointer_default(unique)
  272. ]
  273. interface INmManager : IUnknown
  274. {
  275. typedef [unique] INmManager *LPNMMANAGER;
  276. HRESULT Initialize(
  277. [in, out] ULONG * puOptions,
  278. [in, out] ULONG * puchCaps);
  279. HRESULT GetSysInfo(
  280. [out] INmSysInfo **ppSysInfo);
  281. HRESULT EnumConference(
  282. [out] IEnumNmConference **ppEnum);
  283. HRESULT CreateConference(
  284. [out] INmConference **ppConference,
  285. [in] BSTR bstrName,
  286. [in] BSTR bstrPassword,
  287. [in] ULONG uchCaps);
  288. HRESULT EnumCall(
  289. [out] IEnumNmCall **ppEnum);
  290. HRESULT CreateCall(
  291. [out] INmCall **ppCall,
  292. [in] NM_CALL_TYPE callType,
  293. [in] NM_ADDR_TYPE addrType,
  294. [in] BSTR bstrAddr,
  295. [in] INmConference * pConference);
  296. HRESULT CallConference(
  297. [out] INmCall **ppCall,
  298. [in] NM_CALL_TYPE callType,
  299. [in] NM_ADDR_TYPE addrType,
  300. [in] BSTR bstrAddr,
  301. [in] BSTR bstrName,
  302. [in] BSTR bstrPassword);
  303. }
  304. //--------------------------------------------------------------------------
  305. // INmManagerNotify Interface
  306. [
  307. object,
  308. uuid(068B0702-718C-11d0-8B1A-00A0C91BC90E),
  309. pointer_default(unique)
  310. ]
  311. interface INmManagerNotify : IUnknown
  312. {
  313. typedef [unique] INmManagerNotify *LPNMMANAGERNOTIFY;
  314. HRESULT NmUI(
  315. [in] CONFN uNotify);
  316. HRESULT ConferenceCreated(
  317. [in] INmConference *pConference);
  318. HRESULT CallCreated(
  319. [in] INmCall *pCall);
  320. }
  321. //--------------------------------------------------------------------------
  322. // INmSysInfo Interface
  323. [
  324. object,
  325. uuid(068B0703-718C-11d0-8B1A-00A0C91BC90E),
  326. pointer_default(unique)
  327. ]
  328. interface INmSysInfo : IUnknown
  329. {
  330. typedef [unique] INmSysInfo *LPNMSYSINFO;
  331. HRESULT IsInstalled(
  332. void);
  333. HRESULT GetProperty(
  334. [in] NM_SYSPROP uProp,
  335. [out] BSTR *pbstrName);
  336. HRESULT SetProperty(
  337. [in] NM_SYSPROP uProp,
  338. [in] BSTR bstrName);
  339. HRESULT GetUserData(
  340. [in] REFGUID rguid,
  341. [out] BYTE **ppb,
  342. [out] ULONG *pcb);
  343. HRESULT SetUserData(
  344. [in] REFGUID rguid,
  345. [in] BYTE *pb,
  346. [in] ULONG cb);
  347. HRESULT GetNmApp(
  348. [in] REFGUID rguid,
  349. [out] BSTR *pbstrApplication,
  350. [out] BSTR *pbstrCommandLine,
  351. [out] BSTR *pbstrDirectory);
  352. HRESULT SetNmApp(
  353. [in] REFGUID rguid,
  354. [in] BSTR bstrApplication,
  355. [in] BSTR bstrCommandLine,
  356. [in] BSTR bstrDirectory);
  357. HRESULT GetNmchCaps(
  358. [out] ULONG *pchCaps);
  359. HRESULT GetLaunchInfo(
  360. [out] INmConference **ppConference,
  361. [out] INmMember **ppMember);
  362. }
  363. //--------------------------------------------------------------------------
  364. // INmCall Interface
  365. [
  366. object,
  367. uuid(068B0704-718C-11d0-8B1A-00A0C91BC90E),
  368. pointer_default(unique)
  369. ]
  370. interface INmCall : IUnknown
  371. {
  372. typedef [unique] INmCall *LPNMCALL;
  373. HRESULT IsIncoming(
  374. void);
  375. HRESULT GetState(
  376. [out] NM_CALL_STATE *pState);
  377. HRESULT GetName(
  378. [out] BSTR *pbstrName);
  379. HRESULT GetAddr(
  380. [out] BSTR *pbstrAddr,
  381. [out] NM_ADDR_TYPE *puType);
  382. HRESULT GetUserData(
  383. [in] REFGUID rguid,
  384. [out] BYTE **ppb,
  385. [out] ULONG *pcb);
  386. HRESULT GetConference(
  387. [out] INmConference **ppConference);
  388. HRESULT Accept(
  389. void);
  390. HRESULT Reject(
  391. void);
  392. HRESULT Cancel(
  393. void);
  394. }
  395. //--------------------------------------------------------------------------
  396. // INmCallNotify Interface
  397. [
  398. object,
  399. uuid(068B0705-718C-11d0-8B1A-00A0C91BC90E),
  400. pointer_default(unique)
  401. ]
  402. interface INmCallNotify : IUnknown
  403. {
  404. HRESULT NmUI(
  405. [in] CONFN uNotify);
  406. HRESULT StateChanged(
  407. [in] NM_CALL_STATE uState);
  408. HRESULT Failed(
  409. [in] ULONG uError);
  410. HRESULT Accepted(
  411. [in] INmConference *pConference);
  412. }
  413. //--------------------------------------------------------------------------
  414. // INmConference Interface
  415. [
  416. object,
  417. uuid(068B0710-718C-11d0-8B1A-00A0C91BC90E),
  418. pointer_default(unique)
  419. ]
  420. interface INmConference : IUnknown
  421. {
  422. typedef [unique] INmConference *LPNMCONFERENCE;
  423. HRESULT GetName(
  424. [out] BSTR *pbstrName);
  425. HRESULT GetID(
  426. [out] ULONG *puID);
  427. HRESULT GetState(
  428. [out] NM_CONFERENCE_STATE *pState);
  429. HRESULT GetNmchCaps(
  430. [out] ULONG *puchCaps);
  431. HRESULT GetTopProvider(
  432. [out] INmMember **ppMember);
  433. HRESULT EnumMember(
  434. [out] IEnumNmMember **ppEnum);
  435. HRESULT GetMemberCount(
  436. [out] ULONG * puCount);
  437. HRESULT EnumChannel(
  438. [out] IEnumNmChannel **ppEnum);
  439. HRESULT GetChannelCount(
  440. [out] ULONG * puCount);
  441. HRESULT CreateDataChannel(
  442. [out] INmChannelData **ppChannel,
  443. [in] REFGUID rguid);
  444. HRESULT IsHosting(
  445. void);
  446. HRESULT Host(
  447. void);
  448. HRESULT Leave(
  449. void);
  450. HRESULT LaunchRemote(
  451. [in] REFGUID rguid,
  452. [in] INmMember *pMember);
  453. }
  454. //--------------------------------------------------------------------------
  455. // INmConferenceNotify Interface
  456. [
  457. object,
  458. uuid(068B0711-718C-11d0-8B1A-00A0C91BC90E),
  459. pointer_default(unique)
  460. ]
  461. interface INmConferenceNotify : IUnknown
  462. {
  463. HRESULT NmUI(
  464. [in] CONFN uNotify);
  465. HRESULT StateChanged(
  466. [in] NM_CONFERENCE_STATE uState);
  467. HRESULT MemberChanged(
  468. [in] NM_MEMBER_NOTIFY uNotify,
  469. [in] INmMember *pMember);
  470. HRESULT ChannelChanged(
  471. [in] NM_CHANNEL_NOTIFY uNotify,
  472. [in] INmChannel *pChannel);
  473. }
  474. //--------------------------------------------------------------------------
  475. // INmMember Interface
  476. [
  477. object,
  478. uuid(068B0712-718C-11d0-8B1A-00A0C91BC90E),
  479. pointer_default(unique)
  480. ]
  481. interface INmMember : IUnknown
  482. {
  483. HRESULT GetName(
  484. [out] BSTR *pbstrName);
  485. HRESULT GetID(
  486. [out] ULONG *puID);
  487. HRESULT GetNmVersion(
  488. [out] ULONG *puVersion);
  489. HRESULT GetAddr(
  490. [out] BSTR *pbstrAddr,
  491. [out] NM_ADDR_TYPE *puType);
  492. HRESULT GetUserData(
  493. [in] REFGUID rguid,
  494. [out] BYTE **ppb,
  495. [out] ULONG *pcb);
  496. HRESULT GetConference(
  497. [out] INmConference **ppConference);
  498. HRESULT GetNmchCaps(
  499. [out] ULONG *puchCaps);
  500. HRESULT GetShareState(
  501. [out] NM_SHARE_STATE *puState);
  502. HRESULT IsSelf(
  503. void);
  504. HRESULT IsMCU(
  505. void);
  506. HRESULT Eject(
  507. void);
  508. }
  509. //--------------------------------------------------------------------------
  510. // INmChannel Interface
  511. [
  512. object,
  513. uuid(068B0720-718C-11d0-8B1A-00A0C91BC90E),
  514. pointer_default(unique)
  515. ]
  516. interface INmChannel : IUnknown
  517. {
  518. HRESULT IsSameAs(
  519. [in] INmChannel *pChannel);
  520. HRESULT IsActive(
  521. void);
  522. HRESULT SetActive(
  523. [in] BOOL fActive);
  524. HRESULT GetConference(
  525. [out] INmConference **ppConference);
  526. HRESULT GetInterface(
  527. [out] IID *piid);
  528. HRESULT GetNmch(
  529. [out] ULONG *puCh);
  530. HRESULT EnumMember(
  531. [out] IEnumNmMember **ppEnum);
  532. HRESULT GetMemberCount(
  533. [out] ULONG * puCount);
  534. }
  535. //--------------------------------------------------------------------------
  536. // INmChannelNotify Interface
  537. [
  538. object,
  539. uuid(068B0721-718C-11d0-8B1A-00A0C91BC90E),
  540. pointer_default(unique)
  541. ]
  542. interface INmChannelNotify : IUnknown
  543. {
  544. HRESULT NmUI(
  545. [in] CONFN uNotify);
  546. HRESULT MemberChanged(
  547. [in] NM_MEMBER_NOTIFY uNotify,
  548. [in] INmMember *pMember);
  549. }
  550. //--------------------------------------------------------------------------
  551. // INmChannelData Interface
  552. [
  553. object,
  554. uuid(068B0722-718C-11d0-8B1A-00A0C91BC90E),
  555. pointer_default(unique)
  556. ]
  557. interface INmChannelData : INmChannel
  558. {
  559. HRESULT GetGuid(
  560. [out] GUID *pguid);
  561. HRESULT SendData(
  562. [in] INmMember *pMember,
  563. [in] ULONG uSize,
  564. [in, size_is(uSize)] byte *pvBuffer,
  565. [in] ULONG uOptions);
  566. }
  567. //--------------------------------------------------------------------------
  568. // INmChannelDataNotify Interface
  569. [
  570. object,
  571. uuid(068B0723-718C-11d0-8B1A-00A0C91BC90E),
  572. pointer_default(unique)
  573. ]
  574. interface INmChannelDataNotify : INmChannelNotify
  575. {
  576. HRESULT DataSent(
  577. [in] INmMember *pMember,
  578. [in] ULONG uSize,
  579. [in, size_is(uSize)] byte *pvBuffer);
  580. HRESULT DataReceived(
  581. [in] INmMember *pMember,
  582. [in] ULONG uSize,
  583. [in, size_is(uSize)] byte *pvBuffer,
  584. [in] ULONG dwFlags);
  585. }
  586. //--------------------------------------------------------------------------
  587. // INmChannelAudio Interface
  588. [
  589. object,
  590. uuid(068B0724-718C-11d0-8B1A-00A0C91BC90E),
  591. pointer_default(unique)
  592. ]
  593. interface INmChannelAudio : INmChannel
  594. {
  595. HRESULT IsIncoming(
  596. void);
  597. HRESULT GetState(
  598. [out] NM_AUDIO_STATE *puState);
  599. HRESULT GetProperty(
  600. [in] NM_AUDPROP uID,
  601. [out] ULONG *puValue);
  602. HRESULT SetProperty(
  603. [in] NM_AUDPROP uID,
  604. [in] ULONG uValue);
  605. }
  606. //--------------------------------------------------------------------------
  607. // INmChannelAudioNotify Interface
  608. [
  609. object,
  610. uuid(068B0725-718C-11d0-8B1A-00A0C91BC90E),
  611. pointer_default(unique)
  612. ]
  613. interface INmChannelAudioNotify : INmChannelNotify
  614. {
  615. HRESULT StateChanged(
  616. [in] NM_AUDIO_STATE uState);
  617. HRESULT PropertyChanged(
  618. [in] DWORD dwReserved);
  619. }
  620. //--------------------------------------------------------------------------
  621. // INmChannelVideo Interface
  622. [
  623. object,
  624. uuid(068B0726-718C-11d0-8B1A-00A0C91BC90E),
  625. pointer_default(unique)
  626. ]
  627. interface INmChannelVideo : INmChannel
  628. {
  629. HRESULT IsIncoming(
  630. void);
  631. HRESULT GetState(
  632. [out] NM_VIDEO_STATE *puState);
  633. HRESULT GetProperty(
  634. [in] NM_VIDPROP uID,
  635. [out] ULONG *puValue);
  636. HRESULT SetProperty(
  637. [in] NM_VIDPROP uID,
  638. [in] ULONG uValue);
  639. }
  640. //--------------------------------------------------------------------------
  641. // INmChannelVideoNotify Interface
  642. [
  643. object,
  644. uuid(068B0727-718C-11d0-8B1A-00A0C91BC90E),
  645. pointer_default(unique)
  646. ]
  647. interface INmChannelVideoNotify : INmChannelNotify
  648. {
  649. HRESULT StateChanged(
  650. [in] NM_VIDEO_STATE uState);
  651. HRESULT PropertyChanged(
  652. [in] DWORD dwReserved);
  653. }
  654. //--------------------------------------------------------------------------
  655. // INmChannelFt Interface
  656. [
  657. object,
  658. uuid(068B0728-718C-11d0-8B1A-00A0C91BC90E),
  659. pointer_default(unique)
  660. ]
  661. interface INmChannelFt : INmChannel
  662. {
  663. HRESULT SendFile(
  664. [out] INmFt **ppFt,
  665. [in] INmMember *pMember,
  666. [in] BSTR bstrFile,
  667. [in] ULONG uOptions);
  668. HRESULT SetReceiveFileDir(
  669. [in] BSTR bstrDir);
  670. HRESULT GetReceiveFileDir(
  671. [out] BSTR *pbstrDir);
  672. }
  673. //--------------------------------------------------------------------------
  674. // INmChannelFtNotify Interface
  675. [
  676. object,
  677. uuid(068B0729-718C-11d0-8B1A-00A0C91BC90E),
  678. pointer_default(unique)
  679. ]
  680. interface INmChannelFtNotify : INmChannelNotify
  681. {
  682. HRESULT FtUpdate(
  683. [in] CONFN uNotify,
  684. [in] INmFt *pFt);
  685. }
  686. //--------------------------------------------------------------------------
  687. // INmFt Interface
  688. [
  689. object,
  690. uuid(068B0732-718C-11d0-8B1A-00A0C91BC90E),
  691. pointer_default(unique)
  692. ]
  693. interface INmFt : IUnknown
  694. {
  695. HRESULT IsIncoming(
  696. void);
  697. HRESULT GetState(
  698. [out] NM_FT_STATE *puState);
  699. HRESULT GetName(
  700. [out] BSTR *pbstrName);
  701. HRESULT GetSize(
  702. [out] ULONG *puBytes);
  703. HRESULT GetBytesTransferred(
  704. [out] ULONG *puBytes);
  705. HRESULT GetMember(
  706. [out] INmMember **ppMember);
  707. HRESULT Cancel(
  708. void);
  709. }
  710. //--------------------------------------------------------------------------
  711. // INmChannelAppShare Interface
  712. [
  713. object,
  714. uuid(068B072A-718C-11d0-8B1A-00A0C91BC90E),
  715. pointer_default(unique)
  716. ]
  717. interface INmChannelAppShare : INmChannel
  718. {
  719. HRESULT GetState(
  720. [out] NM_SHARE_STATE *puState);
  721. HRESULT SetState(
  722. [in] NM_SHARE_STATE uState);
  723. HRESULT EnumSharableApp(
  724. [out] IEnumNmSharableApp **ppEnum);
  725. }
  726. //--------------------------------------------------------------------------
  727. // INmChannelAppShareNotify Interface
  728. [
  729. object,
  730. uuid(068B072B-718C-11d0-8B1A-00A0C91BC90E),
  731. pointer_default(unique)
  732. ]
  733. interface INmChannelAppShareNotify : INmChannelNotify
  734. {
  735. HRESULT StateChanged(
  736. [in] NM_SHAPP_STATE uState,
  737. [in] INmSharableApp *pApp);
  738. }
  739. //--------------------------------------------------------------------------
  740. // INmSharableApp Interface
  741. [
  742. object,
  743. uuid(068B0734-718C-11d0-8B1A-00A0C91BC90E),
  744. pointer_default(unique)
  745. ]
  746. interface INmSharableApp : IUnknown
  747. {
  748. HRESULT GetName(
  749. [out] BSTR *pbstrName);
  750. HRESULT GetHwnd(
  751. [out] HWND * phwnd);
  752. HRESULT GetState(
  753. [out] NM_SHAPP_STATE *puState);
  754. HRESULT SetState(
  755. [in] NM_SHAPP_STATE uState);
  756. }
  757. cpp_quote("")
  758. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  759. cpp_quote("// Enumerator Definitions")
  760. //--------------------------------------------------------------------------
  761. // IEnumNmConference Interface
  762. [
  763. object,
  764. uuid(068B0741-718C-11d0-8B1A-00A0C91BC90E),
  765. pointer_default(unique)
  766. ]
  767. interface IEnumNmConference : IUnknown
  768. {
  769. HRESULT Next(
  770. [in] ULONG cConference,
  771. [out] INmConference **rgpConference,
  772. [out] ULONG *pcFetched);
  773. HRESULT Skip(
  774. [in] ULONG cConference);
  775. HRESULT Reset();
  776. HRESULT Clone(
  777. [out] IEnumNmConference **ppEnum);
  778. }
  779. //--------------------------------------------------------------------------
  780. // IEnumNmMember Interface
  781. [
  782. object,
  783. uuid(068B0742-718C-11d0-8B1A-00A0C91BC90E),
  784. pointer_default(unique)
  785. ]
  786. interface IEnumNmMember : IUnknown
  787. {
  788. HRESULT Next(
  789. [in] ULONG cMember,
  790. [out] INmMember **rgpMember,
  791. [out] ULONG *pcFetched);
  792. HRESULT Skip(
  793. [in] ULONG cMember);
  794. HRESULT Reset();
  795. HRESULT Clone(
  796. [out] IEnumNmMember **ppEnum);
  797. }
  798. //--------------------------------------------------------------------------
  799. // IEnumNmChannel Interface
  800. [
  801. object,
  802. uuid(068B0743-718C-11d0-8B1A-00A0C91BC90E),
  803. pointer_default(unique)
  804. ]
  805. interface IEnumNmChannel : IUnknown
  806. {
  807. HRESULT Next(
  808. [in] ULONG cChannel,
  809. [out] INmChannel **rgpChannel,
  810. [out] ULONG *pcFetched);
  811. HRESULT Skip(
  812. [in] ULONG cChannel);
  813. HRESULT Reset();
  814. HRESULT Clone(
  815. [out] IEnumNmChannel **ppEnum);
  816. }
  817. //--------------------------------------------------------------------------
  818. // IEnumNmCall Interface
  819. [
  820. object,
  821. uuid(068B0744-718C-11d0-8B1A-00A0C91BC90E),
  822. pointer_default(unique)
  823. ]
  824. interface IEnumNmCall : IUnknown
  825. {
  826. HRESULT Next(
  827. [in] ULONG cCall,
  828. [out] INmCall **rgpCall,
  829. [out] ULONG *pcFetched);
  830. HRESULT Skip(
  831. [in] ULONG cCall);
  832. HRESULT Reset();
  833. HRESULT Clone(
  834. [out] IEnumNmCall **ppEnum);
  835. }
  836. //--------------------------------------------------------------------------
  837. // IEnumNmSharableApp Interface
  838. [
  839. object,
  840. uuid(068B0745-718C-11d0-8B1A-00A0C91BC90E),
  841. pointer_default(unique)
  842. ]
  843. interface IEnumNmSharableApp : IUnknown
  844. {
  845. HRESULT Next(
  846. [in] ULONG cApp,
  847. [out] INmSharableApp **rgpApp,
  848. [out] ULONG *pcFetched);
  849. HRESULT Skip(
  850. [in] ULONG cApp);
  851. HRESULT Reset();
  852. HRESULT Clone(
  853. [out] IEnumNmSharableApp **ppEnum);
  854. }
  855. [
  856. uuid(068B07FF-718C-11d0-8B1A-00A0C91BC90E),
  857. version(1.0),
  858. helpstring("NmManager 2.0 Type Library")
  859. ]
  860. library NmManager
  861. {
  862. [
  863. uuid(068B0700-718C-11d0-8B1A-00A0C91BC90E),
  864. helpstring("NetMeeting Manager")
  865. ]
  866. coclass NmManager
  867. {
  868. [default] interface INmManager;
  869. };
  870. };