179 lines
5.6 KiB
C++
179 lines
5.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// FILE : OutboundGroup.h //
|
|
// //
|
|
// DESCRIPTION : Header file for the Fax Outbound Routing Group Node //
|
|
// //
|
|
// AUTHOR : yossg //
|
|
// //
|
|
// HISTORY : //
|
|
// Dec 23 1999 yossg Create //
|
|
// Jan 3 2000 yossg add new device(s) //
|
|
// //
|
|
// Copyright (C) 1999 - 2000 Microsoft Corporation All Rights Reserved //
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef H_FAXOUTBOUNDROUTINGGROUP_H
|
|
#define H_FAXOUTBOUNDROUTINGGROUP_H
|
|
|
|
#include "snapin.h"
|
|
#include "snpnres.h"
|
|
|
|
|
|
#include "OutboundDevice.h"
|
|
|
|
class CFaxOutboundGroupsNode;
|
|
class CFaxOutboundRoutingDeviceNode;
|
|
|
|
class CFaxOutboundRoutingGroupNode : public CNodeWithResultChildrenList<
|
|
CFaxOutboundRoutingGroupNode,
|
|
CFaxOutboundRoutingDeviceNode,
|
|
CSimpleArray<CFaxOutboundRoutingDeviceNode*>,
|
|
FALSE>
|
|
{
|
|
|
|
public:
|
|
BEGIN_SNAPINCOMMAND_MAP(CFaxOutboundRoutingGroupNode, FALSE)
|
|
SNAPINCOMMAND_ENTRY(IDM_NEW_DEVICES, OnNewDevice)
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
BEGIN_SNAPINTOOLBARID_MAP(CFaxOutboundRoutingGroupNode)
|
|
END_SNAPINTOOLBARID_MAP()
|
|
|
|
SNAPINMENUID(IDR_OUTGROUP_MENU)
|
|
|
|
//
|
|
// Constructor
|
|
//
|
|
CFaxOutboundRoutingGroupNode(CSnapInItem * pParentNode, CSnapin * pComponentData) :
|
|
CNodeWithResultChildrenList<CFaxOutboundRoutingGroupNode, CFaxOutboundRoutingDeviceNode, CSimpleArray<CFaxOutboundRoutingDeviceNode*>, FALSE>(pParentNode, pComponentData )
|
|
{
|
|
m_bstrGroupName = L"";
|
|
m_lpdwDeviceID = NULL;
|
|
m_dwNumOfDevices = 0;
|
|
// Succeed ToPopulateAllDevices
|
|
m_fSuccess = FALSE;
|
|
}
|
|
|
|
//
|
|
// Destructor
|
|
//
|
|
~CFaxOutboundRoutingGroupNode()
|
|
{
|
|
if (NULL != m_lpdwDeviceID)
|
|
{
|
|
delete[] m_lpdwDeviceID;
|
|
}
|
|
}
|
|
|
|
virtual HRESULT PopulateResultChildrenList();
|
|
|
|
virtual HRESULT InsertColumns(IHeaderCtrl *pHeaderCtrl);
|
|
|
|
virtual HRESULT SetVerbs(IConsoleVerb *pConsoleVerb);
|
|
|
|
LPOLESTR GetResultPaneColInfo(int nCol);
|
|
|
|
STDMETHOD(QueryPagesFor)(DATA_OBJECT_TYPES type)
|
|
{
|
|
if (type == CCT_SCOPE || type == CCT_RESULT)
|
|
return S_OK;
|
|
return S_FALSE;
|
|
}
|
|
|
|
void InitParentNode(CFaxOutboundGroupsNode *pParentNode)
|
|
{
|
|
m_pParentNode = pParentNode;
|
|
}
|
|
|
|
HRESULT Init(PFAX_OUTBOUND_ROUTING_GROUP pGroupConfig);
|
|
|
|
//
|
|
// Events on the Group
|
|
//
|
|
|
|
//delete the group
|
|
virtual HRESULT OnDelete(LPARAM arg,
|
|
LPARAM param,
|
|
IComponentData *pComponentData,
|
|
IComponent *pComponent,
|
|
DATA_OBJECT_TYPES type,
|
|
BOOL fSilent = FALSE);
|
|
|
|
virtual HRESULT OnRefresh(LPARAM arg,
|
|
LPARAM param,
|
|
IComponentData *pComponentData,
|
|
IComponent * pComponent,
|
|
DATA_OBJECT_TYPES type);
|
|
|
|
HRESULT DoRefresh(CSnapInObjectRootBase *pRoot);
|
|
|
|
//
|
|
// Treat Group Devices
|
|
//
|
|
|
|
HRESULT OnNewDevice(bool &bHandled, CSnapInObjectRootBase *pRoot);
|
|
|
|
HRESULT DeleteDevice(DWORD dwDeviceIdToRemove, CFaxOutboundRoutingDeviceNode *pChildNode);
|
|
|
|
HRESULT ChangeDeviceOrder(DWORD dwOrder, DWORD dwNewOrder, DWORD dwDeviceID, CSnapInObjectRootBase *pRoot);
|
|
|
|
HRESULT SetNewDeviceList(LPDWORD lpdwNewDeviceID);
|
|
|
|
void UpdateMenuState (UINT id, LPTSTR pBuf, UINT *flags);
|
|
|
|
//
|
|
// Access To private members
|
|
//
|
|
DWORD GetMaxOrder()
|
|
{ return( m_fSuccess ? m_dwNumOfDevices : 0); }
|
|
|
|
LPDWORD GetDeviceIDList() { return m_lpdwDeviceID; }
|
|
|
|
DWORD GetNumOfDevices() { return m_dwNumOfDevices; }
|
|
|
|
HRESULT OnShowContextHelp(
|
|
IDisplayHelp* pDisplayHelp, LPOLESTR helpFile);
|
|
|
|
private:
|
|
static CColumnsInfo m_ColsInfo;
|
|
|
|
CFaxOutboundGroupsNode * m_pParentNode;
|
|
|
|
//
|
|
// members
|
|
//
|
|
CComBSTR m_bstrGroupName;
|
|
DWORD m_dwNumOfDevices;
|
|
LPDWORD m_lpdwDeviceID;
|
|
FAX_ENUM_GROUP_STATUS m_enumStatus;
|
|
|
|
CComBSTR m_buf;
|
|
|
|
// Succeed ToPopulateAllDevices
|
|
BOOL m_fSuccess;
|
|
|
|
//
|
|
// Methods
|
|
//
|
|
HRESULT InitMembers (PFAX_OUTBOUND_ROUTING_GROUP pGroupConfig);
|
|
|
|
HRESULT InitGroupName(LPCTSTR lpctstrGroupName);
|
|
|
|
UINT GetStatusIDS (FAX_ENUM_GROUP_STATUS enumStatus);
|
|
|
|
void InitIcons ();
|
|
|
|
//
|
|
// for internal usage. similar to the public init
|
|
// but creates and frees its own configuration structure
|
|
//
|
|
HRESULT RefreshFromRPC();
|
|
|
|
HRESULT RefreshNameSpaceNode();
|
|
};
|
|
|
|
typedef CNodeWithResultChildrenList<CFaxOutboundRoutingGroupNode, CFaxOutboundRoutingDeviceNode, CSimpleArray<CFaxOutboundRoutingDeviceNode*>, FALSE>
|
|
CBaseFaxOutboundRoutingGroupNode;
|
|
|
|
#endif //H_FAXOUTBOUNDROUTINGGROUP_H
|