Team Fortress 2 Source Code as on 22/4/2020
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.

271 lines
5.6 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef PROTECTED_THINGS_H
  8. #define PROTECTED_THINGS_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. // This header tries to prevent people from using potentially dangerous functions
  13. // (like the notorious non-null-terminating strncpy) and functions that will break
  14. // VCR mode (like time, input, registry, etc).
  15. //
  16. // This header should be included by ALL of our source code.
  17. // Eventually, ALL of these should be protected, but one man can only accomplish so much in
  18. // one day AND work on features too!
  19. #if defined( PROTECTED_STRINGS_ENABLE ) && !defined(DISABLE_PROTECTED_STRINGS)
  20. #if defined( printf )
  21. #undef printf
  22. #endif
  23. #define printf printf__HEY_YOU__USE_VSTDLIB
  24. #if defined( wprintf )
  25. #undef wprintf
  26. #endif
  27. #define wprintf wprintf__HEY_YOU__USE_VSTDLIB
  28. #if defined( strcmp )
  29. #undef strcmp
  30. #endif
  31. #define strcmp strcmp__HEY_YOU__USE_VSTDLIB
  32. #if defined( wcscmp )
  33. #undef wcscmp
  34. #endif
  35. #define wcscmp wcscmp__HEY_YOU__USE_VSTDLIB
  36. #if defined( strncpy )
  37. #undef strncpy
  38. #endif
  39. #define strncpy strncpy__HEY_YOU__USE_VSTDLIB
  40. #if defined( wcsncpy )
  41. #undef wcsncpy
  42. #endif
  43. #define wcsncpy wcsncpy__HEY_YOU__USE_VSTDLIB
  44. #if defined( strlen )
  45. #undef strlen
  46. #endif
  47. #define strlen strlen__HEY_YOU__USE_VSTDLIB
  48. #if defined( wcslen )
  49. #undef wcslen
  50. #endif
  51. #define wcslen wcslen__HEY_YOU__USE_VSTDLIB
  52. #if defined( Q_strlen )
  53. #undef Q_strlen
  54. #endif
  55. #define Q_strlen Q_strlen__HEY_YOU__USE_VSTDLIB
  56. #if defined( _snprintf )
  57. #undef _snprintf
  58. #endif
  59. #define _snprintf snprintf__HEY_YOU__USE_VSTDLIB
  60. #if defined( _snwprintf )
  61. #undef _snwprintf
  62. #endif
  63. #define _snwprintf snwprintf__HEY_YOU__USE_VSTDLIB
  64. #if defined( sprintf )
  65. #undef sprintf
  66. #endif
  67. #define sprintf sprintf__HEY_YOU__USE_VSTDLIB
  68. #if defined( swprintf )
  69. #undef swprintf
  70. #endif
  71. #define swprintf swprintf__HEY_YOU__USE_VSTDLIB
  72. #if defined( vsprintf )
  73. #undef vsprintf
  74. #endif
  75. #define vsprintf vsprintf__HEY_YOU__USE_VSTDLIB
  76. #if defined( vswprintf )
  77. #undef vswprintf
  78. #endif
  79. #define vswprintf vswprintf__HEY_YOU__USE_VSTDLIB
  80. #if defined( _vsnprintf )
  81. #undef _vsnprintf
  82. #endif
  83. #define _vsnprintf vsnprintf__HEY_YOU__USE_VSTDLIB
  84. #if defined( _vsnwprintf )
  85. #undef _vsnwprintf
  86. #endif
  87. #define _vsnwprintf vsnwprintf__HEY_YOU__USE_VSTDLIB
  88. #if defined( strcat )
  89. #undef strcat
  90. #endif
  91. #define strcat strcat__HEY_YOU__USE_VSTDLIB
  92. #if defined( wcscat )
  93. #undef wcscat
  94. #endif
  95. #define wcscat wcscat__HEY_YOU__USE_VSTDLIB
  96. #if defined( strncat )
  97. #undef strncat
  98. #endif
  99. #define strncat strncat__HEY_YOU__USE_VSTDLIB
  100. #if defined( wcsncat )
  101. #undef wcsncat
  102. #endif
  103. #define wcsncat wcsncat__HEY_YOU__USE_VSTDLIB
  104. #endif
  105. #if defined( PROTECTED_THINGS_ENABLE ) && !defined( _X360 ) && !defined(DISABLE_PROTECTED_THINGS)
  106. #if defined( GetTickCount )
  107. #undef GetTickCount
  108. #endif
  109. #define GetTickCount GetTickCount__USE_VCR_MODE
  110. #if defined( timeGetTime )
  111. #undef timeGetTime
  112. #endif
  113. #define timeGetTime timeGetTime__USE_VCR_MODE
  114. #if defined( clock )
  115. #undef clock
  116. #endif
  117. #define time time__USE_VCR_MODE
  118. #if defined( recvfrom )
  119. #undef recvfrom
  120. #endif
  121. #define recvfrom recvfrom__USE_VCR_MODE
  122. #if defined( GetCursorPos )
  123. #undef GetCursorPos
  124. #endif
  125. #define GetCursorPos GetCursorPos__USE_VCR_MODE
  126. #if defined( ScreenToClient )
  127. #undef ScreenToClient
  128. #endif
  129. #define ScreenToClient ScreenToClient__USE_VCR_MODE
  130. #if defined( GetCommandLine )
  131. #undef GetCommandLine
  132. #endif
  133. #define GetCommandLine GetCommandLine__USE_VCR_MODE
  134. #if defined( RegOpenKeyEx )
  135. #undef RegOpenKeyEx
  136. #endif
  137. #define RegOpenKeyEx RegOpenKeyEx__USE_VCR_MODE
  138. #if defined( RegOpenKey )
  139. #undef RegOpenKey
  140. #endif
  141. #define RegOpenKey RegOpenKey__USE_VCR_MODE
  142. #if defined( RegSetValueEx )
  143. #undef RegSetValueEx
  144. #endif
  145. #define RegSetValueEx RegSetValueEx__USE_VCR_MODE
  146. #if defined( RegSetValue )
  147. #undef RegSetValue
  148. #endif
  149. #define RegSetValue RegSetValue__USE_VCR_MODE
  150. #if defined( RegQueryValueEx )
  151. #undef RegQueryValueEx
  152. #endif
  153. #define RegQueryValueEx RegQueryValueEx__USE_VCR_MODE
  154. #if defined( RegQueryValue )
  155. #undef RegQueryValue
  156. #endif
  157. #define RegQueryValue RegQueryValue__USE_VCR_MODE
  158. #if defined( RegCreateKeyEx )
  159. #undef RegCreateKeyEx
  160. #endif
  161. #define RegCreateKeyEx RegCreateKeyEx__USE_VCR_MODE
  162. #if defined( RegCreateKey )
  163. #undef RegCreateKey
  164. #endif
  165. #define RegCreateKey RegCreateKey__USE_VCR_MODE
  166. #if defined( RegCloseKey )
  167. #undef RegCloseKey
  168. #endif
  169. #define RegCloseKey RegCloseKey__USE_VCR_MODE
  170. #if defined( GetNumberOfConsoleInputEvents )
  171. #undef GetNumberOfConsoleInputEvents
  172. #endif
  173. #define GetNumberOfConsoleInputEvents GetNumberOfConsoleInputEvents__USE_VCR_MODE
  174. #if defined( ReadConsoleInput )
  175. #undef ReadConsoleInput
  176. #endif
  177. #define ReadConsoleInput ReadConsoleInput__USE_VCR_MODE
  178. #if defined( GetAsyncKeyState )
  179. #undef GetAsyncKeyState
  180. #endif
  181. #define GetAsyncKeyState GetAsyncKeyState__USE_VCR_MODE
  182. #if defined( GetKeyState )
  183. #undef GetKeyState
  184. #endif
  185. #define GetKeyState GetKeyState__USE_VCR_MODE
  186. #if defined( CreateThread )
  187. #undef CreateThread
  188. #endif
  189. #define CreateThread CreateThread__USE_VCR_MODE
  190. #if defined( WaitForSingleObject )
  191. #undef WaitForSingleObject
  192. #endif
  193. #define WaitForSingleObject WaitForSingleObject__USE_VCR_MODE
  194. #if defined( EnterCriticalSection )
  195. #undef EnterCriticalSection
  196. #endif
  197. #define EnterCriticalSection EnterCriticalSection__USE_VCR_MODE
  198. #endif
  199. #endif // PROTECTED_THINGS_H