windows-nt/Source/XPSP1/NT/printscan/fax/admin/faxadmin/idevice.h
2020-09-26 16:20:57 +08:00

133 lines
4.9 KiB
C++

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
ilogcat.h
Abstract:
Internal implementation for a logging category item.
Environment:
WIN32 User Mode
Author:
Darwin Ouyang (t-darouy) 30-Sept-1997
--*/
#ifndef __IDEVICE_H_
#define __IDEVICE_H_
#include "winfax.h"
#define CSID_LIMIT 20
#define TSID_LIMIT 20
#define MIN_RING_COUNT 1
#define MAX_RING_COUNT 99
class CFaxDeviceSettingsPropSheet; // forward decl
class CFaxRoutePriPropSheet; // forward decl
class CInternalDevice : public CInternalNode
{
public:
CInternalDevice( CInternalNode * pParent,
CFaxComponentData * pCompData,
HANDLE faxHandle,
DWORD devID );
~CInternalDevice();
// IComponent over-rides
HRESULT STDMETHODCALLTYPE ResultGetDisplayInfo(
/* [in] */ CFaxComponent * pComp,
/* [out][in] */ RESULTDATAITEM __RPC_FAR *pResultDataItem);
// IExtendContextMenu overrides for IComponent
virtual HRESULT STDMETHODCALLTYPE ComponentContextMenuAddMenuItems(
/* [in] */ CFaxComponent * pCompData,
/* [in] */ CFaxDataObject * piDataObject,
/* [in] */ LPCONTEXTMENUCALLBACK piCallback,
/* [out][in] */ long __RPC_FAR *pInsertionAllowed);
virtual HRESULT STDMETHODCALLTYPE ComponentContextMenuCommand(
/* [in] */ CFaxComponent * pCompData,
/* [in] */ long lCommandID,
/* [in] */ CFaxDataObject * piDataObject);
// IExtendPropertySheet overrides for IComponent
virtual HRESULT STDMETHODCALLTYPE ComponentPropertySheetCreatePropertyPages(
/* [in] */ CFaxComponent * pComp,
/* [in] */ LPPROPERTYSHEETCALLBACK lpProvider,
/* [in] */ LONG_PTR handle,
/* [in] */ CFaxDataObject * lpIDataObject);
virtual HRESULT STDMETHODCALLTYPE ComponentPropertySheetQueryPagesFor(
/* [in] */ CFaxComponent * pComp,
/* [in] */ CFaxDataObject * lpDataObject);
// IDataObject overrides
virtual HRESULT DataObjectRegisterFormats();
virtual HRESULT DataObjectGetDataHere( FORMATETC __RPC_FAR *pFormatEtc, IStream * pstm );
// event handlers
virtual HRESULT ResultOnSelect(CFaxComponent* pComp,
CFaxDataObject * lpDataObject,
LPARAM arg, LPARAM param);
virtual HRESULT ResultOnPropertyChange(CFaxComponent* pComp,
CFaxDataObject * lpDataObject,
LPARAM arg, LPARAM param);
virtual HRESULT ControlBarOnBtnClick(CFaxComponent* pComp,
CFaxDataObject * lpDataObject,
LPARAM param );
virtual HRESULT ControlBarOnSelect(CFaxComponent* pComp,
LPARAM arg,
CFaxDataObject * lpDataObject );
// member functions
virtual const GUID * GetNodeGUID();
virtual const LPTSTR GetNodeDisplayName();
virtual const LONG_PTR GetCookie();
virtual CInternalNode * GetThis() { return this; }
virtual const int GetNodeDisplayImage() { return IDI_FAXING; }
void SetItemID( HRESULTITEM hItem ) { hItemID = hItem; }
LPTSTR GetStatusString( DWORD state );
// these functions get and commit the state this device to the fax server
HRESULT RetrieveNewInfo();
HRESULT CommitNewInfo();
public:
DWORD dwDeviceId;
HANDLE hFaxServer;
PFAX_PORT_INFO pDeviceInfo;
HRESULTITEM hItemID;
// clipboard formats
static UINT s_cfFaxDevice;
static UINT s_cfFaxServerDown;
CFaxDeviceSettingsPropSheet *pMyPropSheet;
MMC_CONSOLE_VERB defaultVerb;
LPTOOLBAR myToolBar;
static CRITICAL_SECTION csDeviceLock;
};
typedef CInternalDevice* pCInternalDevice;
#endif