XTPVC80Helpers.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:6k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPVC80Helpers.h : Visual Studio 2005 helpers
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPVC80HELPERS_H__)
  22. #define __XTPVC80HELPERS_H__
  23. #if (_MSC_VER >= 1000)
  24. #pragma once
  25. #endif // _MSC_VER >= 1000
  26. #include <stdio.h>
  27. #include <tchar.h>
  28. AFX_INLINE BOOL FILEEXISTS_S(LPCTSTR lpszFileName) {
  29. DWORD dwAttricutes = ::GetFileAttributes(lpszFileName);
  30. return dwAttricutes != DWORD(-1) && ((dwAttricutes & FILE_ATTRIBUTE_DIRECTORY) == 0) ;
  31. }
  32. AFX_INLINE BOOL DIRECTORYEXISTS_S(LPCTSTR lpszDirectoryName) {
  33. DWORD dwAttricutes = ::GetFileAttributes(lpszDirectoryName);
  34. return dwAttricutes != DWORD(-1) && (dwAttricutes & FILE_ATTRIBUTE_DIRECTORY) != 0;
  35. }
  36. AFX_INLINE void MEMCPY_S(void *dest, const void* src, size_t count) {
  37. #if (_MSC_VER > 1310) // VS2005
  38. memcpy_s(dest, count, src, count);
  39. #else
  40. memcpy(dest, src, count);
  41. #endif
  42. }
  43. AFX_INLINE UINT RAND_S() {
  44. #if (_MSC_VER > 1310) && defined(_CRT_RAND_S) // VS2005
  45. unsigned int randVal = 0;
  46. rand_s(&randVal);
  47. return randVal;
  48. #else
  49. return (UINT)rand();
  50. #endif
  51. }
  52. AFX_INLINE void STRCPY_S(TCHAR* strDestination, size_t sizeInWords, const TCHAR* strSource) {
  53. #if (_MSC_VER > 1310) // VS2005
  54. _tcscpy_s(strDestination, sizeInWords, strSource);
  55. #else
  56. _tcscpy(strDestination, strSource);UNREFERENCED_PARAMETER(sizeInWords);
  57. #endif
  58. }
  59. AFX_INLINE void STRNCPY_S(TCHAR* strDestination, size_t sizeInWords, const TCHAR* strSource, size_t count) {
  60. #if (_MSC_VER > 1310) // VS2005
  61. _tcsncpy_s(strDestination, sizeInWords, strSource, count);
  62. #else
  63. _tcsncpy(strDestination, strSource, count);UNREFERENCED_PARAMETER(sizeInWords);
  64. #endif
  65. }
  66. AFX_INLINE TCHAR* STRTOK_S(TCHAR* strToken, const TCHAR* strDelimit, TCHAR** context) {
  67. #if (_MSC_VER > 1310) // VS2005
  68. return _tcstok_s(strToken, strDelimit, context);
  69. #else
  70. UNREFERENCED_PARAMETER(context);
  71. return _tcstok(strToken, strDelimit);
  72. #endif
  73. }
  74. AFX_INLINE void MEMMOVE_S(void *dest, const void* src, size_t count) {
  75. #if (_MSC_VER > 1310) // VS2005
  76. memmove_s(dest, count, src, count);
  77. #else
  78. memmove(dest, src, count);
  79. #endif
  80. }
  81. AFX_INLINE void SPLITPATH_S(const TCHAR* szFullPath, TCHAR* szDrive, TCHAR* szDir, TCHAR* szFileName, TCHAR* szExt) {
  82. #if (_MSC_VER > 1310) // VS2005
  83. _tsplitpath_s(szFullPath, szDrive, szDrive ? _MAX_DRIVE : 0,
  84. szDir, szDir ? _MAX_DIR : 0, szFileName,
  85. szFileName ? _MAX_FNAME : 0, szExt, szExt ? _MAX_EXT : 0);
  86. #else
  87. _tsplitpath(szFullPath, szDrive, szDir, szFileName, szExt);
  88. #endif
  89. }
  90. AFX_INLINE FILE* FOPEN_S(const TCHAR* szFileName, const TCHAR* szMode) {
  91. FILE* stream;
  92. #if (_MSC_VER > 1310) // VS2005
  93. _tfopen_s(&stream, szFileName, szMode);
  94. #else
  95. stream = _tfopen(szFileName, szMode);
  96. #endif
  97. return stream;
  98. }
  99. AFX_INLINE void ITOW_S(int value, wchar_t* buffer, size_t sizeInWords, int radix) {
  100. #if (_MSC_VER > 1310) // VS2005
  101. _itow_s(value, buffer, sizeInWords, radix);
  102. #else
  103. _itow(value, buffer, radix);UNREFERENCED_PARAMETER(sizeInWords);
  104. #endif
  105. }
  106. AFX_INLINE LPTSTR ITOT_S(int value, LPTSTR buffer, size_t sizeInWords, int radix = 10) {
  107. #if (_MSC_VER > 1310) // VS2005
  108. _itot_s(value, buffer, sizeInWords, radix);
  109. #else
  110. _itot(value, buffer, radix);UNREFERENCED_PARAMETER(sizeInWords);
  111. #endif
  112. return buffer;
  113. }
  114. AFX_INLINE wchar_t* WCSLWR_S(wchar_t* str, size_t sizeInWords) {
  115. #if (_MSC_VER > 1310) // VS2005
  116. _wcslwr_s(str, sizeInWords);
  117. return str;
  118. #else
  119. UNREFERENCED_PARAMETER(sizeInWords);
  120. return _wcslwr(str);
  121. #endif
  122. }
  123. AFX_INLINE void MBSTOWCS_S(LPWSTR dest, LPCTSTR src, size_t sizeInWords) {
  124. #ifdef _UNICODE
  125. STRCPY_S(dest, sizeInWords, src);
  126. #else
  127. #if (_MSC_VER > 1310) // VS2005
  128. mbstowcs_s(&sizeInWords, dest, sizeInWords, src, sizeInWords);
  129. #else
  130. mbstowcs(dest, src, sizeInWords);
  131. #endif
  132. #endif
  133. }
  134. AFX_INLINE void WCSTOMBS_S(LPSTR dest, LPCTSTR src, size_t sizeInWords) {
  135. #ifndef _UNICODE
  136. STRCPY_S(dest, sizeInWords, src);
  137. #else
  138. #if (_MSC_VER > 1310) // VS2005
  139. wcstombs_s(&sizeInWords, dest, sizeInWords, src, sizeInWords);
  140. #else
  141. wcstombs(dest, src, sizeInWords);
  142. #endif
  143. #endif
  144. }
  145. AFX_INLINE TCHAR* TCSLWR_S(TCHAR *str, size_t sizeInWords) {
  146. #if (_MSC_VER > 1310) // VS2005
  147. return (_tcslwr_s(str, sizeInWords) == 0)? str: NULL;
  148. #else
  149. UNREFERENCED_PARAMETER(sizeInWords); return _tcslwr(str);
  150. #endif
  151. }
  152. AFX_INLINE TCHAR* STRUPR_S(TCHAR *str, size_t sizeInWords) {
  153. #if (_MSC_VER > 1310) // VS2005
  154. return (_tcsupr_s(str, sizeInWords) == 0)? str: NULL;
  155. #else
  156. UNREFERENCED_PARAMETER(sizeInWords); return _tcsupr(str);
  157. #endif
  158. }
  159. AFX_INLINE TCHAR* TCSNCCPY_S(TCHAR *strDest, size_t sizeInWords, const TCHAR* strSource, size_t count) {
  160. #if (_MSC_VER > 1310) // VS2005
  161. return (_tcsnccpy_s(strDest, sizeInWords, strSource, count) == 0)? strDest: NULL;
  162. #else
  163. UNREFERENCED_PARAMETER(sizeInWords); UNREFERENCED_PARAMETER(count); return _tcsnccpy(strDest, strSource, count);
  164. #endif
  165. }
  166. #if (_MSC_VER > 1310) // VS2005
  167. #define SCANF_S _stscanf_s
  168. #define WSCANF_S swscanf_s
  169. #define SCANF_PARAM_S(x, count) x, count
  170. #define WCSNCPY_S wcsncpy_s
  171. #else
  172. #define SCANF_S _stscanf
  173. #define SCANF_PARAM_S(x, count) x
  174. #define WCSNCPY_S wcsncpy
  175. #define WSCANF_S swscanf
  176. #endif
  177. //}}AFX_CODEJOCK_PRIVATE
  178. //////////////////////////////////////////////////////////////////////
  179. #endif // #if !defined(__XTPVC80HELPERS_H__)