mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.5 KiB
75 lines
1.5 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1996 - 1999
|
|
//
|
|
// File: printfu.cpp
|
|
//
|
|
// Contents: Unicode Console Printf's
|
|
//
|
|
// History: 02-May-1997 xiaohs created
|
|
// 06-May-1997 pberkman converted to C++
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#include "global.hxx"
|
|
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
|
|
#include "unicode.h"
|
|
#include "gendefs.h"
|
|
#include "printfu.hxx"
|
|
|
|
|
|
PrintfU_::PrintfU_(DWORD ccMaxString)
|
|
{
|
|
hModule = GetModuleHandle(NULL);
|
|
|
|
pwszDispString = (WCHAR *)new BYTE[ccMaxString * sizeof(WCHAR)];
|
|
pwszResString = (WCHAR *)new BYTE[ccMaxString * sizeof(WCHAR)];
|
|
|
|
ccMax = ccMaxString;
|
|
}
|
|
|
|
PrintfU_::~PrintfU_(void)
|
|
{
|
|
DELETE_OBJECT(pwszDispString);
|
|
DELETE_OBJECT(pwszResString);
|
|
}
|
|
|
|
void _cdecl PrintfU_::Display(DWORD dwFmt, ...)
|
|
{
|
|
if (!(hModule) || !(pwszDispString) || !(pwszResString))
|
|
{
|
|
return;
|
|
}
|
|
|
|
va_list vaArgs;
|
|
|
|
va_start(vaArgs, dwFmt);
|
|
|
|
vwprintf(this->get_String(dwFmt, pwszDispString, ccMax), vaArgs);
|
|
|
|
va_end(vaArgs);
|
|
}
|
|
|
|
WCHAR *PrintfU_::get_String(DWORD dwID, WCHAR *pwszRet, DWORD ccRet)
|
|
{
|
|
if (!(hModule) || !(pwszDispString) || !(pwszResString))
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
if (!(pwszRet))
|
|
{
|
|
pwszRet = pwszResString;
|
|
ccRet = ccMax;
|
|
}
|
|
|
|
LoadStringU(hModule, dwID, pwszRet, ccRet);
|
|
|
|
return(pwszRet);
|
|
}
|
|
|