|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// MMENU.H: Declares custom menu interface for multimedia applet
//
// Copyright (c) Microsoft Corporation 1998
//
// 1/28/98 David Stewart / dstewart
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef _MMENUHEADER_
#define _MMENUHEADER_
#ifdef __cplusplus
extern "C" { #endif
class CustomMenu; class CCustomMenu;
class CustomMenu { public: //append a string value
virtual BOOL AppendMenu(int nMenuID, TCHAR* szMenu) = 0; //append a string from your resources
virtual BOOL AppendMenu(int nMenuID, HINSTANCE hInst, int nStringID) = 0; //append a string and an icon from your resources
virtual BOOL AppendMenu(int nMenuID, HINSTANCE hInst, int nIconID, int nStringID) = 0; //append another custom menu, with a resource string
virtual BOOL AppendMenu(HINSTANCE hInst, int nStringID, CustomMenu* pMenu) = 0;
virtual BOOL AppendSeparator() = 0; virtual BOOL TrackPopupMenu(UINT uFlags, int x, int y, HWND hwnd, CONST RECT* pRect) = 0; virtual BOOL SetMenuDefaultItem(UINT uItem, UINT fByPos) = 0; virtual void MeasureItem(HWND hwnd, LPMEASUREITEMSTRUCT pMeasure) = 0; virtual void DrawItem(HWND hwnd, LPDRAWITEMSTRUCT pDraw) = 0; virtual LRESULT MenuChar(TCHAR tChar, UINT fuFlag, HMENU hMenu) = 0; virtual HMENU GetMenuHandle() = 0; virtual void Destroy() = 0; };
class CCustomMenu : CustomMenu { public: friend HRESULT AllocCustomMenu(CustomMenu** ppMenu);
CCustomMenu();
BOOL AppendMenu(int nMenuID, TCHAR* szMenu); BOOL AppendMenu(int nMenuID, HINSTANCE hInst, int nStringID); BOOL AppendMenu(int nMenuID, HINSTANCE hInst, int nIconID, int nStringID); BOOL AppendMenu(HINSTANCE hInst, int nStringID, CustomMenu* pMenu); BOOL AppendSeparator(); BOOL TrackPopupMenu(UINT uFlags, int x, int y, HWND hwnd, CONST RECT* pRect); BOOL SetMenuDefaultItem(UINT uItem, UINT fByPos); void MeasureItem(HWND hwnd, LPMEASUREITEMSTRUCT pMeasure); void DrawItem(HWND hwnd, LPDRAWITEMSTRUCT pDraw); LRESULT MenuChar(TCHAR tChar, UINT fuFlag, HMENU hMenu); HMENU GetMenuHandle() {return m_hMenu;} void Destroy();
protected: ~CCustomMenu(); BOOL IsItemFirst(int nMenuID); BOOL IsItemLast(int nMenuID);
private: HMENU m_hMenu; HFONT m_hFont; HFONT m_hBoldFont; };
#ifdef __cplusplus
}; #endif //c++
#endif //_MMENUHEADER_
|