Source code of Windows XP (NT5)
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.
|
|
/*++
Module Name:
MmcJP.h
Abstract:
This module contains the definition for CMmcDfsJunctionPoint class. This is an class for MMC display related calls for the second level node(the DfsJunctionPoint nodes)
--*/
#if !defined(AFX_MMCDFSJP_H__6A7EDAC3_3FAC_11D1_AA1C_00C06C00392D__INCLUDED_)
#define AFX_MMCDFSJP_H__6A7EDAC3_3FAC_11D1_AA1C_00C06C00392D__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "DfsCore.h"
#include "MmcDispl.h"
#include "JPProp.h" // For CReplicaSetPropPage
#include "frsProp.h" // For CRealReplicaSetPropPage
// Forward declarations
class CMmcDfsAdmin; class CMmcDfsRoot; class CMmcDfsReplica;
class CMmcDfsJunctionPoint : public CMmcDisplay { public: // Constructor
CMmcDfsJunctionPoint ( IN IDfsJunctionPoint* i_pDfsJPObject, IN CMmcDfsRoot* i_pDfsParentRoot, IN LPCONSOLENAMESPACE i_lpConsoleNameSpace );
virtual ~CMmcDfsJunctionPoint();
// For adding context menu items
STDMETHOD(AddMenuItems)( IN LPCONTEXTMENUCALLBACK i_lpContextMenuCallback, IN LPLONG i_lpInsertionAllowed );
// For taking action on a context menu selection.
STDMETHOD(Command)( IN LONG i_lCommandID );
// Set the headers for the listview (in the result pane) column
STDMETHOD(SetColumnHeader)( IN LPHEADERCTRL2 i_piHeaderControl );
// Return the requested display information for the Result Pane
STDMETHOD(GetResultDisplayInfo)( IN OUT LPRESULTDATAITEM io_pResultDataItem );
// Return the requested display information for the Scope Pane
STDMETHOD(GetScopeDisplayInfo)( IN OUT LPSCOPEDATAITEM io_pScopeDataItem );
// Add items(or folders), if any to the Scope Pane
STDMETHOD(EnumerateScopePane)( IN LPCONSOLENAMESPACE i_lpConsoleNameSpace, IN HSCOPEITEM i_hParent );
// Add items(or folders), if any to the Result Pane
STDMETHOD(EnumerateResultPane)( IN OUT IResultData* io_pResultData );
// Set the console verb settings. Change the state, decide the default verb, etc
STDMETHOD(SetConsoleVerbs)( IN LPCONSOLEVERB i_lpConsoleVerb );
// let MMC handle the default verb.
STDMETHOD(DoDblClick)( ) { return S_FALSE; }
// Delete the current item.
STDMETHOD(DoDelete)( );
// Checks whether the object has pages to display
STDMETHOD(QueryPagesFor)( );
// Creates and passes back the pages to be displayed
STDMETHOD(CreatePropertyPages)( IN LPPROPERTYSHEETCALLBACK i_lpPropSheetCallback, IN LONG_PTR i_lNotifyHandle );
STDMETHOD(CreateFrsPropertyPage)( IN LPPROPERTYSHEETCALLBACK i_lpPropSheetCallback, IN LONG_PTR i_lNotifyHandle );
// Used to notify the object that it's properties have changed
STDMETHOD(PropertyChanged)( );
// Used to set the result view description bar text
STDMETHOD(SetDescriptionBarText)( IN LPRESULTDATA i_lpResultData );
STDMETHOD(SetStatusText)( IN LPCONSOLE2 i_lpConsole ) { RETURN_INVALIDARG_IF_NULL(i_lpConsole); return i_lpConsole->SetStatusText(NULL); }
// Add an item to the scope pane
STDMETHOD(AddItemToScopePane)( IN HSCOPEITEM i_hParent );
// Handle a select event for the node. Handle only toolbar related
// activities here
STDMETHOD(ToolbarSelect)( IN const LONG i_lArg, IN IToolbar* i_pToolBar );
HRESULT CreateToolbar( IN const LPCONTROLBAR i_pControlbar, IN const LPEXTENDCONTROLBAR i_lExtendControlbar, OUT IToolbar** o_pToolBar );
// Handle a click on the toolbar
STDMETHOD(ToolbarClick)( IN const LPCONTROLBAR i_pControlbar, IN const LPARAM i_lParam );
DISPLAY_OBJECT_TYPE GetDisplayObjectType() { return DISPLAY_OBJECT_TYPE_JUNCTION; }
HRESULT OnRefresh( );
// helpers
private: // For add Replica
STDMETHOD(OnNewReplica)( );
// For deleteing Junction Point
STDMETHOD(OnRemoveJP)(IN BOOL bConfirm = TRUE );
// Ask confirmation from the user
STDMETHOD(ConfirmOperationOnDfsLink)(int idString);
STDMETHOD(CleanScopeChildren)() { return S_OK; }
STDMETHOD(CleanResultChildren)( );
// Check the replica status
STDMETHOD(OnCheckStatus)( );
STDMETHOD(ViewChange)( IResultData* i_pResultData, LONG_PTR i_lHint );
STDMETHOD(AddResultPaneItem)( CMmcDfsReplica* i_pReplicaDispObject );
STDMETHOD(RemoveReplica)(LPCTSTR i_pszDisplayName);
STDMETHOD(RemoveResultPaneItem)( CMmcDfsReplica* i_pReplicaDispObject );
HRESULT ClosePropertySheet(BOOL bSilent);
STDMETHOD(GetEntryPath)(BSTR* o_pbstrEntryPath) { GET_BSTR(m_bstrEntryPath, o_pbstrEntryPath); }
inline HRESULT GetDomainName(BSTR* pVal) { return (m_pDfsParentRoot->m_DfsRoot)->get_DomainName(pVal); }
inline HRESULT GetDfsType(long* pVal) { return (m_pDfsParentRoot->m_DfsRoot)->get_DfsType(pVal); }
BOOL get_ShowFRS() { return m_bShowFRS; }
HRESULT _InitReplicaSet();
HRESULT OnNewReplicaSet();
HRESULT OnShowReplication();
HRESULT OnStopReplication(BOOL bConfirm=FALSE);
HRESULT GetIReplicaSetPtr(IReplicaSet** o_ppiReplicaSet);
BOOL IsNewSchema() { return m_pDfsParentRoot->IsNewSchema(); }
// Constants, Statics, etc
public: static const int m_iIMAGEINDEX; static const int m_iOPENIMAGEINDEX;
private: friend class CMmcDfsRoot; friend class CMmcDfsReplica;
CComPtr<IConsoleNameSpace> m_lpConsoleNameSpace; // The Callback used to do Scope Pane operations
CComPtr<IConsole2> m_lpConsole; // The Console callback.
HSCOPEITEM m_hScopeItem; // Scopeitem handle
CComBSTR m_bstrEntryPath; // EntryPath;
CComBSTR m_bstrDisplayName; // Display name of the current JP
long m_lJunctionState;
DFS_REPLICA_LIST m_MmcRepList; // The list of replicas
CComPtr<IDfsJunctionPoint> m_pDfsJPObject; CMmcDfsRoot* m_pDfsParentRoot; CComPtr<IReplicaSet> m_piReplicaSet;
CReplicaSetPropPage m_PropPage; CRealReplicaSetPropPage m_frsPropPage; BOOL m_bShowFRS;
bool m_bDirty; // Tells if a replica is added or removed.
};
#endif // !defined(AFX_MMCDFSJP_H__6A7EDAC3_3FAC_11D1_AA1C_00C06C00392D__INCLUDED_)
|