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.
 
 
 
 
 
 

181 lines
5.5 KiB

/////////////////////////////////////////////////////////////////////////////
// FILE : CoverPages.h //
// //
// DESCRIPTION : Header file for the fax cover pages node //
// //
// AUTHOR : yossg //
// //
// HISTORY : //
// Feb 9 2000 yossg Create //
// Oct 17 2000 yossg //
// //
// Copyright (C) 2000 Microsoft Corporation All Rights Reserved //
/////////////////////////////////////////////////////////////////////////////
#ifndef H_FAXCOVERPAGES_H
#define H_FAXCOVERPAGES_H
#include "snapin.h"
#include "snpnres.h"
#include "CoverPage.h"
#include "CovNotifyWnd.h"
class CFaxServerNode;
class CFaxCoverPageNode;
class CFaxCoverPageNotifyWnd;
class CFaxCoverPagesNode : public CNodeWithResultChildrenList<
CFaxCoverPagesNode,
CFaxCoverPageNode,
CSimpleArray<CFaxCoverPageNode*>,
FALSE>
{
public:
BEGIN_SNAPINCOMMAND_MAP(CFaxCoverPagesNode, FALSE)
SNAPINCOMMAND_ENTRY(IDM_OPEN_COVERPAGE, OnAddCoverPageFile)
SNAPINCOMMAND_ENTRY(IDM_NEW_COVERPAGE, OnNewCoverPage)
END_SNAPINCOMMAND_MAP()
BEGIN_SNAPINTOOLBARID_MAP(CFaxCoverPagesNode)
END_SNAPINTOOLBARID_MAP()
SNAPINMENUID(IDR_COVERPAGES_MENU)
//
// Constructor
//
CFaxCoverPagesNode(CSnapInItem * pParentNode, CSnapin * pComponentData) :
CNodeWithResultChildrenList<CFaxCoverPagesNode, CFaxCoverPageNode, CSimpleArray<CFaxCoverPageNode*>, FALSE>(pParentNode, pComponentData )
{
m_bIsFirstPopulateCall = TRUE;
m_NotifyWin = NULL;
m_hNotifyThread = NULL;
}
//
// Destructor
//
~CFaxCoverPagesNode()
{
DEBUG_FUNCTION_NAME(_T("CFaxCoverPagesNode::~CFaxCoverPagesNode"));
//
// StopNotificationThread
//
HRESULT hRc = StopNotificationThread();
if (S_OK != hRc)
{
DebugPrintEx(
DEBUG_ERR,
_T("Failed to StopNotificationThread. (hRc : %08X)"),
hRc);
}
//
// Close Shutdown Event handle
//
if (m_hStopNotificationThreadEvent)
{
CloseHandle (m_hStopNotificationThreadEvent);
m_hStopNotificationThreadEvent = NULL;
}
//
// Destroy Window
//
if (NULL != m_NotifyWin)
{
if (m_NotifyWin->IsWindow())
{
m_NotifyWin->DestroyWindow();
}
delete m_NotifyWin;
m_NotifyWin = NULL;
}
}
//
// get data from RPC
//
virtual HRESULT PopulateResultChildrenList();
virtual HRESULT InsertColumns(IHeaderCtrl *pHeaderCtrl);
virtual HRESULT SetVerbs(IConsoleVerb *pConsoleVerb);
void InitParentNode(CFaxServerNode *pParentNode)
{
m_pParentNode = pParentNode;
}
virtual HRESULT OnRefresh(LPARAM arg,
LPARAM param,
IComponentData *pComponentData,
IComponent * pComponent,
DATA_OBJECT_TYPES type);
HRESULT DoRefresh(CSnapInObjectRootBase *pRoot);
HRESULT DoRefresh();
HRESULT Init();
HRESULT InitDisplayName();
HRESULT DeleteCoverPage(BSTR bstrName, CFaxCoverPageNode *pChildNode);
HRESULT OnNewCoverPage(bool &bHandled, CSnapInObjectRootBase *pRoot);
HRESULT OnAddCoverPageFile(bool &bHandled, CSnapInObjectRootBase *pRoot);
DWORD OpenCoverPageEditor( BSTR bstrFileName);
HRESULT OnShowContextHelp(
IDisplayHelp* pDisplayHelp, LPOLESTR helpFile);
void UpdateMenuState (UINT id, LPTSTR pBuf, UINT *flags);
private:
BOOL BrowseAndCopyCoverPage(
LPTSTR pInitialDir,
LPWSTR pCovPageExtensionLetters
);
//
// Notification thread
//
HRESULT StartNotificationThread();
HRESULT StopNotificationThread();
HRESULT RestartNotificationThread();
//
// members
//
static CColumnsInfo m_ColsInfo;
CFaxServerNode * m_pParentNode;
BOOL m_bIsFirstPopulateCall;
static HANDLE m_hStopNotificationThreadEvent;
HANDLE m_hNotifyThread; // Handle of background notify thread
static DWORD WINAPI NotifyThreadProc (LPVOID lpParameter);
CFaxCoverPageNotifyWnd * m_NotifyWin; //: public CWindowImpl
WCHAR m_pszCovDir[MAX_PATH+1];
};
typedef CNodeWithResultChildrenList<CFaxCoverPagesNode, CFaxCoverPageNode, CSimpleArray<CFaxCoverPageNode*>, FALSE>
CBaseFaxOutboundRulesNode;
#endif //H_FAXCOVERPAGES_H