//#-------------------------------------------------------------- // // File: hostname.h // // Synopsis: This file holds the declaration of the // CSADataEntryCtrl class // // History: 12/15/2000 serdarun Created // // Copyright (C) 1999-2000 Microsoft Corporation // All rights reserved. // //#-------------------------------------------------------------- #ifndef __HOSTNAME_H_ #define __HOSTNAME_H_ #include "resource.h" // main symbols #include #include "LocalUIControlsCP.h" #define SADataEntryCtrlMaxSize 50 #define SADataEntryCtrlDefaultSize 20 const WCHAR szDefaultCharSet[] = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "; ///////////////////////////////////////////////////////////////////////////// // CSADataEntryCtrl class ATL_NO_VTABLE CSADataEntryCtrl : public CComObjectRootEx, public IDispatchImpl, public CComControl, public IOleControlImpl, public IOleObjectImpl, public IOleInPlaceActiveObjectImpl, public IViewObjectExImpl, public IOleInPlaceObjectWindowlessImpl, public IConnectionPointContainerImpl, public IQuickActivateImpl, public IProvideClassInfo2Impl<&CLSID_SADataEntryCtrl, &DIID__ISADataEntryCtrlEvents, &LIBID_LOCALUICONTROLSLib>, public IPropertyNotifySinkCP, public CComCoClass, public CProxy_ISADataEntryCtrlEvents< CSADataEntryCtrl >, public IObjectSafetyImpl { public: CSADataEntryCtrl() { wcscpy(m_strTextValue,L"AAAAAAAAAAAAAAAAAAA"); m_iPositionFocus = 0; m_lMaxSize = SADataEntryCtrlDefaultSize; m_szTextCharSet = szDefaultCharSet; m_hFont = NULL; } DECLARE_REGISTRY_RESOURCEID(IDR_SADATAENTRYCTRL) DECLARE_PROTECT_FINAL_CONSTRUCT() DECLARE_CLASSFACTORY_SINGLETON (CSADataEntryCtrl) BEGIN_COM_MAP(CSADataEntryCtrl) COM_INTERFACE_ENTRY(ISADataEntryCtrl) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IViewObjectEx) COM_INTERFACE_ENTRY(IViewObject2) COM_INTERFACE_ENTRY(IViewObject) COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY(IOleInPlaceObject) COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY(IOleInPlaceActiveObject) COM_INTERFACE_ENTRY(IOleControl) COM_INTERFACE_ENTRY(IOleObject) COM_INTERFACE_ENTRY(IConnectionPointContainer) COM_INTERFACE_ENTRY(IQuickActivate) COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2) COM_INTERFACE_ENTRY(IObjectSafety) COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer) END_COM_MAP() BEGIN_PROP_MAP(CSADataEntryCtrl) PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) // Example entries // PROP_ENTRY("Property Description", dispid, clsid) // PROP_PAGE(CLSID_StockColorPage) END_PROP_MAP() BEGIN_CONNECTION_POINT_MAP(CSADataEntryCtrl) CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink) CONNECTION_POINT_ENTRY(DIID__ISADataEntryCtrlEvents) END_CONNECTION_POINT_MAP() BEGIN_MSG_MAP(CSADataEntryCtrl) MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown) CHAIN_MSG_MAP(CComControl) DEFAULT_REFLECTION_HANDLER() END_MSG_MAP() // Handler prototypes: // LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); // LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); // LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); // IViewObjectEx DECLARE_VIEW_STATUS(VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE) // ISADataEntryCtrl public: // // get current data display in the controls // STDMETHOD(get_TextValue) ( /*[out, retval]*/ BSTR *pVal ); // // set current data display in the controls // STDMETHOD(put_TextValue) ( /*[in]*/ BSTR newVal ); // // set the maximum number of chars the control can display // STDMETHOD(put_MaxSize) ( /*[in]*/ LONG lMaxSize ); // // set character set that can used in the data entry // STDMETHOD(put_TextCharSet) ( /*[in]*/ BSTR newVal ); // // IObjectSafety methods // STDMETHOD(SetInterfaceSafetyOptions) ( REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions ) { return S_OK; } // // called just after constructor, initializes the component // STDMETHOD(FinalConstruct)(void); // // called just before destructor, releases resources // STDMETHOD(FinalRelease)(void); // // gets the current character set // BYTE GetCharacterSet (); // // handler for key messages // LRESULT OnKeyDown ( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ); // // method to draw the control // HRESULT OnDraw ( ATL_DRAWINFO& di ); // // // WCHAR m_strTextValue[SADataEntryCtrlMaxSize+1]; LONG m_lMaxSize; CComBSTR m_szTextCharSet; int m_iPositionFocus; HFONT m_hFont; }; #endif //__HOSTNAME_H_