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.
 
 
 
 
 
 

270 lines
11 KiB

#ifndef _INODECNT_H_
#define _INODECNT_H_
typedef void * REQUEST_HANDLE;
typedef REQUEST_HANDLE * PREQUEST_HANDLE;
typedef void * ROSTER_DATA_HANDLE;
typedef struct T120PRODUCTVERSION
{
DWORD dwVersion;
DWORD dwExpirationDate; // (year<<16)+(month<<8)+day
DWORD dwInformation;
DWORD dwEarliestPossibleVersion;
DWORD dwMaxDifference;
DWORD dwReserved;
} T120PRODUCTVERSION, * PT120PRODUCTVERSION;
typedef struct USERDATAINFO
{
UINT cbData;
PVOID pData;
GUID* pGUID;
} USERDATAINFO, * PUSERDATAINFO;
typedef struct NC_ROSTER_NODE_ENTRY
{
PWSTR pwszNodeName;
UINT uNodeID;
UINT uSuperiorNodeID;
BOOL fMCU;
ROSTER_DATA_HANDLE hUserData;
} NC_ROSTER_NODE_ENTRY, * PNC_ROSTER_NODE_ENTRY;
typedef struct NC_ROSTER
{
UINT uNumNodes;
PWSTR pwszConferenceName;
UINT_PTR uConferenceID;
UINT uLocalNodeID;
NC_ROSTER_NODE_ENTRY nodes[1];
} NC_ROSTER, * PNC_ROSTER;
#undef INTERFACE
#define INTERFACE IDataConference
DECLARE_INTERFACE(IDataConference)
{
STDMETHOD_(void, ReleaseInterface)( THIS ) PURE;
STDMETHOD_(UINT_PTR, GetConferenceID) ( THIS ) PURE;
STDMETHOD(Leave) ( THIS ) PURE;
STDMETHOD(EjectUser) ( THIS_
UINT uNodeID) PURE;
STDMETHOD(Invite) ( THIS_
LPCSTR pcszAddress,
USERDATAINFO aUserDataInfoEntries[],
UINT cUserDataEntries,
PREQUEST_HANDLE phRequest) PURE;
STDMETHOD(InviteResponse) ( THIS_
BOOL fResponse) PURE;
STDMETHOD(JoinResponse) ( THIS_
BOOL fResponse) PURE;
STDMETHOD(LaunchGuid) ( THIS_
const GUID* pcGUID,
UINT auNodeIDs[],
UINT cNodes) PURE;
STDMETHOD(SetUserData)( THIS_
const GUID* pcGUID,
UINT cbData,
LPVOID pvData) PURE;
STDMETHOD_(BOOL, IsSecure) ( THIS_) PURE;
STDMETHOD(UpdateUserData) ( THIS ) PURE;
STDMETHOD(GetLocalAddressList) ( THIS_
LPWSTR pwszBuffer,
UINT cchBuffer) PURE;
STDMETHOD(CancelInvite) ( THIS_
REQUEST_HANDLE hRequest) PURE;
STDMETHOD(SetSecurity) ( THIS_
BOOL fSecure) PURE;
STDMETHOD(GetCred) ( THIS_
PBYTE* ppbCred,
DWORD* pcbCred) PURE;
STDMETHOD_(UINT, GetParentNodeID) ( THIS ) PURE;
};
typedef IDataConference * CONF_HANDLE;
typedef CONF_HANDLE * PCONF_HANDLE;
#undef INTERFACE
#define INTERFACE INodeControllerEvents
DECLARE_INTERFACE(INodeControllerEvents)
{
STDMETHOD(OnConferenceStarted)( THIS_
CONF_HANDLE hConference,
HRESULT hResult) PURE;
STDMETHOD(OnConferenceEnded)( THIS_
CONF_HANDLE hConference) PURE;
STDMETHOD(OnRosterChanged)( THIS_
CONF_HANDLE hConference,
PNC_ROSTER pRoster) PURE;
STDMETHOD(OnIncomingInviteRequest)( THIS_
CONF_HANDLE hConference,
PCWSTR pcwszNodeName,
PT120PRODUCTVERSION pRequestorVersion,
PUSERDATAINFO pUserDataInfoEntries,
UINT cUserDataEntries,
BOOL fSecure) PURE;
STDMETHOD(OnIncomingJoinRequest)( THIS_
CONF_HANDLE hConference,
PCWSTR pcwszNodeName,
PT120PRODUCTVERSION pRequestorVersion,
PUSERDATAINFO pUserDataInfoEntries,
UINT cUserDataEntries) PURE;
STDMETHOD(OnQueryRemoteResult)( THIS_
PVOID pvCallerContext,
HRESULT hResult,
BOOL fMCU,
PWSTR* ppwszConferenceNames,
PT120PRODUCTVERSION pVersion,
PWSTR* ppwszConfDescriptors) PURE;
STDMETHOD(OnInviteResult)( THIS_
CONF_HANDLE hConference,
REQUEST_HANDLE hRequest,
UINT uNodeID,
HRESULT hResult,
PT120PRODUCTVERSION pVersion) PURE;
STDMETHOD(OnUpdateUserData)( THIS_
CONF_HANDLE hConference) PURE;
};
#undef INTERFACE
#define INTERFACE INodeController
DECLARE_INTERFACE(INodeController)
{
STDMETHOD_(void, ReleaseInterface)( THIS_) PURE;
STDMETHOD(CheckVersion)( THIS_
PT120PRODUCTVERSION pRemoteVersion) PURE;
STDMETHOD(QueryRemote)( THIS_
LPVOID pCallerContext,
LPCSTR pcszAddress,
BOOL fSecure,
BOOL fIsConferenceActive) PURE;
STDMETHOD(CancelQueryRemote)( THIS_
LPVOID pCallerContext) PURE;
STDMETHOD(CreateConference)( THIS_
LPCWSTR pcwszConferenceName,
LPCWSTR pcwszPassword,
PBYTE pbHashedPassword,
DWORD cbHashedPassword,
BOOL fSecure,
PCONF_HANDLE phConference) PURE;
STDMETHOD(JoinConference)( THIS_
LPCWSTR pcwszConferenceName,
LPCWSTR pcwszPassword,
LPCSTR pcszAddress,
BOOL fSecure,
PUSERDATAINFO pUserDataInfoEntries,
UINT cUserDataEntries,
PCONF_HANDLE phConference) PURE;
STDMETHOD(GetUserData)( THIS_
ROSTER_DATA_HANDLE hUserData,
const GUID* pcGUID,
PUINT pcbData,
LPVOID* ppvData) PURE;
STDMETHOD_(UINT, GetPluggableConnID) (THIS_
LPCSTR pcszNodeAddress) PURE;
};
HRESULT WINAPI T120_CreateNodeController(INodeController **, INodeControllerEvents *);
BOOL WINAPI T120_GetSecurityInfoFromGCCID(DWORD dwGCCID, PBYTE pInfo, PDWORD pcbInfo);
DWORD WINAPI T120_TprtSecCtrl(DWORD dwCode, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
//
// Return codes
//
#define NC_ERR_FAC 0xfe00
#define NC_E(e) (0x81000000UL | NC_ERR_FAC | (ULONG) (e))
enum UI_RC_ERRORS
{
UI_RC_ALREADY_IN_CONFERENCE = NC_E(0x01),
UI_RC_CONFERENCE_ALREADY_EXISTS,
UI_RC_INVALID_PASSWORD,
UI_RC_NO_CONFERENCE_NAME,
UI_RC_T120_FAILURE,
UI_RC_UNKNOWN_CONFERENCE,
UI_RC_BAD_TRANSPORT_NAME,
UI_RC_USER_REJECTED,
LAST_RC_GCC_MAPPED_ERROR = UI_RC_USER_REJECTED,
UI_RC_T120_ALREADY_INITIALIZED,
UI_RC_BAD_ADDRESS,
UI_RC_NO_ADDRESS,
UI_RC_NO_SUCH_CONFERENCE,
UI_RC_CONFERENCE_CREATE_FAILED,
UI_RC_BAD_PARAMETER,
UI_RC_OUT_OF_MEMORY,
UI_RC_CALL_GOING_DOWN,
UI_RC_CALL_FAILED,
UI_NO_SUCH_CONFERENCE,
UI_RC_CONFERENCE_GOING_DOWN,
UI_RC_INVALID_REQUEST,
UI_RC_USER_DISCONNECTED,
UI_RC_EXITING_CORE_UI,
UI_RC_NO_NODE_NAME,
UI_RC_INVALID_TRANSPORT_SETTINGS,
UI_RC_REGISTER_CPI_FAILURE,
UI_RC_CMP_FAILURE,
UI_RC_TRANSPORT_DISABLED,
UI_RC_TRANSPORT_FAILED,
UI_RC_NOT_SUPPORTED,
UI_RC_NOT_SUPPORTED_IN_BACKLEVEL,
UI_RC_CONFERENCE_NOT_READY,
UI_RC_NO_SUCH_USER_DATA,
UI_RC_INTERNAL_ERROR,
UI_RC_VERSION_REMOTE_INCOMPATIBLE,
UI_RC_VERSION_LOCAL_INCOMPATIBLE,
UI_RC_VERSION_REMOTE_EXPIRED,
UI_RC_VERSION_LOCAL_UPGRADE_RECOMMENDED,
UI_RC_VERSION_REMOTE_UPGRADE_RECOMMENDED,
UI_RC_VERSION_REMOTE_OLDER,
UI_RC_VERSION_REMOTE_NEWER,
UI_RC_BACKLEVEL_LOADED,
UI_RC_NULL_MODEM_CONNECTION,
UI_RC_CANCELED,
UI_RC_T120_REMOTE_NO_SECURITY,
UI_RC_T120_REMOTE_DOWNLEVEL_SECURITY,
UI_RC_T120_REMOTE_REQUIRE_SECURITY,
UI_RC_T120_SECURITY_FAILED,
UI_RC_T120_AUTHENTICATION_FAILED,
UI_RC_NO_WINSOCK,
//
// Internal return codes
//
UI_RC_START_PRIMARY = NC_E(0x81),
UI_RC_START_ALTERNATE = NC_E(0x82)
};
#endif // _INODECNT_H_