//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //===========================================================================// #ifndef PROTECTED_THINGS_H #define PROTECTED_THINGS_H #ifdef _WIN32 #pragma once #endif // This header tries to prevent people from using potentially dangerous functions // (like the notorious non-null-terminating strncpy) and functions that will break // VCR mode (like time, input, registry, etc). // // This header should be included by ALL of our source code. // Eventually, ALL of these should be protected, but one man can only accomplish so much in // one day AND work on features too! #if defined( PROTECTED_STRINGS_ENABLE ) #if defined( printf ) #undef printf #endif #define printf printf__HEY_YOU__USE_VSTDLIB #if defined( wprintf ) #undef wprintf #endif #define wprintf wprintf__HEY_YOU__USE_VSTDLIB #if defined( strcmp ) #undef strcmp #endif #define strcmp strcmp__HEY_YOU__USE_VSTDLIB #if defined( wcscmp ) #undef wcscmp #endif #define wcscmp wcscmp__HEY_YOU__USE_VSTDLIB #if defined( strncpy ) #undef strncpy #endif #define strncpy strncpy__HEY_YOU__USE_VSTDLIB #if defined( wcsncpy ) #undef wcsncpy #endif #define wcsncpy wcsncpy__HEY_YOU__USE_VSTDLIB #if defined( strlen ) #undef strlen #endif #define strlen strlen__HEY_YOU__USE_VSTDLIB #if defined( wcslen ) #undef wcslen #endif #define wcslen wcslen__HEY_YOU__USE_VSTDLIB #if defined( Q_strlen ) #undef Q_strlen #endif #define Q_strlen Q_strlen__HEY_YOU__USE_VSTDLIB #if defined( _snprintf ) #undef _snprintf #endif #define _snprintf snprintf__HEY_YOU__USE_VSTDLIB #if defined( _snwprintf ) #undef _snwprintf #endif #define _snwprintf snwprintf__HEY_YOU__USE_VSTDLIB #if defined( sprintf ) #undef sprintf #endif #define sprintf sprintf__HEY_YOU__USE_VSTDLIB #if defined( swprintf ) #undef swprintf #endif #define swprintf swprintf__HEY_YOU__USE_VSTDLIB #if defined( vsprintf ) #undef vsprintf #endif #define vsprintf vsprintf__HEY_YOU__USE_VSTDLIB #if defined( vswprintf ) #undef vswprintf #endif #define vswprintf vswprintf__HEY_YOU__USE_VSTDLIB #if defined( _vsnprintf ) #undef _vsnprintf #endif #define _vsnprintf vsnprintf__HEY_YOU__USE_VSTDLIB #if defined( _vsnwprintf ) #undef _vsnwprintf #endif #define _vsnwprintf vsnwprintf__HEY_YOU__USE_VSTDLIB #if defined( strcat ) #undef strcat #endif #define strcat strcat__HEY_YOU__USE_VSTDLIB #if defined( wcscat ) #undef wcscat #endif #define wcscat wcscat__HEY_YOU__USE_VSTDLIB #if defined( strncat ) #undef strncat #endif #define strncat strncat__HEY_YOU__USE_VSTDLIB #if defined( wcsncat ) #undef wcsncat #endif #define wcsncat wcsncat__HEY_YOU__USE_VSTDLIB #endif #if defined( PROTECTED_THINGS_ENABLE ) && !defined( _X360 ) #if defined( GetTickCount ) #undef GetTickCount #endif #define GetTickCount Use__Plat_MSTime__Instead_of_GetTickCount #if defined( timeGetTime ) #undef timeGetTime #endif #define timeGetTime Use__Plat_MSTime__Instead_of_timeGetTime #if defined( clock ) #undef clock #endif #if defined( GetCursorPos ) #undef GetCursorPos #endif #define GetCursorPos GetCursorPos__USE_VCR_MODE #if defined( ScreenToClient ) #undef ScreenToClient #endif #define ScreenToClient ScreenToClient__USE_VCR_MODE // JAY64: Revisit this, but squelch the warnings for now #ifndef _WIN64 #if defined( GetCommandLine ) #undef GetCommandLine #endif #define GetCommandLine GetCommandLine__USE_VCR_MODE #if defined( RegOpenKeyEx ) #undef RegOpenKeyEx #endif #define RegOpenKeyEx RegOpenKeyEx__USE_VCR_MODE #if defined( RegOpenKey ) #undef RegOpenKey #endif #define RegOpenKey RegOpenKey__USE_VCR_MODE #if defined( RegSetValueEx ) #undef RegSetValueEx #endif #define RegSetValueEx RegSetValueEx__USE_VCR_MODE #if defined( RegSetValue ) #undef RegSetValue #endif #define RegSetValue RegSetValue__USE_VCR_MODE #if defined( RegQueryValueEx ) #undef RegQueryValueEx #endif #define RegQueryValueEx RegQueryValueEx__USE_VCR_MODE #if defined( RegQueryValue ) #undef RegQueryValue #endif #define RegQueryValue RegQueryValue__USE_VCR_MODE #if defined( RegCreateKeyEx ) #undef RegCreateKeyEx #endif #define RegCreateKeyEx RegCreateKeyEx__USE_VCR_MODE #if defined( RegCreateKey ) #undef RegCreateKey #endif #define RegCreateKey RegCreateKey__USE_VCR_MODE #if defined( RegCloseKey ) #undef RegCloseKey #endif #define RegCloseKey RegCloseKey__USE_VCR_MODE #if defined( GetNumberOfConsoleInputEvents ) #undef GetNumberOfConsoleInputEvents #endif #define GetNumberOfConsoleInputEvents GetNumberOfConsoleInputEvents__USE_VCR_MODE #if defined( ReadConsoleInput ) #undef ReadConsoleInput #endif #define ReadConsoleInput ReadConsoleInput__USE_VCR_MODE #if defined( GetAsyncKeyState ) #undef GetAsyncKeyState #endif #define GetAsyncKeyState GetAsyncKeyState__USE_VCR_MODE #if defined( GetKeyState ) #undef GetKeyState #endif #define GetKeyState GetKeyState__USE_VCR_MODE #endif #if defined( CreateThread ) #undef CreateThread #endif #define CreateThread use__ThreadTools__for_thread_functions #if defined( WaitForSingleObject ) #undef WaitForSingleObject #endif #define WaitForSingleObject use__ThreadTools__for_thread_functions #if defined( EnterCriticalSection ) #undef EnterCriticalSection #endif #define EnterCriticalSection use__ThreadTools__for_thread_functions #endif #endif // PROTECTED_THINGS_H