270 lines
10 KiB
C
270 lines
10 KiB
C
|
#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_
|
|||
|
|
|||
|
|