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
32 #define EXPORTED __declspec(dllexport)
36 * PROTOTYPES _________________________________________________________________
40 extern EXPORTED void GetString (LPTSTR pszTarget, int idsSource, int cchMax = cchRESOURCE);
41 extern EXPORTED size_t GetStringLength (int ids);
43 extern EXPORTED BOOL SearchMultiString (LPCTSTR pmsz, LPCTSTR pszString, BOOL fCaseSensitive = FALSE);
45 extern EXPORTED LPTSTR cdecl FormatString (LPCTSTR pszTemplate, LPCTSTR pszFormat = NULL, ...);
46 extern EXPORTED LPTSTR cdecl FormatString (int idsTemplate, LPCTSTR pszFormat = NULL, ...);
47 extern EXPORTED LPTSTR cdecl vFormatString (LPCTSTR pszTemplate, LPCTSTR pszFormat, va_list arg);
48 extern EXPORTED LPTSTR cdecl vFormatString (int idsTemplate, LPCTSTR pszFormat, va_list arg);
50 extern EXPORTED void cdecl FormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, LPCTSTR pszTemplate, LPCTSTR pszFormat = NULL, ...);
51 extern EXPORTED void cdecl FormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, int idsTemplate, LPCTSTR pszFormat = NULL, ...);
52 extern EXPORTED void cdecl vFormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, LPCTSTR pszTemplate, LPCTSTR pszFormat, va_list arg);
53 extern EXPORTED void cdecl vFormatMultiString (LPTSTR *ppszTarget, BOOL fAddHead, int idsTemplate, LPCTSTR pszFormat, va_list arg);
55 extern EXPORTED void FormatBytes (LPTSTR pszTarget, LPTSTR pszFormat, double cb);
56 extern EXPORTED void FormatDouble (LPTSTR pszTarget, LPTSTR pszFormat, double lfValue);
57 extern EXPORTED BOOL FormatTime (LPTSTR pszTarget, LPTSTR pszFormat, SYSTEMTIME *pst, BOOL fShowDate = TRUE, BOOL fShowTime = TRUE);
58 extern EXPORTED BOOL FormatElapsed (LPTSTR pszTarget, LPTSTR pszFormat, SYSTEMTIME *pst);
59 extern EXPORTED BOOL FormatError (LPTSTR pszTarget, LPTSTR pszFmt, DWORD dwError);
60 extern EXPORTED void FormatSockAddr (LPTSTR pszTarget, LPTSTR pszFmt, SOCKADDR_IN *paddr);
61 extern EXPORTED void FormatLargeInt (LPTSTR pszTarget, LPTSTR pszFormatUser, LARGE_INTEGER *pldw);
63 typedef BOOL (CALLBACK* LPERRORPROC)(LPTSTR psz, ULONG dwErr, LANGID idLanguage);
64 extern EXPORTED void SetErrorTranslationFunction (LPERRORPROC pfnGetErrText);
66 extern EXPORTED LPCTSTR FindExtension (LPCTSTR pszToSearch);
67 extern EXPORTED LPCTSTR FindBaseFileName (LPCTSTR pszToSearch);
68 extern EXPORTED void ChangeExtension (LPTSTR pszTarget, LPCTSTR pszSource, LPCTSTR pszNewExt, BOOL fForce = TRUE);
69 extern EXPORTED void CopyBaseFileName (LPTSTR pszTarget, LPCTSTR pszSource);
71 extern EXPORTED void CopyUnicodeToAnsi (LPSTR pszTargetA, LPCWSTR pszOriginalW, size_t cchMax = (size_t)1024);
72 extern EXPORTED void CopyUnicodeToString (LPTSTR pszTarget, LPCWSTR pszOriginalW, size_t cchMax = (size_t)1024);
73 extern EXPORTED void CopyAnsiToUnicode (LPWSTR pszTargetW, LPCSTR pszOriginalA, size_t cchMax = (size_t)1024);
74 extern EXPORTED void CopyAnsiToString (LPTSTR pszTarget, LPCSTR pszOriginalA, size_t cchMax = (size_t)1024);
75 extern EXPORTED void CopyStringToUnicode (LPWSTR pszTargetW, LPCTSTR pszOriginal, size_t cchMax = (size_t)1024);
76 extern EXPORTED void CopyStringToAnsi (LPSTR pszTargetA, LPCTSTR pszOriginal, size_t cchMax = (size_t)1024);
78 #define AllocateAnsi(_cch) ((LPSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(CHAR)))
79 #define AllocateUnicode(_cch) ((LPWSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(WCHAR)))
80 #define AllocateString(_cch) ((LPTSTR)Allocate ((max((_cch),cchRESOURCE)+1) * sizeof(TCHAR)))
81 extern EXPORTED void FreeString (LPCVOID pszString, LPCVOID pszOriginalString = NULL);
83 extern EXPORTED LPSTR StringToAnsi (LPCTSTR pszOriginal);
84 extern EXPORTED LPTSTR AnsiToString (LPCSTR pszOriginalA);
85 extern EXPORTED LPWSTR StringToUnicode (LPCTSTR pszOriginal);
86 extern EXPORTED LPTSTR UnicodeToString (LPCWSTR pszOriginalW);
87 extern EXPORTED LPWSTR AnsiToUnicode (LPCSTR pszOriginalA);
88 extern EXPORTED LPSTR UnicodeToAnsi (LPCWSTR pszOriginalW);
90 extern EXPORTED LPTSTR CloneAnsi (LPSTR pszOriginalA);
91 extern EXPORTED LPTSTR CloneUnicode (LPWSTR pszOriginalW);
92 extern EXPORTED LPTSTR CloneString (LPTSTR pszOriginal);
93 extern EXPORTED LPTSTR CloneMultiString (LPCSTR mszOriginal);
97 *** The lstr* functions that Win32 forgot to include
101 extern EXPORTED void lstrupr (LPTSTR pszToChange);
102 extern EXPORTED LPCTSTR lstrchr (LPCTSTR pszSearch, TCHAR chToSearchFor);
103 extern EXPORTED LPCTSTR lstrrchr (LPCTSTR pszSearch, TCHAR chToSearchFor);
104 extern EXPORTED int lstrncmpi (LPCTSTR pszA, LPCTSTR pszB, size_t cchMax);
105 extern EXPORTED void lstrncpy (LPTSTR pszTarget, LPCTSTR pszSource, size_t cchMax);
106 extern EXPORTED void lstrzcpy (LPTSTR pszTarget, LPCTSTR pszSource, size_t cchMax);
108 extern EXPORTED void lsplitpath (LPCTSTR pszSource,
109 LPTSTR pszDrive, LPTSTR pszPath, LPTSTR pszBase, LPTSTR pszExt);