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.
197 lines
5.8 KiB
197 lines
5.8 KiB
/////////////////////////////////////////////////////////////////////////////
|
|
// 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<CFaxDeviceNode, FALSE>
|
|
{
|
|
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<CFaxDeviceNode, FALSE>(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
|