STATINT.H

/* 
* STATINT.H
*
* Internal definitions and function prototypes for the StatStrip
* control.
*
* Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
*
* Kraig Brockschmidt, Microsoft
* Internet : kraigb@microsoft.com
* Compuserve: >INTERNET:kraigb@microsoft.com
*/


#ifndef _STATINT_H_
#define _STATINT_H_

#ifdef __cplusplus
extern "C"
{
#endif



//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;




typedef struct tagSTATSTRIP
{
HFONT hFont; //Current control font
BOOL fMyFont;

BOOL fMapped; //StatStripMessageMap called?
HWND hWndOwner;

USHORT cMessages; //Total number of messages
UINT idsMin; //Starting string ID
UINT idsMax;

USHORT uIDStatic; //Quiescent message ID
USHORT uIDBlank; //Blank message ID
USHORT uIDSysMenu; //System menu message ID

HGLOBAL hMemSMM; //Handle to STATMESSAGEMAP data
PSTATMESSAGEMAP pSMM; //Memory holding STATMESSAGEMAP

HGLOBAL hMemSzStat; //Memory for Stat strings
LPTSTR * ppsz; //Stat string pointers

USHORT cPopups;
USHORT uIDPopupMin;
USHORT uIDPopupMax;
PPOPUPMENUMAP pPMM;
} STATSTRIP, *PSTATSTRIP;


#define CBSTATSTRIP sizeof(STATSTRIP)

#define CBEXTRASTATSTRIP sizeof(PSTATSTRIP)
#define STATWL_STRUCTURE 0


//STASTRIP.C
LRESULT APIENTRY StatStripWndProc(HWND, UINT, WPARAM, LPARAM);
void StatStripPaint(HWND, PSTATSTRIP);
USHORT IDFromHMenu(PSTATSTRIP, HMENU);
UINT IStringFromID(PSTATMESSAGEMAP, USHORT, USHORT);

void StatStripClean(PSTATSTRIP, BOOL);
HGLOBAL HStringCache(HINSTANCE, UINT, UINT, UINT, LPTSTR *);
void HStringCacheFree(HGLOBAL);
void StatMessageMapSort(PSTATMESSAGEMAP, USHORT);

#ifdef __cplusplus
}
#endif


#endif //_STATINT_H_