262 lines
9.7 KiB
C++
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_
|