//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright 1992 - 1998 Microsoft Corporation.
//
// File: message.cxx
//
// Contents: Helper functions for popup message boxes.
//
// Classes:
//
// Functions: MessageBoxFromSringIds
//
// History: 6-24-94 stevebl Created
//
//----------------------------------------------------------------------------
#include <windows.h>
#include "message.h"
//+---------------------------------------------------------------------------
//
// Function: MessageBoxFromStringIds
//
// Synopsis: Displays a simple message box taking its text from a string
// table instead of from user allocated strings.
//
// Arguments: [hwndOwner] - window handle for the message box's owner
// [hinst] - instance associated with the string table
// [idText] - string id for the box's text string
// [idTitle] - string id for the box's title string
// [fuStyle] - style of message box
// (see Windows function MessageBox for styles)
//
// Returns: result from MessageBox
//
// History: 6-24-94 stevebl Created
//
// Notes: Each string is limited to MAX_STRING_LENGTH characters.
//
//----------------------------------------------------------------------------
int MessageBoxFromStringIds(
const HWND hwndOwner,
const HINSTANCE hinst,
const UINT idText,
const UINT idTitle,
const UINT fuStyle)
{
int iReturn = 0;
TCHAR szTitle[MAX_STRING_LENGTH];
TCHAR szText[MAX_STRING_LENGTH];
if (LoadString(hinst, idTitle, szTitle, MAX_STRING_LENGTH))
{
if (LoadString(hinst, idText, szText, MAX_STRING_LENGTH))
{
iReturn = MessageBox(
hwndOwner,
szText,
szTitle,
fuStyle);
}
}
return(iReturn);
}
//+---------------------------------------------------------------------------
//
// Function: MessageBoxFromStringIdsAndArgs
//
// Synopsis: Creates a message box from a pair of string IDs similar
// to MessageBoxFromStringIds. The principle difference
// is that idFormat is an ID for a string which is a printf
// format string suitable for passing to wsprintf.
// The variable argument list is combined with the format
// string to create the text of the message box.
//
// Arguments: [hwndOwner] - window handle for the message box's owner
// [hinst] - instance associated with the string table
// [idFormat] - string id for the format of the box's text
// [idTitle] - string id for the box's title string
// [fuStyle] - style of the dialog box
// [...] - argument list for text format string
//
// Returns: result from MessageBox
//
// History: 6-24-94 stevebl Created
//
// Notes: Neither the composed text string nor the title must be
// longer than MAX_STRING_LENGTH characters.
//
//----------------------------------------------------------------------------
int MessageBoxFromStringIdsAndArgs(
const HWND hwndOwner,
const HINSTANCE hinst,
const UINT idFormat,
const UINT idTitle,
const UINT fuStyle, ...)
{
int iReturn = 0;
va_list arglist;
va_start(arglist, fuStyle);
TCHAR szTitle[MAX_STRING_LENGTH];
TCHAR szText[MAX_STRING_LENGTH];
TCHAR szFormat[MAX_STRING_LENGTH];
if (LoadString(hinst, idTitle, szTitle, MAX_STRING_LENGTH))
{
if (LoadString(hinst, idFormat, szFormat, MAX_STRING_LENGTH))
{
wvsprintf(szText, szFormat, arglist);
iReturn = MessageBox(
hwndOwner,
szText,
szTitle,
fuStyle);
}
}
return(iReturn);
}