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

227 lines
5.6 KiB
C++

#if !defined( calltoResolver_h )
#define calltoResolver_h
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
// Application Header Files. //
//--------------------------------------------------------------------------//
#include "callto.h"
#include "calltoContext.h"
//--------------------------------------------------------------------------//
// interface IResolver. //
//--------------------------------------------------------------------------//
class IResolver
{
protected: // protected constructors --------------------------------//
IResolver(){};
public: // public destructor ------------------------------------//
virtual
~IResolver(){};
public: // public methods ----------------------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
) = 0;
}; // End of interface IResolver.
//--------------------------------------------------------------------------//
// class CPhoneResolver. //
//--------------------------------------------------------------------------//
class CPhoneResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CPhoneResolver.
//--------------------------------------------------------------------------//
// class CEMailResolver. //
//--------------------------------------------------------------------------//
class CEMailResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CEMailResolver.
//--------------------------------------------------------------------------//
// class CIPResolver. //
//--------------------------------------------------------------------------//
class CIPResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CIPResolver.
//--------------------------------------------------------------------------//
// class CComputerResolver. //
//--------------------------------------------------------------------------//
class CComputerResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CComputerResolver.
//--------------------------------------------------------------------------//
// class CILSResolver. //
//--------------------------------------------------------------------------//
class CILSResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CILSResolver.
//--------------------------------------------------------------------------//
// class CUnrecognizedTypeResolver. //
//--------------------------------------------------------------------------//
class CUnrecognizedTypeResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CUnrecognizedTypeResolver.
//--------------------------------------------------------------------------//
// class CStringResolver. //
//--------------------------------------------------------------------------//
class CStringResolver: public IResolver
{
public: // public methods (IResolver) ----------------------------//
virtual
HRESULT
resolve
(
IMutableCalltoCollection * const calltoCollection,
TCHAR * const url
);
}; // End of CStringResolver.
//--------------------------------------------------------------------------//
// class CCalltoResolver. //
//--------------------------------------------------------------------------//
class CCalltoResolver
{
public: // public constructors ------------------------------------//
CCalltoResolver();
public: // public destructor ------------------------------------//
~CCalltoResolver();
public: // public methods ----------------------------------------//
HRESULT
resolve
(
ICalltoContext * const calltoContext,
CCalltoProperties * const calltoProperties,
CCalltoCollection * const resolvedCalltoCollection,
const TCHAR * url,
const bool strict
);
private: // private methods ----------------------------------------//
bool
addResolver
(
IResolver * const resolver
);
const bool
strictCheck
(
const TCHAR * const url
) const;
private: // private members ----------------------------------------//
CPhoneResolver m_phoneResolver;
CEMailResolver m_emailResolver;
CIPResolver m_ipResolver;
CComputerResolver m_computerResolver;
CILSResolver m_ilsResolver;
CUnrecognizedTypeResolver m_unrecognizedTypeResolver;
CStringResolver m_stringResolver;
IResolver * m_resolvers[ 7 ];
int m_registeredResolvers;
}; // End of class CCalltoResolver.
//--------------------------------------------------------------------------//
#endif // !defined( calltoResolver_h )