mirror of https://github.com/tongzx/nt5src
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.
155 lines
4.8 KiB
155 lines
4.8 KiB
#ifndef MYNODES_H
|
|
#define MYNODES_H
|
|
#include "NetNode.h"
|
|
#include "resource.h"
|
|
#include <comdef.h>
|
|
//#include "..\\Common\\Common.hpp"
|
|
//#include "..\\Common\\UString.hpp"
|
|
#include "Common.hpp"
|
|
#include "UString.hpp"
|
|
|
|
class CRootNode : public CNetNode<CRootNode>
|
|
{
|
|
public:
|
|
static const GUID* m_NODETYPE;
|
|
static const OLECHAR* m_SZNODETYPE;
|
|
static const OLECHAR* m_SZDISPLAY_NAME;
|
|
static const CLSID* m_SNAPIN_CLASSID;
|
|
|
|
BEGIN_SNAPINCOMMAND_MAP(CRootNode, FALSE)
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATEUSERSANDGROUPS, OnMigrateUsers )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATEGROUPS, OnMigrateGroups )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATECOMPUTERS, OnMigrateComputers )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_TRANSLATESECURITY, OnTranslateSecurity )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_UNDO, OnUndo )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATEEXCHANGESERVER, OnMigrateExchangeServer )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATEEXCHANGEDIRECTORY, OnMigrateExchangeDirectory )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATESERVICEACCOUNTS, OnMigrateServiceAccounts )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_REPORTING, OnReporting )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_RETRY, OnRetry )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_MIGRATETRUSTS, OnMigrateTrusts )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_GROUPMAPPING, OnGroupMapping )
|
|
//SNAPINCOMMAND_ENTRY(ID_VIEW_VERSION, OnVersionInfo )
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
SNAPINMENUID(IDR_ROOT_MENU)
|
|
|
|
|
|
|
|
CRootNode();
|
|
~CRootNode();
|
|
|
|
void SetMainWindow(HWND hwndMainWindow)
|
|
{
|
|
m_hwndMainWindow = hwndMainWindow;
|
|
}
|
|
|
|
void CheckForFailedActions(BOOL bPrompt = TRUE);
|
|
void UpdateMenuState(UINT id, LPTSTR pBuf, UINT *flags);
|
|
|
|
HRESULT OnGroupMapping(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateUsers(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnUndo(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateGroups(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateComputers(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnTranslateSecurity(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateExchangeServer(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateExchangeDirectory(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateServiceAccounts(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnReporting(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnRetry(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
HRESULT OnMigrateTrusts(bool &bHandled, CSnapInObjectRootBase* pObj);
|
|
|
|
private:
|
|
|
|
HWND m_hwndMainWindow;
|
|
|
|
bool IsUndoable;
|
|
bool CanUseST;
|
|
bool CanRetry;
|
|
|
|
void CheckUndoable();
|
|
void CheckForST();
|
|
void UpdateMigratedObjectsTable();
|
|
void UpdateAccountReferenceTable();
|
|
|
|
};
|
|
|
|
class CReportingNode : public CNetNode<CReportingNode>
|
|
{
|
|
UINT m_idHTML;
|
|
WCHAR m_htmlPath[MAX_PATH];
|
|
CReportingNode * m_Reports[5];
|
|
|
|
public:
|
|
|
|
BEGIN_SNAPINCOMMAND_MAP(CReportingNode, FALSE)
|
|
//SNAPINCOMMAND_ENTRY(ID_VIEW_VERSION, OnVersionInfo )
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
SNAPINMENUID(IDR_REPORTS)
|
|
|
|
|
|
CReportingNode();
|
|
|
|
static const GUID* m_NODETYPE;
|
|
static const OLECHAR* m_SZNODETYPE;
|
|
static const OLECHAR* m_SZDISPLAY_NAME;
|
|
static const CLSID* m_SNAPIN_CLASSID;
|
|
|
|
void SetHtmlPath(WCHAR const * title, WCHAR const * path) { m_bstrDisplayName = SysAllocString(title); safecopy(m_htmlPath,path); }
|
|
|
|
STDMETHODIMP GetResultViewType(LPOLESTR * ppViewType, long *pViewOptions);
|
|
HRESULT UpdateChildren(IConsole * pConsole);
|
|
// action handlers
|
|
};
|
|
|
|
class CPruneGraftNode : public CNetNode<CPruneGraftNode>
|
|
{
|
|
BOOL m_bLoaded;
|
|
_bstr_t m_Domain;
|
|
_bstr_t m_LDAPPath;
|
|
_bstr_t m_objectClass;
|
|
CStringArray m_Data;
|
|
|
|
|
|
public:
|
|
|
|
BEGIN_SNAPINCOMMAND_MAP(CPruneGraftNode, FALSE)
|
|
//SNAPINCOMMAND_ENTRY(ID_VIEW_VERSION, OnVersionInfo )
|
|
SNAPINCOMMAND_ENTRY(ID_TOP_ADDDOMAIN,OnAddDomain)
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
SNAPINMENUID(IDR_PRUNE_GRAFT_MENU)
|
|
|
|
|
|
CPruneGraftNode();
|
|
|
|
// initialization
|
|
void Init( WCHAR const * domain, WCHAR const * path, WCHAR const * objClass, WCHAR const * displayName);
|
|
|
|
BOOL ShowInScopePane();
|
|
|
|
static const GUID* m_NODETYPE;
|
|
static const OLECHAR* m_SZNODETYPE;
|
|
static const OLECHAR* m_SZDISPLAY_NAME;
|
|
static const CLSID* m_SNAPIN_CLASSID;
|
|
|
|
|
|
// Action handlers
|
|
HRESULT OnAddDomain(bool &bHandled, CSnapInObjectRootBase * pObj);
|
|
virtual HRESULT OnExpand( IConsole *spConsole );
|
|
virtual HRESULT OnShow( bool bShow, IHeaderCtrl *spHeader, IResultData *spResultData);
|
|
virtual LPOLESTR GetResultPaneColInfo(int nCol);
|
|
void AddColumnValue(int col,WCHAR const * value);
|
|
|
|
protected:
|
|
// helper functions
|
|
HRESULT EnumerateChildren( IConsole * spConsole);
|
|
SAFEARRAY * GetAvailableColumns(WCHAR const * objectClass);
|
|
HRESULT LoadChildren(IEnumVARIANT * pValues);
|
|
};
|
|
|
|
|
|
|
|
#endif
|