|
|
//+----------------------------------------------------------------------------
//
// DS Administration MMC snapin.
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1999
//
// File: ContextMenu.h
//
// Contents: ContextMenu object functions
//
// Classes: CContextMenuVerbs
// CDSContextMenuVerbs
// CDSAdminContextMenuVerbs
// CSARContextMenuVerbs
//
// History: 28-Oct-99 JeffJon Created
//
//--------------------------------------------------------------------------
#ifndef __CONTEXTMENU_H_
#define __CONTEXTMENU_H_
#include "dssnap.h"
///////////////////////////////////////////////////////////////////////////
// CContextMenuVerbs
//
class CContextMenuVerbs { public: CContextMenuVerbs(CDSComponentData* pComponentData) : m_pComponentData(pComponentData) {} virtual ~CContextMenuVerbs() {}
virtual HRESULT LoadNewMenu(IContextMenuCallback2*, IShellExtInit*, LPDATAOBJECT, CUINode*, long*) { return S_OK; } virtual HRESULT LoadTopMenu(IContextMenuCallback2*, CUINode*) { return S_OK; } virtual HRESULT LoadMainMenu(IContextMenuCallback2*, LPDATAOBJECT, CUINode*) { return S_OK; } virtual HRESULT LoadViewMenu(IContextMenuCallback2*, CUINode*) { return S_OK; } virtual HRESULT LoadTaskMenu(IContextMenuCallback2*, CUINode*) { return S_OK; } virtual void LoadStandardVerbs(IConsoleVerb* pConsoleVerb, BOOL bScope, BOOL bSelect, CUINode* pUINode, CInternalFormatCracker& ifc, LPDATAOBJECT pDataObject); virtual HRESULT LoadMenuExtensions(IContextMenuCallback2*, IShellExtInit*, LPDATAOBJECT, CUINode*) { return S_OK; }
protected: HRESULT DSLoadAndAddMenuItem(IContextMenuCallback2* pIContextMenuCallback2, UINT nResourceID, // contains text and status text seperated by '\n'
long lCommandID, long lInsertionPointID, long fFlags, PCWSTR pszLanguageIndependentID, long fSpecialFlags = 0);
CDSComponentData* m_pComponentData; };
///////////////////////////////////////////////////////////////////////////
// CSnapinRootMenuVerbs
//
class CSnapinRootMenuVerbs : public CContextMenuVerbs { public: CSnapinRootMenuVerbs(CDSComponentData* pComponentData) : CContextMenuVerbs(pComponentData) {}
virtual ~CSnapinRootMenuVerbs() {}
virtual HRESULT LoadTopMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadTaskMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadViewMenu(IContextMenuCallback2* piCMenuCallback, CUINode* pUINode); };
///////////////////////////////////////////////////////////////////////////
// CFavoritesFolderMenuVerbs
//
class CFavoritesFolderMenuVerbs : public CContextMenuVerbs { public: CFavoritesFolderMenuVerbs(CDSComponentData* pComponentData) : CContextMenuVerbs(pComponentData) {}
virtual ~CFavoritesFolderMenuVerbs() {}
virtual HRESULT LoadTopMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadTaskMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadNewMenu(IContextMenuCallback2* pContextMenuCallback, IShellExtInit* pShlInit, LPDATAOBJECT pDataObject, CUINode* pUINode, long *pInsertionAllowed); virtual void LoadStandardVerbs(IConsoleVerb* pConsoleVerb, BOOL bScope, BOOL bSelect, CUINode* pUINode, CInternalFormatCracker& ifc, LPDATAOBJECT pDataObject); virtual HRESULT LoadViewMenu(IContextMenuCallback2* piCMenuCallback, CUINode* pUINode); };
///////////////////////////////////////////////////////////////////////////
// CSavedQueryMenuVerbs
//
class CSavedQueryMenuVerbs : public CContextMenuVerbs { public: CSavedQueryMenuVerbs(CDSComponentData* pComponentData) : CContextMenuVerbs(pComponentData) {}
virtual ~CSavedQueryMenuVerbs() {}
virtual HRESULT LoadTopMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadTaskMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual void LoadStandardVerbs(IConsoleVerb* pConsoleVerb, BOOL bScope, BOOL bSelect, CUINode* pUINode, CInternalFormatCracker& ifc, LPDATAOBJECT pDataObject); virtual HRESULT LoadViewMenu(IContextMenuCallback2* piCMenuCallback, CUINode* pUINode); };
///////////////////////////////////////////////////////////////////////////
// CDSContextMenuVerbs
//
// This class is used to handle common behavior for DS objects
//
class CDSContextMenuVerbs : public CContextMenuVerbs { public: CDSContextMenuVerbs(CDSComponentData* pComponentData) : CContextMenuVerbs(pComponentData) {} virtual ~CDSContextMenuVerbs() {}
virtual HRESULT LoadNewMenu(IContextMenuCallback2* pContextMenuCallback, IShellExtInit* pShlInit, LPDATAOBJECT pDataObject, CUINode* pUINode, long *pInsertionAllowed); virtual HRESULT LoadViewMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadMenuExtensions(IContextMenuCallback2* pContextMenuCallback, IShellExtInit* pShlInit, LPDATAOBJECT pDataObject, CUINode* pUINode);
protected:
int InsertAtTopContextMenu(LPCWSTR pwszParentClass, LPCWSTR pwszChildClass);
};
///////////////////////////////////////////////////////////////////////////
// CDSAdminContextMenuVerbs
//
// This class is used to handle specific behavior for DSAdmin
//
class CDSAdminContextMenuVerbs : public CDSContextMenuVerbs { public: CDSAdminContextMenuVerbs(CDSComponentData* pComponentData) : CDSContextMenuVerbs(pComponentData) {} virtual ~CDSAdminContextMenuVerbs() {}
virtual HRESULT LoadMainMenu( IContextMenuCallback2* pContextMenuCallback, LPDATAOBJECT, CUINode* pUINode) { return LoadTopMenu(pContextMenuCallback, pUINode); }
virtual HRESULT LoadTopMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadTaskMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadViewMenu(IContextMenuCallback2* piCMenuCallback, CUINode* pUINode); virtual void LoadStandardVerbs(IConsoleVerb* pConsoleVerb, BOOL bScope, BOOL bSelect, CUINode* pUINode, CInternalFormatCracker& ifc, LPDATAOBJECT pDataObject); // virtual HRESULT LoadNewMenu() {}
// virtual HRESULT LoadMainMenu();
// virtual HRESULT LoadMenuExtensions() {}
protected: HRESULT LoadTopTaskHelper(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode, int insertionPoint); };
///////////////////////////////////////////////////////////////////////////
// CSARContextMenuVerbs
//
// This class is used to handle specific behavior for Sites and Repl
//
class CSARContextMenuVerbs : public CDSContextMenuVerbs { public: CSARContextMenuVerbs(CDSComponentData* pComponentData) : CDSContextMenuVerbs(pComponentData) {} virtual ~CSARContextMenuVerbs() {}
virtual HRESULT LoadTopMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadTaskMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadViewMenu(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode); virtual HRESULT LoadMainMenu(IContextMenuCallback2* pContextMenuCallback, LPDATAOBJECT pDataObject, CUINode* pUINode); virtual void LoadStandardVerbs(IConsoleVerb* pConsoleVerb, BOOL bScope, BOOL bSelect, CUINode* pUINode, CInternalFormatCracker& ifc, LPDATAOBJECT pDataObject); // virtual HRESULT LoadNewMenu() {}
// virtual HRESULT LoadMainMenu();
// virtual HRESULT LoadStandardVerbs() {}
// virtual HRESULT LoadMenuExtensions() {}
protected: HRESULT LoadTopTaskHelper(IContextMenuCallback2* pContextMenuCallback, CUINode* pUINode, int insertionPoint); };
#endif // __CONTEXTMENU_H_
|