windows-nt/Source/XPSP1/NT/printscan/wia/common/stirt/msgi.cpp
2020-09-26 16:20:57 +08:00

156 lines
3.3 KiB
C++

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
msgi.h
Abstract:
Message box routines
Author:
Vlad Sadovsky (vlads) 26-Jan-1997
Revision History:
26-Jan-1997 VladS created
--*/
#include "cplusinc.h"
#include "sticomm.h"
extern HINSTANCE g_hInstance;
int MsgBox( HWND hwndOwner, UINT idMsg, UINT wFlags, const TCHAR *aps[] /* = NULL */ )
{
STR strTitle;
STR strMsg;
strTitle.LoadString(IDS_MSGTITLE);
if (aps == NULL)
strMsg.LoadString( idMsg );
else
strMsg.FormatString(idMsg,aps);
return ::MessageBox( hwndOwner, strMsg.QueryStr(), strTitle.QueryStr(), wFlags | MB_SETFOREGROUND );
}
/*
* MsgBoxPrintf
* ------------
*
* Message box routine
*
*/
UINT MsgBoxPrintf(HWND hwnd,UINT uiMsg,UINT uiTitle,UINT uiFlags,...)
{
STR strTitle;
STR strMessage;
LPTSTR lpFormattedMessage = NULL;
UINT err;
va_list start;
va_start(start,uiFlags);
strMessage.LoadString(uiMsg);
err = ::FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ALLOCATE_BUFFER,
(LPVOID)strMessage.QueryStr(),
// FORMAT_MESSAGE_FROM_HMODULE,
//::g_hmodThisDll,
uiMsg, // Message resource id
NULL, // Language id
(LPTSTR)&lpFormattedMessage, // Return pointer to fromatted text
255, // Min.length
&start
);
if (!err || !lpFormattedMessage) {
err = GetLastError();
return err;
}
strTitle.LoadString(uiTitle);
err = ::MessageBox(hwnd,
lpFormattedMessage,
strTitle.QueryStr(),
uiFlags);
::LocalFree(lpFormattedMessage);
return err;
}
#if 0
/*
* LoadMsgPrintf
* -------------
*
* Uses normal printf style format string
*/
UINT
LoadMsgPrintf(
NLS_STR& nlsMessage,
UINT uiMsg,
...
)
{
LPSTR lpFormattedMessage = NULL;
UINT err;
va_list start;
va_start(start,uiMsg);
nlsMessage.LoadString(uiMsg);
#ifdef USE_PRINTF_STYLE
lpFormattedMessage = ::LocalAlloc(GPTR,255); // BUGBUG
if (!lpFormattedMessage) {
Break();
return WN_OUT_OF_MEMORY;
}
::wsprintf(lpFormattedMessage,
nlsMessage.QueryPch(),
&start);
#else
err = ::FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ALLOCATE_BUFFER,
nlsMessage,
//| FORMAT_MESSAGE_FROM_HMODULE,
//::g_hmodThisDll,
uiMsg, // Message resource id
NULL, // Language id
(LPTSTR)&lpFormattedMessage, // Return pointer to fromatted text
255, // Min.length
&start
);
if (!err || !lpFormattedMessage) {
err = GetLastError();
return err;
}
#endif
nlsMessage = lpFormattedMessage;
::LocalFree(lpFormattedMessage);
return WN_SUCCESS;
}
#endif