Source code of Windows XP (NT5)
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.

159 lines
3.5 KiB

  1. /*++
  2. Copyright(c) 1995 Microsoft Corporation
  3. MODULE NAME
  4. tstr.h
  5. ABSTRACT
  6. String conversion routines
  7. AUTHOR
  8. Anthony Discolo (adiscolo) 19-Dec-1996
  9. REVISION HISTORY
  10. --*/
  11. #ifndef _TSTR_H_
  12. #define _TSTR_H_
  13. CHAR *
  14. StrdupWtoA(
  15. IN LPCWSTR psz,
  16. IN DWORD dwCp
  17. );
  18. WCHAR *
  19. StrdupAtoW(
  20. IN LPCSTR psz,
  21. IN DWORD dwCp
  22. );
  23. VOID
  24. StrcpyWtoA(
  25. OUT CHAR *pszDst,
  26. IN LPCWSTR pszSrc,
  27. IN DWORD dwCp
  28. );
  29. VOID
  30. StrcpyAtoW(
  31. OUT WCHAR *pszDst,
  32. IN LPCSTR pszSrc,
  33. IN DWORD dwCp
  34. );
  35. VOID
  36. StrncpyWtoA(
  37. OUT CHAR *pszDst,
  38. IN LPCWSTR pszSrc,
  39. INT cb,
  40. IN DWORD dwCp
  41. );
  42. VOID
  43. StrncpyAtoW(
  44. OUT WCHAR *pszDst,
  45. IN LPCSTR pszSrc,
  46. INT cb,
  47. IN DWORD dwCp
  48. );
  49. CHAR *
  50. strdupA(
  51. IN LPCSTR psz
  52. );
  53. WCHAR *
  54. strdupW(
  55. IN LPCWSTR psz
  56. );
  57. size_t
  58. wcslenU(
  59. IN const WCHAR UNALIGNED *psz
  60. );
  61. WCHAR *
  62. strdupWU(
  63. IN const WCHAR UNALIGNED *psz
  64. );
  65. //
  66. // Define string conversion variants for code pages used
  67. // in public RAS api's.
  68. //
  69. #define strdupWtoA(_x) StrdupWtoA((_x), CP_UTF8)
  70. #define strdupAtoW(_x) StrdupAtoW((_x), CP_UTF8)
  71. #define strcpyWtoA(_x, _y) StrcpyWtoA((_x), (_y), CP_UTF8)
  72. #define strcpyAtoW(_x, _y) StrcpyAtoW((_x), (_y), CP_UTF8)
  73. #define strncpyWtoA(_x, _y, _z) StrncpyWtoA((_x), (_y), (_z), CP_UTF8)
  74. #define strncpyAtoW(_x, _y, _z) StrncpyAtoW((_x), (_y), (_z), CP_UTF8)
  75. #define strdupWtoAAnsi(_x) StrdupWtoA((_x), CP_ACP)
  76. #define strdupAtoWAnsi(_x) StrdupAtoW((_x), CP_ACP)
  77. #define strcpyWtoAAnsi(_x, _y) StrcpyWtoA((_x), (_y), CP_ACP)
  78. #define strcpyAtoWAnsi(_x, _y) StrcpyAtoW((_x), (_y), CP_ACP)
  79. #define strncpyWtoAAnsi(_x, _y, _z) StrncpyWtoA((_x), (_y), (_z), CP_ACP)
  80. #define strncpyAtoWAnsi(_x, _y, _z) StrncpyAtoW((_x), (_y), (_z), CP_ACP)
  81. #ifdef UNICODE
  82. #define strdupTtoA strdupWtoA
  83. #define strdupTtoW strdupW
  84. #define strdupAtoT strdupAtoW
  85. #define strdupWtoT strdupW
  86. #define strcpyTtoA strcpyWtoA
  87. #define strcpyTtoW wcscpy
  88. #define strcpyAtoT strcpyAtoW
  89. #define strcpyWtoT wcscpy
  90. #define strncpyTtoA strncpyWtoA
  91. #define strncpyTtoW wcsncpy
  92. #define strncpyAtoT strncpyAtoW
  93. #define strncpyWtoT wcsncpy
  94. #define strdupTtoAAnsi strdupWtoAAnsi
  95. #define strdupTtoWAnsi strdupW
  96. #define strdupAtoTAnsi strdupAtoWAnsi
  97. #define strdupWtoTAnsi strdupW
  98. #define strcpyTtoAAnsi strcpyWtoAAnsi
  99. #define strcpyTtoWAnsi wcscpy
  100. #define strcpyAtoTAnsi strcpyAtoWAnsi
  101. #define strcpyWtoTAnsi wcscpy
  102. #define strncpyTtoAAnsi strncpyWtoAAnsi
  103. #define strncpyTtoWAnsi wcsncpy
  104. #define strncpyAtoTAnsi strncpyAtoWAnsi
  105. #define strncpyWtoTAnsi wcsncpy
  106. #else
  107. #define strdupTtoA strdupA
  108. #define strdupTtoW strdupAtoW
  109. #define strdupAtoT strdupA
  110. #define strdupWtoT strdupWtoA
  111. #define strcpyTtoA strcpy
  112. #define strcpyTtoW strcpyAtoW
  113. #define strcpyAtoT strcpy
  114. #define strcpyWtoT strcpyWtoA
  115. #define strncpyTtoA strncpy
  116. #define strncpyTtoW strncpyAtoW
  117. #define strncpyAtoT strncpy
  118. #define strncpyWtoT strncpyWtoA
  119. #define strdupTtoAAnsi strdupA
  120. #define strdupTtoWAnsi strdupAtoWAnsi
  121. #define strdupAtoTAnsi strdupA
  122. #define strdupWtoTAnsi strdupWtoAAnsi
  123. #define strcpyTtoAAnsi strcpy
  124. #define strcpyTtoWAnsi strcpyAtoWAnsi
  125. #define strcpyAtoTAnsi strcpy
  126. #define strcpyWtoTAnsi strcpyWtoAAnsi
  127. #define strncpyTtoAAnsi strncpy
  128. #define strncpyTtoWAnsi strncpyAtoWAnsi
  129. #define strncpyAtoTAnsi strncpy
  130. #define strncpyWtoTAnsi strncpyWtoAAnsi
  131. #endif
  132. #endif