Windows-Server-2003/admin/snapin/dsadmin/contextmenu.h

262 lines
9.7 KiB
C++

//+----------------------------------------------------------------------------
//
// 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_