Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

85 lines
2.7 KiB

/*
* CSTATHLP.H
*
* Class and structure definitions for the CStatusHelper class
* that manages messages to display in the status bar.
*
* Copyright (c)1994 Microsoft Corporation, All Rights Reserved
*/
#ifndef _CSTATHLP_H_
#define _CSTATHLP_H_
//For loading the RCDATA mapping menu item IDs to string IDs
typedef struct tagSTATMESSAGEMAP
{
USHORT uID;
USHORT idsMsg;
} STATMESSAGEMAP, *PSTATMESSAGEMAP;
//Array mapping menu handles to menu item IDs
typedef struct tagPOPUPMENUMAP
{
HMENU hMenu;
USHORT uID;
} POPUPMENUMAP, *PPOPUPMENUMAP;
/*
* The CStatusHelper class simplifies run-time management of
* status bar messages by setting up a mapping between popup
* menu handles and item IDs to resource string IDs. The
* MenuSelect member processes any WM_MENUSELECT message
* automatically to display the appropriate message.
*/
class CStatusHelper
{
protected:
HWND m_hWnd; //hWnd of control
HINSTANCE m_hInst; //Module instance
BOOL m_fMapped; //MessageMap called?
PCStringTable m_pST; //Message strings
UINT m_uIDCur; //Current displayed ID.
HWND m_hWndOwner; //Frame window
USHORT m_cMessages; //Number of messages
UINT m_idsMin; //Lowest string ID
UINT m_idsMax; //Maximum string ID
USHORT m_uIDStatic; //Quiescent message ID
USHORT m_uIDBlank; //Blank message ID
USHORT m_uIDSysMenu; //System menu message ID
USHORT m_cPopups; //Number of menus
USHORT m_uIDPopupMin; //Lowest menu ID
USHORT m_uIDPopupMax; //Highest menu ID
HGLOBAL m_hMemSMM; //Mapping resource
PSTATMESSAGEMAP m_pSMM; //Item to ID mapping
PSTATMESSAGEMAP m_pNewSMM; //Item to ID mapping
PPOPUPMENUMAP m_pPMM; //Menu to ID mapping
public:
CStatusHelper(HWND, HINSTANCE);
~CStatusHelper(void);
BOOL MessageMap(HWND, UINT, UINT, UINT, UINT, UINT, UINT, UINT, UINT, UINT);
void MessageDisplay(UINT);
void MenuSelect(WORD, WORD, HMENU);
BOOL Append(UINT, LPSTR);
BOOL Replace(UINT, LPSTR);
private:
void Sort(void);
USHORT IDFromHMenu(HMENU);
UINT IStringFromID(USHORT);
};
typedef CStatusHelper *PCStatusHelper;
#endif //_CSTATHLP_H_