332 lines
9 KiB
C
332 lines
9 KiB
C
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* common.c
|
||
|
*
|
||
|
* WINUTILS common C helper functions
|
||
|
*
|
||
|
* copyright notice: Copyright 1995, Citrix Systems Inc.
|
||
|
*
|
||
|
* $Author: butchd $ Butch Davis
|
||
|
*
|
||
|
* $Log: N:\NT\PRIVATE\UTILS\CITRIX\WINUTILS\COMMON\VCS\COMMON.C $
|
||
|
*
|
||
|
* Rev 1.3 16 Nov 1995 17:16:18 butchd
|
||
|
* update
|
||
|
*
|
||
|
* Rev 1.2 24 Mar 1995 17:23:58 butchd
|
||
|
* Added WINUTILS global instance handle
|
||
|
*
|
||
|
* Rev 1.1 20 Mar 1995 16:06:34 butchd
|
||
|
* Segregated code for WIN32 & WIN16 library builds
|
||
|
*
|
||
|
* Rev 1.0 28 Feb 1995 17:37:12 butchd
|
||
|
* Initial revision.
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
/*
|
||
|
* include files
|
||
|
*/
|
||
|
#include <windows.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#include "common.h"
|
||
|
|
||
|
/*
|
||
|
* Common WINUTIL external variables
|
||
|
*/
|
||
|
extern LPCTSTR WinUtilsAppName;
|
||
|
extern HWND WinUtilsAppWindow;
|
||
|
extern HINSTANCE WinUtilsAppInstance;
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
// common helper functions
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* ErrorMessage - WINUTILS helper function
|
||
|
*
|
||
|
* Display an error message with variable arguments - main application
|
||
|
* window is owner of message box.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
void
|
||
|
ErrorMessage( int nErrorResourceID, ...)
|
||
|
{
|
||
|
TCHAR sz1[256], sz2[1024];
|
||
|
int length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nErrorResourceID );
|
||
|
|
||
|
length = LoadString(WinUtilsAppInstance, nErrorResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintf( sz2, sz1, args );
|
||
|
lstrcpy(sz1, WinUtilsAppName);
|
||
|
lstrcat(sz1, TEXT(" ERROR"));
|
||
|
MessageBox( WinUtilsAppWindow,
|
||
|
sz2, sz1, MB_OK | MB_ICONEXCLAMATION );
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
} // end ErrorMessage
|
||
|
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* ErrorMessageStr - WINUTILS helper function
|
||
|
*
|
||
|
* Load the specified error resource format string and format an error
|
||
|
* message string into the specified output buffer.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* pErrorString (output)
|
||
|
* Buffer to place formatted error string into.
|
||
|
* nErrorStringLen (input)
|
||
|
* Specifies maximum number of characters, including the terminator,
|
||
|
* that can be written to pErrorString.
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
void
|
||
|
ErrorMessageStr( LPTSTR pErrorString,
|
||
|
int nErrorStringLen,
|
||
|
int nErrorResourceID, ...)
|
||
|
{
|
||
|
TCHAR sz1[256], sz2[1024];
|
||
|
int length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nErrorResourceID );
|
||
|
|
||
|
length = LoadString(WinUtilsAppInstance, nErrorResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintf( sz2, sz1, args );
|
||
|
lstrncpy(pErrorString, sz2, nErrorStringLen);
|
||
|
pErrorString[nErrorStringLen-1] = TEXT('\0');
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
} // end ErrorMessage
|
||
|
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* ErrorMessageWndA - WINUTILS helper function (ANSI version)
|
||
|
*
|
||
|
* Display an error message with variable arguments - caller specifies the
|
||
|
* owner of message box.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* hWnd (input)
|
||
|
* Window handle of owner window for the message box. If this is
|
||
|
* NULL, the main application window will be the owner.
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
void
|
||
|
#ifdef WIN16
|
||
|
#define LoadStringA LoadString
|
||
|
#define wvsprintfA wvsprintf
|
||
|
#define lstrcpyA lstrcpy
|
||
|
#define lstrcatA lstrcat
|
||
|
#define MessageBoxA MessageBox
|
||
|
ErrorMessageWnd(
|
||
|
#else
|
||
|
ErrorMessageWndA(
|
||
|
#endif
|
||
|
HWND hWnd,
|
||
|
int nErrorResourceID, ...)
|
||
|
{
|
||
|
char sz1[256], sz2[1024];
|
||
|
int length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nErrorResourceID );
|
||
|
|
||
|
length = LoadStringA(WinUtilsAppInstance, nErrorResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintfA( sz2, sz1, args );
|
||
|
|
||
|
#ifdef UNICODE
|
||
|
wcstombs(sz1, WinUtilsAppName, sizeof(sz1));
|
||
|
#else
|
||
|
lstrcpyA(sz1, WinUtilsAppName);
|
||
|
#endif
|
||
|
|
||
|
lstrcatA(sz1, " ERROR");
|
||
|
MessageBoxA(
|
||
|
hWnd ? hWnd : WinUtilsAppWindow,
|
||
|
sz2, sz1, MB_OK | MB_ICONEXCLAMATION );
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
} // end ErrorMessageWndA
|
||
|
|
||
|
|
||
|
#ifndef WIN16
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* ErrorMessageWndW - WINUTILS helper function (UNICODE version)
|
||
|
*
|
||
|
* Display an error message with variable arguments - caller specifies the
|
||
|
* owner of message box.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* hWnd (input)
|
||
|
* Window handle of owner window for the message box. If this is
|
||
|
* NULL, the main application window will be the owner.
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
void
|
||
|
ErrorMessageWndW( HWND hWnd,
|
||
|
int nErrorResourceID, ...)
|
||
|
{
|
||
|
WCHAR sz1[256], sz2[1024];
|
||
|
int length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nErrorResourceID );
|
||
|
|
||
|
length = LoadStringW(WinUtilsAppInstance, nErrorResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintfW( sz2, sz1, args );
|
||
|
|
||
|
#ifndef UNICODE
|
||
|
mbstowcs(sz1, WinUtilsAppName, lstrlenA(WinUtilsAppName)+1);
|
||
|
#else
|
||
|
lstrcpyW(sz1, WinUtilsAppName);
|
||
|
#endif
|
||
|
|
||
|
lstrcatW(sz1, L" ERROR");
|
||
|
MessageBoxW( hWnd ? hWnd : WinUtilsAppWindow,
|
||
|
sz2, sz1, MB_OK | MB_ICONEXCLAMATION );
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
} // end ErrorMessageWndW
|
||
|
#endif // WIN16
|
||
|
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* QuestionMessage - WINUTILS helper function
|
||
|
*
|
||
|
* Display a 'question' message with variable arguments and return the
|
||
|
* user's response - main application window is owner of message box.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* nType (input)
|
||
|
* Message box 'type' flags to determine the apperance and function
|
||
|
* of the generated MessageBox.
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
* (int) Returns the user response from the MessageBox function.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
int
|
||
|
QuestionMessage( UINT nType,
|
||
|
int nQuestionResourceID, ...)
|
||
|
{
|
||
|
TCHAR sz1[256], sz2[1024];
|
||
|
int reply, length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nQuestionResourceID );
|
||
|
|
||
|
length = LoadString(WinUtilsAppInstance, nQuestionResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintf( sz2, sz1, args );
|
||
|
reply = MessageBox( WinUtilsAppWindow,
|
||
|
sz2, WinUtilsAppName, nType );
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
return(reply);
|
||
|
|
||
|
} // end QuestionMessage
|
||
|
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* QuestionMessageWnd - WINUTILS helper function
|
||
|
*
|
||
|
* Display a 'question' message with variable arguments and return the
|
||
|
* user's response - caller specifies the owner of message box.
|
||
|
*
|
||
|
* ENTRY:
|
||
|
* hWnd (input)
|
||
|
* Window handle of owner window for the message box. If this is
|
||
|
* NULL, the main application window will be the owner.
|
||
|
* nType (input)
|
||
|
* Message box 'type' flags to determine the apperance and function
|
||
|
* of the generated MessageBox.
|
||
|
* nErrorResourceID (input)
|
||
|
* Resource ID of the format string to use in the error message.
|
||
|
* ... (input)
|
||
|
* Optional additional arguments to be used with format string.
|
||
|
*
|
||
|
* EXIT:
|
||
|
* (int) Returns the user response from the MessageBox function.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
int
|
||
|
QuestionMessageWnd( HWND hWnd,
|
||
|
UINT nType,
|
||
|
int nQuestionResourceID, ...)
|
||
|
{
|
||
|
TCHAR sz1[256], sz2[1024];
|
||
|
int reply, length;
|
||
|
|
||
|
va_list args;
|
||
|
va_start( args, nQuestionResourceID );
|
||
|
|
||
|
length = LoadString(WinUtilsAppInstance, nQuestionResourceID, sz1, 256);
|
||
|
|
||
|
wvsprintf( sz2, sz1, args );
|
||
|
reply = MessageBox( hWnd ? hWnd : WinUtilsAppWindow,
|
||
|
sz2, WinUtilsAppName, nType );
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
return(reply);
|
||
|
|
||
|
} // end QuestionMessageWnd
|
||
|
|