[SHELL32]: Partly restore code (AddCommasW function) that was implemented in r33953...
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 11 Jan 2017 20:02:14 +0000 (20:02 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Wed, 11 Jan 2017 20:02:14 +0000 (20:02 +0000)
svn path=/trunk/; revision=73524

reactos/dll/win32/shell32/shell32.cpp
reactos/dll/win32/shell32/stubs.cpp

index 2ef621a..4eb1847 100644 (file)
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
+/*
+ * Implemented
+ */
+EXTERN_C LPWSTR
+WINAPI
+AddCommasW(DWORD lValue, LPWSTR lpNumber)
+{
+    WCHAR szValue[MAX_PATH], szSeparator[8 + 1];
+    NUMBERFMTW numFormat;
+
+    GetLocaleInfoW(LOCALE_USER_DEFAULT,
+                   LOCALE_STHOUSAND,
+                   szSeparator,
+                   ARRAYSIZE(szSeparator));
+
+    numFormat.NumDigits     = 0;
+    numFormat.LeadingZero   = 0;
+    numFormat.Grouping      = 0; // FIXME! Use GetLocaleInfoW with LOCALE_SGROUPING and interpret the result.
+    numFormat.lpDecimalSep  = szSeparator;
+    numFormat.lpThousandSep = szSeparator;
+    numFormat.NegativeOrder = 0;
+
+    swprintf(szValue, L"%llu", lValue);
+    //_ultow(lValue, szValue, 10);
+
+    if (GetNumberFormatW(LOCALE_USER_DEFAULT,
+                         0,
+                         szValue,
+                         &numFormat,
+                         lpNumber,
+                         wcslen(lpNumber)) != 0)
+    {
+        return lpNumber;
+    }
+
+    wcscpy(lpNumber, szValue);
+    return lpNumber;
+}
+
 /**************************************************************************
  * Default ClassFactory types
  */
index df6f7fa..0a2e12a 100644 (file)
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
-/*
- * Unimplemented
- */
-EXTERN_C LPWSTR
-WINAPI
-AddCommasW(DWORD dwUnknown, LPWSTR lpNumber)
-{
-    LPCWSTR lpRetBuf = L"0";
-
-    FIXME("AddCommasW() stub\n");
-    return const_cast<LPWSTR>(lpRetBuf);
-}
-
 /*
  * Unimplemented
  */