252 lines
5.2 KiB
C
252 lines
5.2 KiB
C
//========= Copyright 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) && !defined(DISABLE_PROTECTED_STRINGS)
|
|
|
|
#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) && \
|
|
!defined(DISABLE_PROTECTED_THINGS)
|
|
|
|
#if defined(GetTickCount)
|
|
#undef GetTickCount
|
|
#endif
|
|
#define GetTickCount GetTickCount__USE_VCR_MODE
|
|
|
|
#if defined(timeGetTime)
|
|
#undef timeGetTime
|
|
#endif
|
|
#define timeGetTime timeGetTime__USE_VCR_MODE
|
|
#if defined(clock)
|
|
#undef clock
|
|
#endif
|
|
#define time time__USE_VCR_MODE
|
|
|
|
#if defined(recvfrom)
|
|
#undef recvfrom
|
|
#endif
|
|
#define recvfrom recvfrom__USE_VCR_MODE
|
|
|
|
#if defined(GetCursorPos)
|
|
#undef GetCursorPos
|
|
#endif
|
|
#define GetCursorPos GetCursorPos__USE_VCR_MODE
|
|
|
|
#if defined(ScreenToClient)
|
|
#undef ScreenToClient
|
|
#endif
|
|
#define ScreenToClient ScreenToClient__USE_VCR_MODE
|
|
|
|
#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
|
|
|
|
#if defined(CreateThread)
|
|
#undef CreateThread
|
|
#endif
|
|
#define CreateThread CreateThread__USE_VCR_MODE
|
|
|
|
#if defined(WaitForSingleObject)
|
|
#undef WaitForSingleObject
|
|
#endif
|
|
#define WaitForSingleObject WaitForSingleObject__USE_VCR_MODE
|
|
|
|
#if defined(EnterCriticalSection)
|
|
#undef EnterCriticalSection
|
|
#endif
|
|
#define EnterCriticalSection EnterCriticalSection__USE_VCR_MODE
|
|
|
|
#endif
|
|
|
|
#endif // PROTECTED_THINGS_H
|