windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/conf/calltocontext.h
2020-09-26 16:20:57 +08:00

714 lines
14 KiB
C++

#if !defined( calltoContext_h )
#define calltoContext_h
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
// Application Header Files. //
//--------------------------------------------------------------------------//
#include "callto.h"
#include "SDKInternal.h"
//--------------------------------------------------------------------------//
// interface IUIContext. //
//--------------------------------------------------------------------------//
class IUIContext
{
protected: // protected constructors --------------------------------//
IUIContext(){};
public: // public destructor ------------------------------------//
virtual
~IUIContext(){};
public: // public methods ----------------------------------------//
virtual
HRESULT
disambiguate
(
ICalltoCollection * const calltoCollection,
ICallto * const emptyCallto,
const ICallto ** const selectedCallto
) = 0;
}; // End of interface IUIContext.
//--------------------------------------------------------------------------//
// interface IMutableUIContext. //
//--------------------------------------------------------------------------//
class IMutableUIContext
{
protected: // protected constructors --------------------------------//
IMutableUIContext(){};
public: // public destructor ------------------------------------//
virtual
~IMutableUIContext(){};
public: // public methods ----------------------------------------//
virtual
void
set_parentWindow
(
const HWND window
) = 0;
virtual
void
set_callFlags
(
const DWORD callFlags
) = 0;
}; // End of interface IMutableUIContext.
//--------------------------------------------------------------------------//
// class CUIContext. //
//--------------------------------------------------------------------------//
class CUIContext: public IUIContext,
public IMutableUIContext
{
public: // public constructors ------------------------------------//
CUIContext();
public: // public destructor ------------------------------------//
virtual
~CUIContext();
public: // public methods (IUIContext) ------------------------//
virtual
HRESULT
disambiguate
(
ICalltoCollection * const calltoCollection,
ICallto * const emptyCallto,
const ICallto ** const callto
);
public: // public methods (IMutableUIContext) --------------------//
virtual
void
set_parentWindow
(
const HWND window
);
virtual
void
set_callFlags
(
const DWORD callFlags
);
private: // private members ----------------------------------------//
HWND m_parent;
DWORD m_callFlags;
}; // End of class CUIContext.
//--------------------------------------------------------------------------//
// interface IGatekeeperContext. //
//--------------------------------------------------------------------------//
class IGatekeeperContext
{
protected: // protected constructors --------------------------------//
IGatekeeperContext(){};
public: // public destructor ------------------------------------//
virtual
~IGatekeeperContext(){};
public: // public methods ----------------------------------------//
virtual
bool
isEnabled(void) const = 0;
virtual
const TCHAR *
get_ipAddress(void) const = 0;
}; // End of interface IGatekeeperContext.
//--------------------------------------------------------------------------//
// interface IMutableGatekeeperContext. //
//--------------------------------------------------------------------------//
class IMutableGatekeeperContext
{
protected: // protected constructors --------------------------------//
IMutableGatekeeperContext(){};
public: // public destructor ------------------------------------//
virtual
~IMutableGatekeeperContext(){};
public: // public methods ----------------------------------------//
virtual
void
set_enabled
(
const bool enabled
) = 0;
virtual
HRESULT
set_gatekeeperName
(
const TCHAR * const gatekeeperName
) = 0;
}; // End of interface IMutableGatekeeperContext.
//--------------------------------------------------------------------------//
// class CGatekeeperContext. //
//--------------------------------------------------------------------------//
class CGatekeeperContext: public IGatekeeperContext,
public IMutableGatekeeperContext
{
public: // public constructors ------------------------------------//
CGatekeeperContext();
public: // public destructor ------------------------------------//
virtual
~CGatekeeperContext();
public: // public methods (IGatekeeperContext) ----------------//
virtual
bool
isEnabled(void) const;
virtual
const TCHAR *
get_ipAddress(void) const;
public: // public methods (IMutableGatekeeperContext) ------------//
virtual
void
set_enabled
(
const bool enabled
);
virtual
HRESULT
set_gatekeeperName
(
const TCHAR * const gatekeeperName
);
private: // private methods ------------------------------------//
virtual
HRESULT
set_ipAddress
(
const TCHAR * const ipAddress
);
private: // private members ----------------------------------------//
bool m_enabled;
TCHAR * m_ipAddress;
}; // End of class CGatekeeperContext.
//--------------------------------------------------------------------------//
// interface IGatewayContext. //
//--------------------------------------------------------------------------//
class IGatewayContext
{
protected: // protected constructors --------------------------------//
IGatewayContext(){};
public: // public destructor ------------------------------------//
virtual
~IGatewayContext(){};
public: // public methods ----------------------------------------//
virtual
bool
isEnabled(void) const = 0;
virtual
const TCHAR *
get_ipAddress(void) const = 0;
}; // End of interface IGatewayContext.
//--------------------------------------------------------------------------//
// interface IMutableGatewayContext. //
//--------------------------------------------------------------------------//
class IMutableGatewayContext
{
protected: // protected constructors --------------------------------//
IMutableGatewayContext(){};
public: // public destructor ------------------------------------//
virtual
~IMutableGatewayContext(){};
public: // public methods ----------------------------------------//
virtual
void
set_enabled
(
const bool enabled
) = 0;
virtual
HRESULT
set_gatewayName
(
const TCHAR * const gatewayName
) = 0;
}; // End of interface IMutableGatewayContext.
//--------------------------------------------------------------------------//
// class CGatewayContext. //
//--------------------------------------------------------------------------//
class CGatewayContext: public IGatewayContext,
public IMutableGatewayContext
{
public: // public constructors ------------------------------------//
CGatewayContext();
public: // public destructor ------------------------------------//
virtual
~CGatewayContext();
public: // public methods (IGatewayContext) --------------------//
virtual
bool
isEnabled(void) const;
virtual
const TCHAR *
get_ipAddress(void) const;
public: // public methods (IMutableGatewayContext) ------------//
virtual
void
set_enabled
(
const bool enabled
);
virtual
HRESULT
set_gatewayName
(
const TCHAR * const gatewayName
);
private: // private methods ----------------------------------------//
virtual
HRESULT
set_ipAddress
(
const TCHAR * const ipAddress
);
private: // private members ----------------------------------------//
bool m_enabled;
TCHAR * m_ipAddress;
}; // End of class CGatewayContext.
//--------------------------------------------------------------------------//
// interface IILSContext. //
//--------------------------------------------------------------------------//
class IILSContext
{
protected: // protected constructors --------------------------------//
IILSContext(){};
public: // public destructor ------------------------------------//
virtual
~IILSContext(){};
public: // public methods ----------------------------------------//
virtual
bool
isEnabled(void) const = 0;
virtual
const TCHAR *
get_ipAddress(void) const = 0;
virtual
const TCHAR * const
get_ilsName(void) const = 0;
}; // End of interface IILSContext.
//--------------------------------------------------------------------------//
// interface IMutableILSContext. //
//--------------------------------------------------------------------------//
class IMutableILSContext
{
protected: // protected constructors --------------------------------//
IMutableILSContext(){};
public: // public destructor ------------------------------------//
virtual
~IMutableILSContext(){};
public: // public methods ----------------------------------------//
virtual
void
set_enabled
(
const bool enabled
) = 0;
virtual
HRESULT
set_ilsName
(
const TCHAR * const ilsName
) = 0;
}; // End of interface IMutableILSContext.
//--------------------------------------------------------------------------//
// class CILSContext. //
//--------------------------------------------------------------------------//
class CILSContext: public IILSContext,
public IMutableILSContext
{
public: // public constructors ------------------------------------//
CILSContext
(
const TCHAR * const ilsServer = NULL
);
public: // public destructor ------------------------------------//
virtual
~CILSContext();
public: // public methods (IILSContext) ------------------------//
virtual
bool
isEnabled(void) const;
virtual
const TCHAR *
get_ipAddress(void) const;
virtual
const TCHAR * const
get_ilsName(void) const;
public: // public methods (IMutableILSContext) ----------------//
virtual
void
set_enabled
(
const bool enabled
);
virtual
HRESULT
set_ilsName
(
const TCHAR * const ilsName
);
private: // private methods ----------------------------------------//
virtual
HRESULT
set_ipAddress
(
const TCHAR * const ipAddress
);
private: // private members ----------------------------------------//
bool m_enabled;
TCHAR * m_ipAddress;
TCHAR * m_ilsName;
}; // End of class CILSContext.
//--------------------------------------------------------------------------//
// interface ICalltoContext. //
//--------------------------------------------------------------------------//
class ICalltoContext
{
protected: // protected constructors --------------------------------//
ICalltoContext(){};
public: // public destructor ------------------------------------//
virtual
~ICalltoContext(){}
public: // public methods ----------------------------------------//
virtual
HRESULT
callto
(
const ICalltoProperties * const calltoProperties,
INmCall** ppInternalCall
) = 0;
virtual
const IGatekeeperContext * const
get_gatekeeperContext(void) const = 0;
virtual
const IGatewayContext * const
get_gatewayContext(void) const = 0;
virtual
const IILSContext * const
get_ilsContext(void) const = 0;
}; // End of interface ICalltoContext.
//--------------------------------------------------------------------------//
// interface IMutableCalltoContext. //
//--------------------------------------------------------------------------//
class IMutableCalltoContext
{
protected: // protected constructors --------------------------------//
IMutableCalltoContext(){};
public: // public destructor ------------------------------------//
virtual
~IMutableCalltoContext(){}
public: // public methods ----------------------------------------//
virtual
IMutableUIContext * const
get_mutableUIContext(void) const = 0;
virtual
IMutableGatekeeperContext * const
get_mutableGatekeeperContext(void) const = 0;
virtual
IMutableGatewayContext * const
get_mutableGatewayContext(void) const = 0;
virtual
IMutableILSContext * const
get_mutableIlsContext(void) const = 0;
}; // End of interface IMutableCalltoContext.
//--------------------------------------------------------------------------//
// class CCalltoContext. //
//--------------------------------------------------------------------------//
class CCalltoContext: public ICalltoContext,
public IMutableCalltoContext,
public CUIContext,
public CGatekeeperContext,
public CGatewayContext,
public CILSContext
{
public: // public constructors ------------------------------------//
CCalltoContext();
public: // public destructor ------------------------------------//
virtual
~CCalltoContext();
public: // public methods (ICalltoContext) --------------------//
virtual
HRESULT
callto
(
const ICalltoProperties * const calltoProperties,
INmCall** ppInternalCall
);
virtual
const IGatekeeperContext * const
get_gatekeeperContext(void) const;
virtual
const IGatewayContext * const
get_gatewayContext(void) const;
virtual
const IILSContext * const
get_ilsContext(void) const;
public: // public methods (IMutableCalltoContext) ----------------//
virtual
IMutableUIContext * const
get_mutableUIContext(void) const;
virtual
IMutableGatekeeperContext * const
get_mutableGatekeeperContext(void) const;
virtual
IMutableGatewayContext * const
get_mutableGatewayContext(void) const;
virtual
IMutableILSContext * const
get_mutableIlsContext(void) const;
public: // public static methods ------------------------------------//
static
bool
isPhoneNumber
(
const TCHAR * phone
);
static
bool
toE164
(
const TCHAR * phone,
TCHAR * base10,
int size
);
static
bool
isIPAddress
(
const TCHAR * const ipAddress
);
static
HRESULT
get_ipAddressFromName
(
const TCHAR * const name,
TCHAR * buffer,
int length
);
static
HRESULT
get_ipAddressFromILSEmail
(
const TCHAR * const ilsServer,
const TCHAR * const ilsPort,
const TCHAR * const email,
TCHAR * const ipAddress,
const int size
);
}; // End of class CCalltoContext.
//--------------------------------------------------------------------------//
#endif // !defined( calltoContext_h )