152 lines
3 KiB
C
152 lines
3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
macros.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module contains the global macros
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Steven Kehrli (steveke) 11/15/1997
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _MACROS_C
|
||
|
#define _MACROS_C
|
||
|
|
||
|
#include <stdio.h>
|
||
|
|
||
|
// szDefaultCaption is the default caption
|
||
|
LPWSTR szDefaultCaption = NULL;
|
||
|
|
||
|
VOID
|
||
|
SetDefaultCaptionMacro(
|
||
|
LPWSTR szCaption
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Sets the default caption
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
szCaption - default caption
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
None
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
DWORD cb;
|
||
|
|
||
|
if (szCaption) {
|
||
|
// Determine the memory required by szDefaultCaption
|
||
|
cb = (lstrlen(szCaption) + 1) * sizeof(WCHAR);
|
||
|
|
||
|
// Allocate the memory for szDefaultCaption
|
||
|
szDefaultCaption = MemAllocMacro(cb);
|
||
|
|
||
|
// Set szDefaultCaption
|
||
|
lstrcpy(szDefaultCaption, szCaption);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
DebugMacro(
|
||
|
LPWSTR szFormatString,
|
||
|
...
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Displays a string in the debugger
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
szFormatString - pointer to the string
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
None
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
va_list varg_ptr;
|
||
|
SYSTEMTIME SystemTime;
|
||
|
// szDebugBuffer is the debug string
|
||
|
WCHAR szDebugBuffer[1024];
|
||
|
DWORD cb;
|
||
|
|
||
|
// Initialize the buffer
|
||
|
ZeroMemory(szDebugBuffer, sizeof(szDebugBuffer));
|
||
|
|
||
|
// Get the current time
|
||
|
GetLocalTime(&SystemTime);
|
||
|
if (szDefaultCaption) {
|
||
|
wsprintf(szDebugBuffer, L"%s - %02d.%02d.%04d@%02d:%02d:%02d.%03d:\n", szDefaultCaption, SystemTime.wMonth, SystemTime.wDay, SystemTime.wYear, SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond, SystemTime.wMilliseconds);
|
||
|
}
|
||
|
else {
|
||
|
wsprintf(szDebugBuffer, L"%02d.%02d.%04d@%02d:%02d:%02d.%03d:\n", SystemTime.wMonth, SystemTime.wDay, SystemTime.wYear, SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond, SystemTime.wMilliseconds);
|
||
|
}
|
||
|
cb = lstrlen(szDebugBuffer);
|
||
|
|
||
|
va_start(varg_ptr, szFormatString);
|
||
|
_vsnwprintf(&szDebugBuffer[cb], sizeof(szDebugBuffer) - cb, szFormatString, varg_ptr);
|
||
|
OutputDebugString(szDebugBuffer);
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
MessageBoxMacro(
|
||
|
HWND hWndParent,
|
||
|
UINT uID,
|
||
|
UINT uType,
|
||
|
...
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Displays a pop-up
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
hWndParent - handle of parent window
|
||
|
uID - id of resource string
|
||
|
uType - type of message box
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
None
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
va_list varg_ptr;
|
||
|
// szFormatString is the string determined from the id of the resource string, used as format control
|
||
|
WCHAR szFormatString[MAX_STRINGLEN];
|
||
|
// szTest is the string displayed in the pop-up
|
||
|
WCHAR szText[MAX_STRINGLEN * 2];
|
||
|
|
||
|
// Initialize the buffers
|
||
|
ZeroMemory(szFormatString, sizeof(szFormatString));
|
||
|
ZeroMemory(szText, sizeof(szText));
|
||
|
|
||
|
// Load the resource string
|
||
|
LoadString(g_hInstance, uID, szFormatString, MAX_STRINGLEN);
|
||
|
|
||
|
va_start(varg_ptr, uType);
|
||
|
_vsnwprintf(szText, MAX_STRINGLEN * 2, szFormatString, varg_ptr);
|
||
|
DebugMacro(L"%s\n", szText);
|
||
|
// Display the pop-up
|
||
|
MessageBox(hWndParent, szText, szDefaultCaption, MB_OK | uType);
|
||
|
}
|
||
|
|
||
|
#endif
|