Leaked source code of windows server 2003
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.
|
|
//
// uniwrap.cpp
//
// Unicode wrappers
//
// Copyright(C) Microsoft Corporation 2000
// Author: Nadim Abdo (nadima)
//
// Public interface to the wrappers
//
#include "stdafx.h"
BOOL g_bRunningOnNT = FALSE; BOOL g_fUnicodeWrapsInitialized = FALSE;
//
// The policy behind the wrappers is:
// we run unicode internally for everything.
//
// The wrappers either thunk directly to the unicode system API's
// if they are available or convert to ansi and call the ANSI versions.
//
// If we need 'W' function that is not available on win9x then
// it has to be dynamically bound.
// We can statically bind to the 'A' versions.
//
//
CUnicodeWrapper::CUnicodeWrapper() { //do nada
}
CUnicodeWrapper::~CUnicodeWrapper() { //do nada
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DO NOT USE ANY TRC FUNCTIONS UNTIL THE WRAPPERS ARE INITIALIZED
//
// This means no DC_BEGIN_FN calls until we wrappers are ready.
BOOL CUnicodeWrapper::InitializeWrappers() { //
// Determine if we're running on a unicode platform
// (call A api as that is always present, we can't use
// a wrapper function before knowing how to wrap)
OSVERSIONINFOA osVersionInfo; osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA); if (GetVersionExA(&osVersionInfo)) { //NT is unicode, everything else is NOT.
//If the CE folks do a port of the shell to their
//platform they will need to look into this
g_bRunningOnNT = (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS); } else { //Treat as non-fatal, just use ANSI thunks they are slower
//but always present
g_bRunningOnNT = FALSE;
}
g_fUnicodeWrapsInitialized = TRUE; return TRUE; }
BOOL CUnicodeWrapper::CleanupWrappers() { return TRUE; }
|