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.

269 lines
11 KiB

  1. #ifndef _INODECNT_H_
  2. #define _INODECNT_H_
  3. typedef void * REQUEST_HANDLE;
  4. typedef REQUEST_HANDLE * PREQUEST_HANDLE;
  5. typedef void * ROSTER_DATA_HANDLE;
  6. typedef struct T120PRODUCTVERSION
  7. {
  8. DWORD dwVersion;
  9. DWORD dwExpirationDate; // (year<<16)+(month<<8)+day
  10. DWORD dwInformation;
  11. DWORD dwEarliestPossibleVersion;
  12. DWORD dwMaxDifference;
  13. DWORD dwReserved;
  14. } T120PRODUCTVERSION, * PT120PRODUCTVERSION;
  15. typedef struct USERDATAINFO
  16. {
  17. UINT cbData;
  18. PVOID pData;
  19. GUID* pGUID;
  20. } USERDATAINFO, * PUSERDATAINFO;
  21. typedef struct NC_ROSTER_NODE_ENTRY
  22. {
  23. PWSTR pwszNodeName;
  24. UINT uNodeID;
  25. UINT uSuperiorNodeID;
  26. BOOL fMCU;
  27. ROSTER_DATA_HANDLE hUserData;
  28. } NC_ROSTER_NODE_ENTRY, * PNC_ROSTER_NODE_ENTRY;
  29. typedef struct NC_ROSTER
  30. {
  31. UINT uNumNodes;
  32. PWSTR pwszConferenceName;
  33. UINT_PTR uConferenceID;
  34. UINT uLocalNodeID;
  35. NC_ROSTER_NODE_ENTRY nodes[1];
  36. } NC_ROSTER, * PNC_ROSTER;
  37. #undef INTERFACE
  38. #define INTERFACE IDataConference
  39. DECLARE_INTERFACE(IDataConference)
  40. {
  41. STDMETHOD_(void, ReleaseInterface)( THIS ) PURE;
  42. STDMETHOD_(UINT_PTR, GetConferenceID) ( THIS ) PURE;
  43. STDMETHOD(Leave) ( THIS ) PURE;
  44. STDMETHOD(EjectUser) ( THIS_
  45. UINT uNodeID) PURE;
  46. STDMETHOD(Invite) ( THIS_
  47. LPCSTR pcszAddress,
  48. USERDATAINFO aUserDataInfoEntries[],
  49. UINT cUserDataEntries,
  50. PREQUEST_HANDLE phRequest) PURE;
  51. STDMETHOD(InviteResponse) ( THIS_
  52. BOOL fResponse) PURE;
  53. STDMETHOD(JoinResponse) ( THIS_
  54. BOOL fResponse) PURE;
  55. STDMETHOD(LaunchGuid) ( THIS_
  56. const GUID* pcGUID,
  57. UINT auNodeIDs[],
  58. UINT cNodes) PURE;
  59. STDMETHOD(SetUserData)( THIS_
  60. const GUID* pcGUID,
  61. UINT cbData,
  62. LPVOID pvData) PURE;
  63. STDMETHOD_(BOOL, IsSecure) ( THIS_) PURE;
  64. STDMETHOD(UpdateUserData) ( THIS ) PURE;
  65. STDMETHOD(GetLocalAddressList) ( THIS_
  66. LPWSTR pwszBuffer,
  67. UINT cchBuffer) PURE;
  68. STDMETHOD(CancelInvite) ( THIS_
  69. REQUEST_HANDLE hRequest) PURE;
  70. STDMETHOD(SetSecurity) ( THIS_
  71. BOOL fSecure) PURE;
  72. STDMETHOD(GetCred) ( THIS_
  73. PBYTE* ppbCred,
  74. DWORD* pcbCred) PURE;
  75. STDMETHOD_(UINT, GetParentNodeID) ( THIS ) PURE;
  76. };
  77. typedef IDataConference * CONF_HANDLE;
  78. typedef CONF_HANDLE * PCONF_HANDLE;
  79. #undef INTERFACE
  80. #define INTERFACE INodeControllerEvents
  81. DECLARE_INTERFACE(INodeControllerEvents)
  82. {
  83. STDMETHOD(OnConferenceStarted)( THIS_
  84. CONF_HANDLE hConference,
  85. HRESULT hResult) PURE;
  86. STDMETHOD(OnConferenceEnded)( THIS_
  87. CONF_HANDLE hConference) PURE;
  88. STDMETHOD(OnRosterChanged)( THIS_
  89. CONF_HANDLE hConference,
  90. PNC_ROSTER pRoster) PURE;
  91. STDMETHOD(OnIncomingInviteRequest)( THIS_
  92. CONF_HANDLE hConference,
  93. PCWSTR pcwszNodeName,
  94. PT120PRODUCTVERSION pRequestorVersion,
  95. PUSERDATAINFO pUserDataInfoEntries,
  96. UINT cUserDataEntries,
  97. BOOL fSecure) PURE;
  98. STDMETHOD(OnIncomingJoinRequest)( THIS_
  99. CONF_HANDLE hConference,
  100. PCWSTR pcwszNodeName,
  101. PT120PRODUCTVERSION pRequestorVersion,
  102. PUSERDATAINFO pUserDataInfoEntries,
  103. UINT cUserDataEntries) PURE;
  104. STDMETHOD(OnQueryRemoteResult)( THIS_
  105. PVOID pvCallerContext,
  106. HRESULT hResult,
  107. BOOL fMCU,
  108. PWSTR* ppwszConferenceNames,
  109. PT120PRODUCTVERSION pVersion,
  110. PWSTR* ppwszConfDescriptors) PURE;
  111. STDMETHOD(OnInviteResult)( THIS_
  112. CONF_HANDLE hConference,
  113. REQUEST_HANDLE hRequest,
  114. UINT uNodeID,
  115. HRESULT hResult,
  116. PT120PRODUCTVERSION pVersion) PURE;
  117. STDMETHOD(OnUpdateUserData)( THIS_
  118. CONF_HANDLE hConference) PURE;
  119. };
  120. #undef INTERFACE
  121. #define INTERFACE INodeController
  122. DECLARE_INTERFACE(INodeController)
  123. {
  124. STDMETHOD_(void, ReleaseInterface)( THIS_) PURE;
  125. STDMETHOD(CheckVersion)( THIS_
  126. PT120PRODUCTVERSION pRemoteVersion) PURE;
  127. STDMETHOD(QueryRemote)( THIS_
  128. LPVOID pCallerContext,
  129. LPCSTR pcszAddress,
  130. BOOL fSecure,
  131. BOOL fIsConferenceActive) PURE;
  132. STDMETHOD(CancelQueryRemote)( THIS_
  133. LPVOID pCallerContext) PURE;
  134. STDMETHOD(CreateConference)( THIS_
  135. LPCWSTR pcwszConferenceName,
  136. LPCWSTR pcwszPassword,
  137. PBYTE pbHashedPassword,
  138. DWORD cbHashedPassword,
  139. BOOL fSecure,
  140. PCONF_HANDLE phConference) PURE;
  141. STDMETHOD(JoinConference)( THIS_
  142. LPCWSTR pcwszConferenceName,
  143. LPCWSTR pcwszPassword,
  144. LPCSTR pcszAddress,
  145. BOOL fSecure,
  146. PUSERDATAINFO pUserDataInfoEntries,
  147. UINT cUserDataEntries,
  148. PCONF_HANDLE phConference) PURE;
  149. STDMETHOD(GetUserData)( THIS_
  150. ROSTER_DATA_HANDLE hUserData,
  151. const GUID* pcGUID,
  152. PUINT pcbData,
  153. LPVOID* ppvData) PURE;
  154. STDMETHOD_(UINT, GetPluggableConnID) (THIS_
  155. LPCSTR pcszNodeAddress) PURE;
  156. };
  157. HRESULT WINAPI T120_CreateNodeController(INodeController **, INodeControllerEvents *);
  158. BOOL WINAPI T120_GetSecurityInfoFromGCCID(DWORD dwGCCID, PBYTE pInfo, PDWORD pcbInfo);
  159. DWORD WINAPI T120_TprtSecCtrl(DWORD dwCode, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
  160. //
  161. // Return codes
  162. //
  163. #define NC_ERR_FAC 0xfe00
  164. #define NC_E(e) (0x81000000UL | NC_ERR_FAC | (ULONG) (e))
  165. enum UI_RC_ERRORS
  166. {
  167. UI_RC_ALREADY_IN_CONFERENCE = NC_E(0x01),
  168. UI_RC_CONFERENCE_ALREADY_EXISTS,
  169. UI_RC_INVALID_PASSWORD,
  170. UI_RC_NO_CONFERENCE_NAME,
  171. UI_RC_T120_FAILURE,
  172. UI_RC_UNKNOWN_CONFERENCE,
  173. UI_RC_BAD_TRANSPORT_NAME,
  174. UI_RC_USER_REJECTED,
  175. LAST_RC_GCC_MAPPED_ERROR = UI_RC_USER_REJECTED,
  176. UI_RC_T120_ALREADY_INITIALIZED,
  177. UI_RC_BAD_ADDRESS,
  178. UI_RC_NO_ADDRESS,
  179. UI_RC_NO_SUCH_CONFERENCE,
  180. UI_RC_CONFERENCE_CREATE_FAILED,
  181. UI_RC_BAD_PARAMETER,
  182. UI_RC_OUT_OF_MEMORY,
  183. UI_RC_CALL_GOING_DOWN,
  184. UI_RC_CALL_FAILED,
  185. UI_NO_SUCH_CONFERENCE,
  186. UI_RC_CONFERENCE_GOING_DOWN,
  187. UI_RC_INVALID_REQUEST,
  188. UI_RC_USER_DISCONNECTED,
  189. UI_RC_EXITING_CORE_UI,
  190. UI_RC_NO_NODE_NAME,
  191. UI_RC_INVALID_TRANSPORT_SETTINGS,
  192. UI_RC_REGISTER_CPI_FAILURE,
  193. UI_RC_CMP_FAILURE,
  194. UI_RC_TRANSPORT_DISABLED,
  195. UI_RC_TRANSPORT_FAILED,
  196. UI_RC_NOT_SUPPORTED,
  197. UI_RC_NOT_SUPPORTED_IN_BACKLEVEL,
  198. UI_RC_CONFERENCE_NOT_READY,
  199. UI_RC_NO_SUCH_USER_DATA,
  200. UI_RC_INTERNAL_ERROR,
  201. UI_RC_VERSION_REMOTE_INCOMPATIBLE,
  202. UI_RC_VERSION_LOCAL_INCOMPATIBLE,
  203. UI_RC_VERSION_REMOTE_EXPIRED,
  204. UI_RC_VERSION_LOCAL_UPGRADE_RECOMMENDED,
  205. UI_RC_VERSION_REMOTE_UPGRADE_RECOMMENDED,
  206. UI_RC_VERSION_REMOTE_OLDER,
  207. UI_RC_VERSION_REMOTE_NEWER,
  208. UI_RC_BACKLEVEL_LOADED,
  209. UI_RC_NULL_MODEM_CONNECTION,
  210. UI_RC_CANCELED,
  211. UI_RC_T120_REMOTE_NO_SECURITY,
  212. UI_RC_T120_REMOTE_DOWNLEVEL_SECURITY,
  213. UI_RC_T120_REMOTE_REQUIRE_SECURITY,
  214. UI_RC_T120_SECURITY_FAILED,
  215. UI_RC_T120_AUTHENTICATION_FAILED,
  216. UI_RC_NO_WINSOCK,
  217. //
  218. // Internal return codes
  219. //
  220. UI_RC_START_PRIMARY = NC_E(0x81),
  221. UI_RC_START_ALTERNATE = NC_E(0x82)
  222. };
  223. #endif // _INODECNT_H_
  224.