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.

1411 lines
48 KiB

  1. #ifndef _IGCCControlSAP_H_
  2. #define _IGCCControlSAP_H_
  3. #include <basetyps.h>
  4. #include "gcc.h"
  5. #include "igccapp.h"
  6. /*
  7. * These structures are used to hold the information included for the
  8. * various callback messages. In the case where these structures are used for
  9. * callbacks, the address of the structure is passed as the only parameter.
  10. */
  11. typedef struct
  12. {
  13. PGCCConferenceName conference_name;
  14. GCCNumericString conference_modifier;
  15. BOOL use_password_in_the_clear;
  16. BOOL conference_is_locked;
  17. BOOL conference_is_listed;
  18. BOOL conference_is_conductible;
  19. GCCTerminationMethod termination_method;
  20. PGCCConferencePrivileges conduct_privilege_list;
  21. PGCCConferencePrivileges conduct_mode_privilege_list;
  22. PGCCConferencePrivileges non_conduct_privilege_list;
  23. LPWSTR pwszConfDescriptor;
  24. LPWSTR pwszCallerID;
  25. TransportAddress calling_address;
  26. TransportAddress called_address;
  27. PDomainParameters domain_parameters;
  28. UINT number_of_network_addresses;
  29. PGCCNetworkAddress *network_address_list;
  30. PConnectionHandle connection_handle;
  31. }
  32. GCCConfCreateReqCore;
  33. typedef struct
  34. {
  35. GCCConfCreateReqCore Core;
  36. PGCCPassword convener_password;
  37. PGCCPassword password;
  38. BOOL fSecure;
  39. UINT number_of_user_data_members;
  40. PGCCUserData *user_data_list;
  41. }
  42. GCCConfCreateRequest;
  43. /*********************************************************************
  44. * *
  45. * NODE CONTROLLER CALLBACK INFO STRUCTURES *
  46. * *
  47. *********************************************************************/
  48. typedef struct
  49. {
  50. GCCConfID conference_id;
  51. GCCResult result;
  52. }
  53. SimpleConfirmMsg;
  54. /*
  55. * GCC_CREATE_INDICATION
  56. *
  57. * Union Choice:
  58. * CreateIndicationMessage
  59. * This is a pointer to a structure that contains all necessary
  60. * information about the new conference that is about to be created.
  61. */
  62. typedef struct
  63. {
  64. GCCConferenceName conference_name;
  65. GCCConferenceID conference_id;
  66. GCCPassword *convener_password; /* optional */
  67. GCCPassword *password; /* optional */
  68. BOOL conference_is_locked;
  69. BOOL conference_is_listed;
  70. BOOL conference_is_conductible;
  71. GCCTerminationMethod termination_method;
  72. GCCConferencePrivileges *conductor_privilege_list; /* optional */
  73. GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */
  74. GCCConferencePrivileges *non_conducted_privilege_list; /* optional */
  75. LPWSTR conference_descriptor; /* optional */
  76. LPWSTR caller_identifier; /* optional */
  77. TransportAddress calling_address; /* optional */
  78. TransportAddress called_address; /* optional */
  79. DomainParameters *domain_parameters; /* optional */
  80. UINT number_of_user_data_members;
  81. GCCUserData **user_data_list; /* optional */
  82. ConnectionHandle connection_handle;
  83. }
  84. CreateIndicationMessage, *PCreateIndicationMessage;
  85. /*
  86. * GCC_CREATE_CONFIRM
  87. *
  88. * Union Choice:
  89. * CreateConfirmMessage
  90. * This is a pointer to a structure that contains all necessary
  91. * information about the result of a conference create request.
  92. * The connection handle and physical handle will be zero on a
  93. * local create.
  94. */
  95. typedef struct
  96. {
  97. GCCConferenceName conference_name;
  98. GCCNumericString conference_modifier; /* optional */
  99. GCCConferenceID conference_id;
  100. DomainParameters *domain_parameters; /* optional */
  101. UINT number_of_user_data_members;
  102. GCCUserData **user_data_list; /* optional */
  103. GCCResult result;
  104. ConnectionHandle connection_handle; /* optional */
  105. }
  106. CreateConfirmMessage, *PCreateConfirmMessage;
  107. /*
  108. * GCC_QUERY_INDICATION
  109. *
  110. * Union Choice:
  111. * QueryIndicationMessage
  112. * This is a pointer to a structure that contains all necessary
  113. * information about the conference query.
  114. */
  115. typedef struct
  116. {
  117. GCCResponseTag query_response_tag;
  118. GCCNodeType node_type;
  119. GCCAsymmetryIndicator *asymmetry_indicator;
  120. TransportAddress calling_address; /* optional */
  121. TransportAddress called_address; /* optional */
  122. UINT number_of_user_data_members;
  123. GCCUserData **user_data_list; /* optional */
  124. ConnectionHandle connection_handle;
  125. }
  126. QueryIndicationMessage, *PQueryIndicationMessage;
  127. /*
  128. * GCC_QUERY_CONFIRM
  129. *
  130. * Union Choice:
  131. * QueryConfirmMessage
  132. * This is a pointer to a structure that contains all necessary
  133. * information about the result of a conference query request.
  134. */
  135. typedef struct
  136. {
  137. GCCNodeType node_type;
  138. GCCAsymmetryIndicator *asymmetry_indicator; /* optional */
  139. UINT number_of_descriptors;
  140. GCCConferenceDescriptor **conference_descriptor_list; /* optional*/
  141. UINT number_of_user_data_members;
  142. GCCUserData **user_data_list; /* optional */
  143. GCCResult result;
  144. ConnectionHandle connection_handle;
  145. }
  146. QueryConfirmMessage, *PQueryConfirmMessage;
  147. /*
  148. * GCC_JOIN_INDICATION
  149. *
  150. * Union Choice:
  151. * JoinIndicationMessage
  152. * This is a pointer to a structure that contains all necessary
  153. * information about the join request.
  154. */
  155. typedef struct
  156. {
  157. GCCResponseTag join_response_tag;
  158. GCCConferenceID conference_id;
  159. GCCPassword *convener_password; /* optional */
  160. GCCChallengeRequestResponse*password_challenge; /* optional */
  161. LPWSTR caller_identifier; /* optional */
  162. TransportAddress calling_address; /* optional */
  163. TransportAddress called_address; /* optional */
  164. UINT number_of_user_data_members;
  165. GCCUserData **user_data_list; /* optional */
  166. BOOL node_is_intermediate;
  167. ConnectionHandle connection_handle;
  168. }
  169. JoinIndicationMessage, *PJoinIndicationMessage;
  170. /*
  171. * GCC_JOIN_CONFIRM
  172. *
  173. * Union Choice:
  174. * JoinConfirmMessage
  175. * This is a pointer to a structure that contains all necessary
  176. * information about the join confirm.
  177. */
  178. typedef struct
  179. {
  180. GCCConferenceName conference_name;
  181. GCCNumericString called_node_modifier; /* optional */
  182. GCCNumericString calling_node_modifier; /* optional */
  183. GCCConferenceID conference_id;
  184. GCCChallengeRequestResponse*password_challenge; /* optional */
  185. DomainParameters *domain_parameters;
  186. BOOL clear_password_required;
  187. BOOL conference_is_locked;
  188. BOOL conference_is_listed;
  189. BOOL conference_is_conductible;
  190. GCCTerminationMethod termination_method;
  191. GCCConferencePrivileges *conductor_privilege_list; /* optional */
  192. GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */
  193. GCCConferencePrivileges *non_conducted_privilege_list; /* optional */
  194. LPWSTR conference_descriptor; /* optional */
  195. UINT number_of_user_data_members;
  196. GCCUserData **user_data_list; /* optional */
  197. GCCResult result;
  198. ConnectionHandle connection_handle;
  199. PBYTE pb_remote_cred;
  200. DWORD cb_remote_cred;
  201. }
  202. JoinConfirmMessage, *PJoinConfirmMessage;
  203. /*
  204. * GCC_INVITE_INDICATION
  205. *
  206. * Union Choice:
  207. * InviteIndicationMessage
  208. * This is a pointer to a structure that contains all necessary
  209. * information about the invite indication.
  210. */
  211. typedef struct
  212. {
  213. GCCConferenceID conference_id;
  214. GCCConferenceName conference_name;
  215. LPWSTR caller_identifier; /* optional */
  216. TransportAddress calling_address; /* optional */
  217. TransportAddress called_address; /* optional */
  218. BOOL fSecure;
  219. DomainParameters *domain_parameters; /* optional */
  220. BOOL clear_password_required;
  221. BOOL conference_is_locked;
  222. BOOL conference_is_listed;
  223. BOOL conference_is_conductible;
  224. GCCTerminationMethod termination_method;
  225. GCCConferencePrivileges *conductor_privilege_list; /* optional */
  226. GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */
  227. GCCConferencePrivileges *non_conducted_privilege_list; /* optional */
  228. LPWSTR conference_descriptor; /* optional */
  229. UINT number_of_user_data_members;
  230. GCCUserData **user_data_list; /* optional */
  231. ConnectionHandle connection_handle;
  232. }
  233. InviteIndicationMessage, *PInviteIndicationMessage;
  234. /*
  235. * GCC_INVITE_CONFIRM
  236. *
  237. * Union Choice:
  238. * InviteConfirmMessage
  239. * This is a pointer to a structure that contains all necessary
  240. * information about the invite confirm.
  241. */
  242. typedef struct
  243. {
  244. GCCConferenceID conference_id;
  245. UINT number_of_user_data_members;
  246. GCCUserData **user_data_list; /* optional */
  247. GCCResult result;
  248. ConnectionHandle connection_handle;
  249. }
  250. InviteConfirmMessage, *PInviteConfirmMessage;
  251. /*
  252. * GCC_ADD_INDICATION
  253. *
  254. * Union Choice:
  255. * AddIndicationMessage
  256. */
  257. typedef struct
  258. {
  259. GCCResponseTag add_response_tag;
  260. GCCConferenceID conference_id;
  261. UINT number_of_network_addresses;
  262. GCCNetworkAddress **network_address_list;
  263. UserID requesting_node_id;
  264. UINT number_of_user_data_members;
  265. GCCUserData **user_data_list; /* optional */
  266. }
  267. AddIndicationMessage, *PAddIndicationMessage;
  268. /*
  269. * GCC_ADD_CONFIRM
  270. *
  271. * Union Choice:
  272. * AddConfirmMessage
  273. */
  274. typedef struct
  275. {
  276. GCCConferenceID conference_id;
  277. UINT number_of_network_addresses;
  278. GCCNetworkAddress **network_address_list;
  279. UINT number_of_user_data_members;
  280. GCCUserData **user_data_list; /* optional */
  281. GCCResult result;
  282. }
  283. AddConfirmMessage, *PAddConfirmMessage;
  284. /*
  285. * GCC_LOCK_INDICATION
  286. *
  287. * Union Choice:
  288. * LockIndicationMessage
  289. */
  290. typedef struct
  291. {
  292. GCCConferenceID conference_id;
  293. UserID requesting_node_id;
  294. }
  295. LockIndicationMessage, *PLockIndicationMessage;
  296. /*
  297. * GCC_UNLOCK_INDICATION
  298. *
  299. * Union Choice:
  300. * UnlockIndicationMessage
  301. */
  302. typedef struct
  303. {
  304. GCCConferenceID conference_id;
  305. UserID requesting_node_id;
  306. }
  307. UnlockIndicationMessage, *PUnlockIndicationMessage;
  308. /*
  309. * GCC_DISCONNECT_INDICATION
  310. *
  311. * Union Choice:
  312. * DisconnectIndicationMessage
  313. */
  314. typedef struct
  315. {
  316. GCCConferenceID conference_id;
  317. GCCReason reason;
  318. UserID disconnected_node_id;
  319. }
  320. DisconnectIndicationMessage, *PDisconnectIndicationMessage;
  321. /*
  322. * GCC_DISCONNECT_CONFIRM
  323. *
  324. * Union Choice:
  325. * PDisconnectConfirmMessage
  326. */
  327. typedef SimpleConfirmMsg DisconnectConfirmMessage, *PDisconnectConfirmMessage;
  328. /*
  329. * GCC_TERMINATE_INDICATION
  330. *
  331. * Union Choice:
  332. * TerminateIndicationMessage
  333. */
  334. typedef struct
  335. {
  336. GCCConferenceID conference_id;
  337. UserID requesting_node_id;
  338. GCCReason reason;
  339. }
  340. TerminateIndicationMessage, *PTerminateIndicationMessage;
  341. /*
  342. * GCC_TERMINATE_CONFIRM
  343. *
  344. * Union Choice:
  345. * TerminateConfirmMessage
  346. */
  347. typedef SimpleConfirmMsg TerminateConfirmMessage, *PTerminateConfirmMessage;
  348. /*
  349. * GCC_CONNECTION_BROKEN_INDICATION
  350. *
  351. * Union Choice:
  352. * ConnectionBrokenIndicationMessage
  353. *
  354. * Caveat:
  355. * This is a non-standard indication.
  356. */
  357. typedef struct
  358. {
  359. ConnectionHandle connection_handle;
  360. }
  361. ConnectionBrokenIndicationMessage, *PConnectionBrokenIndicationMessage;
  362. /*
  363. * GCC_EJECT_USER_INDICATION
  364. *
  365. * Union Choice:
  366. * EjectUserIndicationMessage
  367. */
  368. typedef struct
  369. {
  370. GCCConferenceID conference_id;
  371. UserID ejected_node_id;
  372. GCCReason reason;
  373. }
  374. EjectUserIndicationMessage, *PEjectUserIndicationMessage;
  375. /*
  376. * GCC_PERMIT_TO_ANNOUNCE_PRESENCE
  377. *
  378. * Union Choice:
  379. * PermitToAnnouncePresenceMessage
  380. */
  381. typedef struct
  382. {
  383. GCCConferenceID conference_id;
  384. UserID node_id;
  385. }
  386. PermitToAnnouncePresenceMessage, *PPermitToAnnouncePresenceMessage;
  387. /*
  388. * GCC_ANNOUNCE_PRESENCE_CONFIRM
  389. *
  390. * Union Choice:
  391. * AnnouncePresenceConfirmMessage
  392. */
  393. typedef SimpleConfirmMsg AnnouncePresenceConfirmMessage, *PAnnouncePresenceConfirmMessage;
  394. /*
  395. * GCC_ROSTER_REPORT_INDICATION
  396. *
  397. * Union Choice:
  398. * ConfRosterReportIndicationMessage
  399. */
  400. typedef struct
  401. {
  402. GCCConferenceID conference_id;
  403. GCCConferenceRoster *conference_roster;
  404. }
  405. ConfRosterReportIndicationMessage, *PConfRosterReportIndicationMessage;
  406. /*
  407. * GCC_CONDUCT_GIVE_INDICATION
  408. *
  409. * Union Choice:
  410. * ConductorGiveIndicationMessage
  411. */
  412. typedef struct
  413. {
  414. GCCConferenceID conference_id;
  415. }
  416. ConductGiveIndicationMessage, *PConductGiveIndicationMessage;
  417. /*
  418. * GCC_TIME_INQUIRE_INDICATION
  419. *
  420. * Union Choice:
  421. * TimeInquireIndicationMessage
  422. */
  423. typedef struct
  424. {
  425. GCCConferenceID conference_id;
  426. BOOL time_is_conference_wide;
  427. UserID requesting_node_id;
  428. }
  429. TimeInquireIndicationMessage, *PTimeInquireIndicationMessage;
  430. /*
  431. * GCC_STATUS_INDICATION
  432. *
  433. * Union Choice:
  434. * GCCStatusMessage
  435. * This callback is used to relay GCC status to the node controller
  436. */
  437. typedef enum
  438. {
  439. GCC_STATUS_PACKET_RESOURCE_FAILURE = 0,
  440. GCC_STATUS_PACKET_LENGTH_EXCEEDED = 1,
  441. GCC_STATUS_CTL_SAP_RESOURCE_ERROR = 2,
  442. GCC_STATUS_APP_SAP_RESOURCE_ERROR = 3, /* parameter = Sap Handle */
  443. GCC_STATUS_CONF_RESOURCE_ERROR = 4, /* parameter = Conference ID */
  444. GCC_STATUS_INCOMPATIBLE_PROTOCOL = 5, /* parameter = Physical Handle */
  445. GCC_STATUS_JOIN_FAILED_BAD_CONF_NAME = 6, /* parameter = Physical Handle */
  446. GCC_STATUS_JOIN_FAILED_BAD_CONVENER = 7, /* parameter = Physical Handle */
  447. GCC_STATUS_JOIN_FAILED_LOCKED = 8 /* parameter = Physical Handle */
  448. }
  449. GCCStatusMessageType;
  450. typedef struct
  451. {
  452. GCCStatusMessageType status_message_type;
  453. UINT parameter;
  454. }
  455. GCCStatusIndicationMessage, *PGCCStatusIndicationMessage;
  456. /*
  457. * GCC_SUB_INITIALIZED_INDICATION
  458. *
  459. * Union Chice:
  460. * SubInitializedIndicationMessage
  461. */
  462. typedef struct
  463. {
  464. ConnectionHandle connection_handle;
  465. UserID subordinate_node_id;
  466. }
  467. SubInitializedIndicationMessage, *PSubInitializedIndicationMessage;
  468. #ifdef JASPER // ------------------------------------------------
  469. /*
  470. * GCC_LOCK_CONFIRM
  471. *
  472. * Union Choice:
  473. * LockConfirmMessage
  474. */
  475. typedef SimpleConfirmMsg LockConfirmMessage, *PLockConfirmMessage;
  476. /*
  477. * GCC_UNLOCK_CONFIRM
  478. *
  479. * Union Choice:
  480. * UnlockConfirmMessage
  481. */
  482. typedef SimpleConfirmMsg UnlockConfirmMessage, *PUnlockConfirmMessage;
  483. /*
  484. * GCC_LOCK_REPORT_INDICATION
  485. *
  486. * Union Choice:
  487. * LockReportIndicationMessage
  488. */
  489. typedef struct
  490. {
  491. GCCConferenceID conference_id;
  492. BOOL conference_is_locked;
  493. }
  494. LockReportIndicationMessage, *PLockReportIndicationMessage;
  495. /*
  496. * GCC_EJECT_USER_CONFIRM
  497. *
  498. * Union Choice:
  499. * EjectUserConfirmMessage
  500. */
  501. typedef struct
  502. {
  503. GCCConferenceID conference_id;
  504. GCCResult result;
  505. UserID ejected_node_id;
  506. }
  507. EjectUserConfirmMessage, *PEjectUserConfirmMessage;
  508. /*
  509. * GCC_TRANSFER_INDICATION
  510. *
  511. * Union Choice:
  512. * TransferIndicationMessage
  513. */
  514. typedef struct
  515. {
  516. GCCConferenceID conference_id;
  517. GCCConferenceName destination_conference_name;
  518. GCCNumericString destination_conference_modifier;/* optional */
  519. UINT number_of_destination_addresses;
  520. GCCNetworkAddress **destination_address_list;
  521. GCCPassword *password; /* optional */
  522. }
  523. TransferIndicationMessage, *PTransferIndicationMessage;
  524. /*
  525. * GCC_TRANSFER_CONFIRM
  526. *
  527. * Union Choice:
  528. * TransferConfirmMessage
  529. */
  530. typedef struct
  531. {
  532. GCCConferenceID conference_id;
  533. GCCConferenceName destination_conference_name;
  534. GCCNumericString destination_conference_modifier;/* optional */
  535. UINT number_of_destination_nodes;
  536. UserID *destination_node_list;
  537. GCCResult result;
  538. }
  539. TransferConfirmMessage, *PTransferConfirmMessage;
  540. /*
  541. * GCC_CONDUCT_ASSIGN_CONFIRM
  542. *
  543. * Union Choice:
  544. * ConductAssignConfirmMessage
  545. */
  546. typedef SimpleConfirmMsg ConductAssignConfirmMessage, *PConductAssignConfirmMessage;
  547. /*
  548. * GCC_CONDUCT_RELEASE_CONFIRM
  549. *
  550. * Union Choice:
  551. * ConductorReleaseConfirmMessage
  552. */
  553. typedef SimpleConfirmMsg ConductReleaseConfirmMessage, *PConductReleaseConfirmMessage;
  554. /*
  555. * GCC_CONDUCT_PLEASE_INDICATION
  556. *
  557. * Union Choice:
  558. * ConductorPleaseIndicationMessage
  559. */
  560. typedef struct
  561. {
  562. GCCConferenceID conference_id;
  563. UserID requester_node_id;
  564. }
  565. ConductPleaseIndicationMessage, *PConductPleaseIndicationMessage;
  566. /*
  567. * GCC_CONDUCT_PLEASE_CONFIRM
  568. *
  569. * Union Choice:
  570. * ConductPleaseConfirmMessage
  571. */
  572. typedef SimpleConfirmMsg ConductPleaseConfirmMessage, *PConductPleaseConfirmMessage;
  573. /*
  574. * GCC_CONDUCT_GIVE_CONFIRM
  575. *
  576. * Union Choice:
  577. * ConductorGiveConfirmMessage
  578. */
  579. typedef struct
  580. {
  581. GCCConferenceID conference_id;
  582. GCCResult result;
  583. UserID recipient_node_id;
  584. }
  585. ConductGiveConfirmMessage, *PConductGiveConfirmMessage;
  586. /*
  587. * GCC_CONDUCT_ASK_INDICATION
  588. *
  589. * Union Choice:
  590. * ConductPermitAskIndicationMessage
  591. */
  592. typedef struct
  593. {
  594. GCCConferenceID conference_id;
  595. BOOL permission_is_granted;
  596. UserID requester_node_id;
  597. }
  598. ConductPermitAskIndicationMessage, *PConductPermitAskIndicationMessage;
  599. /*
  600. * GCC_CONDUCT_ASK_CONFIRM
  601. *
  602. * Union Choice:
  603. * ConductPermitAskConfirmMessage
  604. */
  605. typedef struct
  606. {
  607. GCCConferenceID conference_id;
  608. GCCResult result;
  609. BOOL permission_is_granted;
  610. }
  611. ConductPermitAskConfirmMessage, *PConductPermitAskConfirmMessage;
  612. /*
  613. * GCC_CONDUCT_GRANT_CONFIRM
  614. *
  615. * Union Choice:
  616. * ConductPermissionGrantConfirmMessage
  617. */
  618. typedef SimpleConfirmMsg ConductPermitGrantConfirmMessage, *PConductPermitGrantConfirmMessage;
  619. /*
  620. * GCC_TIME_REMAINING_INDICATION
  621. *
  622. * Union Choice:
  623. * TimeRemainingIndicationMessage
  624. */
  625. typedef struct
  626. {
  627. GCCConferenceID conference_id;
  628. UINT time_remaining;
  629. UserID node_id;
  630. UserID source_node_id;
  631. }
  632. TimeRemainingIndicationMessage, *PTimeRemainingIndicationMessage;
  633. /*
  634. * GCC_TIME_REMAINING_CONFIRM
  635. *
  636. * Union Choice:
  637. * TimeRemainingConfirmMessage
  638. */
  639. typedef SimpleConfirmMsg TimeRemainingConfirmMessage, *PTimeRemainingConfirmMessage;
  640. /*
  641. * GCC_TIME_INQUIRE_CONFIRM
  642. *
  643. * Union Choice:
  644. * TimeInquireConfirmMessage
  645. */
  646. typedef SimpleConfirmMsg TimeInquireConfirmMessage, *PTimeInquireConfirmMessage;
  647. /*
  648. * GCC_CONFERENCE_EXTEND_INDICATION
  649. *
  650. * Union Choice:
  651. * ConferenceExtendIndicationMessage
  652. */
  653. typedef struct
  654. {
  655. GCCConferenceID conference_id;
  656. UINT extension_time;
  657. BOOL time_is_conference_wide;
  658. UserID requesting_node_id;
  659. }
  660. ConferenceExtendIndicationMessage, *PConferenceExtendIndicationMessage;
  661. /*
  662. * GCC_CONFERENCE_EXTEND_CONFIRM
  663. *
  664. * Union Choice:
  665. * ConferenceExtendConfirmMessage
  666. */
  667. typedef struct
  668. {
  669. GCCConferenceID conference_id;
  670. UINT extension_time;
  671. GCCResult result;
  672. }
  673. ConferenceExtendConfirmMessage, *PConferenceExtendConfirmMessage;
  674. /*
  675. * GCC_ASSISTANCE_INDICATION
  676. *
  677. * Union Choice:
  678. * ConferenceAssistIndicationMessage
  679. */
  680. typedef struct
  681. {
  682. GCCConferenceID conference_id;
  683. UINT number_of_user_data_members;
  684. GCCUserData **user_data_list;
  685. UserID source_node_id;
  686. }
  687. ConferenceAssistIndicationMessage, *PConferenceAssistIndicationMessage;
  688. /*
  689. * GCC_ASSISTANCE_CONFIRM
  690. *
  691. * Union Choice:
  692. * ConferenceAssistConfirmMessage
  693. */
  694. typedef SimpleConfirmMsg ConferenceAssistConfirmMessage, *PConferenceAssistConfirmMessage;
  695. /*
  696. * GCC_TEXT_MESSAGE_INDICATION
  697. *
  698. * Union Choice:
  699. * TextMessageIndicationMessage
  700. */
  701. typedef struct
  702. {
  703. GCCConferenceID conference_id;
  704. LPWSTR text_message;
  705. UserID source_node_id;
  706. }
  707. TextMessageIndicationMessage, *PTextMessageIndicationMessage;
  708. /*
  709. * GCC_TEXT_MESSAGE_CONFIRM
  710. *
  711. * Union Choice:
  712. * TextMessageConfirmMessage
  713. */
  714. typedef SimpleConfirmMsg TextMessageConfirmMessage, *PTextMessageConfirmMessage;
  715. #endif // JASPER // ------------------------------------------------
  716. /*********************************************************************
  717. * *
  718. * USER APPLICATION CALLBACK INFO STRUCTURES *
  719. * *
  720. *********************************************************************/
  721. /*
  722. * GCC_APP_ROSTER_REPORT_INDICATION
  723. *
  724. * Union Choice:
  725. * AppRosterReportIndicationMessage
  726. */
  727. typedef struct
  728. {
  729. GCCConferenceID conference_id;
  730. ULONG number_of_rosters;
  731. GCCApplicationRoster **application_roster_list;
  732. }
  733. AppRosterReportIndicationMessage, *PAppRosterReportIndicationMessage;
  734. /*********************************************************************
  735. * *
  736. * SHARED CALLBACK INFO STRUCTURES *
  737. * (Note that this doesn't include all the shared callbacks) *
  738. * *
  739. *********************************************************************/
  740. /*
  741. * GCC_ROSTER_INQUIRE_CONFIRM
  742. *
  743. * Union Choice:
  744. * ConfRosterInquireConfirmMessage
  745. */
  746. typedef struct
  747. {
  748. GCCConferenceID conference_id;
  749. GCCConferenceName conference_name;
  750. GCCNumericString conference_modifier;
  751. LPWSTR conference_descriptor;
  752. GCCConferenceRoster *conference_roster;
  753. GCCResult result;
  754. }
  755. ConfRosterInquireConfirmMessage, *PConfRosterInquireConfirmMessage;
  756. /*
  757. * GCC_APPLICATION_INVOKE_INDICATION
  758. *
  759. * Union Choice:
  760. * ApplicationInvokeIndicationMessage
  761. */
  762. typedef struct
  763. {
  764. GCCConferenceID conference_id;
  765. ULONG number_of_app_protocol_entities;
  766. GCCAppProtocolEntity **app_protocol_entity_list;
  767. UserID invoking_node_id;
  768. }
  769. ApplicationInvokeIndicationMessage, *PApplicationInvokeIndicationMessage;
  770. /*
  771. * GCC_APPLICATION_INVOKE_CONFIRM
  772. *
  773. * Union Choice:
  774. * ApplicationInvokeConfirmMessage
  775. */
  776. typedef struct
  777. {
  778. GCCConferenceID conference_id;
  779. ULONG number_of_app_protocol_entities;
  780. GCCAppProtocolEntity **app_protocol_entity_list;
  781. GCCResult result;
  782. }
  783. ApplicationInvokeConfirmMessage, *PApplicationInvokeConfirmMessage;
  784. #ifdef JASPER // ------------------------------------------------
  785. /*
  786. * GCC_APP_ROSTER_INQUIRE_CONFIRM
  787. *
  788. * Union Choice:
  789. * AppRosterInquireConfirmMessage
  790. */
  791. typedef struct
  792. {
  793. GCCConferenceID conference_id;
  794. ULONG number_of_rosters;
  795. GCCApplicationRoster **application_roster_list;
  796. GCCResult result;
  797. }
  798. AppRosterInquireConfirmMessage, *PAppRosterInquireConfirmMessage;
  799. /*
  800. * GCC_CONDUCT_INQUIRE_CONFIRM
  801. *
  802. * Union Choice:
  803. * ConductorInquireConfirmMessage
  804. */
  805. typedef struct
  806. {
  807. GCCConferenceID conference_id;
  808. BOOL mode_is_conducted;
  809. UserID conductor_node_id;
  810. BOOL permission_is_granted;
  811. GCCResult result;
  812. }
  813. ConductInquireConfirmMessage, *PConductInquireConfirmMessage;
  814. /*
  815. * GCC_CONDUCT_ASSIGN_INDICATION
  816. *
  817. * Union Choice:
  818. * ConductAssignIndicationMessage
  819. */
  820. typedef struct
  821. {
  822. GCCConferenceID conference_id;
  823. UserID node_id;
  824. }
  825. ConductAssignIndicationMessage, *PConductAssignIndicationMessage;
  826. /*
  827. * GCC_CONDUCT_RELEASE_INDICATION
  828. *
  829. * Union Choice:
  830. * ConductReleaseIndicationMessage
  831. */
  832. typedef struct
  833. {
  834. GCCConferenceID conference_id;
  835. }
  836. ConductReleaseIndicationMessage, *PConductReleaseIndicationMessage;
  837. /*
  838. * GCC_CONDUCT_GRANT_INDICATION
  839. *
  840. * Union Choice:
  841. * ConductPermitGrantIndicationMessage
  842. */
  843. typedef struct
  844. {
  845. GCCConferenceID conference_id;
  846. UINT number_granted;
  847. UserID *granted_node_list;
  848. UINT number_waiting;
  849. UserID *waiting_node_list;
  850. BOOL permission_is_granted;
  851. }
  852. ConductPermitGrantIndicationMessage, *PConductPermitGrantIndicationMessage;
  853. #endif // JASPER // ------------------------------------------------
  854. /*
  855. * GCCMessage
  856. * This structure defines the message that is passed from GCC to either
  857. * the node controller or a user application when an indication or
  858. * confirm occurs.
  859. */
  860. typedef struct
  861. {
  862. GCCMessageType message_type;
  863. LPVOID user_defined;
  864. // GCCNC relies on easy access to conference ID.
  865. GCCConfID nConfID;
  866. union
  867. {
  868. CreateIndicationMessage create_indication;
  869. CreateConfirmMessage create_confirm;
  870. QueryIndicationMessage query_indication;
  871. QueryConfirmMessage query_confirm;
  872. JoinIndicationMessage join_indication;
  873. JoinConfirmMessage join_confirm;
  874. InviteIndicationMessage invite_indication;
  875. InviteConfirmMessage invite_confirm;
  876. AddIndicationMessage add_indication;
  877. AddConfirmMessage add_confirm;
  878. LockIndicationMessage lock_indication;
  879. UnlockIndicationMessage unlock_indication;
  880. DisconnectIndicationMessage disconnect_indication;
  881. DisconnectConfirmMessage disconnect_confirm;
  882. TerminateIndicationMessage terminate_indication;
  883. TerminateConfirmMessage terminate_confirm;
  884. ConnectionBrokenIndicationMessage connection_broken_indication;
  885. EjectUserIndicationMessage eject_user_indication;
  886. ApplicationInvokeIndicationMessage application_invoke_indication;
  887. ApplicationInvokeConfirmMessage application_invoke_confirm;
  888. SubInitializedIndicationMessage conf_sub_initialized_indication;
  889. PermitToAnnouncePresenceMessage permit_to_announce_presence;
  890. AnnouncePresenceConfirmMessage announce_presence_confirm;
  891. ConfRosterReportIndicationMessage conf_roster_report_indication;
  892. ConductGiveIndicationMessage conduct_give_indication;
  893. TimeInquireIndicationMessage time_inquire_indication;
  894. GCCStatusIndicationMessage status_indication;
  895. AppRosterReportIndicationMessage app_roster_report_indication;
  896. ConfRosterInquireConfirmMessage conf_roster_inquire_confirm;
  897. #ifdef TSTATUS_INDICATION
  898. TransportStatus transport_status;
  899. #endif // TSTATUS_INDICATION
  900. #ifdef JASPER // ------------------------------------------------
  901. TextMessageIndicationMessage text_message_indication;
  902. TimeRemainingIndicationMessage time_remaining_indication;
  903. AppRosterInquireConfirmMessage app_roster_inquire_confirm;
  904. ConferenceAssistConfirmMessage conference_assist_confirm;
  905. ConferenceAssistIndicationMessage conference_assist_indication;
  906. ConductPermitAskConfirmMessage conduct_permit_ask_confirm;
  907. ConductPermitAskIndicationMessage conduct_permit_ask_indication;
  908. ConductAssignConfirmMessage conduct_assign_confirm;
  909. ConductAssignIndicationMessage conduct_assign_indication;
  910. ConductGiveConfirmMessage conduct_give_confirm;
  911. ConductPermitGrantConfirmMessage conduct_permit_grant_confirm;
  912. ConductPermitGrantIndicationMessage conduct_permit_grant_indication;
  913. ConductInquireConfirmMessage conduct_inquire_confirm;
  914. ConductPleaseConfirmMessage conduct_please_confirm;
  915. ConductPleaseIndicationMessage conduct_please_indication;
  916. ConductReleaseConfirmMessage conduct_release_confirm;
  917. ConductReleaseIndicationMessage conduct_release_indication;
  918. ConferenceExtendConfirmMessage conference_extend_confirm;
  919. ConferenceExtendIndicationMessage conference_extend_indication;
  920. EjectUserConfirmMessage eject_user_confirm;
  921. LockConfirmMessage lock_confirm;
  922. LockReportIndicationMessage lock_report_indication;
  923. TextMessageConfirmMessage text_message_confirm;
  924. TimeInquireConfirmMessage time_inquire_confirm;
  925. TimeRemainingConfirmMessage time_remaining_confirm;
  926. TransferConfirmMessage transfer_confirm;
  927. TransferIndicationMessage transfer_indication;
  928. UnlockConfirmMessage unlock_confirm;
  929. #endif // JASPER // ------------------------------------------------
  930. // easy acess to conf id and gcc result
  931. SimpleConfirmMsg simple_confirm;
  932. } u;
  933. }
  934. GCCMessage, *PGCCMessage, T120Message, *PT120Message;
  935. // node controller callback entry
  936. typedef void (CALLBACK *LPFN_T120_CONTROL_SAP_CB) (T120Message *);
  937. #undef INTERFACE
  938. #define INTERFACE IT120ControlSAP
  939. DECLARE_INTERFACE(IT120ControlSAP)
  940. {
  941. STDMETHOD_(void, ReleaseInterface) (THIS) PURE;
  942. /*
  943. * GCCError ConfCreateRequest()
  944. * This routine is a request to create a new conference. Both
  945. * the local node and the node to which the create conference
  946. * request is directed to, join the conference automatically.
  947. */
  948. STDMETHOD_(GCCError, ConfCreateRequest) (THIS_
  949. GCCConfCreateRequest *,
  950. GCCConfID *) PURE;
  951. /*
  952. * GCCError ConfCreateResponse()
  953. * This procedure is a remote node controller's response to a con-
  954. * ference creation request by the convener.
  955. */
  956. STDMETHOD_(GCCError, ConfCreateResponse) (THIS_
  957. GCCNumericString conference_modifier,
  958. GCCConfID,
  959. BOOL use_password_in_the_clear,
  960. DomainParameters *domain_parameters,
  961. UINT number_of_network_addresses,
  962. GCCNetworkAddress **local_network_address_list,
  963. UINT number_of_user_data_members,
  964. GCCUserData **user_data_list,
  965. GCCResult) PURE;
  966. /*
  967. * GCCError ConfQueryRequest()
  968. * This routine is a request to query a node for information about the
  969. * conferences that exist at that node.
  970. */
  971. STDMETHOD_(GCCError, ConfQueryRequest) (THIS_
  972. GCCNodeType node_type,
  973. GCCAsymmetryIndicator *asymmetry_indicator,
  974. TransportAddress calling_address,
  975. TransportAddress called_address,
  976. BOOL fSecure,
  977. UINT number_of_user_data_members,
  978. GCCUserData **user_data_list,
  979. ConnectionHandle *connection_handle) PURE;
  980. STDMETHOD_(void, CancelConfQueryRequest) (THIS_
  981. ConnectionHandle) PURE;
  982. /*
  983. * GCCError ConfQueryResponse()
  984. * This routine is called in response to a conference query request.
  985. */
  986. STDMETHOD_(GCCError, ConfQueryResponse) (THIS_
  987. GCCResponseTag query_response_tag,
  988. GCCNodeType node_type,
  989. GCCAsymmetryIndicator *asymmetry_indicator,
  990. UINT number_of_user_data_members,
  991. GCCUserData **user_data_list,
  992. GCCResult) PURE;
  993. /*
  994. * GCCError AnnouncePresenceRequest()
  995. * This routine is invoked by node controller when a node joins a
  996. * conference, to announce the presence of the new node to all
  997. * other nodes of the conference. This should be followed by a
  998. * GCCConferenceReport indication by the GCC to all nodes.
  999. */
  1000. STDMETHOD_(GCCError, AnnouncePresenceRequest) (THIS_
  1001. GCCConfID,
  1002. GCCNodeType node_type,
  1003. GCCNodeProperties node_properties,
  1004. LPWSTR pwszNodeName,
  1005. UINT number_of_participants,
  1006. LPWSTR *ppwszParticipantNameList,
  1007. LPWSTR pwszSiteInfo,
  1008. UINT number_of_network_addresses,
  1009. GCCNetworkAddress **network_address_list,
  1010. LPOSTR alternative_node_id,
  1011. UINT number_of_user_data_members,
  1012. GCCUserData **user_data_list) PURE;
  1013. /*
  1014. * GCCError ConfJoinRequest()
  1015. * This routine is invoked by node controller to cause the local
  1016. * node to join an existing conference.
  1017. */
  1018. STDMETHOD_(GCCError, ConfJoinRequest) (THIS_
  1019. GCCConferenceName *conference_name,
  1020. GCCNumericString called_node_modifier,
  1021. GCCNumericString calling_node_modifier,
  1022. GCCPassword *convener_password,
  1023. GCCChallengeRequestResponse*password_challenge,
  1024. LPWSTR pwszCallerID,
  1025. TransportAddress calling_address,
  1026. TransportAddress called_address,
  1027. BOOL fSecure,
  1028. DomainParameters *domain_parameters,
  1029. UINT number_of_network_addresses,
  1030. GCCNetworkAddress **local_network_address_list,
  1031. UINT number_of_user_data_members,
  1032. GCCUserData **user_data_list,
  1033. ConnectionHandle *connection_handle,
  1034. GCCConfID *pnConfID) PURE;
  1035. /*
  1036. * GCCError ConfJoinResponse()
  1037. * This routine is remote node controller's response to conference join
  1038. * request by the local node controller.
  1039. */
  1040. STDMETHOD_(GCCError, ConfJoinResponse) (THIS_
  1041. GCCResponseTag join_response_tag,
  1042. GCCChallengeRequestResponse*password_challenge,
  1043. UINT number_of_user_data_members,
  1044. GCCUserData **user_data_list,
  1045. GCCResult) PURE;
  1046. /*
  1047. * GCCError ConfInviteRequest()
  1048. * This routine is invoked by node controller to invite a node
  1049. * to join a conference.
  1050. */
  1051. STDMETHOD_(GCCError, ConfInviteRequest) (THIS_
  1052. GCCConfID,
  1053. LPWSTR pwszCallerID,
  1054. TransportAddress calling_address,
  1055. TransportAddress called_address,
  1056. BOOL fSecure,
  1057. UINT number_of_user_data_members,
  1058. GCCUserData **user_data_list,
  1059. ConnectionHandle *connection_handle) PURE;
  1060. STDMETHOD_(void, CancelInviteRequest) (THIS_
  1061. GCCConfID,
  1062. ConnectionHandle) PURE;
  1063. /*
  1064. * GCCError ConfInviteResponse()
  1065. * This routine is invoked by node controller to respond to an
  1066. * invite indication.
  1067. */
  1068. STDMETHOD_(GCCError, ConfInviteResponse) (THIS_
  1069. GCCConfID,
  1070. GCCNumericString conference_modifier,
  1071. BOOL fSecure,
  1072. DomainParameters *domain_parameters,
  1073. UINT number_of_network_addresses,
  1074. GCCNetworkAddress **local_network_address_list,
  1075. UINT number_of_user_data_members,
  1076. GCCUserData **user_data_list,
  1077. GCCResult) PURE;
  1078. /*
  1079. * GCCError ConfAddResponse()
  1080. */
  1081. STDMETHOD_(GCCError, ConfAddResponse) (THIS_
  1082. GCCResponseTag app_response_tag,
  1083. GCCConfID,
  1084. UserID requesting_node,
  1085. UINT number_of_user_data_members,
  1086. GCCUserData **user_data_list,
  1087. GCCResult) PURE;
  1088. /*
  1089. * GCCError ConfLockResponse()
  1090. * This routine is invoked by node controller to respond to a
  1091. * lock indication.
  1092. */
  1093. STDMETHOD_(GCCError, ConfLockResponse) (THIS_
  1094. GCCConfID,
  1095. UserID requesting_node,
  1096. GCCResult) PURE;
  1097. /*
  1098. * GCCError ConfDisconnectRequest()
  1099. * This routine is used by a node controller to disconnect itself
  1100. * from a specified conference. GccConferenceDisconnectIndication
  1101. * sent to all other nodes of the conference. This is for client
  1102. * initiated case.
  1103. */
  1104. STDMETHOD_(GCCError, ConfDisconnectRequest) (THIS_
  1105. GCCConfID) PURE;
  1106. /*
  1107. * GCCError ConfEjectUserRequest()
  1108. */
  1109. STDMETHOD_(GCCError, ConfEjectUserRequest) (THIS_
  1110. GCCConfID,
  1111. UserID ejected_node_id,
  1112. GCCReason) PURE;
  1113. /*
  1114. * GCCError AppletInvokeRequest()
  1115. */
  1116. STDMETHOD_(GCCError, AppletInvokeRequest) (THIS_
  1117. GCCConfID,
  1118. UINT number_of_app_protcol_entities,
  1119. GCCAppProtocolEntity **app_protocol_entity_list,
  1120. UINT number_of_destination_nodes,
  1121. UserID *list_of_destination_nodes) PURE;
  1122. /*
  1123. * GCCError ConfRosterInqRequest()
  1124. * This routine is invoked to request a conference roster. It can be
  1125. * called by either the Node Controller or the client application.
  1126. */
  1127. STDMETHOD_(GCCError, ConfRosterInqRequest) (THIS_
  1128. GCCConfID) PURE;
  1129. /*
  1130. * GCCError ConductorGiveResponse()
  1131. */
  1132. STDMETHOD_(GCCError, ConductorGiveResponse) (THIS_
  1133. GCCConfID,
  1134. GCCResult) PURE;
  1135. /*
  1136. * GCCError ConfTimeRemainingRequest()
  1137. */
  1138. STDMETHOD_(GCCError, ConfTimeRemainingRequest) (THIS_
  1139. GCCConfID,
  1140. UINT time_remaining,
  1141. UserID node_id) PURE;
  1142. STDMETHOD_(GCCError, GetParentNodeID) (THIS_
  1143. GCCConfID,
  1144. GCCNodeID *) PURE;
  1145. #ifdef JASPER // ------------------------------------------------
  1146. /*
  1147. * GCCError ConfAddRequest()
  1148. */
  1149. STDMETHOD_(GCCError, ConfAddRequest) (THIS_
  1150. GCCConfID,
  1151. UINT number_of_network_addresses,
  1152. GCCNetworkAddress **network_address_list,
  1153. UserID adding_node,
  1154. UINT number_of_user_data_members,
  1155. GCCUserData **user_data_list) PURE;
  1156. /*
  1157. * GCCError ConfLockRequest()
  1158. * This routine is invoked by node controller to lock a conference.
  1159. */
  1160. STDMETHOD_(GCCError, ConfLockRequest) (THIS_
  1161. GCCConfID) PURE;
  1162. /*
  1163. * GCCError ConfUnlockRequest()
  1164. * This routine is invoked by node controller to unlock a conference.
  1165. */
  1166. STDMETHOD_(GCCError, ConfUnlockRequest) (THIS_
  1167. GCCConfID) PURE;
  1168. /*
  1169. * GCCError ConfUnlockResponse()
  1170. * This routine is invoked by node controller to respond to an
  1171. * unlock indication.
  1172. */
  1173. STDMETHOD_(GCCError, ConfUnlockResponse) (
  1174. GCCConfID,
  1175. UserID requesting_node,
  1176. GCCResult) PURE;
  1177. /*
  1178. * GCCError ConfTerminateRequest()
  1179. */
  1180. STDMETHOD_(GCCError, ConfTerminateRequest) (THIS_
  1181. GCCConfID,
  1182. GCCReason) PURE;
  1183. /*
  1184. * GCCError ConfTransferRequest()
  1185. */
  1186. STDMETHOD_(GCCError, ConfTransferRequest) (THIS_
  1187. GCCConfID,
  1188. GCCConferenceName *destination_conference_name,
  1189. GCCNumericString destination_conference_modifier,
  1190. UINT number_of_destination_addresses,
  1191. GCCNetworkAddress **destination_address_list,
  1192. UINT number_of_destination_nodes,
  1193. UserID *destination_node_list,
  1194. GCCPassword *password) PURE;
  1195. /*
  1196. * GCCError ConductorAssignRequest()
  1197. */
  1198. STDMETHOD_(GCCError, ConductorAssignRequest) (THIS_
  1199. GCCConfID) PURE;
  1200. /*
  1201. * GCCError ConductorReleaseRequest()
  1202. */
  1203. STDMETHOD_(GCCError, ConductorReleaseRequest) (THIS_
  1204. GCCConfID) PURE;
  1205. /*
  1206. * GCCError ConductorPleaseRequest()
  1207. */
  1208. STDMETHOD_(GCCError, ConductorPleaseRequest) (THIS_
  1209. GCCConfID) PURE;
  1210. /*
  1211. * GCCError ConductorGiveRequest()
  1212. */
  1213. STDMETHOD_(GCCError, ConductorGiveRequest) (THIS_
  1214. GCCConfID,
  1215. UserID recipient_user_id) PURE;
  1216. /*
  1217. * GCCError ConductorPermitAskRequest()
  1218. */
  1219. STDMETHOD_(GCCError, ConductorPermitAskRequest) (THIS_
  1220. GCCConfID,
  1221. BOOL grant_permission) PURE;
  1222. /*
  1223. * GCCError ConductorPermitGrantRequest()
  1224. */
  1225. STDMETHOD_(GCCError, ConductorPermitGrantRequest) (THIS_
  1226. GCCConfID,
  1227. UINT number_granted,
  1228. UserID *granted_node_list,
  1229. UINT number_waiting,
  1230. UserID *waiting_node_list) PURE;
  1231. /*
  1232. * GCCError ConductorInquireRequest()
  1233. */
  1234. STDMETHOD_(GCCError, ConductorInquireRequest) (THIS_
  1235. GCCConfID) PURE;
  1236. /*
  1237. * GCCError ConfTimeInquireRequest()
  1238. */
  1239. STDMETHOD_(GCCError, ConfTimeInquireRequest) (THIS_
  1240. GCCConfID,
  1241. BOOL time_is_conference_wide) PURE;
  1242. /*
  1243. * GCCError ConfExtendRequest()
  1244. */
  1245. STDMETHOD_(GCCError, ConfExtendRequest) (THIS_
  1246. GCCConfID,
  1247. UINT extension_time,
  1248. BOOL time_is_conference_wide) PURE;
  1249. /*
  1250. * GCCError ConfAssistanceRequest()
  1251. */
  1252. STDMETHOD_(GCCError, ConfAssistanceRequest) (THIS_
  1253. GCCConfID,
  1254. UINT number_of_user_data_members,
  1255. GCCUserData **user_data_list) PURE;
  1256. /*
  1257. * GCCError TextMessageRequest()
  1258. */
  1259. STDMETHOD_(GCCError, TextMessageRequest) (THIS_
  1260. GCCConfID,
  1261. LPWSTR pwszTextMsg,
  1262. UserID destination_node) PURE;
  1263. #endif // JASPER // ------------------------------------------------
  1264. };
  1265. //
  1266. // GCC Application Service Access Point exports
  1267. //
  1268. #ifdef __cplusplus
  1269. extern "C" {
  1270. #endif
  1271. GCCError WINAPI T120_CreateControlSAP(
  1272. OUT IT120ControlSAP **,
  1273. IN LPVOID, // user defined data
  1274. IN LPFN_T120_CONTROL_SAP_CB);
  1275. #ifdef __cplusplus
  1276. }
  1277. #endif
  1278. #endif // _IGCCControlSAP_H_