Leaked source code of windows server 2003
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.

749 lines
23 KiB

  1. /****************************************************************************/
  2. // tgcc.h
  3. //
  4. // TS GCC layer include file.
  5. //
  6. // Copyright (C) 1997-2000 Microsoft Corporation
  7. /****************************************************************************/
  8. #ifndef _GCC_H_
  9. #define _GCC_H_
  10. //---------------------------------------------------------------------------
  11. // Defines
  12. //---------------------------------------------------------------------------
  13. #ifndef EXTERN_C
  14. #ifdef __cplusplus
  15. #define EXTERN_C extern "C"
  16. #else
  17. #define EXTERN_C extern
  18. #endif
  19. #endif
  20. //---------------------------------------------------------------------------
  21. // Typedefs
  22. //---------------------------------------------------------------------------
  23. /*
  24. ** Typedefs that used to be defined in MCS but are no longer used there.
  25. */
  26. typedef unsigned char *TransportAddress;
  27. typedef HANDLE PhysicalHandle;
  28. /*
  29. ** Typedef for a GCC Numeric string. This typedef is used throughout GCC for
  30. ** storing variable length, NULL terminated, single byte character strings.
  31. ** A single character in this string is constrained to numeric values
  32. ** ranging from "0" to "9".
  33. */
  34. typedef unsigned char GCCNumericCharacter;
  35. typedef GCCNumericCharacter *GCCNumericString;
  36. /*
  37. ** Typedef for a GCC Unicode string. This typedef is used throughout GCC for
  38. ** storing variable length, NULL terminated, wide character strings.
  39. */
  40. typedef unsigned short GCCUnicodeCharacter;
  41. typedef GCCUnicodeCharacter FAR *GCCUnicodeString;
  42. /*
  43. ** GCCConferenceName
  44. ** This structure defines the conference name. In a create request, the
  45. ** conference name can include an optional unicode string but it must
  46. ** always include the simple numeric string. In a join request, either
  47. ** one can be specified.
  48. */
  49. typedef struct
  50. {
  51. GCCNumericString numeric_string;
  52. GCCUnicodeString text_string; /* optional */
  53. } GCCConferenceName;
  54. /*
  55. ** GCCConferenceID
  56. ** Locally allocated identifier of a created conference. All subsequent
  57. ** references to the conference are made using the ConferenceID as a unique
  58. ** identifier. The ConferenceID shall be identical to the MCS domain
  59. ** selector used locally to identify the MCS domain associated with the
  60. ** conference.
  61. */
  62. typedef unsigned long GCCConferenceID;
  63. /*
  64. ** GCCPassword
  65. ** This is the unique password specified by the convenor of the
  66. ** conference that is used by the node controller to insure conference
  67. ** security. This is also a unicode string.
  68. */
  69. typedef struct
  70. {
  71. GCCNumericString numeric_string;
  72. GCCUnicodeString text_string; /* optional */
  73. } GCCPassword;
  74. /*
  75. ** GCCTerminationMethod
  76. ** The termination method is used by GCC to determine
  77. ** what action to take when all participants of a conference have
  78. ** disconnected. The conference can either be manually terminated
  79. ** by the node controller or it can terminate itself automatically when
  80. ** all the participants have left the conference.
  81. */
  82. typedef enum
  83. {
  84. GCC_AUTOMATIC_TERMINATION_METHOD = 0,
  85. GCC_MANUAL_TERMINATION_METHOD = 1
  86. } GCCTerminationMethod;
  87. /*
  88. ** ConferencePrivileges
  89. ** This structure defines the list of privileges that can be assigned to
  90. ** a particular conference.
  91. */
  92. typedef struct
  93. {
  94. T120Boolean terminate_is_allowed;
  95. T120Boolean eject_user_is_allowed;
  96. T120Boolean add_is_allowed;
  97. T120Boolean lock_unlock_is_allowed;
  98. T120Boolean transfer_is_allowed;
  99. } GCCConferencePrivileges;
  100. /*
  101. ** Typedef for a GCC octet string. This typedef is used throughout GCC for
  102. ** storing variable length single byte character strings with embedded NULLs.
  103. */
  104. typedef struct
  105. {
  106. unsigned short octet_string_length;
  107. unsigned char FAR *octet_string;
  108. } GCCOctetString;
  109. /*
  110. ** Typedef for a GCC long string. This typedef is used in GCC for
  111. ** storing variable length strings of longs with embedded NULLs.
  112. */
  113. typedef struct
  114. {
  115. unsigned short long_string_length;
  116. unsigned long FAR *long_string;
  117. } GCCLongString;
  118. /*
  119. ** The following enum structure typedefs are used to define the GCC Object Key.
  120. ** The GCC Object Key is used throughout GCC for things like the Application
  121. ** keys and Capability IDs.
  122. */
  123. typedef enum
  124. {
  125. GCC_OBJECT_KEY = 1,
  126. GCC_H221_NONSTANDARD_KEY = 2
  127. } GCCObjectKeyType;
  128. typedef struct
  129. {
  130. GCCObjectKeyType key_type;
  131. union
  132. {
  133. GCCLongString object_id;
  134. GCCOctetString h221_non_standard_id;
  135. } u;
  136. } GCCObjectKey;
  137. /*
  138. ** GCCUserData
  139. ** This structure defines a user data element which is used throughout GCC.
  140. */
  141. typedef struct
  142. {
  143. GCCObjectKey key;
  144. GCCOctetString FAR UNALIGNED *octet_string; /* optional */
  145. } GCCUserData;
  146. typedef enum
  147. {
  148. GCC_STATUS_PACKET_RESOURCE_FAILURE = 0,
  149. GCC_STATUS_PACKET_LENGTH_EXCEEDED = 1,
  150. GCC_STATUS_CTL_SAP_RESOURCE_ERROR = 2,
  151. GCC_STATUS_APP_SAP_RESOURCE_ERROR = 3, /* parameter = Sap Handle */
  152. GCC_STATUS_CONF_RESOURCE_ERROR = 4, /* parameter = Conference ID */
  153. GCC_STATUS_INCOMPATIBLE_PROTOCOL = 5, /* parameter = Physical Handle */
  154. GCC_STATUS_JOIN_FAILED_BAD_CONF_NAME = 6, /* parameter = Physical Handle */
  155. GCC_STATUS_JOIN_FAILED_BAD_CONVENER = 7, /* parameter = Physical Handle */
  156. GCC_STATUS_JOIN_FAILED_LOCKED = 8 /* parameter = Physical Handle */
  157. } GCCStatusMessageType;
  158. /*
  159. ** GCCReason
  160. ** When GCC issues an indication to a user application, it often includes a
  161. ** reason parameter informing the user of why the activity is occurring.
  162. */
  163. typedef enum
  164. {
  165. GCC_REASON_USER_INITIATED = 0,
  166. GCC_REASON_UNKNOWN = 1,
  167. GCC_REASON_NORMAL_TERMINATION = 2,
  168. GCC_REASON_TIMED_TERMINATION = 3,
  169. GCC_REASON_NO_MORE_PARTICIPANTS = 4,
  170. GCC_REASON_ERROR_TERMINATION = 5,
  171. GCC_REASON_ERROR_LOW_RESOURCES = 6,
  172. GCC_REASON_MCS_RESOURCE_FAILURE = 7,
  173. GCC_REASON_PARENT_DISCONNECTED = 8,
  174. GCC_REASON_CONDUCTOR_RELEASE = 9,
  175. GCC_REASON_SYSTEM_RELEASE = 10,
  176. GCC_REASON_NODE_EJECTED = 11,
  177. GCC_REASON_HIGHER_NODE_DISCONNECTED = 12,
  178. GCC_REASON_HIGHER_NODE_EJECTED = 13,
  179. GCC_REASON_DOMAIN_PARAMETERS_UNACCEPTABLE = 14,
  180. GCC_REASON_SERVER_INITIATED = 15,
  181. LAST_GCC_REASON = GCC_REASON_DOMAIN_PARAMETERS_UNACCEPTABLE
  182. } GCCReason;
  183. /*
  184. ** GCCResult
  185. ** When a user makes a request of GCC, GCC often responds with a result,
  186. ** letting the user know whether or not the request succeeded.
  187. */
  188. typedef enum
  189. {
  190. GCC_RESULT_SUCCESSFUL = 0,
  191. GCC_RESULT_RESOURCES_UNAVAILABLE = 1,
  192. GCC_RESULT_INVALID_CONFERENCE = 2,
  193. GCC_RESULT_INVALID_PASSWORD = 3,
  194. GCC_RESULT_INVALID_CONVENER_PASSWORD = 4,
  195. GCC_RESULT_SYMMETRY_BROKEN = 5,
  196. GCC_RESULT_UNSPECIFIED_FAILURE = 6,
  197. GCC_RESULT_NOT_CONVENER_NODE = 7,
  198. GCC_RESULT_REGISTRY_FULL = 8,
  199. GCC_RESULT_INDEX_ALREADY_OWNED = 9,
  200. GCC_RESULT_INCONSISTENT_TYPE = 10,
  201. GCC_RESULT_NO_HANDLES_AVAILABLE = 11,
  202. GCC_RESULT_CONNECT_PROVIDER_FAILED = 12,
  203. GCC_RESULT_CONFERENCE_NOT_READY = 13,
  204. GCC_RESULT_USER_REJECTED = 14,
  205. GCC_RESULT_ENTRY_DOES_NOT_EXIST = 15,
  206. GCC_RESULT_NOT_CONDUCTIBLE = 16,
  207. GCC_RESULT_NOT_THE_CONDUCTOR = 17,
  208. GCC_RESULT_NOT_IN_CONDUCTED_MODE = 18,
  209. GCC_RESULT_IN_CONDUCTED_MODE = 19,
  210. GCC_RESULT_ALREADY_CONDUCTOR = 20,
  211. GCC_RESULT_CHALLENGE_RESPONSE_REQUIRED = 21,
  212. GCC_RESULT_INVALID_CHALLENGE_RESPONSE = 22,
  213. GCC_RESULT_INVALID_REQUESTER = 23,
  214. GCC_RESULT_ENTRY_ALREADY_EXISTS = 24,
  215. GCC_RESULT_INVALID_NODE = 25,
  216. GCC_RESULT_INVALID_SESSION_KEY = 26,
  217. GCC_RESULT_INVALID_CAPABILITY_ID = 27,
  218. GCC_RESULT_INVALID_NUMBER_OF_HANDLES = 28,
  219. GCC_RESULT_CONDUCTOR_GIVE_IS_PENDING = 29,
  220. GCC_RESULT_INCOMPATIBLE_PROTOCOL = 30,
  221. GCC_RESULT_CONFERENCE_ALREADY_LOCKED = 31,
  222. GCC_RESULT_CONFERENCE_ALREADY_UNLOCKED = 32,
  223. GCC_RESULT_INVALID_NETWORK_TYPE = 33,
  224. GCC_RESULT_INVALID_NETWORK_ADDRESS = 34,
  225. GCC_RESULT_ADDED_NODE_BUSY = 35,
  226. GCC_RESULT_NETWORK_BUSY = 36,
  227. GCC_RESULT_NO_PORTS_AVAILABLE = 37,
  228. GCC_RESULT_CONNECTION_UNSUCCESSFUL = 38,
  229. GCC_RESULT_LOCKED_NOT_SUPPORTED = 39,
  230. GCC_RESULT_UNLOCK_NOT_SUPPORTED = 40,
  231. GCC_RESULT_ADD_NOT_SUPPORTED = 41,
  232. GCC_RESULT_DOMAIN_PARAMETERS_UNACCEPTABLE = 42,
  233. LAST_CGG_RESULT = GCC_RESULT_DOMAIN_PARAMETERS_UNACCEPTABLE
  234. } GCCResult;
  235. /*
  236. ** GCCMessageType
  237. ** This section defines the messages that can be sent to the application
  238. ** through the callback facility. These messages correspond to the
  239. ** indications and confirms that are defined within T.124.
  240. */
  241. typedef enum
  242. {
  243. /******************* NODE CONTROLLER CALLBACKS ***********************/
  244. /* Conference Create, Terminate related calls */
  245. GCC_CREATE_INDICATION = 0,
  246. GCC_CREATE_CONFIRM = 1,
  247. GCC_QUERY_INDICATION = 2,
  248. GCC_QUERY_CONFIRM = 3,
  249. GCC_JOIN_INDICATION = 4,
  250. GCC_JOIN_CONFIRM = 5,
  251. GCC_INVITE_INDICATION = 6,
  252. GCC_INVITE_CONFIRM = 7,
  253. GCC_ADD_INDICATION = 8,
  254. GCC_ADD_CONFIRM = 9,
  255. GCC_LOCK_INDICATION = 10,
  256. GCC_LOCK_CONFIRM = 11,
  257. GCC_UNLOCK_INDICATION = 12,
  258. GCC_UNLOCK_CONFIRM = 13,
  259. GCC_LOCK_REPORT_INDICATION = 14,
  260. GCC_DISCONNECT_INDICATION = 15,
  261. GCC_DISCONNECT_CONFIRM = 16,
  262. GCC_TERMINATE_INDICATION = 17,
  263. GCC_TERMINATE_CONFIRM = 18,
  264. GCC_EJECT_USER_INDICATION = 19,
  265. GCC_EJECT_USER_CONFIRM = 20,
  266. GCC_TRANSFER_INDICATION = 21,
  267. GCC_TRANSFER_CONFIRM = 22,
  268. GCC_APPLICATION_INVOKE_INDICATION = 23, /* SHARED CALLBACK */
  269. GCC_APPLICATION_INVOKE_CONFIRM = 24, /* SHARED CALLBACK */
  270. GCC_SUB_INITIALIZED_INDICATION = 25,
  271. /* Conference Roster related callbacks */
  272. GCC_ANNOUNCE_PRESENCE_CONFIRM = 26,
  273. GCC_ROSTER_REPORT_INDICATION = 27, /* SHARED CALLBACK */
  274. GCC_ROSTER_INQUIRE_CONFIRM = 28, /* SHARED CALLBACK */
  275. /* Conductorship related callbacks */
  276. GCC_CONDUCT_ASSIGN_INDICATION = 29, /* SHARED CALLBACK */
  277. GCC_CONDUCT_ASSIGN_CONFIRM = 30,
  278. GCC_CONDUCT_RELEASE_INDICATION = 31, /* SHARED CALLBACK */
  279. GCC_CONDUCT_RELEASE_CONFIRM = 32,
  280. GCC_CONDUCT_PLEASE_INDICATION = 33,
  281. GCC_CONDUCT_PLEASE_CONFIRM = 34,
  282. GCC_CONDUCT_GIVE_INDICATION = 35,
  283. GCC_CONDUCT_GIVE_CONFIRM = 36,
  284. GCC_CONDUCT_INQUIRE_CONFIRM = 37, /* SHARED CALLBACK */
  285. GCC_CONDUCT_ASK_INDICATION = 38,
  286. GCC_CONDUCT_ASK_CONFIRM = 39,
  287. GCC_CONDUCT_GRANT_INDICATION = 40, /* SHARED CALLBACK */
  288. GCC_CONDUCT_GRANT_CONFIRM = 41,
  289. /* Miscellaneous Node Controller callbacks */
  290. GCC_TIME_REMAINING_INDICATION = 42,
  291. GCC_TIME_REMAINING_CONFIRM = 43,
  292. GCC_TIME_INQUIRE_INDICATION = 44,
  293. GCC_TIME_INQUIRE_CONFIRM = 45,
  294. GCC_CONFERENCE_EXTEND_INDICATION = 46,
  295. GCC_CONFERENCE_EXTEND_CONFIRM = 47,
  296. GCC_ASSISTANCE_INDICATION = 48,
  297. GCC_ASSISTANCE_CONFIRM = 49,
  298. GCC_TEXT_MESSAGE_INDICATION = 50,
  299. GCC_TEXT_MESSAGE_CONFIRM = 51,
  300. /***************** USER APPLICATION CALLBACKS *******************/
  301. /* Application Roster related callbacks */
  302. GCC_PERMIT_TO_ENROLL_INDICATION = 52,
  303. GCC_ENROLL_CONFIRM = 53,
  304. GCC_APP_ROSTER_REPORT_INDICATION = 54, /* SHARED CALLBACK */
  305. GCC_APP_ROSTER_INQUIRE_CONFIRM = 55, /* SHARED CALLBACK */
  306. /* Application Registry related callbacks */
  307. GCC_REGISTER_CHANNEL_CONFIRM = 56,
  308. GCC_ASSIGN_TOKEN_CONFIRM = 57,
  309. GCC_RETRIEVE_ENTRY_CONFIRM = 58,
  310. GCC_DELETE_ENTRY_CONFIRM = 59,
  311. GCC_SET_PARAMETER_CONFIRM = 60,
  312. GCC_MONITOR_INDICATION = 61,
  313. GCC_MONITOR_CONFIRM = 62,
  314. GCC_ALLOCATE_HANDLE_CONFIRM = 63,
  315. /****************** NON-Standard Primitives **********************/
  316. GCC_PERMIT_TO_ANNOUNCE_PRESENCE = 100, /* Node Controller Callback */
  317. GCC_CONNECTION_BROKEN_INDICATION = 101, /* Node Controller Callback */
  318. GCC_FATAL_ERROR_SAP_REMOVED = 102, /* Application Callback */
  319. GCC_STATUS_INDICATION = 103, /* Node Controller Callback */
  320. GCC_TRANSPORT_STATUS_INDICATION = 104 /* Node Controller Callback */
  321. } GCCMessageType;
  322. /*
  323. * These structures are used to hold the information included for the
  324. * various callback messages. In the case where these structures are used for
  325. * callbacks, the address of the structure is passed as the only parameter.
  326. */
  327. /*
  328. * GCC_CREATE_INDICATION
  329. *
  330. * Union Choice:
  331. * CreateIndicationMessage
  332. * This is a pointer to a structure that contains all necessary
  333. * information about the new conference that is about to be created.
  334. */
  335. typedef struct
  336. {
  337. GCCConferenceName conference_name;
  338. GCCConferenceID conference_id;
  339. GCCPassword FAR *convener_password; /* optional */
  340. GCCPassword FAR *password; /* optional */
  341. T120Boolean conference_is_locked;
  342. T120Boolean conference_is_listed;
  343. T120Boolean conference_is_conductible;
  344. GCCTerminationMethod termination_method;
  345. GCCConferencePrivileges FAR *conductor_privilege_list; /* optional */
  346. GCCConferencePrivileges FAR *conducted_mode_privilege_list;/* optional */
  347. GCCConferencePrivileges FAR *non_conducted_privilege_list; /* optional */
  348. GCCUnicodeString conference_descriptor; /* optional */
  349. GCCUnicodeString caller_identifier; /* optional */
  350. TransportAddress calling_address; /* optional */
  351. TransportAddress called_address; /* optional */
  352. DomainParameters FAR *domain_parameters; /* optional */
  353. unsigned short number_of_user_data_members;
  354. GCCUserData FAR * FAR *user_data_list; /* optional */
  355. ConnectionHandle connection_handle;
  356. PhysicalHandle physical_handle;
  357. } CreateIndicationMessage;
  358. /*
  359. * GCC_DISCONNECT_INDICATION
  360. *
  361. * Union Choice:
  362. * DisconnectIndicationMessage
  363. */
  364. typedef struct
  365. {
  366. GCCConferenceID conference_id;
  367. GCCReason reason;
  368. UserID disconnected_node_id;
  369. } DisconnectIndicationMessage;
  370. /*
  371. * GCC_TERMINATE_INDICATION
  372. *
  373. * Union Choice:
  374. * TerminateIndicationMessage
  375. */
  376. typedef struct
  377. {
  378. GCCConferenceID conference_id;
  379. UserID requesting_node_id;
  380. GCCReason reason;
  381. } TerminateIndicationMessage;
  382. /*
  383. * GCCMessage
  384. * This structure defines the message that is passed from GCC to either
  385. * the node controller or a user application when an indication or
  386. * confirm occurs.
  387. */
  388. typedef struct
  389. {
  390. GCCMessageType message_type;
  391. void FAR *user_defined;
  392. union {
  393. CreateIndicationMessage create_indication;
  394. DisconnectIndicationMessage disconnect_indication;
  395. TerminateIndicationMessage terminate_indication;
  396. } u;
  397. } GCCMessage;
  398. /*
  399. * This is the definition for the GCC callback function. Applications
  400. * writing callback routines should NOT use the typedef to define their
  401. * functions. These should be explicitly defined the way that the
  402. * typedef is defined.
  403. */
  404. #define GCC_CALLBACK_NOT_PROCESSED 0
  405. #define GCC_CALLBACK_PROCESSED 1
  406. typedef T120Boolean (CALLBACK *GCCCallBack) (GCCMessage FAR *gcc_message);
  407. /*
  408. ** Typedef for a GCC Character string. This typedef is used throughout GCC for
  409. ** storing variable length, NULL terminated, single byte character strings.
  410. */
  411. typedef unsigned char GCCCharacter;
  412. typedef GCCCharacter FAR *GCCCharacterString;
  413. /*
  414. ** Typdef for GCC version which is used when registering the node controller
  415. ** or an application.
  416. */
  417. typedef struct
  418. {
  419. unsigned short major_version;
  420. unsigned short minor_version;
  421. } GCCVersion;
  422. /*
  423. ** GCCNonStandardParameter
  424. ** This structure is used within the NetworkAddress typedef and
  425. ** the NetworkService typedef defined below.
  426. */
  427. typedef struct
  428. {
  429. GCCObjectKey object_key;
  430. GCCOctetString parameter_data;
  431. } GCCNonStandardParameter;
  432. /*
  433. ** GCCNetworkAddress
  434. ** The following block of structures defines the Network Address as defined
  435. ** by T.124. Most of these structures were taken almost verbatim from the
  436. ** ASN.1 interface file. Since I'm not really sure what most of this stuff
  437. ** is for I really didn't know how to simplify it.
  438. */
  439. typedef struct
  440. {
  441. T120Boolean speech;
  442. T120Boolean voice_band;
  443. T120Boolean digital_56k;
  444. T120Boolean digital_64k;
  445. T120Boolean digital_128k;
  446. T120Boolean digital_192k;
  447. T120Boolean digital_256k;
  448. T120Boolean digital_320k;
  449. T120Boolean digital_384k;
  450. T120Boolean digital_512k;
  451. T120Boolean digital_768k;
  452. T120Boolean digital_1152k;
  453. T120Boolean digital_1472k;
  454. T120Boolean digital_1536k;
  455. T120Boolean digital_1920k;
  456. T120Boolean packet_mode;
  457. T120Boolean frame_mode;
  458. T120Boolean atm;
  459. } GCCTransferModes;
  460. #define MAXIMUM_DIAL_STRING_LENGTH 17
  461. typedef char GCCDialingString[MAXIMUM_DIAL_STRING_LENGTH];
  462. typedef struct
  463. {
  464. unsigned short length;
  465. unsigned short FAR *value;
  466. } GCCExtraDialingString;
  467. typedef struct
  468. {
  469. T120Boolean telephony3kHz;
  470. T120Boolean telephony7kHz;
  471. T120Boolean videotelephony;
  472. T120Boolean videoconference;
  473. T120Boolean audiographic;
  474. T120Boolean audiovisual;
  475. T120Boolean multimedia;
  476. } GCCHighLayerCompatibility;
  477. typedef struct
  478. {
  479. GCCTransferModes transfer_modes;
  480. GCCDialingString international_number;
  481. GCCCharacterString sub_address_string; /* optional */
  482. GCCExtraDialingString FAR *extra_dialing_string; /* optional */
  483. GCCHighLayerCompatibility FAR *high_layer_compatibility; /* optional */
  484. } GCCAggregatedChannelAddress;
  485. #define MAXIMUM_NSAP_ADDRESS_SIZE 20
  486. typedef struct
  487. {
  488. struct
  489. {
  490. unsigned short length;
  491. unsigned char value[MAXIMUM_NSAP_ADDRESS_SIZE];
  492. } nsap_address;
  493. GCCOctetString FAR *transport_selector; /* optional */
  494. } GCCTransportConnectionAddress;
  495. typedef enum
  496. {
  497. GCC_AGGREGATED_CHANNEL_ADDRESS = 1,
  498. GCC_TRANSPORT_CONNECTION_ADDRESS = 2,
  499. GCC_NONSTANDARD_NETWORK_ADDRESS = 3
  500. } GCCNetworkAddressType;
  501. typedef struct
  502. {
  503. GCCNetworkAddressType network_address_type;
  504. union
  505. {
  506. GCCAggregatedChannelAddress aggregated_channel_address;
  507. GCCTransportConnectionAddress transport_connection_address;
  508. GCCNonStandardParameter non_standard_network_address;
  509. } u;
  510. } GCCNetworkAddress;
  511. /*
  512. * This section defines the valid return values from GCC function calls. Do
  513. * not confuse this return value with the Result and Reason values defined
  514. * by T.124 (which are discussed later). These values are returned directly
  515. * from the call to the API entry point, letting you know whether or not the
  516. * request for service was successfully invoked. The Result and Reason
  517. * codes are issued as part of an indication or confirm which occurs
  518. * asynchronously to the call that causes it.
  519. */
  520. typedef enum
  521. {
  522. GCC_NO_ERROR = 0,
  523. GCC_NOT_INITIALIZED = 1,
  524. GCC_ALREADY_INITIALIZED = 2,
  525. GCC_ALLOCATION_FAILURE = 3,
  526. GCC_NO_SUCH_APPLICATION = 4,
  527. GCC_INVALID_CONFERENCE = 5,
  528. GCC_CONFERENCE_ALREADY_EXISTS = 6,
  529. GCC_NO_TRANSPORT_STACKS = 7,
  530. GCC_INVALID_ADDRESS_PREFIX = 8,
  531. GCC_INVALID_TRANSPORT = 9,
  532. GCC_FAILURE_CREATING_PACKET = 10,
  533. GCC_QUERY_REQUEST_OUTSTANDING = 11,
  534. GCC_INVALID_QUERY_TAG = 12,
  535. GCC_FAILURE_CREATING_DOMAIN = 13,
  536. GCC_CONFERENCE_NOT_ESTABLISHED = 14,
  537. GCC_INVALID_PASSWORD = 15,
  538. GCC_INVALID_MCS_USER_ID = 16,
  539. GCC_INVALID_JOIN_RESPONSE_TAG = 17,
  540. GCC_TRANSPORT_ALREADY_LOADED = 18,
  541. GCC_TRANSPORT_BUSY = 19,
  542. GCC_TRANSPORT_NOT_READY = 20,
  543. GCC_DOMAIN_PARAMETERS_UNACCEPTABLE = 21,
  544. GCC_APP_NOT_ENROLLED = 22,
  545. GCC_NO_GIVE_RESPONSE_PENDING = 23,
  546. GCC_BAD_NETWORK_ADDRESS_TYPE = 24,
  547. GCC_BAD_OBJECT_KEY = 25,
  548. GCC_INVALID_CONFERENCE_NAME = 26,
  549. GCC_INVALID_CONFERENCE_MODIFIER = 27,
  550. GCC_BAD_SESSION_KEY = 28,
  551. GCC_BAD_CAPABILITY_ID = 29,
  552. GCC_BAD_REGISTRY_KEY = 30,
  553. GCC_BAD_NUMBER_OF_APES = 31,
  554. GCC_BAD_NUMBER_OF_HANDLES = 32,
  555. GCC_ALREADY_REGISTERED = 33,
  556. GCC_APPLICATION_NOT_REGISTERED = 34,
  557. GCC_BAD_CONNECTION_HANDLE_POINTER = 35,
  558. GCC_INVALID_NODE_TYPE = 36,
  559. GCC_INVALID_ASYMMETRY_INDICATOR = 37,
  560. GCC_INVALID_NODE_PROPERTIES = 38,
  561. GCC_BAD_USER_DATA = 39,
  562. GCC_BAD_NETWORK_ADDRESS = 40,
  563. GCC_INVALID_ADD_RESPONSE_TAG = 41,
  564. GCC_BAD_ADDING_NODE = 42,
  565. GCC_FAILURE_ATTACHING_TO_MCS = 43,
  566. GCC_INVALID_TRANSPORT_ADDRESS = 44,
  567. GCC_INVALID_PARAMETER = 45,
  568. GCC_COMMAND_NOT_SUPPORTED = 46,
  569. GCC_UNSUPPORTED_ERROR = 47,
  570. GCC_TRANSMIT_BUFFER_FULL = 48,
  571. GCC_INVALID_CHANNEL = 49,
  572. GCC_INVALID_MODIFICATION_RIGHTS = 50,
  573. GCC_INVALID_REGISTRY_ITEM = 51,
  574. GCC_INVALID_NODE_NAME = 52,
  575. GCC_INVALID_PARTICIPANT_NAME = 53,
  576. GCC_INVALID_SITE_INFORMATION = 54,
  577. GCC_INVALID_NON_COLLAPSED_CAP = 55,
  578. GCC_INVALID_ALTERNATIVE_NODE_ID = 56,
  579. LAST_GCC_ERROR = GCC_INVALID_ALTERNATIVE_NODE_ID
  580. } GCCError, *PGCCError;
  581. #if DBG
  582. // Debug print levels
  583. typedef enum
  584. {
  585. DBNONE,
  586. DBERROR,
  587. DBWARN,
  588. DBNORMAL,
  589. DBDEBUG,
  590. DbDETAIL,
  591. DBFLOW,
  592. DBALL
  593. } DBPRINTLEVEL;
  594. #endif // Typedefs
  595. //---------------------------------------------------------------------------
  596. // Prototypes
  597. //---------------------------------------------------------------------------
  598. GCCError
  599. APIENTRY
  600. GCCRegisterNodeControllerApplication (
  601. GCCCallBack control_sap_callback,
  602. void FAR *user_defined,
  603. GCCVersion gcc_version_requested,
  604. unsigned short FAR *initialization_flags,
  605. unsigned long FAR *application_id,
  606. unsigned short FAR *capabilities_mask,
  607. GCCVersion FAR *gcc_high_version,
  608. GCCVersion FAR *gcc_version);
  609. GCCError
  610. APIENTRY
  611. GCCCleanup(ULONG application_id);
  612. GCCError
  613. APIENTRY
  614. GCCLoadTransport(
  615. char FAR *transport_identifier,
  616. char FAR *transport_file_name);
  617. GCCError
  618. APIENTRY
  619. GCCConferenceCreateResponse(
  620. GCCNumericString conference_modifier,
  621. DomainHandle hDomain,
  622. T120Boolean use_password_in_the_clear,
  623. DomainParameters FAR * domain_parameters,
  624. unsigned short number_of_network_addresses,
  625. GCCNetworkAddress FAR * FAR *local_network_address_list,
  626. unsigned short number_of_user_data_members,
  627. GCCUserData FAR * FAR * user_data_list,
  628. GCCResult result);
  629. GCCError
  630. APIENTRY
  631. GCCConferenceInit(
  632. HANDLE hIca,
  633. HANDLE hStack,
  634. PVOID pvContext,
  635. DomainHandle *phDomain);
  636. GCCError
  637. APIENTRY
  638. GCCConferenceTerminateRequest(
  639. HANDLE hIca,
  640. DomainHandle hDomain,
  641. ConnectionHandle hConnection,
  642. GCCReason reason);
  643. #if DBG
  644. EXTERN_C VOID GCCSetPrintLevel(IN DBPRINTLEVEL DbPrintLevel);
  645. #else
  646. #define GCCSetPrintLevel(_x_)
  647. #endif
  648. #endif // _GCC_H_