//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: msgpopup.cpp // // This file contains MessageBox helper functions. // //-------------------------------------------------------------------------- #include "pch.h" #pragma hdrstop /******************************************************************* NAME: MsgPopup SYNOPSIS: Displays a message to the user ENTRY: hwnd - Owner window handle pszMsgFmt - Main message text pszTitle - MessageBox title uType - MessageBox flags hInstance - Module to load strings from. Only required if pszMsgFmt or pszTitle is a string resource ID. Optional format insert parameters. EXIT: RETURNS: MessageBox result NOTES: Either of the string parameters may be string resource ID's. HISTORY: JeffreyS 11-Jun-1997 Created ********************************************************************/ int WINAPIV MsgPopup(HWND hwnd, LPCTSTR pszMsgFmt, LPCTSTR pszTitle, UINT uType, HINSTANCE hInstance, ...) { int nResult; LPTSTR szMsg = NULL; LPTSTR szTitle = NULL; DWORD dwFormatResult; va_list args; if (pszMsgFmt == NULL) return -1; // // Insert arguments into the format string // va_start(args, hInstance); if (IS_INTRESOURCE(pszMsgFmt)) dwFormatResult = vFormatStringID(&szMsg, hInstance, (UINT)((ULONG_PTR)pszMsgFmt), &args); else dwFormatResult = vFormatString(&szMsg, pszMsgFmt, &args); va_end(args); if (!dwFormatResult) return -1; // // Load the caption if necessary // if (pszTitle && IS_INTRESOURCE(pszTitle)) { if (LoadStringAlloc(&szTitle, hInstance, (UINT)((ULONG_PTR)pszTitle))) pszTitle = szTitle; else pszTitle = NULL; } // // Display message box // nResult = MessageBox(hwnd, szMsg, pszTitle, uType); LocalFreeString(&szMsg); LocalFreeString(&szTitle); return nResult; } /******************************************************************* NAME: SysMsgPopup SYNOPSIS: Displays a message to the user using a system error message as an insert. ENTRY: hwnd - Owner window handle pszMsg - Main message text pszTitle - MessageBox title uType - MessageBox flags hInstance - Module to load strings from. Only required if pszMsg or pszTitle is a string resource ID. dwErrorID - System defined error code (Insert 1) pszInsert2 - Optional string to be inserted into pszMsg EXIT: RETURNS: MessageBox result NOTES: Any of the string parameters may be string resource ID's. HISTORY: JeffreyS 11-Jun-1997 Created ********************************************************************/ int WINAPI SysMsgPopup(HWND hwnd, LPCTSTR pszMsg, LPCTSTR pszTitle, UINT uType, HINSTANCE hInstance, DWORD dwErrorID, LPCTSTR pszInsert2) { int nResult; LPTSTR szInsert2 = NULL; LPTSTR szErrorText = NULL; // // Load the 2nd insert string if necessary // if (pszInsert2 && IS_INTRESOURCE(pszInsert2)) { if (LoadStringAlloc(&szInsert2, hInstance, (UINT)((ULONG_PTR)pszInsert2))) pszInsert2 = szInsert2; else pszInsert2 = NULL; } // // Get the error message string // if (dwErrorID) { GetSystemErrorText(&szErrorText, dwErrorID); } nResult = MsgPopup(hwnd, pszMsg, pszTitle, uType, hInstance, szErrorText, pszInsert2); LocalFreeString(&szInsert2); LocalFreeString(&szErrorText); return nResult; }