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

132 lines
5.1 KiB
C++

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
faxcomponent.h
Abstract:
This header prototypes my implementation of IComponent.
Environment:
WIN32 User Mode
Author:
Darwin Ouyang (t-darouy) 30-Sept-1997
--*/
#ifndef __FAXCOMPONENT_H_
#define __FAXCOMPONENT_H_
#include "resource.h"
#include "faxadmin.h"
#include "faxcconmn.h" // IExtendContextMenu dispatcher for IComponent
#include "faxcprppg.h" // IExtendPropertyPage dispatcher for IComponent
#include "faxcconbar.h" // IExtendControlbar dispatcher for IComponent
class CFaxComponentData; // forward declarator
class CInternalDevice;
class CInternalLogCat;
/////////////////////////////////////////////////////////////////////////////
// CFaxComponent
class CFaxComponent : public CComObjectRoot,
public IComponent,
public CFaxComponentExtendContextMenu,
public CFaxComponentExtendPropertySheet,
public CFaxComponentExtendControlbar
{
public:
// ATL Map
DECLARE_NOT_AGGREGATABLE(CFaxComponent)
BEGIN_COM_MAP(CFaxComponent)
COM_INTERFACE_ENTRY(IComponent)
COM_INTERFACE_ENTRY(IExtendContextMenu)
COM_INTERFACE_ENTRY(IExtendPropertySheet)
COM_INTERFACE_ENTRY(IExtendControlbar)
END_COM_MAP()
// constructor and destructor
CFaxComponent();
~CFaxComponent();
// IComponent
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ LPCONSOLE lpUnknown );
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Notify(
/* [in] */ LPDATAOBJECT lpDataObject,
/* [in] */ MMC_NOTIFY_TYPE event,
/* [in] */ LPARAM arg,
/* [in] */ LPARAM param);
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Destroy(
/* [in] */ MMC_COOKIE cookie);
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryDataObject(
/* [in] */ MMC_COOKIE cookie,
/* [in] */ DATA_OBJECT_TYPES type,
/* [out] */ LPDATAOBJECT __RPC_FAR *ppDataObject);
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetResultViewType(
/* [in] */ MMC_COOKIE cookie,
/* [out] */ LPOLESTR __RPC_FAR *ppViewType,
/* [out] */ long __RPC_FAR *pViewOptions);
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayInfo(
/* [out][in] */ RESULTDATAITEM __RPC_FAR *pResultDataItem);
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompareObjects(
/* [in] */ LPDATAOBJECT lpDataObjectA,
/* [in] */ LPDATAOBJECT lpDataObjectB);
// other methods
void SetOwner( CFaxComponentData * myOwner );
CFaxComponentData * GetOwner( void ) { return pOwner; }
HRESULT InsertIconsIntoImageList();
LONG QueryPropSheetCount() { return m_dwPropSheetCount; }
void IncPropSheetCount() { InterlockedIncrement( &m_dwPropSheetCount );
DebugPrint(( TEXT("IncPropSheet Count %d "), m_dwPropSheetCount )); }
void DecPropSheetCount() { InterlockedDecrement( &m_dwPropSheetCount );
DebugPrint(( TEXT("DecPropSheet Count %d "), m_dwPropSheetCount )); }
public:
LPCONSOLE m_pUnknown; // IUnknown -- should be LPUNKNOWN but docs are wrong?
LPCONSOLE m_pConsole; // IConsole
LPCONSOLENAMESPACE m_pConsoleNameSpace; // IConsoleNameSpace
LPCONSOLEVERB m_pConsoleVerb; // IConsoleVerb
LPHEADERCTRL m_pHeaderCtrl; // IHeaderCtrl
LPIMAGELIST m_pImageList; // IImageList
LPRESULTDATA m_pResultData; // IResultData
LPCONTROLBAR m_pControlbar; // IControlbar
CFaxComponentData * pOwner; // my owner
// IComponent instance data for CInternalDevices
CInternalDevice ** pDeviceArray;
DWORD numDevices;
// IComponent instance data for CInternalLogging
PFAX_LOG_CATEGORY pCategories;
DWORD numCategories;
CInternalLogCat ** pLogPArray;
private:
LONG m_dwPropSheetCount; // property sheet count
};
#endif