30#define NONAMELESSUNION
35#define NO_SHLWAPI_STREAM
42#include "wine/unicode.h"
56 LPWSTR thousand_buffer,
int thousand_bufwlen)
66 fmt->lpThousandSep = thousand_buffer;
67 fmt->lpDecimalSep = decimal_buffer;
75 for (
c = grouping; *
c;
c++)
76 if (*
c >=
'0' && *
c <
'9')
79 fmt->Grouping += *
c -
'0';
82 if (
fmt->Grouping % 10 == 0)
99 WCHAR decimal[8], thousand[8];
102 BOOL neg = (qdwValue < 0);
105 thousand,
sizeof thousand /
sizeof (
WCHAR));
111 *(--
c) =
'0' + (qdwValue%10);
113 }
while (qdwValue > 0);
131 static const WCHAR flfmt[] = {
'%',
'f',0};
134 WCHAR decimal[8], thousand[8];
139 thousand,
sizeof thousand /
sizeof (
WCHAR));
140 fmt.NumDigits = decimals;
159 char str1[3], str2[3];
207 TRACE(
"(%d,%d)\n", ch1, ch2);
245 return (
LPSTR)lpszStr;
264 lpszRet =
strchrW(lpszStr, ch);
291 return (
LPSTR)lpszStr;
330 while (*lpszStr &&
cchMax-- > 0)
456 if (lpszStr && lpszSrc)
488 if (lpszCat && ichAt <
cchMax)
491 while (ichAt <
cchMax - 1 && *lpszCat)
493 *lpszStr++ = *lpszCat++;
518 if (lpszStr && lpszSrc)
567 if (!lpszStr || !lpszSearch || !*lpszSearch)
570 iLen =
strlen(lpszSearch);
573 while (lpszStr + iLen <=
end)
575 if (!pStrCmpFn(lpszStr, lpszSearch, iLen))
576 return (
LPSTR)lpszStr;
610 if (!lpszStr || !lpszSearch || !*lpszSearch)
return NULL;
611 return strstrW( lpszStr, lpszSearch );
635 if (!lpszStr || !lpszSearch || !*lpszSearch)
639 ch1 = *lpszSearch << 8 | (
UCHAR)lpszSearch[1];
645 lpszEnd = lpszStr +
lstrlenA(lpszStr);
649 while (lpszStr + iLen <= lpszEnd && *lpszStr)
654 if (!
StrCmpNIA(lpszStr, lpszSearch, iLen))
655 lpszRet = (
LPSTR)lpszStr;
674 if (!lpszStr || !lpszSearch || !*lpszSearch)
680 lpszEnd = lpszStr +
strlenW(lpszStr);
684 while (lpszStr + iLen <= lpszEnd && *lpszStr)
686 if (!
ChrCmpIW(*lpszSearch, *lpszStr))
688 if (!
StrCmpNIW(lpszStr, lpszSearch, iLen))
689 lpszRet = (
LPWSTR)lpszStr;
727 if (!lpszStr || !lpszSearch || !*lpszSearch)
733 while (lpszStr + iLen <=
end)
735 if (!
StrCmpNIW(lpszStr, lpszSearch, iLen))
762 if (!lpFirst || !lpSrch || !*lpSrch || !
cchMax)
767 for (
i =
cchMax; *lpFirst && (
i > 0);
i--, lpFirst++)
797 if (!lpFirst || !lpSrch || !*lpSrch || !
cchMax)
802 for (
i =
cchMax; *lpFirst && (
i > 0);
i--, lpFirst++)
834 WARN(
"Invalid lpszStr would crash under Win32!\n");
838 if (*lpszStr ==
'-' ||
isdigit(*lpszStr))
856 WARN(
"Invalid lpszStr would crash under Win32!\n");
860 if (*lpszStr ==
'-' ||
isdigitW(*lpszStr))
894 if (bRes) *lpiRet =
li;
910 if (!lpszStr || !lpiRet)
912 WARN(
"Invalid parameter would crash under Win32!\n");
926 else if (*lpszStr ==
'+')
930 *lpszStr ==
'0' &&
tolower(lpszStr[1]) ==
'x')
942 iRet += (*lpszStr -
'0');
944 iRet += 10 + (
tolower(*lpszStr) -
'a');
958 iRet += (*lpszStr -
'0');
961 *lpiRet = bNegative ? -iRet : iRet;
978 if (bRes) *lpiRet =
li;
994 if (!lpszStr || !lpiRet)
996 WARN(
"Invalid parameter would crash under Win32!\n");
1002 while (
isspaceW(*lpszStr)) lpszStr++;
1004 if (*lpszStr ==
'-')
1009 else if (*lpszStr ==
'+')
1013 *lpszStr ==
'0' &&
tolowerW(lpszStr[1]) ==
'x')
1025 iRet += (*lpszStr -
'0');
1027 iRet += 10 + (
tolowerW(*lpszStr) -
'a');
1041 iRet += (*lpszStr -
'0');
1044 *lpiRet = bNegative ? -iRet : iRet;
1071 iLen = lpszStr ?
strlen(lpszStr) + 1 : 1;
1077 memcpy(lpszRet, lpszStr, iLen);
1096 iLen = (lpszStr ?
strlenW(lpszStr) + 1 : 1) *
sizeof(
WCHAR);
1102 memcpy(lpszRet, lpszStr, iLen);
1118 LPCSTR lpszRead = lpszStr;
1119 if (lpszStr && *lpszStr && lpszMatch)
1123 LPCSTR lpszTest = pStrChrFn(lpszMatch, *lpszRead);
1132 return lpszRead - lpszStr;
1163 if (!lpszStr || !lpszMatch)
return 0;
1164 return strspnW( lpszStr, lpszMatch );
1195 if (!lpszStr || !lpszMatch)
return 0;
1196 return strcspnW( lpszStr, lpszMatch );
1231 if (lpszStr && *lpszStr && lpszMatch)
1235 if (
StrChrIW(lpszMatch, *lpszRead))
break;
1239 return lpszRead - lpszStr;
1259 if (lpszStr && lpszMatch && *lpszMatch)
1263 if (
StrChrA(lpszMatch, *lpszStr))
1264 return (
LPSTR)lpszStr;
1278 if (!lpszStr || !lpszMatch)
return NULL;
1279 return strpbrkW( lpszStr, lpszMatch );
1298 lpszEnd = lpszStr +
lstrlenA(lpszStr);
1300 while (*lpszStr && lpszStr <= lpszEnd)
1302 ch2 =
IsDBCSLeadByte(*lpszStr)? *lpszStr << 8 | lpszStr[1] : *lpszStr;
1304 if (!pChrCmpFn(ch, ch2))
1309 return (
LPSTR)lpszRet;
1419 WARN(
"Invalid lpszStr would crash under Win32!\n");
1444 WARN(
"Invalid lpszStr would crash under Win32!\n");
1484 WARN(
"Invalid lpStrRet would crash under Win32!\n");
1511 FIXME(
"unknown type!\n");
1531 WARN(
"Invalid lpStrRet would crash under Win32!\n");
1539 switch (
src->uType) {
1542 if (!
src->u.pOleStr)
1571 FIXME(
"unknown type!\n");
1596 switch (lpStrRet->
uType)
1627 switch (lpStrRet->
uType)
1690 switch (lpStrRet->
uType)
1745 static const WCHAR kb[] = {
' ',
'K',
'B',0};
1746 LONGLONG llKB = (llBytes + 1023) >> 10;
1780 LPSTR lpszRet = lpszStr;
1786 WARN(
"Invalid lpszStr would crash under Win32!\n");
1801 LPWSTR lpszRet = lpszStr;
1807 WARN(
"Invalid lpszStr would crash under Win32\n");
1831 LPSTR lpszRead = lpszStr;
1836 if (lpszRead && *lpszRead)
1838 while (*lpszRead &&
StrChrA(lpszTrim, *lpszRead))
1841 dwLen =
strlen(lpszRead);
1843 if (lpszRead != lpszStr)
1845 memmove(lpszStr, lpszRead, dwLen + 1);
1850 lpszRead = lpszStr + dwLen;
1851 while (
StrChrA(lpszTrim, lpszRead[-1]))
1852 lpszRead =
CharPrevA(lpszStr, lpszRead);
1854 if (lpszRead != lpszStr + dwLen)
1872 LPWSTR lpszRead = lpszStr;
1877 if (lpszRead && *lpszRead)
1879 while (*lpszRead &&
StrChrW(lpszTrim, *lpszRead)) lpszRead++;
1883 if (lpszRead != lpszStr)
1885 memmove(lpszStr, lpszRead, (dwLen + 1) *
sizeof(
WCHAR));
1890 lpszRead = lpszStr + dwLen;
1891 while (
StrChrW(lpszTrim, lpszRead[-1]))
1894 if (lpszRead != lpszStr + dwLen)
2039 DWORD dwNextDigit = dwNum % 10;
2040 *lpszOut-- =
'0' + dwNextDigit;
2041 dwNum = (dwNum - dwNextDigit) / 10;
2042 }
while (dwNum > 0);
2058 if (--dwDigits == 0)
2074 UINT uClassStringId,
int iDigits)
2076 WCHAR szBuff[64], *szOut = szBuff + 32;
2122 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2144 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2149 DWORD dwHours, dwMinutes;
2151 if (!iDigits ||
cchMax == 1)
2158 dwMS = (dwMS + 500) / 1000;
2159 dwHours = dwMS / 3600;
2160 dwMS -= dwHours * 3600;
2161 dwMinutes = dwMS / 60;
2162 dwMS -= dwMinutes * 60;
2169 if (dwMinutes && iDigits)
2201 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2223 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2253 if (
lpszDest && lpszSrc && iLen > 0)
2255 while ((iLen-- > 1) && *lpszSrc)
2272 if (
lpszDest && lpszSrc && iLen > 0)
2274 while ((iLen-- > 1) && *lpszSrc)
2302 if (lpszStr && lpszComp)
2321 else if (iStr > iComp)
2334 iDiff =
ChrCmpIW(*lpszStr,*lpszComp);
2382#define KB ((ULONGLONG)1024)
2384#define GB (KB*KB*KB)
2385#define TB (KB*KB*KB*KB)
2386#define PB (KB*KB*KB*KB*KB)
2391 { 10*
KB, 10.24, 100.0, 2, IDS_KB_FORMAT },
2392 { 100*
KB, 102.4, 10.0, 1, IDS_KB_FORMAT },
2393 { 1000*
KB, 1024.0, 1.0, 0, IDS_KB_FORMAT },
2394 { 10*
MB, 10485.76, 100.0, 2, IDS_MB_FORMAT },
2395 { 100*
MB, 104857.6, 10.0, 1, IDS_MB_FORMAT },
2396 { 1000*
MB, 1048576.0, 1.0, 0, IDS_MB_FORMAT },
2397 { 10*
GB, 10737418.24, 100.0, 2, IDS_GB_FORMAT },
2398 { 100*
GB, 107374182.4, 10.0, 1, IDS_GB_FORMAT },
2399 { 1000*
GB, 1073741824.0, 1.0, 0, IDS_GB_FORMAT },
2400 { 10*
TB, 10485.76, 100.0, 2, IDS_TB_FORMAT },
2401 { 100*
TB, 104857.6, 10.0, 1, IDS_TB_FORMAT },
2402 { 1000*
TB, 1048576.0, 1.0, 0, IDS_TB_FORMAT },
2403 { 10*
PB, 10737418.24, 100.00, 2, IDS_PB_FORMAT },
2404 { 100*
PB, 107374182.4, 10.00, 1, IDS_PB_FORMAT },
2405 { 1000*
PB, 1073741824.0, 1.00, 0, IDS_PB_FORMAT },
2406 { 0, 10995116277.76, 100.00, 2, IDS_EB_FORMAT }
2408 { 10*
KB, 10.24, 100.0, 2,
'K' },
2409 { 100*
KB, 102.4, 10.0, 1,
'K' },
2410 { 1000*
KB, 1024.0, 1.0, 0,
'K' },
2411 { 10*
MB, 10485.76, 100.0, 2,
'M' },
2412 { 100*
MB, 104857.6, 10.0, 1,
'M' },
2413 { 1000*
MB, 1048576.0, 1.0, 0,
'M' },
2414 { 10*
GB, 10737418.24, 100.0, 2,
'G' },
2415 { 100*
GB, 107374182.4, 10.0, 1,
'G' },
2416 { 1000*
GB, 1073741824.0, 1.0, 0,
'G' },
2417 { 10*
TB, 10485.76, 100.0, 2,
'T' },
2418 { 100*
TB, 104857.6, 10.0, 1,
'T' },
2419 { 1000*
TB, 1048576.0, 1.0, 0,
'T' },
2420 { 10*
PB, 10737418.24, 100.00, 2,
'P' },
2421 { 100*
PB, 107374182.4, 10.00, 1,
'P' },
2422 { 1000*
PB, 1073741824.0, 1.00, 0,
'P' },
2423 { 0, 10995116277.76, 100.00, 2,
'E' }
2427 WCHAR szBuff[40], wszFormat[40];
2429 WCHAR wszAdd[] = {
' ',
'?',
'B',0};
2441 WCHAR wszBytesFormat[64];
2452 if (llBytes < bfFormats[
i].dLimit)
2463 dBytes = (
double)(llBytes >> 20) + 0.001;
2465 dBytes = (
double)llBytes + 0.00001;
2542 while(lpStr < lastByte)
2569 LPSTR lpszIter, lpszTmp;
2576 if ((lpszIter =
StrChrA(lpszStr,
'&')))
2581 if (*lpszTmp !=
'&')
2598 LPWSTR lpszIter, lpszTmp;
2605 if ((lpszIter =
StrChrW(lpszStr,
'&')))
2607 lpszTmp = lpszIter + 1;
2610 if (*lpszTmp !=
'&')
2690 if (!lpDstStr || !
dstlen)
2717 lpDstStr[needed] =
'\0';
2733 if (reqLen > 0)
memcpy(lpDstStr,
mem, reqLen-1);
2760 lpDstStr[reqLen-1] =
'\0';
2808 lpszRet =
StrCpyNXA(lpszDst, lpszSrc, iLen);
2809 return lpszRet - lpszDst + 1;
2823 lpszRet =
StrCpyNXW(lpszDst, lpszSrc, iLen);
2824 return lpszRet - lpszDst + 1;
2866 return !
strcmpW(lpSrcStr, szBuff);
2882 WCHAR szExpanded[512];
2901 index_str =
strchrW(dllname,
',');
2903 if(!index_str)
goto end;
2922 FIXME(
"can't handle non-negative indices (%d)\n",
index);
ACPI_SIZE strlen(const char *String)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define ERROR_INSUFFICIENT_BUFFER
INT WINAPI StrToIntW(LPCWSTR lpString)
LPWSTR WINAPI StrChrIW(LPCWSTR lpszStr, WCHAR ch)
LPSTR WINAPI StrRStrIA(LPCSTR lpszStr, LPCSTR lpszEnd, LPCSTR lpszSearch)
int WINAPI StrCSpnIA(LPCSTR lpszStr, LPCSTR lpszMatch)
int WINAPI StrCSpnW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
LPWSTR WINAPI StrRChrW(LPCWSTR str, LPCWSTR end, WORD ch)
LPSTR WINAPI StrStrIA(LPCSTR lpszStr, LPCSTR lpszSearch)
LPSTR WINAPI StrRChrIA(LPCSTR lpszStr, LPCSTR lpszEnd, WORD ch)
INT WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
LPSTR WINAPI StrChrIA(LPCSTR lpszStr, WORD ch)
LPWSTR WINAPI StrRChrIW(LPCWSTR str, LPCWSTR end, WORD ch)
LPWSTR WINAPI StrStrW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
LPSTR WINAPI StrRChrA(LPCSTR lpszStr, LPCSTR lpszEnd, WORD ch)
INT WINAPI StrToIntA(LPCSTR lpszStr)
int WINAPI StrCSpnIW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
int WINAPI StrCSpnA(LPCSTR lpszStr, LPCSTR lpszMatch)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
LPSTR WINAPI StrStrA(LPCSTR lpszStr, LPCSTR lpszSearch)
LPWSTR WINAPI StrRStrIW(LPCWSTR lpszStr, LPCWSTR lpszEnd, LPCWSTR lpszSearch)
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
BOOL WINAPI IsDBCSLeadByte(BYTE TestByte)
#define IDS_TIME_INTERVAL_MINUTES
#define IDS_TIME_INTERVAL_HOURS
#define IDS_TIME_INTERVAL_SECONDS
BOOL WINAPI ChrCmpIW(WCHAR ch1, WCHAR ch2)
LPWSTR WINAPI StrPBrkW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
DWORD WINAPI SHTruncateString(LPSTR lpStr, DWORD size)
static HRESULT _SHStrDupAToBSTR(LPCSTR src, BSTR *pBstrOut)
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
INT WINAPI StrFromTimeIntervalW(LPWSTR lpszStr, UINT cchMax, DWORD dwMS, int iDigits)
BOOL WINAPI ChrCmpIA(WORD ch1, WORD ch2)
struct tagSHLWAPI_BYTEFORMATS SHLWAPI_BYTEFORMATS
WCHAR WINAPI SHStripMneumonicW(LPCWSTR lpszStr)
LPSTR WINAPI StrNCatA(LPSTR lpszStr, LPCSTR lpszCat, INT cchMax)
LPSTR WINAPI StrFormatByteSize64A(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
LPSTR WINAPI StrCpyNXA(LPSTR lpszDest, LPCSTR lpszSrc, int iLen)
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
static BOOL SHLWAPI_ChrCmpHelperA(WORD ch1, WORD ch2, DWORD dwFlags)
INT WINAPI StrCmpLogicalW(LPCWSTR lpszStr, LPCWSTR lpszComp)
LPSTR WINAPI StrDupA(LPCSTR lpszStr)
LPWSTR WINAPI StrCatBuffW(LPWSTR lpszStr, LPCWSTR lpszCat, INT cchMax)
INT WINAPI SHUnicodeToAnsi(LPCWSTR lpSrcStr, LPSTR lpDstStr, INT iLen)
LPWSTR WINAPI StrFormatKBSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
BOOL WINAPI IsCharSpaceA(CHAR c)
DWORD WINAPI SHUnicodeToUnicode(LPCWSTR lpszSrc, LPWSTR lpszDst, int iLen)
LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc)
DWORD WINAPI StrCatChainW(LPWSTR lpszStr, DWORD cchMax, DWORD ichAt, LPCWSTR lpszCat)
HRESULT WINAPI SHStrDupA(LPCSTR lpszStr, LPWSTR *lppszDest)
LPSTR WINAPI StrFormatByteSizeA(DWORD dwBytes, LPSTR lpszDest, UINT cchMax)
INT WINAPI StrFromTimeIntervalA(LPSTR lpszStr, UINT cchMax, DWORD dwMS, int iDigits)
DWORD WINAPI SHAnsiToAnsi(LPCSTR lpszSrc, LPSTR lpszDst, int iLen)
BOOL WINAPI StrIsIntlEqualW(BOOL bCase, LPCWSTR lpszStr, LPCWSTR lpszComp, int iLen)
char WINAPI SHStripMneumonicA(LPCSTR lpszStr)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
HRESULT WINAPI StrRetToBSTR(STRRET *lpStrRet, LPCITEMIDLIST pidl, BSTR *pBstrOut)
LPSTR WINAPI StrPBrkA(LPCSTR lpszStr, LPCSTR lpszMatch)
BOOL WINAPI StrToInt64ExW(LPCWSTR lpszStr, DWORD dwFlags, LONGLONG *lpiRet)
LPWSTR WINAPI StrCpyNXW(LPWSTR lpszDest, LPCWSTR lpszSrc, int iLen)
int WINAPI StrCmpIW(LPCWSTR lpszStr, LPCWSTR lpszComp)
static int FormatInt(LONGLONG qdwValue, LPWSTR pszBuf, int cchBuf)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
BOOL WINAPI DoesStringRoundTripW(LPCWSTR lpSrcStr, LPSTR lpDst, INT iLen)
LPWSTR WINAPI StrCpyNW(LPWSTR dst, LPCWSTR src, int count)
static HRESULT _SHStrDupAA(LPCSTR, LPSTR *)
LPWSTR WINAPI StrNCatW(LPWSTR lpszStr, LPCWSTR lpszCat, INT cchMax)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
HRESULT WINAPI StrRetToStrA(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPSTR *ppszName)
BOOL WINAPI StrIsIntlEqualA(BOOL bCase, LPCSTR lpszStr, LPCSTR lpszComp, int iLen)
static int SHLWAPI_FormatSignificant(LPWSTR lpszNum, int dwDigits)
HRESULT WINAPI StrRetToStrW(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPWSTR *ppszName)
int WINAPI StrSpnW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
int WINAPI StrCmpW(LPCWSTR lpszStr, LPCWSTR lpszComp)
LPWSTR WINAPI StrStrNW(LPCWSTR lpFirst, LPCWSTR lpSrch, UINT cchMax)
static LPSTR SHLWAPI_StrRChrHelperA(LPCSTR lpszStr, LPCSTR lpszEnd, WORD ch, BOOL(WINAPI *pChrCmpFn)(WORD, WORD))
static LPWSTR SHLWAPI_WriteReverseNum(LPWSTR lpszOut, DWORD dwNum)
LPWSTR WINAPI StrStrNIW(LPCWSTR lpFirst, LPCWSTR lpSrch, UINT cchMax)
HRESULT WINAPI SHLoadIndirectString(LPCWSTR src, LPWSTR dst, UINT dst_len, void **reserved)
HINSTANCE shlwapi_hInstance
BOOL WINAPI StrToIntExW(LPCWSTR lpszStr, DWORD dwFlags, LPINT lpiRet)
static HRESULT _SHStrDupAW(LPCWSTR, LPSTR *)
static int SHLWAPI_StrSpnHelperA(LPCSTR lpszStr, LPCSTR lpszMatch, LPSTR(WINAPI *pStrChrFn)(LPCSTR, WORD), BOOL bInvert)
BOOL WINAPI DoesStringRoundTripA(LPCSTR lpSrcStr, LPSTR lpDst, INT iLen)
LPWSTR WINAPI StrCpyW(LPWSTR lpszStr, LPCWSTR lpszSrc)
static BOOL WINAPI SHLWAPI_ChrCmpA(WORD ch1, WORD ch2)
BOOL WINAPI StrToIntExA(LPCSTR lpszStr, DWORD dwFlags, LPINT lpiRet)
static void FillNumberFmt(NUMBERFMTW *fmt, LPWSTR decimal_buffer, int decimal_bufwlen, LPWSTR thousand_buffer, int thousand_bufwlen)
DWORD WINAPI SHAnsiToUnicodeCP(DWORD dwCp, LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
LPSTR WINAPI StrFormatKBSizeA(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
LPWSTR WINAPI StrDupW(LPCWSTR lpszStr)
int WINAPI StrSpnA(LPCSTR lpszStr, LPCSTR lpszMatch)
HRESULT WINAPI StrRetToBufA(LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, UINT len)
static LPSTR SHLWAPI_StrStrHelperA(LPCSTR lpszStr, LPCSTR lpszSearch, INT(WINAPI *pStrCmpFn)(LPCSTR, LPCSTR, INT))
BOOL WINAPI StrToInt64ExA(LPCSTR lpszStr, DWORD dwFlags, LONGLONG *lpiRet)
DWORD WINAPI SHUnicodeToAnsiCP(UINT CodePage, LPCWSTR lpSrcStr, LPSTR lpDstStr, int dstlen)
static int SHLWAPI_WriteTimeClass(LPWSTR lpszOut, DWORD dwValue, UINT uClassStringId, int iDigits)
static int FormatDouble(double value, int decimals, LPWSTR pszBuf, int cchBuf)
LPSTR WINAPI StrCatBuffA(LPSTR lpszStr, LPCSTR lpszCat, INT cchMax)
LPWSTR WINAPI StrChrNW(LPCWSTR lpszStr, WCHAR ch, UINT cchMax)
BOOL WINAPI StrTrimA(LPSTR lpszStr, LPCSTR lpszTrim)
BOOL WINAPI IsCharSpaceW(WCHAR wc)
GLuint GLuint GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
static const WCHAR emptyW[]
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
LCID WINAPI GetThreadLocale(void)
BOOL WINAPI GetStringTypeA(LCID locale, DWORD type, LPCSTR src, INT count, LPWORD chartype)
INT WINAPI CompareStringA(LCID lcid, DWORD flags, LPCSTR str1, INT len1, LPCSTR str2, INT len2)
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
BOOL WINAPI GetStringTypeW(DWORD type, LPCWSTR src, INT count, LPWORD chartype)
LCID WINAPI GetSystemDefaultLCID(void)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static PEXPLICIT_ACCESSW *static HMODULE hmod
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
#define LOCALE_USER_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
#define strspnW(str, accept)
#define strncmpiW(s1, s2, n)
#define strncmpW(s1, s2, n)
#define strpbrkW(str, accept)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
static CONVERTINETUNICODETOMULTIBYTE ConvertINetUnicodeToMultiByte
DWORD WINAPI GetLastError(void)
#define LOAD_LIBRARY_AS_DATAFILE
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define E_NOT_SUFFICIENT_BUFFER
#define LOCALE_INEGNUMBER
LPSTR WINAPI CharPrevA(_In_ LPCSTR, _In_ LPCSTR)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
LPSTR WINAPI CharNextA(_In_ LPCSTR)