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.
 
 
 
 
 
 

123 lines
4.5 KiB

// tapiloc.h : Declaration of the CTapiLocationInfo
#ifndef __TAPILOCATIONINFO_H_
#define __TAPILOCATIONINFO_H_
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CTapiLocationInfo
class ATL_NO_VTABLE CTapiLocationInfo :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CTapiLocationInfo,&CLSID_TapiLocationInfo>,
public CComControl<CTapiLocationInfo>,
public IDispatchImpl<ITapiLocationInfo, &IID_ITapiLocationInfo, &LIBID_ICWHELPLib>,
public IPersistStreamInitImpl<CTapiLocationInfo>,
public IOleControlImpl<CTapiLocationInfo>,
public IOleObjectImpl<CTapiLocationInfo>,
public IOleInPlaceActiveObjectImpl<CTapiLocationInfo>,
public IViewObjectExImpl<CTapiLocationInfo>,
public IOleInPlaceObjectWindowlessImpl<CTapiLocationInfo>,
public IObjectSafetyImpl<CTapiLocationInfo>
{
public:
CTapiLocationInfo()
{
m_wNumTapiLocations = 0;
m_dwCountry = 0;
m_dwCurrLoc = 0;
m_hLineApp = NULL;
m_pLineCountryList = NULL;
m_rgNameLookUp = NULL;
m_pTC = NULL;
}
~CTapiLocationInfo()
{
if (m_pLineCountryList)
{
GlobalFree(m_pLineCountryList);
}
if (m_rgNameLookUp)
{
GlobalFree(m_rgNameLookUp);
}
if (m_pTC)
{
GlobalFree(m_pTC);
}
}
DECLARE_REGISTRY_RESOURCEID(IDR_TAPILOCATIONINFO)
BEGIN_COM_MAP(CTapiLocationInfo)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ITapiLocationInfo)
COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
COM_INTERFACE_ENTRY_IMPL(IOleControl)
COM_INTERFACE_ENTRY_IMPL(IOleObject)
COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
COM_INTERFACE_ENTRY_IMPL(IObjectSafety)
END_COM_MAP()
BEGIN_PROPERTY_MAP(CTapiLocationInfo)
// Example entries
// PROP_ENTRY("Property Description", dispid, clsid)
// PROP_PAGE(CLSID_StockColorPage)
END_PROPERTY_MAP()
BEGIN_MSG_MAP(CTapiLocationInfo)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
END_MSG_MAP()
// IViewObjectEx
STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
{
ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
*pdwStatus = 0;
return S_OK;
}
// ITapiLocationInfo
public:
STDMETHOD(GetTapiLocationInfo)(/*[out, retval]*/ BOOL *pbRetVal);
STDMETHOD(get_lCountryCode)(/*[out, retval]*/ long *plVal);
STDMETHOD(get_NumCountries)(/*[out, retval]*/ long *pNumOfCountry);
STDMETHOD(get_CountryName)(/*[in]*/ long lCountryIndex, /*[out, retval]*/ BSTR * pszCountryName, /*[out, retval]*/ long * pCountryCode);
STDMETHOD(get_DefaultCountry)(/*[out, retval]*/ BSTR * pszCountryName);
STDMETHOD(get_bstrAreaCode)(/*[out, retval]*/ BSTR *pbstrAreaCode);
STDMETHOD(put_bstrAreaCode)(/*[in]*/ BSTR bstrAreaCode);
STDMETHOD(get_wNumberOfLocations)(/*[out]*/ short *psVal, /*[out, retval]*/ long *pCurrLoc);
STDMETHOD(get_LocationName)(/*[in]*/ long lLocationIndex, /*[out, retval]*/ BSTR *pszLocationName);
STDMETHOD(get_LocationInfo)(/*[in]*/ long lLocationIndex, /*[out, retval]*/ long *pLocationID, /*[out, retval]*/ BSTR * pszCountryName, /*[out, retval]*/ long *pCountryCode, /*[out, retval]*/ BSTR * pszAreaCode);
STDMETHOD(put_LocationId)(/*[in]*/ long lLocationID);
HRESULT OnDraw(ATL_DRAWINFO& di);
protected:
HLINEAPP m_hLineApp;
WORD m_wNumTapiLocations;
DWORD m_dwCountry;
DWORD m_dwCurrLoc;
CComBSTR m_bstrAreaCode;
CComBSTR m_bstrDefaultCountry;
LPLINECOUNTRYLIST m_pLineCountryList;
LPCNTRYNAMELOOKUPELEMENT m_rgNameLookUp;
LPLINELOCATIONENTRY m_plle;
LPLINETRANSLATECAPS m_pTC;
TCHAR m_szCountryCode[8];
};
#endif //__TAPILOCATIONINFO_H_