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;
1075 iLen = lpszStr ?
strlen(lpszStr) + 1 : 1;
1081 memcpy(lpszRet, lpszStr, iLen);
1104 iLen = (lpszStr ?
strlenW(lpszStr) + 1 : 1) *
sizeof(
WCHAR);
1110 memcpy(lpszRet, lpszStr, iLen);
1126 LPCSTR lpszRead = lpszStr;
1127 if (lpszStr && *lpszStr && lpszMatch)
1131 LPCSTR lpszTest = pStrChrFn(lpszMatch, *lpszRead);
1140 return lpszRead - lpszStr;
1171 if (!lpszStr || !lpszMatch)
return 0;
1172 return strspnW( lpszStr, lpszMatch );
1203 if (!lpszStr || !lpszMatch)
return 0;
1204 return strcspnW( lpszStr, lpszMatch );
1239 if (lpszStr && *lpszStr && lpszMatch)
1243 if (
StrChrIW(lpszMatch, *lpszRead))
break;
1247 return lpszRead - lpszStr;
1267 if (lpszStr && lpszMatch && *lpszMatch)
1271 if (
StrChrA(lpszMatch, *lpszStr))
1272 return (
LPSTR)lpszStr;
1286 if (!lpszStr || !lpszMatch)
return NULL;
1287 return strpbrkW( lpszStr, lpszMatch );
1306 lpszEnd = lpszStr +
lstrlenA(lpszStr);
1308 while (*lpszStr && lpszStr <= lpszEnd)
1310 ch2 =
IsDBCSLeadByte(*lpszStr)? *lpszStr << 8 | lpszStr[1] : *lpszStr;
1312 if (!pChrCmpFn(ch, ch2))
1317 return (
LPSTR)lpszRet;
1427 WARN(
"Invalid lpszStr would crash under Win32!\n");
1452 WARN(
"Invalid lpszStr would crash under Win32!\n");
1492 WARN(
"Invalid lpStrRet would crash under Win32!\n");
1519 FIXME(
"unknown type!\n");
1539 WARN(
"Invalid lpStrRet would crash under Win32!\n");
1547 switch (
src->uType) {
1550 if (!
src->u.pOleStr)
1579 FIXME(
"unknown type!\n");
1604 switch (lpStrRet->
uType)
1635 switch (lpStrRet->
uType)
1698 switch (lpStrRet->
uType)
1753 static const WCHAR kb[] = {
' ',
'K',
'B',0};
1754 LONGLONG llKB = (llBytes + 1023) >> 10;
1788 LPSTR lpszRet = lpszStr;
1794 WARN(
"Invalid lpszStr would crash under Win32!\n");
1809 LPWSTR lpszRet = lpszStr;
1815 WARN(
"Invalid lpszStr would crash under Win32\n");
1839 LPSTR lpszRead = lpszStr;
1844 if (lpszRead && *lpszRead)
1846 while (*lpszRead &&
StrChrA(lpszTrim, *lpszRead))
1849 dwLen =
strlen(lpszRead);
1851 if (lpszRead != lpszStr)
1853 memmove(lpszStr, lpszRead, dwLen + 1);
1858 lpszRead = lpszStr + dwLen;
1859 while (
StrChrA(lpszTrim, lpszRead[-1]))
1860 lpszRead =
CharPrevA(lpszStr, lpszRead);
1862 if (lpszRead != lpszStr + dwLen)
1880 LPWSTR lpszRead = lpszStr;
1885 if (lpszRead && *lpszRead)
1887 while (*lpszRead &&
StrChrW(lpszTrim, *lpszRead)) lpszRead++;
1891 if (lpszRead != lpszStr)
1893 memmove(lpszStr, lpszRead, (dwLen + 1) *
sizeof(
WCHAR));
1898 lpszRead = lpszStr + dwLen;
1899 while (
StrChrW(lpszTrim, lpszRead[-1]))
1902 if (lpszRead != lpszStr + dwLen)
2047 DWORD dwNextDigit = dwNum % 10;
2048 *lpszOut-- =
'0' + dwNextDigit;
2049 dwNum = (dwNum - dwNextDigit) / 10;
2050 }
while (dwNum > 0);
2066 if (--dwDigits == 0)
2082 UINT uClassStringId,
int iDigits)
2084 WCHAR szBuff[64], *szOut = szBuff + 32;
2130 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2152 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2157 DWORD dwHours, dwMinutes;
2159 if (!iDigits ||
cchMax == 1)
2166 dwMS = (dwMS + 500) / 1000;
2167 dwHours = dwMS / 3600;
2168 dwMS -= dwHours * 3600;
2169 dwMinutes = dwMS / 60;
2170 dwMS -= dwMinutes * 60;
2177 if (dwMinutes && iDigits)
2209 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2231 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2261 if (
lpszDest && lpszSrc && iLen > 0)
2263 while ((iLen-- > 1) && *lpszSrc)
2280 if (
lpszDest && lpszSrc && iLen > 0)
2282 while ((iLen-- > 1) && *lpszSrc)
2310 if (lpszStr && lpszComp)
2329 else if (iStr > iComp)
2342 iDiff =
ChrCmpIW(*lpszStr,*lpszComp);
2390#define KB ((ULONGLONG)1024)
2392#define GB (KB*KB*KB)
2393#define TB (KB*KB*KB*KB)
2394#define PB (KB*KB*KB*KB*KB)
2399 { 10*
KB, 10.24, 100.0, 2, IDS_KB_FORMAT },
2400 { 100*
KB, 102.4, 10.0, 1, IDS_KB_FORMAT },
2401 { 1000*
KB, 1024.0, 1.0, 0, IDS_KB_FORMAT },
2402 { 10*
MB, 10485.76, 100.0, 2, IDS_MB_FORMAT },
2403 { 100*
MB, 104857.6, 10.0, 1, IDS_MB_FORMAT },
2404 { 1000*
MB, 1048576.0, 1.0, 0, IDS_MB_FORMAT },
2405 { 10*
GB, 10737418.24, 100.0, 2, IDS_GB_FORMAT },
2406 { 100*
GB, 107374182.4, 10.0, 1, IDS_GB_FORMAT },
2407 { 1000*
GB, 1073741824.0, 1.0, 0, IDS_GB_FORMAT },
2408 { 10*
TB, 10485.76, 100.0, 2, IDS_TB_FORMAT },
2409 { 100*
TB, 104857.6, 10.0, 1, IDS_TB_FORMAT },
2410 { 1000*
TB, 1048576.0, 1.0, 0, IDS_TB_FORMAT },
2411 { 10*
PB, 10737418.24, 100.00, 2, IDS_PB_FORMAT },
2412 { 100*
PB, 107374182.4, 10.00, 1, IDS_PB_FORMAT },
2413 { 1000*
PB, 1073741824.0, 1.00, 0, IDS_PB_FORMAT },
2414 { 0, 10995116277.76, 100.00, 2, IDS_EB_FORMAT }
2416 { 10*
KB, 10.24, 100.0, 2,
'K' },
2417 { 100*
KB, 102.4, 10.0, 1,
'K' },
2418 { 1000*
KB, 1024.0, 1.0, 0,
'K' },
2419 { 10*
MB, 10485.76, 100.0, 2,
'M' },
2420 { 100*
MB, 104857.6, 10.0, 1,
'M' },
2421 { 1000*
MB, 1048576.0, 1.0, 0,
'M' },
2422 { 10*
GB, 10737418.24, 100.0, 2,
'G' },
2423 { 100*
GB, 107374182.4, 10.0, 1,
'G' },
2424 { 1000*
GB, 1073741824.0, 1.0, 0,
'G' },
2425 { 10*
TB, 10485.76, 100.0, 2,
'T' },
2426 { 100*
TB, 104857.6, 10.0, 1,
'T' },
2427 { 1000*
TB, 1048576.0, 1.0, 0,
'T' },
2428 { 10*
PB, 10737418.24, 100.00, 2,
'P' },
2429 { 100*
PB, 107374182.4, 10.00, 1,
'P' },
2430 { 1000*
PB, 1073741824.0, 1.00, 0,
'P' },
2431 { 0, 10995116277.76, 100.00, 2,
'E' }
2435 WCHAR szBuff[40], wszFormat[40];
2437 WCHAR wszAdd[] = {
' ',
'?',
'B',0};
2449 WCHAR wszBytesFormat[64];
2460 if (llBytes < bfFormats[
i].dLimit)
2471 dBytes = (
double)(llBytes >> 20) + 0.001;
2473 dBytes = (
double)llBytes + 0.00001;
2550 while(lpStr < lastByte)
2577 LPSTR lpszIter, lpszTmp;
2584 if ((lpszIter =
StrChrA(lpszStr,
'&')))
2589 if (*lpszTmp !=
'&')
2606 LPWSTR lpszIter, lpszTmp;
2613 if ((lpszIter =
StrChrW(lpszStr,
'&')))
2615 lpszTmp = lpszIter + 1;
2618 if (*lpszTmp !=
'&')
2698 if (!lpDstStr || !
dstlen)
2725 lpDstStr[needed] =
'\0';
2741 if (reqLen > 0)
memcpy(lpDstStr,
mem, reqLen-1);
2768 lpDstStr[reqLen-1] =
'\0';
2816 lpszRet =
StrCpyNXA(lpszDst, lpszSrc, iLen);
2817 return lpszRet - lpszDst + 1;
2831 lpszRet =
StrCpyNXW(lpszDst, lpszSrc, iLen);
2832 return lpszRet - lpszDst + 1;
2874 return !
strcmpW(lpSrcStr, szBuff);
2890 WCHAR szExpanded[512];
2909 index_str =
strchrW(dllname,
',');
2911 if(!index_str)
goto end;
2930 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)
LCID WINAPI GetThreadLocale(void)
BOOL WINAPI IsDBCSLeadByte(BYTE testchar)
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)
#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)
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)