Leaked source code of windows server 2003
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 1999
//
// File: menubtn.h
//
//--------------------------------------------------------------------------
#ifndef _MENUBTN_H_
#define _MENUBTN_H_
#include "toolbars.h" // for CMenuButtonNotify
#ifdef DBG
#include "ctrlbar.h" // Needed for GetSnapinName()
#endif
//forward prototypes
class CControlbar; class CMenuButton; class CMenuButtonsMgr;
//+-------------------------------------------------------------------
//
// class: CMenuButton
//
// Purpose: The IMenuButton implementation this is owned
// by the CControlbar and talks to the CMenuButtonsMgr
// to create/manipulate the menus.
// The CMenuButtonNotify interface receives the menubutton
// click notification.
//
// History: 10-12-1999 AnandhaG Created
//
//--------------------------------------------------------------------
class CMenuButton : public IMenuButton, public CMenuButtonNotify, public CComObjectRoot { public: CMenuButton(); ~CMenuButton();
public: // ATL COM map
BEGIN_COM_MAP(CMenuButton) COM_INTERFACE_ENTRY(IMenuButton) END_COM_MAP()
// CMenuButton methods
public: STDMETHOD(AddButton)(int idCommand, LPOLESTR lpButtonText, LPOLESTR lpTooltipText); STDMETHOD(SetButton)(int idCommand, LPOLESTR lpButtonText, LPOLESTR lpTooltipText); STDMETHOD(SetButtonState)(int idCommand, MMC_BUTTON_STATE nState, BOOL bState);
public: // Helpers
void SetControlbar(CControlbar* pControlbar); CControlbar* GetControlbar(void); CMenuButtonsMgr* GetMenuButtonsMgr(void);
SC ScAttach(void); SC ScDetach(void);
public: // CMenuButtonsMgr methods.
virtual SC ScNotifyMenuBtnClick(HNODE hNode, bool bScope, LPARAM lParam, MENUBUTTONDATA& menuButtonData);
#ifdef DBG // Debug information.
public: LPCTSTR GetSnapinName () { if (m_pControlbar) return m_pControlbar->GetSnapinName();
return _T("Unknown"); } #endif
// Attributes
private: CControlbar* m_pControlbar; // pointer to IControlbar (1 IControlbar to 1 IMenuButton)
CMenuButtonsMgr* m_pMenuButtonsMgr; // The Menu buttons mgr that manages the UI.
}; // class CMenuButton
#endif // _MENUBTN_H_
|