2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
17 * DEFINITIONS ________________________________________________________________
22 #define cchRESOURCE 256
26 #define cchLENGTH(_sz) (sizeof(_sz) / sizeof(_sz[0]))
29 #define cszMultiStringNULL TEXT("---") // added instead of "" in multistrings
33 * PROTOTYPES _________________________________________________________________
37 extern void GetString (LPTSTR pszTarget, int idsSource, int cchMax = cchRESOURCE);
38 extern size_t GetStringLength (int ids);
40 extern BOOL SearchMultiString (LPCTSTR pmsz, LPCTSTR pszString, BOOL fCaseSensitive = FALSE);
42 extern LPTSTR cdecl FormatString (LPCTSTR pszTemplate, LPCTSTR pszFormat = NULL, ...);
43 extern LPTSTR cdecl FormatString (int idsTemplate, LPCTSTR pszFormat = NULL, ...);
44 extern LPTSTR cdecl vFormatString (LPCTSTR pszTemplate, LPCTSTR pszFormat, va_list arg);
45 extern LPTSTR cdecl vFormatString (int idsTemplate, LPCTSTR pszFormat, va_list arg);
47 extern void cdecl FormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, LPCTSTR pszTemplate, LPCTSTR pszFormat = NULL, ...);
48 extern void cdecl FormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, int idsTemplate, LPCTSTR pszFormat = NULL, ...);
49 extern void cdecl vFormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, LPCTSTR pszTemplate, LPCTSTR pszFormat, va_list arg);
50 extern void cdecl vFormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, int idsTemplate, LPCTSTR pszFormat, va_list arg);
52 extern void FormatBytes (LPTSTR pszTarget, LPTSTR pszFormat, double cb);
53 extern void FormatDouble (LPTSTR pszTarget, LPTSTR pszFormat, double lfValue);
54 extern BOOL FormatTime (LPTSTR pszTarget, LPTSTR pszFormat, SYSTEMTIME *pst, BOOL fShowDate = TRUE, BOOL fShowTime = TRUE);
55 extern BOOL FormatElapsed (LPTSTR pszTarget, LPTSTR pszFormat, SYSTEMTIME *pst);
56 extern BOOL FormatError (LPTSTR pszTarget, LPTSTR pszFmt, DWORD dwError);
57 extern void FormatSockAddr (LPTSTR pszTarget, LPTSTR pszFmt, SOCKADDR_IN *paddr);
58 extern void FormatLargeInt (LPTSTR pszTarget, LPTSTR pszFormatUser, LARGE_INTEGER *pldw);
60 typedef BOOL (CALLBACK* LPERRORPROC)(LPTSTR psz, ULONG dwErr, LANGID idLanguage);
61 extern void SetErrorTranslationFunction (LPERRORPROC pfnGetErrText);
63 extern LPCTSTR FindExtension (LPCTSTR pszToSearch);
64 extern LPCTSTR FindBaseFileName (LPCTSTR pszToSearch);
65 extern void ChangeExtension (LPTSTR pszTarget, LPCTSTR pszSource, LPCTSTR pszNewExt, BOOL fForce = TRUE);
66 extern void CopyBaseFileName (LPTSTR pszTarget, LPCTSTR pszSource);
68 extern void CopyUnicodeToAnsi (LPSTR pszTargetA, LPCWSTR pszOriginalW, size_t cchMax = (size_t)1024);
69 extern void CopyUnicodeToString (LPTSTR pszTarget, LPCWSTR pszOriginalW, size_t cchMax = (size_t)1024);
70 extern void CopyAnsiToUnicode (LPWSTR pszTargetW, LPCSTR pszOriginalA, size_t cchMax = (size_t)1024);
71 extern void CopyAnsiToString (LPTSTR pszTarget, LPCSTR pszOriginalA, size_t cchMax = (size_t)1024);
72 extern void CopyStringToUnicode (LPWSTR pszTargetW, LPCTSTR pszOriginal, size_t cchMax = (size_t)1024);
73 extern void CopyStringToAnsi (LPSTR pszTargetA, LPCTSTR pszOriginal, size_t cchMax = (size_t)1024);
75 #define AllocateAnsi(_cch) ((LPSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(CHAR)))
76 #define AllocateUnicode(_cch) ((LPWSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(WCHAR)))
77 #define AllocateString(_cch) ((LPTSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(TCHAR)))
78 extern void FreeString (LPCVOID pszString, LPCVOID pszOriginalString = NULL);
80 extern LPSTR StringToAnsi (LPCTSTR pszOriginal);
81 extern LPTSTR AnsiToString (LPCSTR pszOriginalA);
82 extern LPWSTR StringToUnicode (LPCTSTR pszOriginal);
83 extern LPTSTR UnicodeToString (LPCWSTR pszOriginalW);
84 extern LPWSTR AnsiToUnicode (LPCSTR pszOriginalA);
85 extern LPSTR UnicodeToAnsi (LPCWSTR pszOriginalW);
87 extern LPTSTR CloneAnsi (LPSTR pszOriginalA);
88 extern LPTSTR CloneUnicode (LPWSTR pszOriginalW);
89 extern LPTSTR CloneString (LPTSTR pszOriginal);
90 extern LPTSTR CloneMultiString (LPCSTR mszOriginal);
94 *** The lstr* functions that Win32 forgot to include
98 extern void lstrupr (LPTSTR pszToChange);
99 extern LPCTSTR lstrchr (LPCTSTR pszSearch, TCHAR chToSearchFor);
100 extern LPCTSTR lstrrchr (LPCTSTR pszSearch, TCHAR chToSearchFor);
101 extern int lstrncmpi (LPCTSTR pszA, LPCTSTR pszB, size_t cchMax);
102 extern void lstrncpy (LPTSTR pszTarget, LPCTSTR pszSource, size_t cchMax);
103 extern void lstrzcpy (LPTSTR pszTarget, LPCTSTR pszSource, size_t cchMax);
105 extern void lsplitpath (LPCTSTR pszSource,
106 LPTSTR pszDrive, LPTSTR pszPath, LPTSTR pszBase, LPTSTR pszExt);