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.
 
 
 
 
 
 

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