Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
aa4ac3ad
Commit
aa4ac3ad
authored
Jun 17, 2019
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Build with msvcrt.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0ed304e9
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
93 additions
and
119 deletions
+93
-119
Makefile.in
dlls/oleaut32/Makefile.in
+2
-0
dispatch.c
dlls/oleaut32/dispatch.c
+0
-2
oleaut.c
dlls/oleaut32/oleaut.c
+0
-3
olefont.c
dlls/oleaut32/olefont.c
+6
-7
olepicture.c
dlls/oleaut32/olepicture.c
+1
-9
recinfo.c
dlls/oleaut32/recinfo.c
+4
-5
safearray.c
dlls/oleaut32/safearray.c
+0
-2
typelib.c
dlls/oleaut32/typelib.c
+39
-43
varformat.c
dlls/oleaut32/varformat.c
+18
-21
variant.c
dlls/oleaut32/variant.c
+7
-10
vartype.c
dlls/oleaut32/vartype.c
+16
-17
No files found.
dlls/oleaut32/Makefile.in
View file @
aa4ac3ad
...
...
@@ -4,6 +4,8 @@ IMPORTS = uuid ole32 rpcrt4 user32 gdi32 advapi32
DELAYIMPORTS
=
comctl32 urlmon windowscodecs
EXTRADEFS
=
-D_OLEAUT32_
EXTRADLLFLAGS
=
-mno-cygwin
C_SRCS
=
\
connpt.c
\
dispatch.c
\
...
...
dlls/oleaut32/dispatch.c
View file @
aa4ac3ad
...
...
@@ -19,8 +19,6 @@
*
*/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
...
...
dlls/oleaut32/oleaut.c
View file @
aa4ac3ad
...
...
@@ -18,8 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
...
...
@@ -41,7 +39,6 @@
#include "oleaut32_oaidl.h"
#include "wine/debug.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
ole
);
WINE_DECLARE_DEBUG_CHANNEL
(
heap
);
...
...
dlls/oleaut32/olefont.c
View file @
aa4ac3ad
...
...
@@ -35,7 +35,6 @@
#include "wingdi.h"
#include "winuser.h"
#include "wine/list.h"
#include "wine/unicode.h"
#include "objbase.h"
#include "oleauto.h"
/* for SysAllocString(....) */
#include "ole2.h"
...
...
@@ -230,7 +229,7 @@ static HRESULT dec_ext_ref(HFONT hfont)
static
WCHAR
*
strdupW
(
const
WCHAR
*
str
)
{
WCHAR
*
ret
;
DWORD
size
=
(
strlenW
(
str
)
+
1
)
*
sizeof
(
WCHAR
);
DWORD
size
=
(
l
strlenW
(
str
)
+
1
)
*
sizeof
(
WCHAR
);
ret
=
HeapAlloc
(
GetProcessHeap
(),
0
,
size
);
if
(
ret
)
...
...
@@ -1063,8 +1062,8 @@ static HRESULT WINAPI OLEFontImpl_IsEqual(
return
S_FALSE
;
/* Check from string */
left_len
=
strlenW
(
left
->
description
.
lpstrName
);
right_len
=
strlenW
(
right
->
description
.
lpstrName
);
left_len
=
l
strlenW
(
left
->
description
.
lpstrName
);
right_len
=
l
strlenW
(
right
->
description
.
lpstrName
);
ret
=
CompareStringW
(
0
,
0
,
left
->
description
.
lpstrName
,
left_len
,
right
->
description
.
lpstrName
,
right_len
);
if
(
ret
!=
CSTR_EQUAL
)
...
...
@@ -1727,7 +1726,7 @@ static HRESULT WINAPI OLEFontImpl_Save(
/* FontName */
if
(
this
->
description
.
lpstrName
)
string_size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
this
->
description
.
lpstrName
,
strlenW
(
this
->
description
.
lpstrName
),
NULL
,
0
,
NULL
,
NULL
);
l
strlenW
(
this
->
description
.
lpstrName
),
NULL
,
0
,
NULL
,
NULL
);
else
string_size
=
0
;
...
...
@@ -1738,7 +1737,7 @@ static HRESULT WINAPI OLEFontImpl_Save(
{
if
(
!
(
writeBuffer
=
HeapAlloc
(
GetProcessHeap
(),
0
,
string_size
)))
return
E_OUTOFMEMORY
;
WideCharToMultiByte
(
CP_ACP
,
0
,
this
->
description
.
lpstrName
,
strlenW
(
this
->
description
.
lpstrName
),
l
strlenW
(
this
->
description
.
lpstrName
),
writeBuffer
,
string_size
,
NULL
,
NULL
);
IStream_Write
(
pOutStream
,
writeBuffer
,
string_size
,
&
written
);
...
...
@@ -1774,7 +1773,7 @@ static HRESULT WINAPI OLEFontImpl_GetSizeMax(
if
(
this
->
description
.
lpstrName
!=
0
)
pcbSize
->
u
.
LowPart
+=
WideCharToMultiByte
(
CP_ACP
,
0
,
this
->
description
.
lpstrName
,
strlenW
(
this
->
description
.
lpstrName
),
l
strlenW
(
this
->
description
.
lpstrName
),
NULL
,
0
,
NULL
,
NULL
);
return
S_OK
;
...
...
dlls/oleaut32/olepicture.c
View file @
aa4ac3ad
...
...
@@ -36,12 +36,6 @@
*
*/
#include "config.h"
#include "wine/port.h"
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
...
...
@@ -62,8 +56,6 @@
#include "initguid.h"
#include "wincodec.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "wine/library.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
olepicture
);
...
...
@@ -2385,7 +2377,7 @@ HRESULT WINAPI OleLoadPicturePath( LPOLESTR szURLorPath, LPUNKNOWN punkCaller,
*
ppvRet
=
NULL
;
/* Convert file URLs to DOS paths. */
if
(
strncmpW
(
szURLorPath
,
file
,
5
)
==
0
)
{
if
(
wcsncmp
(
szURLorPath
,
file
,
5
)
==
0
)
{
DWORD
size
;
hRes
=
CoInternetParseUrl
(
szURLorPath
,
PARSE_PATH_FROM_URL
,
0
,
path_buf
,
ARRAY_SIZE
(
path_buf
),
&
size
,
0
);
...
...
dlls/oleaut32/recinfo.c
View file @
aa4ac3ad
...
...
@@ -28,7 +28,6 @@
#include "oleauto.h"
#include "variant.h"
#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
ole
);
...
...
@@ -402,7 +401,7 @@ static HRESULT WINAPI IRecordInfoImpl_GetField(IRecordInfo *iface, PVOID pvData,
return
E_INVALIDARG
;
for
(
i
=
0
;
i
<
This
->
n_vars
;
i
++
)
if
(
!
strcmpW
(
This
->
fields
[
i
].
name
,
szFieldName
))
if
(
!
wcscmp
(
This
->
fields
[
i
].
name
,
szFieldName
))
break
;
if
(
i
==
This
->
n_vars
)
return
TYPE_E_FIELDNOTFOUND
;
...
...
@@ -424,7 +423,7 @@ static HRESULT WINAPI IRecordInfoImpl_GetFieldNoCopy(IRecordInfo *iface, PVOID p
return
E_INVALIDARG
;
for
(
i
=
0
;
i
<
This
->
n_vars
;
i
++
)
if
(
!
strcmpW
(
This
->
fields
[
i
].
name
,
szFieldName
))
if
(
!
wcscmp
(
This
->
fields
[
i
].
name
,
szFieldName
))
break
;
if
(
i
==
This
->
n_vars
)
return
TYPE_E_FIELDNOTFOUND
;
...
...
@@ -455,7 +454,7 @@ static HRESULT WINAPI IRecordInfoImpl_PutField(IRecordInfo *iface, ULONG wFlags,
}
for
(
i
=
0
;
i
<
This
->
n_vars
;
i
++
)
if
(
!
strcmpW
(
This
->
fields
[
i
].
name
,
szFieldName
))
if
(
!
wcscmp
(
This
->
fields
[
i
].
name
,
szFieldName
))
break
;
if
(
i
==
This
->
n_vars
)
return
TYPE_E_FIELDNOTFOUND
;
...
...
@@ -477,7 +476,7 @@ static HRESULT WINAPI IRecordInfoImpl_PutFieldNoCopy(IRecordInfo *iface, ULONG w
return
E_INVALIDARG
;
for
(
i
=
0
;
i
<
This
->
n_vars
;
i
++
)
if
(
!
strcmpW
(
This
->
fields
[
i
].
name
,
szFieldName
))
if
(
!
wcscmp
(
This
->
fields
[
i
].
name
,
szFieldName
))
break
;
if
(
i
==
This
->
n_vars
)
return
TYPE_E_FIELDNOTFOUND
;
...
...
dlls/oleaut32/safearray.c
View file @
aa4ac3ad
...
...
@@ -31,8 +31,6 @@
* 0x10: SAFEARRAYBOUNDS[0...]
*/
#include "config.h"
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
...
...
dlls/oleaut32/typelib.c
View file @
aa4ac3ad
...
...
@@ -47,9 +47,6 @@
*
*/
#include "config.h"
#include "wine/port.h"
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
...
...
@@ -68,7 +65,6 @@
#include "winternl.h"
#include "lzexpand.h"
#include "wine/unicode.h"
#include "objbase.h"
#include "typelib.h"
#include "wine/debug.h"
...
...
@@ -183,7 +179,7 @@ static BOOL find_typelib_key( REFGUID guid, WORD *wMaj, WORD *wMin )
HKEY
hkey
;
memcpy
(
buffer
,
typelibW
,
sizeof
(
typelibW
)
);
StringFromGUID2
(
guid
,
buffer
+
strlenW
(
buffer
),
40
);
StringFromGUID2
(
guid
,
buffer
+
l
strlenW
(
buffer
),
40
);
if
(
RegOpenKeyExW
(
HKEY_CLASSES_ROOT
,
buffer
,
0
,
KEY_READ
,
&
hkey
)
!=
ERROR_SUCCESS
)
return
FALSE
;
...
...
@@ -247,8 +243,8 @@ static WCHAR *get_typelib_key( REFGUID guid, WORD wMaj, WORD wMin, WCHAR *buffer
static
const
WCHAR
VersionFormatW
[]
=
{
'\\'
,
'%'
,
'x'
,
'.'
,
'%'
,
'x'
,
0
};
memcpy
(
buffer
,
TypelibW
,
sizeof
(
TypelibW
)
);
StringFromGUID2
(
guid
,
buffer
+
strlenW
(
buffer
),
40
);
s
printfW
(
buffer
+
strlenW
(
buffer
)
,
VersionFormatW
,
wMaj
,
wMin
);
StringFromGUID2
(
guid
,
buffer
+
l
strlenW
(
buffer
),
40
);
s
wprintf
(
buffer
+
lstrlenW
(
buffer
),
20
,
VersionFormatW
,
wMaj
,
wMin
);
return
buffer
;
}
...
...
@@ -259,7 +255,7 @@ static WCHAR *get_interface_key( REFGUID guid, WCHAR *buffer )
static
const
WCHAR
InterfaceW
[]
=
{
'I'
,
'n'
,
't'
,
'e'
,
'r'
,
'f'
,
'a'
,
'c'
,
'e'
,
'\\'
,
0
};
memcpy
(
buffer
,
InterfaceW
,
sizeof
(
InterfaceW
)
);
StringFromGUID2
(
guid
,
buffer
+
strlenW
(
buffer
),
40
);
StringFromGUID2
(
guid
,
buffer
+
l
strlenW
(
buffer
),
40
);
return
buffer
;
}
...
...
@@ -272,12 +268,12 @@ static WCHAR *get_lcid_subkey( LCID lcid, SYSKIND syskind, WCHAR *buffer )
static
const
WCHAR
win32W
[]
=
{
'w'
,
'i'
,
'n'
,
'3'
,
'2'
,
0
};
static
const
WCHAR
win64W
[]
=
{
'w'
,
'i'
,
'n'
,
'6'
,
'4'
,
0
};
s
printfW
(
buffer
,
LcidFormatW
,
lcid
);
s
wprintf
(
buffer
,
16
,
LcidFormatW
,
lcid
);
switch
(
syskind
)
{
case
SYS_WIN16
:
strcatW
(
buffer
,
win16W
);
break
;
case
SYS_WIN32
:
strcatW
(
buffer
,
win32W
);
break
;
case
SYS_WIN64
:
strcatW
(
buffer
,
win64W
);
break
;
case
SYS_WIN16
:
l
strcatW
(
buffer
,
win16W
);
break
;
case
SYS_WIN32
:
l
strcatW
(
buffer
,
win32W
);
break
;
case
SYS_WIN64
:
l
strcatW
(
buffer
,
win64W
);
break
;
default:
TRACE
(
"Typelib is for unsupported syskind %i
\n
"
,
syskind
);
return
NULL
;
...
...
@@ -599,7 +595,7 @@ static void TLB_register_interface(TLIBATTR *libattr, LPOLESTR name, TYPEATTR *t
if
(
name
)
RegSetValueExW
(
key
,
NULL
,
0
,
REG_SZ
,
(
BYTE
*
)
name
,
(
strlenW
(
name
)
+
1
)
*
sizeof
(
OLECHAR
));
(
BYTE
*
)
name
,
(
l
strlenW
(
name
)
+
1
)
*
sizeof
(
OLECHAR
));
if
(
RegCreateKeyExW
(
key
,
ProxyStubClsidW
,
0
,
NULL
,
0
,
KEY_WRITE
|
flag
,
NULL
,
&
subKey
,
NULL
)
==
ERROR_SUCCESS
)
{
...
...
@@ -624,10 +620,10 @@ static void TLB_register_interface(TLIBATTR *libattr, LPOLESTR name, TYPEATTR *t
StringFromGUID2
(
&
libattr
->
guid
,
buffer
,
40
);
RegSetValueExW
(
subKey
,
NULL
,
0
,
REG_SZ
,
(
BYTE
*
)
buffer
,
(
strlenW
(
buffer
)
+
1
)
*
sizeof
(
WCHAR
));
s
printfW
(
buffer
,
fmtver
,
libattr
->
wMajorVerNum
,
libattr
->
wMinorVerNum
);
(
BYTE
*
)
buffer
,
(
l
strlenW
(
buffer
)
+
1
)
*
sizeof
(
WCHAR
));
s
wprintf
(
buffer
,
ARRAY_SIZE
(
buffer
)
,
fmtver
,
libattr
->
wMajorVerNum
,
libattr
->
wMinorVerNum
);
RegSetValueExW
(
subKey
,
VersionW
,
0
,
REG_SZ
,
(
BYTE
*
)
buffer
,
(
strlenW
(
buffer
)
+
1
)
*
sizeof
(
WCHAR
));
(
BYTE
*
)
buffer
,
(
l
strlenW
(
buffer
)
+
1
)
*
sizeof
(
WCHAR
));
RegCloseKey
(
subKey
);
}
...
...
@@ -715,9 +711,9 @@ HRESULT WINAPI RegisterTypeLib(
/* FIXME: is %u correct? */
static
const
WCHAR
formatW
[]
=
{
'%'
,
'u'
,
0
};
WCHAR
buf
[
20
];
s
printfW
(
buf
,
formatW
,
attr
->
wLibFlags
);
s
wprintf
(
buf
,
ARRAY_SIZE
(
buf
)
,
formatW
,
attr
->
wLibFlags
);
if
(
RegSetValueExW
(
subKey
,
NULL
,
0
,
REG_SZ
,
(
BYTE
*
)
buf
,
(
strlenW
(
buf
)
+
1
)
*
sizeof
(
WCHAR
)
)
!=
ERROR_SUCCESS
)
(
BYTE
*
)
buf
,
(
l
strlenW
(
buf
)
+
1
)
*
sizeof
(
WCHAR
)
)
!=
ERROR_SUCCESS
)
res
=
E_FAIL
;
RegCloseKey
(
subKey
);
...
...
@@ -737,7 +733,7 @@ HRESULT WINAPI RegisterTypeLib(
if we just opened an existing key, we leave the helpdir alone */
if
((
disposition
==
REG_CREATED_NEW_KEY
)
&&
(
szHelpDir
==
NULL
))
{
szHelpDir
=
SysAllocString
(
szFullPath
);
pIndexStr
=
strrchrW
(
szHelpDir
,
'\\'
);
pIndexStr
=
wcsrchr
(
szHelpDir
,
'\\'
);
if
(
pIndexStr
)
{
*
pIndexStr
=
0
;
}
...
...
@@ -975,7 +971,7 @@ enddeleteloop:
/* Now, delete the type library path subkey */
get_lcid_subkey
(
lcid
,
syskind
,
subKeyName
);
RegDeleteKeyW
(
key
,
subKeyName
);
*
strrchrW
(
subKeyName
,
'\\'
)
=
0
;
/* remove last path component */
*
wcsrchr
(
subKeyName
,
'\\'
)
=
0
;
/* remove last path component */
RegDeleteKeyW
(
key
,
subKeyName
);
/* check if there is anything besides the FLAGS/HELPDIR keys.
...
...
@@ -987,8 +983,8 @@ enddeleteloop:
tmpLength
=
ARRAY_SIZE
(
subKeyName
);
/* if its not FLAGS or HELPDIR, then we must keep the rest of the key */
if
(
!
strcmpW
(
subKeyName
,
FLAGSW
))
continue
;
if
(
!
strcmpW
(
subKeyName
,
HELPDIRW
))
continue
;
if
(
!
wcscmp
(
subKeyName
,
FLAGSW
))
continue
;
if
(
!
wcscmp
(
subKeyName
,
HELPDIRW
))
continue
;
deleteOtherStuff
=
FALSE
;
break
;
}
...
...
@@ -1001,7 +997,7 @@ enddeleteloop:
key
=
NULL
;
RegDeleteKeyW
(
HKEY_CLASSES_ROOT
,
keyName
);
*
strrchrW
(
keyName
,
'\\'
)
=
0
;
/* remove last path component */
*
wcsrchr
(
keyName
,
'\\'
)
=
0
;
/* remove last path component */
RegDeleteKeyW
(
HKEY_CLASSES_ROOT
,
keyName
);
}
...
...
@@ -1890,7 +1886,7 @@ static TLBString *TLB_append_str(struct list *string_list, BSTR new_str)
return
NULL
;
LIST_FOR_EACH_ENTRY
(
str
,
string_list
,
TLBString
,
entry
)
{
if
(
strcmpW
(
str
->
str
,
new_str
)
==
0
)
if
(
wcscmp
(
str
->
str
,
new_str
)
==
0
)
return
str
;
}
...
...
@@ -3297,11 +3293,11 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
*
ppTypeLib
=
NULL
;
index_str
=
strrchrW
(
pszFileName
,
'\\'
);
index_str
=
wcsrchr
(
pszFileName
,
'\\'
);
if
(
index_str
&&
*++
index_str
!=
'\0'
)
{
LPWSTR
end_ptr
;
LONG
idx
=
strtolW
(
index_str
,
&
end_ptr
,
10
);
LONG
idx
=
wcstol
(
index_str
,
&
end_ptr
,
10
);
if
(
*
end_ptr
==
'\0'
)
{
int
str_len
=
index_str
-
pszFileName
-
1
;
...
...
@@ -3314,7 +3310,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
if
(
!
SearchPathW
(
NULL
,
file
,
NULL
,
cchPath
,
pszPath
,
NULL
))
{
if
(
strchrW
(
file
,
'\\'
))
if
(
wcschr
(
file
,
'\\'
))
{
lstrcpyW
(
pszPath
,
file
);
}
...
...
@@ -3322,7 +3318,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
{
int
len
=
GetSystemDirectoryW
(
pszPath
,
cchPath
);
pszPath
[
len
]
=
'\\'
;
memcpy
(
pszPath
+
len
+
1
,
file
,
(
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
));
memcpy
(
pszPath
+
len
+
1
,
file
,
(
l
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
));
}
}
...
...
@@ -3360,7 +3356,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
EnterCriticalSection
(
&
cache_section
);
LIST_FOR_EACH_ENTRY
(
entry
,
&
tlb_cache
,
ITypeLibImpl
,
entry
)
{
if
(
!
strcmpiW
(
entry
->
path
,
pszPath
)
&&
entry
->
index
==
index
)
if
(
!
wcsicmp
(
entry
->
path
,
pszPath
)
&&
entry
->
index
==
index
)
{
TRACE
(
"cache hit
\n
"
);
*
ppTypeLib
=
&
entry
->
ITypeLib2_iface
;
...
...
@@ -3402,7 +3398,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
ITypeLibImpl
*
impl
=
impl_from_ITypeLib2
(
*
ppTypeLib
);
TRACE
(
"adding to cache
\n
"
);
impl
->
path
=
heap_alloc
((
strlenW
(
pszPath
)
+
1
)
*
sizeof
(
WCHAR
));
impl
->
path
=
heap_alloc
((
l
strlenW
(
pszPath
)
+
1
)
*
sizeof
(
WCHAR
));
lstrcpyW
(
impl
->
path
,
pszPath
);
/* We should really canonicalise the path here. */
impl
->
index
=
index
;
...
...
@@ -5381,7 +5377,7 @@ static HRESULT WINAPI ITypeLibComp_fnBind(
if
((
pTypeInfo
->
typeattr
.
typekind
==
TKIND_ENUM
)
||
(
pTypeInfo
->
typeattr
.
typekind
==
TKIND_MODULE
))
{
if
(
pTypeInfo
->
Name
&&
!
strcmpW
(
pTypeInfo
->
Name
->
str
,
szName
))
if
(
pTypeInfo
->
Name
&&
!
wcscmp
(
pTypeInfo
->
Name
->
str
,
szName
))
{
*
pDescKind
=
DESCKIND_TYPECOMP
;
pBindPtr
->
lptcomp
=
&
pTypeInfo
->
ITypeComp_iface
;
...
...
@@ -6027,7 +6023,7 @@ static HRESULT TLB_AllocAndInitVarDesc( const VARDESC *src, VARDESC **dest_ptr )
SIZE_T
size
=
sizeof
(
*
src
);
HRESULT
hr
;
if
(
src
->
lpstrSchema
)
size
+=
(
strlenW
(
src
->
lpstrSchema
)
+
1
)
*
sizeof
(
WCHAR
);
if
(
src
->
lpstrSchema
)
size
+=
(
l
strlenW
(
src
->
lpstrSchema
)
+
1
)
*
sizeof
(
WCHAR
);
if
(
src
->
varkind
==
VAR_CONST
)
size
+=
sizeof
(
VARIANT
);
size
+=
TLB_SizeElemDesc
(
&
src
->
elemdescVar
);
...
...
@@ -6041,7 +6037,7 @@ static HRESULT TLB_AllocAndInitVarDesc( const VARDESC *src, VARDESC **dest_ptr )
{
int
len
;
dest
->
lpstrSchema
=
(
LPOLESTR
)
buffer
;
len
=
strlenW
(
src
->
lpstrSchema
);
len
=
l
strlenW
(
src
->
lpstrSchema
);
memcpy
(
dest
->
lpstrSchema
,
src
->
lpstrSchema
,
(
len
+
1
)
*
sizeof
(
WCHAR
));
buffer
+=
(
len
+
1
)
*
sizeof
(
WCHAR
);
}
...
...
@@ -7763,7 +7759,7 @@ static BOOL CALLBACK search_res_tlb(HMODULE hModule, LPCWSTR lpszType, LPWSTR lp
if
(
!
(
len
=
GetModuleFileNameW
(
hModule
,
szPath
,
MAX_PATH
)))
return
TRUE
;
if
(
s
nprintfW
(
szPath
+
len
,
ARRAY_SIZE
(
szPath
)
-
len
,
formatW
,
LOWORD
(
lpszName
))
<
0
)
if
(
s
wprintf
(
szPath
+
len
,
ARRAY_SIZE
(
szPath
)
-
len
,
formatW
,
LOWORD
(
lpszName
))
<
0
)
return
TRUE
;
ret
=
LoadTypeLibEx
(
szPath
,
REGKIND_NONE
,
&
pTLib
);
...
...
@@ -9080,7 +9076,7 @@ static HRESULT WMSFT_compile_strings(ITypeLibImpl *This,
LIST_FOR_EACH_ENTRY
(
str
,
&
This
->
string_list
,
TLBString
,
entry
)
{
int
size
;
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
strlenW
(
str
->
str
),
NULL
,
0
,
NULL
,
NULL
);
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
l
strlenW
(
str
->
str
),
NULL
,
0
,
NULL
,
NULL
);
if
(
size
==
0
)
return
E_UNEXPECTED
;
...
...
@@ -9103,7 +9099,7 @@ static HRESULT WMSFT_compile_strings(ITypeLibImpl *This,
LIST_FOR_EACH_ENTRY
(
str
,
&
This
->
string_list
,
TLBString
,
entry
)
{
int
size
;
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
strlenW
(
str
->
str
),
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
l
strlenW
(
str
->
str
),
data
+
sizeof
(
INT16
),
file
->
string_seg
.
len
-
last_offs
-
sizeof
(
INT16
),
NULL
,
NULL
);
if
(
size
==
0
)
{
heap_free
(
file
->
string_seg
.
data
);
...
...
@@ -9138,7 +9134,7 @@ static HRESULT WMSFT_compile_names(ITypeLibImpl *This,
LIST_FOR_EACH_ENTRY
(
str
,
&
This
->
name_list
,
TLBString
,
entry
)
{
int
size
;
size
=
strlenW
(
str
->
str
);
size
=
l
strlenW
(
str
->
str
);
file
->
header
.
nametablechars
+=
size
;
file
->
header
.
nametablecount
++
;
...
...
@@ -9167,7 +9163,7 @@ static HRESULT WMSFT_compile_names(ITypeLibImpl *This,
int
size
,
hash
;
MSFT_NameIntro
*
intro
=
(
MSFT_NameIntro
*
)
data
;
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
strlenW
(
str
->
str
),
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
,
l
strlenW
(
str
->
str
),
data
+
sizeof
(
MSFT_NameIntro
),
file
->
name_seg
.
len
-
last_offs
-
sizeof
(
MSFT_NameIntro
),
NULL
,
NULL
);
if
(
size
==
0
)
{
...
...
@@ -9932,12 +9928,12 @@ static void WMSFT_compile_impfile(ITypeLibImpl *This, WMSFT_TLBFile *file)
int
size
=
0
;
if
(
implib
->
name
){
WCHAR
*
path
=
strrchrW
(
implib
->
name
,
'\\'
);
WCHAR
*
path
=
wcsrchr
(
implib
->
name
,
'\\'
);
if
(
path
)
++
path
;
else
path
=
implib
->
name
;
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
path
,
strlenW
(
path
),
NULL
,
0
,
NULL
,
NULL
);
size
=
WideCharToMultiByte
(
CP_ACP
,
0
,
path
,
l
strlenW
(
path
),
NULL
,
0
,
NULL
,
NULL
);
if
(
size
==
0
)
ERR
(
"failed to convert wide string: %s
\n
"
,
debugstr_w
(
path
));
}
...
...
@@ -9964,12 +9960,12 @@ static void WMSFT_compile_impfile(ITypeLibImpl *This, WMSFT_TLBFile *file)
data
+=
sizeof
(
WMSFT_ImpFile
);
if
(
implib
->
name
){
WCHAR
*
path
=
strrchrW
(
implib
->
name
,
'\\'
);
WCHAR
*
path
=
wcsrchr
(
implib
->
name
,
'\\'
);
if
(
path
)
++
path
;
else
path
=
implib
->
name
;
strlen
=
WideCharToMultiByte
(
CP_ACP
,
0
,
path
,
strlenW
(
path
),
strlen
=
WideCharToMultiByte
(
CP_ACP
,
0
,
path
,
l
strlenW
(
path
),
data
+
sizeof
(
INT16
),
file
->
impfile_seg
.
len
-
last_offs
-
sizeof
(
INT16
),
NULL
,
NULL
);
if
(
strlen
==
0
)
ERR
(
"failed to convert wide string: %s
\n
"
,
debugstr_w
(
path
));
...
...
@@ -10912,7 +10908,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetFuncAndParamNames(ICreateTypeInfo2 *
for
(
i
=
0
;
i
<
This
->
typeattr
.
cFuncs
;
++
i
)
{
TLBFuncDesc
*
iter
=
&
This
->
funcdescs
[
i
];
if
(
iter
->
Name
&&
!
strcmpW
(
TLB_get_bstr
(
iter
->
Name
),
*
names
))
{
if
(
iter
->
Name
&&
!
wcscmp
(
TLB_get_bstr
(
iter
->
Name
),
*
names
))
{
if
(
iter
->
funcdesc
.
invkind
&
(
INVOKE_PROPERTYPUT
|
INVOKE_PROPERTYPUTREF
|
INVOKE_PROPERTYGET
)
&&
func_desc
->
funcdesc
.
invkind
&
(
INVOKE_PROPERTYPUT
|
INVOKE_PROPERTYPUTREF
|
INVOKE_PROPERTYGET
)
&&
func_desc
->
funcdesc
.
invkind
!=
iter
->
funcdesc
.
invkind
)
...
...
dlls/oleaut32/varformat.c
View file @
aa4ac3ad
...
...
@@ -25,8 +25,6 @@
* Please submit a test case if you find a difference.
*/
#include "config.h"
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
...
...
@@ -34,7 +32,6 @@
#include "windef.h"
#include "winbase.h"
#include "wine/unicode.h"
#include "winerror.h"
#include "variant.h"
#include "wine/debug.h"
...
...
@@ -438,9 +435,9 @@ static const NAMED_FORMAT VARIANT_NamedFormats[] =
};
typedef
const
NAMED_FORMAT
*
LPCNAMED_FORMAT
;
static
int
FormatCompareFn
(
const
void
*
l
,
const
void
*
r
)
static
int
__cdecl
FormatCompareFn
(
const
void
*
l
,
const
void
*
r
)
{
return
strcmpiW
(((
LPCNAMED_FORMAT
)
l
)
->
name
,
((
LPCNAMED_FORMAT
)
r
)
->
name
);
return
wcsicmp
(((
LPCNAMED_FORMAT
)
l
)
->
name
,
((
LPCNAMED_FORMAT
)
r
)
->
name
);
}
static
inline
const
BYTE
*
VARIANT_GetNamedFormat
(
LPCWSTR
lpszFormat
)
...
...
@@ -763,7 +760,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
TRACE
(
"time sep
\n
"
);
}
else
if
((
*
pFormat
==
'a'
||
*
pFormat
==
'A'
)
&&
!
strncmpiW
(
pFormat
,
szAMPM
,
ARRAY_SIZE
(
szAMPM
)))
!
wcsnicmp
(
pFormat
,
szAMPM
,
ARRAY_SIZE
(
szAMPM
)))
{
/* Date formats: System AM/PM designation
* Other formats: Literal
...
...
@@ -772,7 +769,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
header
->
type
=
FMT_TYPE_DATE
;
NEED_SPACE
(
sizeof
(
BYTE
));
pFormat
+=
ARRAY_SIZE
(
szAMPM
);
if
(
!
strncmpW
(
pFormat
,
szampm
,
ARRAY_SIZE
(
szampm
)))
if
(
!
wcsncmp
(
pFormat
,
szampm
,
ARRAY_SIZE
(
szampm
)))
*
pOut
++
=
FMT_DATE_AMPM_SYS2
;
else
*
pOut
++
=
FMT_DATE_AMPM_SYS1
;
...
...
@@ -810,7 +807,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
*
pLastHours
=
*
pLastHours
+
2
;
TRACE
(
"A/P
\n
"
);
}
else
if
(
*
pFormat
==
'a'
&&
!
strncmpW
(
pFormat
,
szamSlashpm
,
ARRAY_SIZE
(
szamSlashpm
)))
else
if
(
*
pFormat
==
'a'
&&
!
wcsncmp
(
pFormat
,
szamSlashpm
,
ARRAY_SIZE
(
szamSlashpm
)))
{
/* Date formats: lowercase AM or PM designation
* Other formats: Literal
...
...
@@ -824,7 +821,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
*
pLastHours
=
*
pLastHours
+
2
;
TRACE
(
"AM/PM
\n
"
);
}
else
if
(
*
pFormat
==
'A'
&&
!
strncmpW
(
pFormat
,
szAMSlashPM
,
ARRAY_SIZE
(
szAMSlashPM
)))
else
if
(
*
pFormat
==
'A'
&&
!
wcsncmp
(
pFormat
,
szAMSlashPM
,
ARRAY_SIZE
(
szAMSlashPM
)))
{
/* Date formats: Uppercase AM or PM designation
* Other formats: Literal
...
...
@@ -986,7 +983,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
fmt_state
&=
~
FMT_STATE_OPEN_COPY
;
}
else
if
((
*
pFormat
==
't'
||
*
pFormat
==
'T'
)
&&
!
strncmpiW
(
pFormat
,
szTTTTT
,
ARRAY_SIZE
(
szTTTTT
)))
!
wcsnicmp
(
pFormat
,
szTTTTT
,
ARRAY_SIZE
(
szTTTTT
)))
{
/* Date formats: System time specifier
* Other formats: Literal
...
...
@@ -1376,7 +1373,7 @@ VARIANT_FormatNumber_Bool:
hRes
=
VarBstrFromBool
(
V_BOOL
(
&
vBool
),
lcid
,
boolFlag
,
&
boolStr
);
if
(
SUCCEEDED
(
hRes
))
{
strcpyW
(
pBuff
,
boolStr
);
l
strcpyW
(
pBuff
,
boolStr
);
SysFreeString
(
boolStr
);
while
(
*
pBuff
)
pBuff
++
;
...
...
@@ -1418,13 +1415,13 @@ VARIANT_FormatNumber_Bool:
if
(
exponent
<
0
)
{
*
pBuff
++
=
'-'
;
s
printfW
(
pBuff
,
szPercentZeroStar_d
,
pToken
[
1
],
-
exponent
);
s
wprintf
(
pBuff
,
ARRAY_SIZE
(
buff
)
-
(
pBuff
-
buff
)
,
szPercentZeroStar_d
,
pToken
[
1
],
-
exponent
);
}
else
{
if
(
*
pToken
==
FMT_NUM_EXP_POS_L
||
*
pToken
==
FMT_NUM_EXP_POS_U
)
*
pBuff
++
=
'+'
;
s
printfW
(
pBuff
,
szPercentZeroStar_d
,
pToken
[
1
],
exponent
);
s
wprintf
(
pBuff
,
ARRAY_SIZE
(
buff
)
-
(
pBuff
-
buff
)
,
szPercentZeroStar_d
,
pToken
[
1
],
exponent
);
}
while
(
*
pBuff
)
pBuff
++
;
...
...
@@ -1897,7 +1894,7 @@ static HRESULT VARIANT_FormatDate(LPVARIANT pVarIn, LPOLESTR lpszFormat,
}
else
if
(
szPrintFmt
)
{
s
printfW
(
pBuff
,
szPrintFmt
,
dwVal
);
s
wprintf
(
pBuff
,
ARRAY_SIZE
(
buff
)
-
(
pBuff
-
buff
)
,
szPrintFmt
,
dwVal
);
while
(
*
pBuff
)
pBuff
++
;
}
...
...
@@ -1956,7 +1953,7 @@ static HRESULT VARIANT_FormatString(LPVARIANT pVarIn, LPOLESTR lpszFormat,
pSrc
=
V_BSTR
(
&
vStr
);
if
((
strHeader
->
flags
&
(
FMT_FLAG_LT
|
FMT_FLAG_GT
))
==
FMT_FLAG_GT
)
bUpper
=
TRUE
;
blanks_first
=
strHeader
->
copy_chars
-
strlenW
(
pSrc
);
blanks_first
=
strHeader
->
copy_chars
-
l
strlenW
(
pSrc
);
pToken
=
(
const
BYTE
*
)
strHeader
+
sizeof
(
FMT_DATE_HEADER
);
while
(
*
pToken
!=
FMT_GEN_END
)
...
...
@@ -1997,9 +1994,9 @@ static HRESULT VARIANT_FormatString(LPVARIANT pVarIn, LPOLESTR lpszFormat,
while
(
dwCount
>
0
&&
*
pSrc
)
{
if
(
bUpper
)
*
pBuff
++
=
to
upperW
(
*
pSrc
);
*
pBuff
++
=
to
wupper
(
*
pSrc
);
else
*
pBuff
++
=
to
lowerW
(
*
pSrc
);
*
pBuff
++
=
to
wlower
(
*
pSrc
);
dwCount
--
;
pSrc
++
;
}
...
...
@@ -2025,9 +2022,9 @@ VARIANT_FormatString_Exit:
while
(
*
pSrc
)
{
if
(
bUpper
)
*
pBuff
++
=
to
upperW
(
*
pSrc
);
*
pBuff
++
=
to
wupper
(
*
pSrc
);
else
*
pBuff
++
=
to
lowerW
(
*
pSrc
);
*
pBuff
++
=
to
wlower
(
*
pSrc
);
pSrc
++
;
}
VariantClear
(
&
vStr
);
...
...
@@ -2380,12 +2377,12 @@ HRESULT WINAPI VarFormatPercent(LPVARIANT pVarIn, INT nDigits, INT nLeading, INT
if
(
SUCCEEDED
(
hRet
))
{
DWORD
dwLen
=
strlenW
(
*
pbstrOut
);
DWORD
dwLen
=
l
strlenW
(
*
pbstrOut
);
BOOL
bBracket
=
(
*
pbstrOut
)[
dwLen
]
==
')'
;
dwLen
-=
bBracket
;
memcpy
(
buff
,
*
pbstrOut
,
dwLen
*
sizeof
(
WCHAR
));
strcpyW
(
buff
+
dwLen
,
bBracket
?
szPercentBracket
:
szPercent
);
l
strcpyW
(
buff
+
dwLen
,
bBracket
?
szPercentBracket
:
szPercent
);
SysFreeString
(
*
pbstrOut
);
*
pbstrOut
=
SysAllocString
(
buff
);
if
(
!*
pbstrOut
)
...
...
dlls/oleaut32/variant.c
View file @
aa4ac3ad
...
...
@@ -25,8 +25,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
...
...
@@ -37,7 +35,6 @@
#include "windef.h"
#include "winbase.h"
#include "wine/unicode.h"
#include "winerror.h"
#include "variant.h"
#include "resource.h"
...
...
@@ -1635,14 +1632,14 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
/* First consume all the leading symbols and space from the string */
while
(
1
)
{
if
(
pNumprs
->
dwInFlags
&
NUMPRS_LEADING_WHITE
&&
is
spaceW
(
*
lpszStr
))
if
(
pNumprs
->
dwInFlags
&
NUMPRS_LEADING_WHITE
&&
is
wspace
(
*
lpszStr
))
{
pNumprs
->
dwOutFlags
|=
NUMPRS_LEADING_WHITE
;
do
{
cchUsed
++
;
lpszStr
++
;
}
while
(
is
spaceW
(
*
lpszStr
));
}
while
(
is
wspace
(
*
lpszStr
));
}
else
if
(
pNumprs
->
dwInFlags
&
NUMPRS_LEADING_PLUS
&&
*
lpszStr
==
chars
.
cPositiveSymbol
&&
...
...
@@ -1717,14 +1714,14 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
while
(
*
lpszStr
)
{
if
(
is
digitW
(
*
lpszStr
))
if
(
is
wdigit
(
*
lpszStr
))
{
if
(
dwState
&
B_PROCESSING_EXPONENT
)
{
int
exponentSize
=
0
;
if
(
dwState
&
B_EXPONENT_START
)
{
if
(
!
is
digitW
(
*
lpszStr
))
if
(
!
is
wdigit
(
*
lpszStr
))
break
;
/* No exponent digits - invalid */
while
(
*
lpszStr
==
'0'
)
{
...
...
@@ -1734,7 +1731,7 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
}
}
while
(
is
digitW
(
*
lpszStr
))
while
(
is
wdigit
(
*
lpszStr
))
{
exponentSize
*=
10
;
exponentSize
+=
*
lpszStr
-
'0'
;
...
...
@@ -1906,14 +1903,14 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
/* Consume any trailing symbols and space */
while
(
1
)
{
if
((
pNumprs
->
dwInFlags
&
NUMPRS_TRAILING_WHITE
)
&&
is
spaceW
(
*
lpszStr
))
if
((
pNumprs
->
dwInFlags
&
NUMPRS_TRAILING_WHITE
)
&&
is
wspace
(
*
lpszStr
))
{
pNumprs
->
dwOutFlags
|=
NUMPRS_TRAILING_WHITE
;
do
{
cchUsed
++
;
lpszStr
++
;
}
while
(
is
spaceW
(
*
lpszStr
));
}
while
(
is
wspace
(
*
lpszStr
));
}
else
if
(
pNumprs
->
dwInFlags
&
NUMPRS_TRAILING_PLUS
&&
!
(
pNumprs
->
dwOutFlags
&
NUMPRS_LEADING_PLUS
)
&&
...
...
dlls/oleaut32/vartype.c
View file @
aa4ac3ad
...
...
@@ -23,7 +23,6 @@
#define NONAMELESSSTRUCT
#include "wine/debug.h"
#include "wine/unicode.h"
#include "winbase.h"
#include "winuser.h"
#include "winnt.h"
...
...
@@ -6150,13 +6149,13 @@ VarBoolFromStr_CheckLocalised:
if
(
VARIANT_GetLocalisedText
(
langId
,
IDS_TRUE
,
szBuff
))
{
/* Compare against localised strings, ignoring case */
if
(
!
strcmpiW
(
strIn
,
szBuff
))
if
(
!
wcsicmp
(
strIn
,
szBuff
))
{
*
pBoolOut
=
VARIANT_TRUE
;
/* Matched localised 'true' text */
return
hRes
;
}
VARIANT_GetLocalisedText
(
langId
,
IDS_FALSE
,
szBuff
);
if
(
!
strcmpiW
(
strIn
,
szBuff
))
if
(
!
wcsicmp
(
strIn
,
szBuff
))
{
*
pBoolOut
=
VARIANT_FALSE
;
/* Matched localised 'false' text */
return
hRes
;
...
...
@@ -6171,9 +6170,9 @@ VarBoolFromStr_CheckLocalised:
}
/* All checks against localised text have failed, try #TRUE#/#FALSE# */
if
(
!
strcmpW
(
strIn
,
szFalse
))
if
(
!
wcscmp
(
strIn
,
szFalse
))
*
pBoolOut
=
VARIANT_FALSE
;
else
if
(
!
strcmpW
(
strIn
,
szTrue
))
else
if
(
!
wcscmp
(
strIn
,
szTrue
))
*
pBoolOut
=
VARIANT_TRUE
;
else
{
...
...
@@ -6356,7 +6355,7 @@ static BSTR VARIANT_MakeBstr(LCID lcid, DWORD dwFlags, WCHAR *szOut)
szOut
,
NULL
,
szConverted
,
ARRAY_SIZE
(
szConverted
));
szOut
=
szConverted
;
}
return
SysAllocStringByteLen
((
LPCSTR
)
szOut
,
strlenW
(
szOut
)
*
sizeof
(
WCHAR
));
return
SysAllocStringByteLen
((
LPCSTR
)
szOut
,
l
strlenW
(
szOut
)
*
sizeof
(
WCHAR
));
}
/* Create a (possibly localised) BSTR from a UI8 and sign */
...
...
@@ -6487,8 +6486,8 @@ static BSTR VARIANT_BstrReplaceDecimal(const WCHAR * buff, LCID lcid, ULONG dwFl
minFormat
.
NegativeOrder
=
1
;
/* NLS_NEG_LEFT */
/* count number of decimal digits in string */
p
=
strchrW
(
buff
,
'.'
);
if
(
p
)
minFormat
.
NumDigits
=
strlenW
(
p
+
1
);
p
=
wcschr
(
buff
,
'.'
);
if
(
p
)
minFormat
.
NumDigits
=
l
strlenW
(
p
+
1
);
numbuff
[
0
]
=
'\0'
;
if
(
!
GetNumberFormatW
(
lcid
,
0
,
buff
,
&
minFormat
,
numbuff
,
ARRAY_SIZE
(
numbuff
)))
...
...
@@ -6513,7 +6512,7 @@ static HRESULT VARIANT_BstrFromReal(DOUBLE dblIn, LCID lcid, ULONG dwFlags,
if
(
!
pbstrOut
)
return
E_INVALIDARG
;
s
printfW
(
buff
,
lpszFormat
,
dblIn
);
s
wprintf
(
buff
,
ARRAY_SIZE
(
buff
)
,
lpszFormat
,
dblIn
);
/* Negative zeroes are disallowed (some applications depend on this).
If buff starts with a minus, and then nothing follows but zeroes
...
...
@@ -6523,7 +6522,7 @@ static HRESULT VARIANT_BstrFromReal(DOUBLE dblIn, LCID lcid, ULONG dwFlags,
if
(
buff
[
0
]
==
'-'
)
{
static
const
WCHAR
szAccept
[]
=
{
'0'
,
'.'
,
'\0'
};
if
(
strlenW
(
buff
+
1
)
==
strspnW
(
buff
+
1
,
szAccept
))
if
(
lstrlenW
(
buff
+
1
)
==
wcsspn
(
buff
+
1
,
szAccept
))
{
buff
[
0
]
=
'0'
;
buff
[
1
]
=
'\0'
;
}
}
...
...
@@ -6814,7 +6813,7 @@ HRESULT WINAPI VarBstrFromDate(DATE dateIn, LCID lcid, ULONG dwFlags, BSTR* pbst
if
(
!
(
dwFlags
&
VAR_DATEVALUEONLY
))
{
time
=
date
+
strlenW
(
date
);
time
=
date
+
l
strlenW
(
date
);
if
(
time
!=
date
)
*
time
++
=
' '
;
if
(
!
GetTimeFormatW
(
lcid
,
dwFormatFlags
,
&
st
,
NULL
,
time
,
ARRAY_SIZE
(
date
)
-
(
time
-
date
)))
...
...
@@ -7658,25 +7657,25 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
/* Parse the string into our structure */
while
(
*
strIn
)
{
if
(
is
digitW
(
*
strIn
))
if
(
is
wdigit
(
*
strIn
))
{
if
(
dp
.
dwCount
>=
6
)
{
hRet
=
DISP_E_TYPEMISMATCH
;
break
;
}
dp
.
dwValues
[
dp
.
dwCount
]
=
strtoulW
(
strIn
,
&
strIn
,
10
);
dp
.
dwValues
[
dp
.
dwCount
]
=
wcstoul
(
strIn
,
&
strIn
,
10
);
dp
.
dwCount
++
;
strIn
--
;
}
else
if
(
is
alphaW
(
*
strIn
))
else
if
(
is
walpha
(
*
strIn
))
{
BOOL
bFound
=
FALSE
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
tokens
);
i
++
)
{
DWORD
dwLen
=
strlenW
(
tokens
[
i
]);
if
(
dwLen
&&
!
strncmpiW
(
strIn
,
tokens
[
i
],
dwLen
))
DWORD
dwLen
=
l
strlenW
(
tokens
[
i
]);
if
(
dwLen
&&
!
wcsnicmp
(
strIn
,
tokens
[
i
],
dwLen
))
{
if
(
i
<=
25
)
{
...
...
@@ -7755,7 +7754,7 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
else
dp
.
dwFlags
[
dp
.
dwCount
-
1
]
|=
DP_DATESEP
;
}
else
if
(
*
strIn
==
','
||
is
spaceW
(
*
strIn
))
else
if
(
*
strIn
==
','
||
is
wspace
(
*
strIn
))
{
if
(
*
strIn
==
','
&&
!
strIn
[
1
])
hRet
=
DISP_E_TYPEMISMATCH
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment