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.
|
|
#ifndef _MENUISF_H
#define _MENUISF_H
#include "caggunk.h"
#include "menubar.h"
// Object that uses TrackPopupMenu as its implementation for IMenuPopup.
//
class CTrackPopupBar : public CMenuDeskBar { public: // *** IUnknown methods ***
STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj); STDMETHOD_(ULONG,AddRef) () ; STDMETHOD_(ULONG,Release) ();
// *** IServiceProvider methods ***
virtual STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppvObj); // *** IOleWindow methods ***
virtual STDMETHODIMP GetWindow(HWND * phwnd) { return E_NOTIMPL; } virtual STDMETHODIMP ContextSensitiveHelp(BOOL bEnterMode) { return E_NOTIMPL; }
// *** IMenuPopup methods ***
virtual STDMETHODIMP OnSelect(DWORD dwSelectType); virtual STDMETHODIMP SetSubMenu(IMenuPopup* pmp, BOOL fSet); virtual STDMETHODIMP Popup(POINTL *ppt, RECTL *prcExclude, DWORD dwFlags); CTrackPopupBar(void *pvContext, int id, HMENU hmenu, HWND hwnd); ~CTrackPopupBar(); HMENU GetPopupMenu() { return GetSubMenu(_hmenu, _id); }; void SelectFirstItem(); protected: int _id; HMENU _hmenu; HWND _hwndParent; void* _pvContext; // Popup message to indicate - "Ignore next MENUSELECT clear msg"
UINT _nMBIgnoreNextDeselect; }; #endif
|