//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1994. // // File: message.cxx // // Contents: Helper functions for popup message boxes. // // Classes: // // Functions: MessageBoxFromSringIds // // History: 6-24-94 stevebl Created // //---------------------------------------------------------------------------- #include #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); }