[APPLICATIONS] Improve the FILE header section. Brought to you by Adam Stachowicz...
[reactos.git] / reactos / base / applications / msconfig_new / stringutils.h
1 /*
2 * PROJECT: ReactOS Applications
3 * LICENSE: LGPL - See COPYING in the top level directory
4 * FILE: base/applications/msconfig_new/stringutils.h
5 * PURPOSE: ANSI & UNICODE String Utility Functions
6 * COPYRIGHT: Copyright 2011-2012 Hermes BELUSCA - MAITO <hermes.belusca@sfr.fr>
7 */
8
9 #ifndef __STRINGUTILS_H__
10 #define __STRINGUTILS_H__
11
12 #pragma once
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 //
19 // String formatting
20 //
21 LPTSTR FormatStringV(LPCTSTR str, va_list args);
22 LPTSTR FormatString(LPCTSTR str, ...);
23
24 //
25 // String handling (ANSI <-> Unicode UTF16)
26 //
27 LPSTR UnicodeToAnsi(LPCWSTR strW);
28 LPWSTR AnsiToUnicode(LPCSTR strA);
29 LPSTR DuplicateStringA(LPCSTR str);
30 LPWSTR DuplicateStringW(LPCWSTR str);
31 LPSTR DuplicateStringAEx(LPCSTR str, size_t numOfChars);
32 LPWSTR DuplicateStringWEx(LPCWSTR str, size_t numOfChars);
33
34 //
35 // Conversion macros ANSI <-> Unicode
36 //
37 #ifdef UNICODE
38 #define NewAnsiString(x) UnicodeToAnsi(x)
39 #define NewPortableString(x) AnsiToUnicode(x)
40 #define DuplicateString(x) DuplicateStringW(x)
41 #define DuplicateStringEx(x, y) DuplicateStringWEx((x), (y))
42 #else
43 #define NewAnsiString(x) DuplicateStringA(x)
44 #define NewPortableString(x) DuplicateString(x)
45 #define DuplicateString(x) DuplicateStringA(x)
46 #define DuplicateStringEx(x, y) DuplicateStringAEx((x), (y))
47 #endif
48
49 //
50 // String search functions
51 //
52 #define FindSubStr(str, strSearch) _tcsstr((str), (strSearch))
53 LPTSTR FindSubStrI(LPCTSTR str, LPCTSTR strSearch);
54
55 LPTSTR AppendPathSeparator(LPTSTR lpszPath);
56
57 #ifdef __cplusplus
58 } // extern "C"
59 #endif
60
61 #endif // __STRINGUTILS_H__
62
63 /* EOF */