[PATCH] oleaut32: Fix the Var*FromStr() prototypes.

Francois Gouget fgouget at codeweavers.com
Fri Jul 16 10:15:09 CDT 2021


Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
The only non-totally-trivial change is the VarDateFromStr() 
implementation.
---
 dlls/oleaut32/variant.c |  2 +-
 dlls/oleaut32/vartype.c | 35 ++++++++++++++++++-----------------
 include/oleauto.h       | 30 +++++++++++++++---------------
 3 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index b3a568c355c..fdc402c7a62 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -1607,7 +1607,7 @@ static inline BOOL is_digit(WCHAR c)
  *  - I am unsure if this function should parse non-Arabic (e.g. Thai)
  *   numerals, so this has not been implemented.
  */
-HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
+HRESULT WINAPI VarParseNumFromStr(const OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
                                   NUMPARSE *pNumprs, BYTE *rgbDig)
 {
   VARIANT_NUMBER_CHARS chars;
diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c
index 4e3c4419567..5eacd43c5ae 100644
--- a/dlls/oleaut32/vartype.c
+++ b/dlls/oleaut32/vartype.c
@@ -84,7 +84,7 @@ static inline void VARIANT_CopyData(const VARIANT *srcVar, VARTYPE vt, void *pOu
 
 
 /* Coerce VT_BSTR to a numeric type */
-static HRESULT VARIANT_NumberFromBstr(OLECHAR* pStrIn, LCID lcid, ULONG ulFlags,
+static HRESULT VARIANT_NumberFromBstr(const OLECHAR* pStrIn, LCID lcid, ULONG ulFlags,
                                       void* pOut, VARTYPE vt)
 {
   VARIANTARG dstVar;
@@ -421,7 +421,7 @@ HRESULT WINAPI VarI1FromCy(CY cyIn, signed char* pcOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarI1FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, signed char* pcOut)
+HRESULT WINAPI VarI1FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, signed char* pcOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pcOut, VT_I1);
 }
@@ -714,7 +714,7 @@ HRESULT WINAPI VarUI1FromDate(DATE dateIn, BYTE* pbOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarUI1FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, BYTE* pbOut)
+HRESULT WINAPI VarUI1FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, BYTE* pbOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pbOut, VT_UI1);
 }
@@ -1015,7 +1015,7 @@ HRESULT WINAPI VarI2FromDate(DATE dateIn, SHORT* psOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarI2FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, SHORT* psOut)
+HRESULT WINAPI VarI2FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, SHORT* psOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, psOut, VT_I2);
 }
@@ -1329,7 +1329,7 @@ HRESULT WINAPI VarUI2FromCy(CY cyIn, USHORT* pusOut)
  *  Failure: DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarUI2FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, USHORT* pusOut)
+HRESULT WINAPI VarUI2FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, USHORT* pusOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pusOut, VT_UI2);
 }
@@ -1605,7 +1605,7 @@ HRESULT WINAPI VarI4FromDate(DATE dateIn, LONG *piOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if strIn cannot be converted
  */
-HRESULT WINAPI VarI4FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, LONG *piOut)
+HRESULT WINAPI VarI4FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, LONG *piOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, piOut, VT_I4);
 }
@@ -1914,7 +1914,7 @@ HRESULT WINAPI VarUI4FromCy(CY cyIn, ULONG *pulOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if strIn cannot be converted
  */
-HRESULT WINAPI VarUI4FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, ULONG *pulOut)
+HRESULT WINAPI VarUI4FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, ULONG *pulOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pulOut, VT_UI4);
 }
@@ -2221,7 +2221,7 @@ HRESULT WINAPI VarI8FromDate(DATE dateIn, LONG64* pi64Out)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarI8FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, LONG64* pi64Out)
+HRESULT WINAPI VarI8FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, LONG64* pi64Out)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pi64Out, VT_I8);
 }
@@ -2549,7 +2549,7 @@ HRESULT WINAPI VarUI8FromDate(DATE dateIn, ULONG64* pui64Out)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarUI8FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, ULONG64* pui64Out)
+HRESULT WINAPI VarUI8FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, ULONG64* pui64Out)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pui64Out, VT_UI8);
 }
@@ -2824,7 +2824,7 @@ HRESULT WINAPI VarR4FromDate(DATE dateIn, float *pFltOut)
  *  Failure: E_INVALIDARG, if strIn or pFltOut is invalid.
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarR4FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, float *pFltOut)
+HRESULT WINAPI VarR4FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, float *pFltOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pFltOut, VT_R4);
 }
@@ -3145,7 +3145,7 @@ HRESULT WINAPI VarR8FromDate(DATE dateIn, double *pDblOut)
  *  Failure: E_INVALIDARG, if strIn or pDblOut is invalid.
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarR8FromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, double *pDblOut)
+HRESULT WINAPI VarR8FromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, double *pDblOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pDblOut, VT_R8);
 }
@@ -3569,7 +3569,7 @@ HRESULT WINAPI VarCyFromDate(DATE dateIn, CY* pCyOut)
  *           DISP_E_OVERFLOW, if the value will not fit in the destination
  *           DISP_E_TYPEMISMATCH, if the type cannot be converted
  */
-HRESULT WINAPI VarCyFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, CY* pCyOut)
+HRESULT WINAPI VarCyFromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, CY* pCyOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pCyOut, VT_CY);
 }
@@ -4267,7 +4267,7 @@ HRESULT WINAPI VarDecFromCy(CY cyIn, DECIMAL* pDecOut)
  *  Success: S_OK.
  *  Failure: DISP_E_OVERFLOW, if the value will not fit in the destination
  */
-HRESULT WINAPI VarDecFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DECIMAL* pDecOut)
+HRESULT WINAPI VarDecFromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, DECIMAL* pDecOut)
 {
   return VARIANT_NumberFromBstr(strIn, lcid, dwFlags, pDecOut, VT_DECIMAL);
 }
@@ -6108,7 +6108,7 @@ static BOOL VARIANT_GetLocalisedText(LANGID langId, DWORD dwId, WCHAR *lpszDest)
  *  - If the text is not numeric and does not match any of the above, then
  *  DISP_E_TYPEMISMATCH is returned.
  */
-HRESULT WINAPI VarBoolFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, VARIANT_BOOL *pBoolOut)
+HRESULT WINAPI VarBoolFromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, VARIANT_BOOL *pBoolOut)
 {
   WCHAR szBuff[64];
   LANGID langId = MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT);
@@ -7595,7 +7595,7 @@ VARIANT_MakeDate_OK:
  *  the date is invalid in that format, in which the most compatible format
  *  that produces a valid date will be used.
  */
-HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pdateOut)
+HRESULT WINAPI VarDateFromStr(const OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pdateOut)
 {
   static const USHORT ParseDateTokens[] =
   {
@@ -7664,14 +7664,15 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
   {
     if ('0' <= *strIn && *strIn <= '9')
     {
+      OLECHAR* end;
       if (dp.dwCount >= 6)
       {
         hRet = DISP_E_TYPEMISMATCH;
         break;
       }
-      dp.dwValues[dp.dwCount] = wcstoul(strIn, &strIn, 10);
+      dp.dwValues[dp.dwCount] = wcstoul(strIn, &end, 10);
       dp.dwCount++;
-      strIn--;
+      strIn = end - 1;
     }
     else if (iswalpha(*strIn))
     {
diff --git a/include/oleauto.h b/include/oleauto.h
index f00bfa0c7f8..1d15efd26f3 100644
--- a/include/oleauto.h
+++ b/include/oleauto.h
@@ -237,7 +237,7 @@ HRESULT WINAPI VarUI1FromI1(signed char,BYTE*);
 HRESULT WINAPI VarUI1FromUI2(USHORT,BYTE*);
 HRESULT WINAPI VarUI1FromUI4(ULONG,BYTE*);
 HRESULT WINAPI VarUI1FromUI8(ULONG64,BYTE*);
-HRESULT WINAPI VarUI1FromStr(OLECHAR*,LCID,ULONG,BYTE*);
+HRESULT WINAPI VarUI1FromStr(const OLECHAR*,LCID,ULONG,BYTE*);
 HRESULT WINAPI VarUI1FromCy(CY,BYTE*);
 HRESULT WINAPI VarUI1FromDec(const DECIMAL*,BYTE*);
 HRESULT WINAPI VarUI1FromDisp(IDispatch*,LCID,BYTE*);
@@ -253,7 +253,7 @@ HRESULT WINAPI VarI2FromI1(signed char,SHORT*);
 HRESULT WINAPI VarI2FromUI2(USHORT,SHORT*);
 HRESULT WINAPI VarI2FromUI4(ULONG,SHORT*);
 HRESULT WINAPI VarI2FromUI8(ULONG64,SHORT*);
-HRESULT WINAPI VarI2FromStr(OLECHAR*,LCID,ULONG,SHORT*);
+HRESULT WINAPI VarI2FromStr(const OLECHAR*,LCID,ULONG,SHORT*);
 HRESULT WINAPI VarI2FromCy(CY,SHORT*);
 HRESULT WINAPI VarI2FromDec(const DECIMAL*,SHORT*);
 HRESULT WINAPI VarI2FromDisp(IDispatch*,LCID,SHORT*);
@@ -269,7 +269,7 @@ HRESULT WINAPI VarI4FromI1(signed char,LONG*);
 HRESULT WINAPI VarI4FromUI2(USHORT,LONG*);
 HRESULT WINAPI VarI4FromUI4(ULONG,LONG*);
 HRESULT WINAPI VarI4FromUI8(ULONG64,LONG*);
-HRESULT WINAPI VarI4FromStr(OLECHAR*,LCID,ULONG,LONG*);
+HRESULT WINAPI VarI4FromStr(const OLECHAR*,LCID,ULONG,LONG*);
 HRESULT WINAPI VarI4FromCy(CY,LONG*);
 HRESULT WINAPI VarI4FromDec(const DECIMAL*,LONG*);
 HRESULT WINAPI VarI4FromDisp(IDispatch*,LCID,LONG*);
@@ -280,7 +280,7 @@ HRESULT WINAPI VarI8FromI4(LONG,LONG64*);
 HRESULT WINAPI VarI8FromR4(FLOAT,LONG64*);
 HRESULT WINAPI VarI8FromR8(DOUBLE,LONG64*);
 HRESULT WINAPI VarI8FromDate(DATE,LONG64*);
-HRESULT WINAPI VarI8FromStr(OLECHAR*,LCID,ULONG,LONG64*);
+HRESULT WINAPI VarI8FromStr(const OLECHAR*,LCID,ULONG,LONG64*);
 HRESULT WINAPI VarI8FromBool(VARIANT_BOOL,LONG64*);
 HRESULT WINAPI VarI8FromI1(signed char,LONG64*);
 HRESULT WINAPI VarI8FromUI2(USHORT,LONG64*);
@@ -302,7 +302,7 @@ HRESULT WINAPI VarR4FromI1(signed char,FLOAT*);
 HRESULT WINAPI VarR4FromUI2(USHORT,FLOAT*);
 HRESULT WINAPI VarR4FromUI4(ULONG,FLOAT*);
 HRESULT WINAPI VarR4FromUI8(ULONG64,FLOAT*);
-HRESULT WINAPI VarR4FromStr(OLECHAR*,LCID,ULONG,FLOAT*);
+HRESULT WINAPI VarR4FromStr(const OLECHAR*,LCID,ULONG,FLOAT*);
 HRESULT WINAPI VarR4FromCy(CY,FLOAT*);
 HRESULT WINAPI VarR4FromDec(const DECIMAL*,FLOAT*);
 HRESULT WINAPI VarR4FromDisp(IDispatch*,LCID,FLOAT*);
@@ -318,7 +318,7 @@ HRESULT WINAPI VarR8FromI1(signed char,double*);
 HRESULT WINAPI VarR8FromUI2(USHORT,double*);
 HRESULT WINAPI VarR8FromUI4(ULONG,double*);
 HRESULT WINAPI VarR8FromUI8(ULONG64,double*);
-HRESULT WINAPI VarR8FromStr(OLECHAR*,LCID,ULONG,double*);
+HRESULT WINAPI VarR8FromStr(const OLECHAR*,LCID,ULONG,double*);
 HRESULT WINAPI VarR8FromCy(CY,double*);
 HRESULT WINAPI VarR8FromDec(const DECIMAL*,double*);
 HRESULT WINAPI VarR8FromDisp(IDispatch*,LCID,double*);
@@ -329,7 +329,7 @@ HRESULT WINAPI VarDateFromI4(LONG,DATE*);
 HRESULT WINAPI VarDateFromI8(LONG64,DATE*);
 HRESULT WINAPI VarDateFromR4(FLOAT,DATE*);
 HRESULT WINAPI VarDateFromR8(DOUBLE,DATE*);
-HRESULT WINAPI VarDateFromStr(OLECHAR*,LCID,ULONG,DATE*);
+HRESULT WINAPI VarDateFromStr(const OLECHAR*,LCID,ULONG,DATE*);
 HRESULT WINAPI VarDateFromI1(signed char,DATE*);
 HRESULT WINAPI VarDateFromUI2(USHORT,DATE*);
 HRESULT WINAPI VarDateFromUI4(ULONG,DATE*);
@@ -346,7 +346,7 @@ HRESULT WINAPI VarCyFromI8(LONG64,CY*);
 HRESULT WINAPI VarCyFromR4(FLOAT,CY*);
 HRESULT WINAPI VarCyFromR8(DOUBLE,CY*);
 HRESULT WINAPI VarCyFromDate(DATE,CY*);
-HRESULT WINAPI VarCyFromStr(OLECHAR*,LCID,ULONG,CY*);
+HRESULT WINAPI VarCyFromStr(const OLECHAR*,LCID,ULONG,CY*);
 HRESULT WINAPI VarCyFromBool(VARIANT_BOOL,CY*);
 HRESULT WINAPI VarCyFromI1(signed char,CY*);
 HRESULT WINAPI VarCyFromUI2(USHORT,CY*);
@@ -378,7 +378,7 @@ HRESULT WINAPI VarBoolFromI8(LONG64,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromR4(FLOAT,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromR8(DOUBLE,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromDate(DATE,VARIANT_BOOL*);
-HRESULT WINAPI VarBoolFromStr(OLECHAR*,LCID,ULONG,VARIANT_BOOL*);
+HRESULT WINAPI VarBoolFromStr(const OLECHAR*,LCID,ULONG,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromI1(signed char,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromUI2(USHORT,VARIANT_BOOL*);
 HRESULT WINAPI VarBoolFromUI4(ULONG,VARIANT_BOOL*);
@@ -394,7 +394,7 @@ HRESULT WINAPI VarI1FromI8(LONG64,signed char*);
 HRESULT WINAPI VarI1FromR4(FLOAT,signed char*);
 HRESULT WINAPI VarI1FromR8(DOUBLE,signed char*);
 HRESULT WINAPI VarI1FromDate(DATE,signed char*);
-HRESULT WINAPI VarI1FromStr(OLECHAR*,LCID,ULONG,signed char*);
+HRESULT WINAPI VarI1FromStr(const OLECHAR*,LCID,ULONG,signed char*);
 HRESULT WINAPI VarI1FromBool(VARIANT_BOOL,signed char*);
 HRESULT WINAPI VarI1FromUI2(USHORT,signed char*);
 HRESULT WINAPI VarI1FromUI4(ULONG,signed char*);
@@ -410,7 +410,7 @@ HRESULT WINAPI VarUI2FromI8(LONG64,USHORT*);
 HRESULT WINAPI VarUI2FromR4(FLOAT,USHORT*);
 HRESULT WINAPI VarUI2FromR8(DOUBLE,USHORT*);
 HRESULT WINAPI VarUI2FromDate(DATE,USHORT*);
-HRESULT WINAPI VarUI2FromStr(OLECHAR*,LCID,ULONG,USHORT*);
+HRESULT WINAPI VarUI2FromStr(const OLECHAR*,LCID,ULONG,USHORT*);
 HRESULT WINAPI VarUI2FromBool(VARIANT_BOOL,USHORT*);
 HRESULT WINAPI VarUI2FromI1(signed char,USHORT*);
 HRESULT WINAPI VarUI2FromUI4(ULONG,USHORT*);
@@ -419,7 +419,7 @@ HRESULT WINAPI VarUI2FromCy(CY,USHORT*);
 HRESULT WINAPI VarUI2FromDec(const DECIMAL*,USHORT*);
 HRESULT WINAPI VarUI2FromDisp(IDispatch*,LCID,USHORT*);
 
-HRESULT WINAPI VarUI4FromStr(OLECHAR*,LCID,ULONG,ULONG*);
+HRESULT WINAPI VarUI4FromStr(const OLECHAR*,LCID,ULONG,ULONG*);
 HRESULT WINAPI VarUI4FromUI1(BYTE,ULONG*);
 HRESULT WINAPI VarUI4FromI2(SHORT,ULONG*);
 HRESULT WINAPI VarUI4FromI4(LONG,ULONG*);
@@ -442,7 +442,7 @@ HRESULT WINAPI VarUI8FromI8(LONG64,ULONG64*);
 HRESULT WINAPI VarUI8FromR4(FLOAT,ULONG64*);
 HRESULT WINAPI VarUI8FromR8(DOUBLE,ULONG64*);
 HRESULT WINAPI VarUI8FromDate(DATE,ULONG64*);
-HRESULT WINAPI VarUI8FromStr(OLECHAR*,LCID,ULONG,ULONG64*);
+HRESULT WINAPI VarUI8FromStr(const OLECHAR*,LCID,ULONG,ULONG64*);
 HRESULT WINAPI VarUI8FromBool(VARIANT_BOOL,ULONG64*);
 HRESULT WINAPI VarUI8FromI1(signed char,ULONG64*);
 HRESULT WINAPI VarUI8FromUI2(USHORT,ULONG64*);
@@ -459,7 +459,7 @@ HRESULT WINAPI VarDecFromI8(LONG64,DECIMAL*);
 HRESULT WINAPI VarDecFromR4(FLOAT,DECIMAL*);
 HRESULT WINAPI VarDecFromR8(DOUBLE,DECIMAL*);
 HRESULT WINAPI VarDecFromDate(DATE,DECIMAL*);
-HRESULT WINAPI VarDecFromStr(OLECHAR*,LCID,ULONG,DECIMAL*);
+HRESULT WINAPI VarDecFromStr(const OLECHAR*,LCID,ULONG,DECIMAL*);
 HRESULT WINAPI VarDecFromBool(VARIANT_BOOL,DECIMAL*);
 HRESULT WINAPI VarDecFromI1(signed char,DECIMAL*);
 HRESULT WINAPI VarDecFromUI2(USHORT,DECIMAL*);
@@ -647,7 +647,7 @@ typedef struct
 #define VTBIT_CY      (1 << VT_CY)
 #define VTBIT_DECIMAL (1 << VT_DECIMAL)
 
-HRESULT WINAPI VarParseNumFromStr(OLECHAR*,LCID,ULONG,NUMPARSE*,BYTE*);
+HRESULT WINAPI VarParseNumFromStr(const OLECHAR*,LCID,ULONG,NUMPARSE*,BYTE*);
 HRESULT WINAPI VarNumFromParseNum(NUMPARSE*,BYTE*,ULONG,VARIANT*);
 
 INT WINAPI DosDateTimeToVariantTime(USHORT,USHORT,double*);
-- 
2.20.1



More information about the wine-devel mailing list