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)
1704 switch (lpStrRet->
uType)
1759 static const WCHAR kb[] = {
' ',
'K',
'B',0};
1760 LONGLONG llKB = (llBytes + 1023) >> 10;
1794 LPSTR lpszRet = lpszStr;
1800 WARN(
"Invalid lpszStr would crash under Win32!\n");
1815 LPWSTR lpszRet = lpszStr;
1821 WARN(
"Invalid lpszStr would crash under Win32\n");
1845 LPSTR lpszRead = lpszStr;
1850 if (lpszRead && *lpszRead)
1852 while (*lpszRead &&
StrChrA(lpszTrim, *lpszRead))
1855 dwLen =
strlen(lpszRead);
1857 if (lpszRead != lpszStr)
1859 memmove(lpszStr, lpszRead, dwLen + 1);
1864 lpszRead = lpszStr + dwLen;
1865 while (
StrChrA(lpszTrim, lpszRead[-1]))
1866 lpszRead =
CharPrevA(lpszStr, lpszRead);
1868 if (lpszRead != lpszStr + dwLen)
1886 LPWSTR lpszRead = lpszStr;
1891 if (lpszRead && *lpszRead)
1893 while (*lpszRead &&
StrChrW(lpszTrim, *lpszRead)) lpszRead++;
1897 if (lpszRead != lpszStr)
1899 memmove(lpszStr, lpszRead, (dwLen + 1) *
sizeof(
WCHAR));
1904 lpszRead = lpszStr + dwLen;
1905 while (
StrChrW(lpszTrim, lpszRead[-1]))
1908 if (lpszRead != lpszStr + dwLen)
2053 DWORD dwNextDigit = dwNum % 10;
2054 *lpszOut-- =
'0' + dwNextDigit;
2055 dwNum = (dwNum - dwNextDigit) / 10;
2056 }
while (dwNum > 0);
2072 if (--dwDigits == 0)
2088 UINT uClassStringId,
int iDigits)
2090 WCHAR szBuff[64], *szOut = szBuff + 32;
2136 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2158 TRACE(
"(%p,%d,%d,%d)\n", lpszStr,
cchMax, dwMS, iDigits);
2163 DWORD dwHours, dwMinutes;
2165 if (!iDigits ||
cchMax == 1)
2172 dwMS = (dwMS + 500) / 1000;
2173 dwHours = dwMS / 3600;
2174 dwMS -= dwHours * 3600;
2175 dwMinutes = dwMS / 60;
2176 dwMS -= dwMinutes * 60;
2183 if (dwMinutes && iDigits)
2215 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2237 TRACE(
"(%d,%s,%s,%d)\n", bCase,
2267 if (
lpszDest && lpszSrc && iLen > 0)
2269 while ((iLen-- > 1) && *lpszSrc)
2286 if (
lpszDest && lpszSrc && iLen > 0)
2288 while ((iLen-- > 1) && *lpszSrc)
2316 if (lpszStr && lpszComp)
2335 else if (iStr > iComp)
2348 iDiff =
ChrCmpIW(*lpszStr,*lpszComp);
2396#define KB ((ULONGLONG)1024)
2398#define GB (KB*KB*KB)
2399#define TB (KB*KB*KB*KB)
2400#define PB (KB*KB*KB*KB*KB)
2405 { 10*
KB, 10.24, 100.0, 2, IDS_KB_FORMAT },
2406 { 100*
KB, 102.4, 10.0, 1, IDS_KB_FORMAT },
2407 { 1000*
KB, 1024.0, 1.0, 0, IDS_KB_FORMAT },
2408 { 10*
MB, 10485.76, 100.0, 2, IDS_MB_FORMAT },
2409 { 100*
MB, 104857.6, 10.0, 1, IDS_MB_FORMAT },
2410 { 1000*
MB, 1048576.0, 1.0, 0, IDS_MB_FORMAT },
2411 { 10*
GB, 10737418.24, 100.0, 2, IDS_GB_FORMAT },
2412 { 100*
GB, 107374182.4, 10.0, 1, IDS_GB_FORMAT },
2413 { 1000*
GB, 1073741824.0, 1.0, 0, IDS_GB_FORMAT },
2414 { 10*
TB, 10485.76, 100.0, 2, IDS_TB_FORMAT },
2415 { 100*
TB, 104857.6, 10.0, 1, IDS_TB_FORMAT },
2416 { 1000*
TB, 1048576.0, 1.0, 0, IDS_TB_FORMAT },
2417 { 10*
PB, 10737418.24, 100.00, 2, IDS_PB_FORMAT },
2418 { 100*
PB, 107374182.4, 10.00, 1, IDS_PB_FORMAT },
2419 { 1000*
PB, 1073741824.0, 1.00, 0, IDS_PB_FORMAT },
2420 { 0, 10995116277.76, 100.00, 2, IDS_EB_FORMAT }
2422 { 10*
KB, 10.24, 100.0, 2,
'K' },
2423 { 100*
KB, 102.4, 10.0, 1,
'K' },
2424 { 1000*
KB, 1024.0, 1.0, 0,
'K' },
2425 { 10*
MB, 10485.76, 100.0, 2,
'M' },
2426 { 100*
MB, 104857.6, 10.0, 1,
'M' },
2427 { 1000*
MB, 1048576.0, 1.0, 0,
'M' },
2428 { 10*
GB, 10737418.24, 100.0, 2,
'G' },
2429 { 100*
GB, 107374182.4, 10.0, 1,
'G' },
2430 { 1000*
GB, 1073741824.0, 1.0, 0,
'G' },
2431 { 10*
TB, 10485.76, 100.0, 2,
'T' },
2432 { 100*
TB, 104857.6, 10.0, 1,
'T' },
2433 { 1000*
TB, 1048576.0, 1.0, 0,
'T' },
2434 { 10*
PB, 10737418.24, 100.00, 2,
'P' },
2435 { 100*
PB, 107374182.4, 10.00, 1,
'P' },
2436 { 1000*
PB, 1073741824.0, 1.00, 0,
'P' },
2437 { 0, 10995116277.76, 100.00, 2,
'E' }
2441 WCHAR szBuff[40], wszFormat[40];
2443 WCHAR wszAdd[] = {
' ',
'?',
'B',0};
2455 WCHAR wszBytesFormat[64];
2466 if (llBytes < bfFormats[
i].dLimit)
2477 dBytes = (
double)(llBytes >> 20) + 0.001;
2479 dBytes = (
double)llBytes + 0.00001;
2556 while(lpStr < lastByte)
2583 LPSTR lpszIter, lpszTmp;
2590 if ((lpszIter =
StrChrA(lpszStr,
'&')))
2595 if (*lpszTmp !=
'&')
2612 LPWSTR lpszIter, lpszTmp;
2619 if ((lpszIter =
StrChrW(lpszStr,
'&')))
2621 lpszTmp = lpszIter + 1;
2624 if (*lpszTmp !=
'&')
2704 if (!lpDstStr || !
dstlen)
2731 lpDstStr[needed] =
'\0';
2747 if (reqLen > 0)
memcpy(lpDstStr,
mem, reqLen-1);
2774 lpDstStr[reqLen-1] =
'\0';
2822 lpszRet =
StrCpyNXA(lpszDst, lpszSrc, iLen);
2823 return lpszRet - lpszDst + 1;
2837 lpszRet =
StrCpyNXW(lpszDst, lpszSrc, iLen);
2838 return lpszRet - lpszDst + 1;
2880 return !
strcmpW(lpSrcStr, szBuff);
2896 WCHAR szExpanded[512];
2915 index_str =
strchrW(dllname,
',');
2917 if(!index_str)
goto end;
2936 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)
BOOL WINAPI StrToIntExW(LPCWSTR lpszStr, DWORD dwFlags, int *lpiRet)
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)
BOOL WINAPI StrToIntExA(LPCSTR lpszStr, DWORD dwFlags, int *lpiRet)
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
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)
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)