98 lines
2.1 KiB
C
98 lines
2.1 KiB
C
|
/*++
|
||
|
*
|
||
|
* WOW v1.0
|
||
|
*
|
||
|
* Copyright (c) 1991, Microsoft Corporation
|
||
|
*
|
||
|
* WMSGBM.C
|
||
|
* WOW32 16-bit message thunks
|
||
|
*
|
||
|
* History:
|
||
|
* Created 11-Mar-1991 by Jeff Parsons (jeffpar)
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#include "precomp.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
MODNAME(wmsgbm.c);
|
||
|
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
|
||
|
MSGINFO amiBM[] = {
|
||
|
{OLDBM_GETCHECK, "BM_GETCHECK"}, // 0x0400
|
||
|
{OLDBM_SETCHECK, "BM_SETCHECK"}, // 0x0401
|
||
|
{OLDBM_GETSTATE, "BM_GETSTATE"}, // 0x0402
|
||
|
{OLDBM_SETSTATE, "BM_SETSTATE"}, // 0x0403
|
||
|
{OLDBM_SETSTYLE, "BM_SETSTYLE"}, // 0x0404
|
||
|
};
|
||
|
|
||
|
PSZ GetBMMsgName(WORD wMsg)
|
||
|
{
|
||
|
INT i;
|
||
|
register PMSGINFO pmi;
|
||
|
|
||
|
for (pmi=amiBM,i=NUMEL(amiBM); i>0; i--,pmi++)
|
||
|
if ((WORD)pmi->uMsg == wMsg)
|
||
|
return pmi->pszMsgName;
|
||
|
return GetWMMsgName(wMsg);
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
BOOL FASTCALL ThunkBMMsg16(LPMSGPARAMEX lpmpex)
|
||
|
{
|
||
|
WORD wMsg = lpmpex->Parm16.WndProc.wMsg;
|
||
|
LOGDEBUG(7,(" Thunking 16-bit button message %s(%04x)\n", (LPSZ)GetBMMsgName(wMsg), wMsg));
|
||
|
|
||
|
//
|
||
|
// special case BM_CLICK
|
||
|
//
|
||
|
|
||
|
if (wMsg == WIN31_BM_CLICK) {
|
||
|
lpmpex->uMsg = BM_CLICK;
|
||
|
}
|
||
|
else {
|
||
|
wMsg -= WM_USER;
|
||
|
|
||
|
//
|
||
|
// For app defined (control) messages that are out of range
|
||
|
// return TRUE.
|
||
|
//
|
||
|
// ChandanC Sept-15-1992
|
||
|
//
|
||
|
|
||
|
if (wMsg < (BM_SETSTYLE - BM_GETCHECK + 1)) {
|
||
|
lpmpex->uMsg = wMsg + BM_GETCHECK;
|
||
|
|
||
|
// The following messages should not require thunking, because
|
||
|
// they contain no pointers, handles, or rearranged message parameters,
|
||
|
// so consequently they are not documented in great detail here:
|
||
|
//
|
||
|
// BM_GETCHECK
|
||
|
// BM_GETSTATE
|
||
|
// BM_SETCHECK
|
||
|
// BM_SETSTATE
|
||
|
// BM_SETSTYLE
|
||
|
//
|
||
|
// And these I haven't seen documentation for yet (new for Win32???)
|
||
|
//
|
||
|
// BM_GETIMAGE
|
||
|
// BM_SETIMAGE
|
||
|
|
||
|
// switch(lpmpex->uMsg) {
|
||
|
// NO BM_ message needs thunking
|
||
|
// }
|
||
|
|
||
|
}
|
||
|
}
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
VOID FASTCALL UnThunkBMMsg16(LPMSGPARAMEX lpmpex)
|
||
|
{
|
||
|
}
|