///////////////////////////////////////////////////////////////////////////// // FILE : Device.h // // // // DESCRIPTION : Header file for CFaxDeviceNode class // // This is node apears both in the scope pane and // // with full detailes in the result pane. // // // // AUTHOR : yossg // // // // HISTORY : // // Sep 22 1999 yossg Create // // Dec 1 1999 yossg Change totaly for New Mockup (0.7) // // Dec 6 1999 yossg add FaxChangeState functionality // // Dec 12 1999 yossg add OnPropertyChange functionality // // Aug 3 2000 yossg Add Device status real-time notification // // Windows XP // // Feb 14 2001 yossg Add Manual Receive support // // // // Copyright (C) 1999 - 2000 Microsoft Corporation All Rights Reserved // ///////////////////////////////////////////////////////////////////////////// #ifndef H_DEVICE_H #define H_DEVICE_H //#pragma message( "H_DEVICE_H" ) #include "snapin.h" #include "snpnscp.h" class CFaxDevicesNode; class CppFaxDeviceGeneral; class CFaxServer; //class CNodeWithScopeChildrenList; class CFaxDeviceNode : public CNodeWithScopeChildrenList { public: BEGIN_SNAPINCOMMAND_MAP(CFaxDeviceNode, FALSE) SNAPINCOMMAND_ENTRY(IDM_FAX_DEVICE_SEND, OnFaxSend) SNAPINCOMMAND_RANGE_ENTRY(IDM_FAX_DEVICE_RECEIVE_AUTO, IDM_FAX_DEVICE_RECEIVE_MANUAL, OnFaxReceive) END_SNAPINCOMMAND_MAP() BEGIN_SNAPINTOOLBARID_MAP(CFaxDeviceNode) END_SNAPINTOOLBARID_MAP() SNAPINMENUID(IDR_DEVICE_MENU) CFaxDeviceNode(CSnapInItem * pParentNode, CSnapin * pComponentData) : CNodeWithScopeChildrenList(pParentNode, pComponentData ), m_dwDeviceID(0), m_fSend(FALSE), m_fAutoReceive(FALSE), m_fManualReceive(FALSE), m_dwRings(0), m_dwStatus(0), m_pFaxServer(NULL) {} ~CFaxDeviceNode() { } // // Menu item handlers // HRESULT OnFaxReceive (UINT nID, bool &bHandled, CSnapInObjectRootBase *pRoot); HRESULT OnFaxSend (bool &bHandled, CSnapInObjectRootBase *pRoot); HRESULT FaxChangeState(UINT uiIDM, BOOL fState); virtual HRESULT PopulateScopeChildrenList(); virtual HRESULT InsertColumns(IHeaderCtrl* pHeaderCtrl); virtual HRESULT SetVerbs(IConsoleVerb *pConsoleVerb); LPOLESTR GetResultPaneColInfo(int nCol); STDMETHOD(CreatePropertyPages)(LPPROPERTYSHEETCALLBACK lpProvider, LONG_PTR handle, IUnknown* pUnk, DATA_OBJECT_TYPES type); STDMETHOD(QueryPagesFor)(DATA_OBJECT_TYPES type) { if (type == CCT_SCOPE || type == CCT_RESULT) return S_OK; return S_FALSE; } // virtual HRESULT OnRefresh(LPARAM arg, LPARAM param, IComponentData *pComponentData, IComponent * pComponent, DATA_OBJECT_TYPES type); void InitParentNode(CFaxDevicesNode *pParentNode) { m_pParentNode = pParentNode; } void UpdateMenuState(UINT id, LPTSTR pBuf, UINT *flags); HRESULT DoRefresh(); HRESULT RefreshAllViews(IConsole *pConsole); HRESULT RefreshTheView(); HRESULT Init( PFAX_PORT_INFO_EX pFaxDeviceConfig ); HRESULT UpdateMembers( PFAX_PORT_INFO_EX pFaxDeviceConfig ); HRESULT UpdateDeviceStatus( DWORD dwDeviceStatus ); DWORD GetDeviceID(); // // Get methods for CLIPFORMAT FillData // CComBSTR GetFspGuid() { return m_bstrProviderGUID; } // // FillData // STDMETHOD (FillData)(CLIPFORMAT cf, LPSTREAM pStream); // // Clipboard Formats // static CLIPFORMAT m_CFPermanentDeviceID; static CLIPFORMAT m_CFFspGuid; static CLIPFORMAT m_CFServerName; // // inline parent ptr // inline CFaxDevicesNode * GetParent() /*const*/ { return m_pParentNode; }; HRESULT OnShowContextHelp( IDisplayHelp* pDisplayHelp, LPOLESTR helpFile); private: // // Config Structure member // DWORD m_dwDeviceID; CComBSTR m_bstrDescription; CComBSTR m_bstrProviderName; CComBSTR m_bstrProviderGUID; BOOL m_fSend; BOOL m_fAutoReceive; BOOL m_fManualReceive; DWORD m_dwRings; CComBSTR m_bstrCsid; CComBSTR m_bstrTsid; DWORD m_dwStatus; CComBSTR m_bstrServerName; // // get data from RPC // /* * (in use during refresh only) * (private to avoid usage by out functions ) */ HRESULT InitRPC( PFAX_PORT_INFO_EX * pFaxDeviceConfig ); CComBSTR m_buf; CppFaxDeviceGeneral * m_pFaxDeviceGeneral; static CColumnsInfo m_ColsInfo; CFaxDevicesNode * m_pParentNode; CFaxServer * m_pFaxServer; }; #endif //H_DEVICE_H