oleaut32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0ed304e990
commit
aa4ac3ad6c
|
@ -4,6 +4,8 @@ IMPORTS = uuid ole32 rpcrt4 user32 gdi32 advapi32
|
||||||
DELAYIMPORTS = comctl32 urlmon windowscodecs
|
DELAYIMPORTS = comctl32 urlmon windowscodecs
|
||||||
EXTRADEFS = -D_OLEAUT32_
|
EXTRADEFS = -D_OLEAUT32_
|
||||||
|
|
||||||
|
EXTRADLLFLAGS = -mno-cygwin
|
||||||
|
|
||||||
C_SRCS = \
|
C_SRCS = \
|
||||||
connpt.c \
|
connpt.c \
|
||||||
dispatch.c \
|
dispatch.c \
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
|
@ -18,8 +18,6 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -41,7 +39,6 @@
|
||||||
#include "oleaut32_oaidl.h"
|
#include "oleaut32_oaidl.h"
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||||
WINE_DECLARE_DEBUG_CHANNEL(heap);
|
WINE_DECLARE_DEBUG_CHANNEL(heap);
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/list.h"
|
#include "wine/list.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "oleauto.h" /* for SysAllocString(....) */
|
#include "oleauto.h" /* for SysAllocString(....) */
|
||||||
#include "ole2.h"
|
#include "ole2.h"
|
||||||
|
@ -230,7 +229,7 @@ static HRESULT dec_ext_ref(HFONT hfont)
|
||||||
static WCHAR *strdupW(const WCHAR* str)
|
static WCHAR *strdupW(const WCHAR* str)
|
||||||
{
|
{
|
||||||
WCHAR *ret;
|
WCHAR *ret;
|
||||||
DWORD size = (strlenW(str) + 1) * sizeof(WCHAR);
|
DWORD size = (lstrlenW(str) + 1) * sizeof(WCHAR);
|
||||||
|
|
||||||
ret = HeapAlloc(GetProcessHeap(), 0, size);
|
ret = HeapAlloc(GetProcessHeap(), 0, size);
|
||||||
if(ret)
|
if(ret)
|
||||||
|
@ -1063,8 +1062,8 @@ static HRESULT WINAPI OLEFontImpl_IsEqual(
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
|
|
||||||
/* Check from string */
|
/* Check from string */
|
||||||
left_len = strlenW(left->description.lpstrName);
|
left_len = lstrlenW(left->description.lpstrName);
|
||||||
right_len = strlenW(right->description.lpstrName);
|
right_len = lstrlenW(right->description.lpstrName);
|
||||||
ret = CompareStringW(0,0,left->description.lpstrName, left_len,
|
ret = CompareStringW(0,0,left->description.lpstrName, left_len,
|
||||||
right->description.lpstrName, right_len);
|
right->description.lpstrName, right_len);
|
||||||
if (ret != CSTR_EQUAL)
|
if (ret != CSTR_EQUAL)
|
||||||
|
@ -1727,7 +1726,7 @@ static HRESULT WINAPI OLEFontImpl_Save(
|
||||||
/* FontName */
|
/* FontName */
|
||||||
if (this->description.lpstrName)
|
if (this->description.lpstrName)
|
||||||
string_size = WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
string_size = WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
||||||
strlenW(this->description.lpstrName), NULL, 0, NULL, NULL );
|
lstrlenW(this->description.lpstrName), NULL, 0, NULL, NULL );
|
||||||
else
|
else
|
||||||
string_size = 0;
|
string_size = 0;
|
||||||
|
|
||||||
|
@ -1738,7 +1737,7 @@ static HRESULT WINAPI OLEFontImpl_Save(
|
||||||
{
|
{
|
||||||
if (!(writeBuffer = HeapAlloc( GetProcessHeap(), 0, string_size ))) return E_OUTOFMEMORY;
|
if (!(writeBuffer = HeapAlloc( GetProcessHeap(), 0, string_size ))) return E_OUTOFMEMORY;
|
||||||
WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
||||||
strlenW(this->description.lpstrName),
|
lstrlenW(this->description.lpstrName),
|
||||||
writeBuffer, string_size, NULL, NULL );
|
writeBuffer, string_size, NULL, NULL );
|
||||||
|
|
||||||
IStream_Write(pOutStream, writeBuffer, string_size, &written);
|
IStream_Write(pOutStream, writeBuffer, string_size, &written);
|
||||||
|
@ -1774,7 +1773,7 @@ static HRESULT WINAPI OLEFontImpl_GetSizeMax(
|
||||||
|
|
||||||
if (this->description.lpstrName!=0)
|
if (this->description.lpstrName!=0)
|
||||||
pcbSize->u.LowPart += WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
pcbSize->u.LowPart += WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
|
||||||
strlenW(this->description.lpstrName),
|
lstrlenW(this->description.lpstrName),
|
||||||
NULL, 0, NULL, NULL );
|
NULL, 0, NULL, NULL );
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
|
@ -36,12 +36,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "wine/port.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
# include <unistd.h>
|
|
||||||
#endif
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -62,8 +56,6 @@
|
||||||
#include "initguid.h"
|
#include "initguid.h"
|
||||||
#include "wincodec.h"
|
#include "wincodec.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "wine/library.h"
|
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(olepicture);
|
WINE_DEFAULT_DEBUG_CHANNEL(olepicture);
|
||||||
|
|
||||||
|
@ -2385,7 +2377,7 @@ HRESULT WINAPI OleLoadPicturePath( LPOLESTR szURLorPath, LPUNKNOWN punkCaller,
|
||||||
*ppvRet = NULL;
|
*ppvRet = NULL;
|
||||||
|
|
||||||
/* Convert file URLs to DOS paths. */
|
/* Convert file URLs to DOS paths. */
|
||||||
if (strncmpW(szURLorPath, file, 5) == 0) {
|
if (wcsncmp(szURLorPath, file, 5) == 0) {
|
||||||
DWORD size;
|
DWORD size;
|
||||||
hRes = CoInternetParseUrl(szURLorPath, PARSE_PATH_FROM_URL, 0, path_buf,
|
hRes = CoInternetParseUrl(szURLorPath, PARSE_PATH_FROM_URL, 0, path_buf,
|
||||||
ARRAY_SIZE(path_buf), &size, 0);
|
ARRAY_SIZE(path_buf), &size, 0);
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include "oleauto.h"
|
#include "oleauto.h"
|
||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
|
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||||
|
@ -402,7 +401,7 @@ static HRESULT WINAPI IRecordInfoImpl_GetField(IRecordInfo *iface, PVOID pvData,
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
for(i=0; i<This->n_vars; i++)
|
for(i=0; i<This->n_vars; i++)
|
||||||
if(!strcmpW(This->fields[i].name, szFieldName))
|
if(!wcscmp(This->fields[i].name, szFieldName))
|
||||||
break;
|
break;
|
||||||
if(i == This->n_vars)
|
if(i == This->n_vars)
|
||||||
return TYPE_E_FIELDNOTFOUND;
|
return TYPE_E_FIELDNOTFOUND;
|
||||||
|
@ -424,7 +423,7 @@ static HRESULT WINAPI IRecordInfoImpl_GetFieldNoCopy(IRecordInfo *iface, PVOID p
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
for(i=0; i<This->n_vars; i++)
|
for(i=0; i<This->n_vars; i++)
|
||||||
if(!strcmpW(This->fields[i].name, szFieldName))
|
if(!wcscmp(This->fields[i].name, szFieldName))
|
||||||
break;
|
break;
|
||||||
if(i == This->n_vars)
|
if(i == This->n_vars)
|
||||||
return TYPE_E_FIELDNOTFOUND;
|
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++)
|
for(i=0; i<This->n_vars; i++)
|
||||||
if(!strcmpW(This->fields[i].name, szFieldName))
|
if(!wcscmp(This->fields[i].name, szFieldName))
|
||||||
break;
|
break;
|
||||||
if(i == This->n_vars)
|
if(i == This->n_vars)
|
||||||
return TYPE_E_FIELDNOTFOUND;
|
return TYPE_E_FIELDNOTFOUND;
|
||||||
|
@ -477,7 +476,7 @@ static HRESULT WINAPI IRecordInfoImpl_PutFieldNoCopy(IRecordInfo *iface, ULONG w
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
for(i=0; i<This->n_vars; i++)
|
for(i=0; i<This->n_vars; i++)
|
||||||
if(!strcmpW(This->fields[i].name, szFieldName))
|
if(!wcscmp(This->fields[i].name, szFieldName))
|
||||||
break;
|
break;
|
||||||
if(i == This->n_vars)
|
if(i == This->n_vars)
|
||||||
return TYPE_E_FIELDNOTFOUND;
|
return TYPE_E_FIELDNOTFOUND;
|
||||||
|
|
|
@ -31,8 +31,6 @@
|
||||||
* 0x10: SAFEARRAYBOUNDS[0...]
|
* 0x10: SAFEARRAYBOUNDS[0...]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -47,9 +47,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "wine/port.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -68,7 +65,6 @@
|
||||||
#include "winternl.h"
|
#include "winternl.h"
|
||||||
#include "lzexpand.h"
|
#include "lzexpand.h"
|
||||||
|
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "typelib.h"
|
#include "typelib.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
@ -183,7 +179,7 @@ static BOOL find_typelib_key( REFGUID guid, WORD *wMaj, WORD *wMin )
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
|
|
||||||
memcpy( buffer, typelibW, sizeof(typelibW) );
|
memcpy( buffer, typelibW, sizeof(typelibW) );
|
||||||
StringFromGUID2( guid, buffer + strlenW(buffer), 40 );
|
StringFromGUID2( guid, buffer + lstrlenW(buffer), 40 );
|
||||||
|
|
||||||
if (RegOpenKeyExW( HKEY_CLASSES_ROOT, buffer, 0, KEY_READ, &hkey ) != ERROR_SUCCESS)
|
if (RegOpenKeyExW( HKEY_CLASSES_ROOT, buffer, 0, KEY_READ, &hkey ) != ERROR_SUCCESS)
|
||||||
return FALSE;
|
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};
|
static const WCHAR VersionFormatW[] = {'\\','%','x','.','%','x',0};
|
||||||
|
|
||||||
memcpy( buffer, TypelibW, sizeof(TypelibW) );
|
memcpy( buffer, TypelibW, sizeof(TypelibW) );
|
||||||
StringFromGUID2( guid, buffer + strlenW(buffer), 40 );
|
StringFromGUID2( guid, buffer + lstrlenW(buffer), 40 );
|
||||||
sprintfW( buffer + strlenW(buffer), VersionFormatW, wMaj, wMin );
|
swprintf( buffer + lstrlenW(buffer), 20, VersionFormatW, wMaj, wMin );
|
||||||
return buffer;
|
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};
|
static const WCHAR InterfaceW[] = {'I','n','t','e','r','f','a','c','e','\\',0};
|
||||||
|
|
||||||
memcpy( buffer, InterfaceW, sizeof(InterfaceW) );
|
memcpy( buffer, InterfaceW, sizeof(InterfaceW) );
|
||||||
StringFromGUID2( guid, buffer + strlenW(buffer), 40 );
|
StringFromGUID2( guid, buffer + lstrlenW(buffer), 40 );
|
||||||
return buffer;
|
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 win32W[] = {'w','i','n','3','2',0};
|
||||||
static const WCHAR win64W[] = {'w','i','n','6','4',0};
|
static const WCHAR win64W[] = {'w','i','n','6','4',0};
|
||||||
|
|
||||||
sprintfW( buffer, LcidFormatW, lcid );
|
swprintf( buffer, 16, LcidFormatW, lcid );
|
||||||
switch(syskind)
|
switch(syskind)
|
||||||
{
|
{
|
||||||
case SYS_WIN16: strcatW( buffer, win16W ); break;
|
case SYS_WIN16: lstrcatW( buffer, win16W ); break;
|
||||||
case SYS_WIN32: strcatW( buffer, win32W ); break;
|
case SYS_WIN32: lstrcatW( buffer, win32W ); break;
|
||||||
case SYS_WIN64: strcatW( buffer, win64W ); break;
|
case SYS_WIN64: lstrcatW( buffer, win64W ); break;
|
||||||
default:
|
default:
|
||||||
TRACE("Typelib is for unsupported syskind %i\n", syskind);
|
TRACE("Typelib is for unsupported syskind %i\n", syskind);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -599,7 +595,7 @@ static void TLB_register_interface(TLIBATTR *libattr, LPOLESTR name, TYPEATTR *t
|
||||||
|
|
||||||
if (name)
|
if (name)
|
||||||
RegSetValueExW(key, NULL, 0, REG_SZ,
|
RegSetValueExW(key, NULL, 0, REG_SZ,
|
||||||
(BYTE *)name, (strlenW(name)+1) * sizeof(OLECHAR));
|
(BYTE *)name, (lstrlenW(name)+1) * sizeof(OLECHAR));
|
||||||
|
|
||||||
if (RegCreateKeyExW(key, ProxyStubClsidW, 0, NULL, 0,
|
if (RegCreateKeyExW(key, ProxyStubClsidW, 0, NULL, 0,
|
||||||
KEY_WRITE | flag, NULL, &subKey, NULL) == ERROR_SUCCESS) {
|
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);
|
StringFromGUID2(&libattr->guid, buffer, 40);
|
||||||
RegSetValueExW(subKey, NULL, 0, REG_SZ,
|
RegSetValueExW(subKey, NULL, 0, REG_SZ,
|
||||||
(BYTE *)buffer, (strlenW(buffer)+1) * sizeof(WCHAR));
|
(BYTE *)buffer, (lstrlenW(buffer)+1) * sizeof(WCHAR));
|
||||||
sprintfW(buffer, fmtver, libattr->wMajorVerNum, libattr->wMinorVerNum);
|
swprintf(buffer, ARRAY_SIZE(buffer), fmtver, libattr->wMajorVerNum, libattr->wMinorVerNum);
|
||||||
RegSetValueExW(subKey, VersionW, 0, REG_SZ,
|
RegSetValueExW(subKey, VersionW, 0, REG_SZ,
|
||||||
(BYTE*)buffer, (strlenW(buffer)+1) * sizeof(WCHAR));
|
(BYTE*)buffer, (lstrlenW(buffer)+1) * sizeof(WCHAR));
|
||||||
RegCloseKey(subKey);
|
RegCloseKey(subKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -715,9 +711,9 @@ HRESULT WINAPI RegisterTypeLib(
|
||||||
/* FIXME: is %u correct? */
|
/* FIXME: is %u correct? */
|
||||||
static const WCHAR formatW[] = {'%','u',0};
|
static const WCHAR formatW[] = {'%','u',0};
|
||||||
WCHAR buf[20];
|
WCHAR buf[20];
|
||||||
sprintfW(buf, formatW, attr->wLibFlags);
|
swprintf(buf, ARRAY_SIZE(buf), formatW, attr->wLibFlags);
|
||||||
if (RegSetValueExW(subKey, NULL, 0, REG_SZ,
|
if (RegSetValueExW(subKey, NULL, 0, REG_SZ,
|
||||||
(BYTE *)buf, (strlenW(buf) + 1)*sizeof(WCHAR) ) != ERROR_SUCCESS)
|
(BYTE *)buf, (lstrlenW(buf) + 1)*sizeof(WCHAR) ) != ERROR_SUCCESS)
|
||||||
res = E_FAIL;
|
res = E_FAIL;
|
||||||
|
|
||||||
RegCloseKey(subKey);
|
RegCloseKey(subKey);
|
||||||
|
@ -737,7 +733,7 @@ HRESULT WINAPI RegisterTypeLib(
|
||||||
if we just opened an existing key, we leave the helpdir alone */
|
if we just opened an existing key, we leave the helpdir alone */
|
||||||
if ((disposition == REG_CREATED_NEW_KEY) && (szHelpDir == NULL)) {
|
if ((disposition == REG_CREATED_NEW_KEY) && (szHelpDir == NULL)) {
|
||||||
szHelpDir = SysAllocString(szFullPath);
|
szHelpDir = SysAllocString(szFullPath);
|
||||||
pIndexStr = strrchrW(szHelpDir, '\\');
|
pIndexStr = wcsrchr(szHelpDir, '\\');
|
||||||
if (pIndexStr) {
|
if (pIndexStr) {
|
||||||
*pIndexStr = 0;
|
*pIndexStr = 0;
|
||||||
}
|
}
|
||||||
|
@ -975,7 +971,7 @@ enddeleteloop:
|
||||||
/* Now, delete the type library path subkey */
|
/* Now, delete the type library path subkey */
|
||||||
get_lcid_subkey( lcid, syskind, subKeyName );
|
get_lcid_subkey( lcid, syskind, subKeyName );
|
||||||
RegDeleteKeyW(key, subKeyName);
|
RegDeleteKeyW(key, subKeyName);
|
||||||
*strrchrW( subKeyName, '\\' ) = 0; /* remove last path component */
|
*wcsrchr( subKeyName, '\\' ) = 0; /* remove last path component */
|
||||||
RegDeleteKeyW(key, subKeyName);
|
RegDeleteKeyW(key, subKeyName);
|
||||||
|
|
||||||
/* check if there is anything besides the FLAGS/HELPDIR keys.
|
/* check if there is anything besides the FLAGS/HELPDIR keys.
|
||||||
|
@ -987,8 +983,8 @@ enddeleteloop:
|
||||||
tmpLength = ARRAY_SIZE(subKeyName);
|
tmpLength = ARRAY_SIZE(subKeyName);
|
||||||
|
|
||||||
/* if its not FLAGS or HELPDIR, then we must keep the rest of the key */
|
/* if its not FLAGS or HELPDIR, then we must keep the rest of the key */
|
||||||
if (!strcmpW(subKeyName, FLAGSW)) continue;
|
if (!wcscmp(subKeyName, FLAGSW)) continue;
|
||||||
if (!strcmpW(subKeyName, HELPDIRW)) continue;
|
if (!wcscmp(subKeyName, HELPDIRW)) continue;
|
||||||
deleteOtherStuff = FALSE;
|
deleteOtherStuff = FALSE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1001,7 +997,7 @@ enddeleteloop:
|
||||||
key = NULL;
|
key = NULL;
|
||||||
|
|
||||||
RegDeleteKeyW(HKEY_CLASSES_ROOT, keyName);
|
RegDeleteKeyW(HKEY_CLASSES_ROOT, keyName);
|
||||||
*strrchrW( keyName, '\\' ) = 0; /* remove last path component */
|
*wcsrchr( keyName, '\\' ) = 0; /* remove last path component */
|
||||||
RegDeleteKeyW(HKEY_CLASSES_ROOT, keyName);
|
RegDeleteKeyW(HKEY_CLASSES_ROOT, keyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1890,7 +1886,7 @@ static TLBString *TLB_append_str(struct list *string_list, BSTR new_str)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY(str, string_list, TLBString, entry) {
|
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;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3297,11 +3293,11 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
|
||||||
|
|
||||||
*ppTypeLib = NULL;
|
*ppTypeLib = NULL;
|
||||||
|
|
||||||
index_str = strrchrW(pszFileName, '\\');
|
index_str = wcsrchr(pszFileName, '\\');
|
||||||
if(index_str && *++index_str != '\0')
|
if(index_str && *++index_str != '\0')
|
||||||
{
|
{
|
||||||
LPWSTR end_ptr;
|
LPWSTR end_ptr;
|
||||||
LONG idx = strtolW(index_str, &end_ptr, 10);
|
LONG idx = wcstol(index_str, &end_ptr, 10);
|
||||||
if(*end_ptr == '\0')
|
if(*end_ptr == '\0')
|
||||||
{
|
{
|
||||||
int str_len = index_str - pszFileName - 1;
|
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(!SearchPathW(NULL, file, NULL, cchPath, pszPath, NULL))
|
||||||
{
|
{
|
||||||
if(strchrW(file, '\\'))
|
if(wcschr(file, '\\'))
|
||||||
{
|
{
|
||||||
lstrcpyW(pszPath, file);
|
lstrcpyW(pszPath, file);
|
||||||
}
|
}
|
||||||
|
@ -3322,7 +3318,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
|
||||||
{
|
{
|
||||||
int len = GetSystemDirectoryW(pszPath, cchPath);
|
int len = GetSystemDirectoryW(pszPath, cchPath);
|
||||||
pszPath[len] = '\\';
|
pszPath[len] = '\\';
|
||||||
memcpy(pszPath + len + 1, file, (strlenW(file) + 1) * sizeof(WCHAR));
|
memcpy(pszPath + len + 1, file, (lstrlenW(file) + 1) * sizeof(WCHAR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3360,7 +3356,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
|
||||||
EnterCriticalSection(&cache_section);
|
EnterCriticalSection(&cache_section);
|
||||||
LIST_FOR_EACH_ENTRY(entry, &tlb_cache, ITypeLibImpl, entry)
|
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");
|
TRACE("cache hit\n");
|
||||||
*ppTypeLib = &entry->ITypeLib2_iface;
|
*ppTypeLib = &entry->ITypeLib2_iface;
|
||||||
|
@ -3402,7 +3398,7 @@ static HRESULT TLB_ReadTypeLib(LPCWSTR pszFileName, LPWSTR pszPath, UINT cchPath
|
||||||
ITypeLibImpl *impl = impl_from_ITypeLib2(*ppTypeLib);
|
ITypeLibImpl *impl = impl_from_ITypeLib2(*ppTypeLib);
|
||||||
|
|
||||||
TRACE("adding to cache\n");
|
TRACE("adding to cache\n");
|
||||||
impl->path = heap_alloc((strlenW(pszPath)+1) * sizeof(WCHAR));
|
impl->path = heap_alloc((lstrlenW(pszPath)+1) * sizeof(WCHAR));
|
||||||
lstrcpyW(impl->path, pszPath);
|
lstrcpyW(impl->path, pszPath);
|
||||||
/* We should really canonicalise the path here. */
|
/* We should really canonicalise the path here. */
|
||||||
impl->index = index;
|
impl->index = index;
|
||||||
|
@ -5381,7 +5377,7 @@ static HRESULT WINAPI ITypeLibComp_fnBind(
|
||||||
if ((pTypeInfo->typeattr.typekind == TKIND_ENUM) ||
|
if ((pTypeInfo->typeattr.typekind == TKIND_ENUM) ||
|
||||||
(pTypeInfo->typeattr.typekind == TKIND_MODULE))
|
(pTypeInfo->typeattr.typekind == TKIND_MODULE))
|
||||||
{
|
{
|
||||||
if (pTypeInfo->Name && !strcmpW(pTypeInfo->Name->str, szName))
|
if (pTypeInfo->Name && !wcscmp(pTypeInfo->Name->str, szName))
|
||||||
{
|
{
|
||||||
*pDescKind = DESCKIND_TYPECOMP;
|
*pDescKind = DESCKIND_TYPECOMP;
|
||||||
pBindPtr->lptcomp = &pTypeInfo->ITypeComp_iface;
|
pBindPtr->lptcomp = &pTypeInfo->ITypeComp_iface;
|
||||||
|
@ -6027,7 +6023,7 @@ static HRESULT TLB_AllocAndInitVarDesc( const VARDESC *src, VARDESC **dest_ptr )
|
||||||
SIZE_T size = sizeof(*src);
|
SIZE_T size = sizeof(*src);
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
if (src->lpstrSchema) size += (strlenW(src->lpstrSchema) + 1) * sizeof(WCHAR);
|
if (src->lpstrSchema) size += (lstrlenW(src->lpstrSchema) + 1) * sizeof(WCHAR);
|
||||||
if (src->varkind == VAR_CONST)
|
if (src->varkind == VAR_CONST)
|
||||||
size += sizeof(VARIANT);
|
size += sizeof(VARIANT);
|
||||||
size += TLB_SizeElemDesc(&src->elemdescVar);
|
size += TLB_SizeElemDesc(&src->elemdescVar);
|
||||||
|
@ -6041,7 +6037,7 @@ static HRESULT TLB_AllocAndInitVarDesc( const VARDESC *src, VARDESC **dest_ptr )
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
dest->lpstrSchema = (LPOLESTR)buffer;
|
dest->lpstrSchema = (LPOLESTR)buffer;
|
||||||
len = strlenW(src->lpstrSchema);
|
len = lstrlenW(src->lpstrSchema);
|
||||||
memcpy(dest->lpstrSchema, src->lpstrSchema, (len + 1) * sizeof(WCHAR));
|
memcpy(dest->lpstrSchema, src->lpstrSchema, (len + 1) * sizeof(WCHAR));
|
||||||
buffer += (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)))
|
if (!(len = GetModuleFileNameW(hModule, szPath, MAX_PATH)))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
if (snprintfW(szPath + len, ARRAY_SIZE(szPath) - len, formatW, LOWORD(lpszName)) < 0)
|
if (swprintf(szPath + len, ARRAY_SIZE(szPath) - len, formatW, LOWORD(lpszName)) < 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
ret = LoadTypeLibEx(szPath, REGKIND_NONE, &pTLib);
|
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) {
|
LIST_FOR_EACH_ENTRY(str, &This->string_list, TLBString, entry) {
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
size = WideCharToMultiByte(CP_ACP, 0, str->str, strlenW(str->str), NULL, 0, NULL, NULL);
|
size = WideCharToMultiByte(CP_ACP, 0, str->str, lstrlenW(str->str), NULL, 0, NULL, NULL);
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
return E_UNEXPECTED;
|
return E_UNEXPECTED;
|
||||||
|
|
||||||
|
@ -9103,7 +9099,7 @@ static HRESULT WMSFT_compile_strings(ITypeLibImpl *This,
|
||||||
LIST_FOR_EACH_ENTRY(str, &This->string_list, TLBString, entry) {
|
LIST_FOR_EACH_ENTRY(str, &This->string_list, TLBString, entry) {
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
size = WideCharToMultiByte(CP_ACP, 0, str->str, strlenW(str->str),
|
size = WideCharToMultiByte(CP_ACP, 0, str->str, lstrlenW(str->str),
|
||||||
data + sizeof(INT16), file->string_seg.len - last_offs - sizeof(INT16), NULL, NULL);
|
data + sizeof(INT16), file->string_seg.len - last_offs - sizeof(INT16), NULL, NULL);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
heap_free(file->string_seg.data);
|
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) {
|
LIST_FOR_EACH_ENTRY(str, &This->name_list, TLBString, entry) {
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
size = strlenW(str->str);
|
size = lstrlenW(str->str);
|
||||||
file->header.nametablechars += size;
|
file->header.nametablechars += size;
|
||||||
file->header.nametablecount++;
|
file->header.nametablecount++;
|
||||||
|
|
||||||
|
@ -9167,7 +9163,7 @@ static HRESULT WMSFT_compile_names(ITypeLibImpl *This,
|
||||||
int size, hash;
|
int size, hash;
|
||||||
MSFT_NameIntro *intro = (MSFT_NameIntro*)data;
|
MSFT_NameIntro *intro = (MSFT_NameIntro*)data;
|
||||||
|
|
||||||
size = WideCharToMultiByte(CP_ACP, 0, str->str, strlenW(str->str),
|
size = WideCharToMultiByte(CP_ACP, 0, str->str, lstrlenW(str->str),
|
||||||
data + sizeof(MSFT_NameIntro),
|
data + sizeof(MSFT_NameIntro),
|
||||||
file->name_seg.len - last_offs - sizeof(MSFT_NameIntro), NULL, NULL);
|
file->name_seg.len - last_offs - sizeof(MSFT_NameIntro), NULL, NULL);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
|
@ -9932,12 +9928,12 @@ static void WMSFT_compile_impfile(ITypeLibImpl *This, WMSFT_TLBFile *file)
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
||||||
if(implib->name){
|
if(implib->name){
|
||||||
WCHAR *path = strrchrW(implib->name, '\\');
|
WCHAR *path = wcsrchr(implib->name, '\\');
|
||||||
if(path)
|
if(path)
|
||||||
++path;
|
++path;
|
||||||
else
|
else
|
||||||
path = implib->name;
|
path = implib->name;
|
||||||
size = WideCharToMultiByte(CP_ACP, 0, path, strlenW(path), NULL, 0, NULL, NULL);
|
size = WideCharToMultiByte(CP_ACP, 0, path, lstrlenW(path), NULL, 0, NULL, NULL);
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
ERR("failed to convert wide string: %s\n", debugstr_w(path));
|
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);
|
data += sizeof(WMSFT_ImpFile);
|
||||||
|
|
||||||
if(implib->name){
|
if(implib->name){
|
||||||
WCHAR *path= strrchrW(implib->name, '\\');
|
WCHAR *path= wcsrchr(implib->name, '\\');
|
||||||
if(path)
|
if(path)
|
||||||
++path;
|
++path;
|
||||||
else
|
else
|
||||||
path = implib->name;
|
path = implib->name;
|
||||||
strlen = WideCharToMultiByte(CP_ACP, 0, path, strlenW(path),
|
strlen = WideCharToMultiByte(CP_ACP, 0, path, lstrlenW(path),
|
||||||
data + sizeof(INT16), file->impfile_seg.len - last_offs - sizeof(INT16), NULL, NULL);
|
data + sizeof(INT16), file->impfile_seg.len - last_offs - sizeof(INT16), NULL, NULL);
|
||||||
if (strlen == 0)
|
if (strlen == 0)
|
||||||
ERR("failed to convert wide string: %s\n", debugstr_w(path));
|
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) {
|
for(i = 0; i < This->typeattr.cFuncs; ++i) {
|
||||||
TLBFuncDesc *iter = &This->funcdescs[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) &&
|
if (iter->funcdesc.invkind & (INVOKE_PROPERTYPUT | INVOKE_PROPERTYPUTREF | INVOKE_PROPERTYGET) &&
|
||||||
func_desc->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)
|
func_desc->funcdesc.invkind != iter->funcdesc.invkind)
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
* Please submit a test case if you find a difference.
|
* Please submit a test case if you find a difference.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -34,7 +32,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
@ -438,9 +435,9 @@ static const NAMED_FORMAT VARIANT_NamedFormats[] =
|
||||||
};
|
};
|
||||||
typedef const NAMED_FORMAT *LPCNAMED_FORMAT;
|
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)
|
static inline const BYTE *VARIANT_GetNamedFormat(LPCWSTR lpszFormat)
|
||||||
|
@ -763,7 +760,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
|
||||||
TRACE("time sep\n");
|
TRACE("time sep\n");
|
||||||
}
|
}
|
||||||
else if ((*pFormat == 'a' || *pFormat == 'A') &&
|
else if ((*pFormat == 'a' || *pFormat == 'A') &&
|
||||||
!strncmpiW(pFormat, szAMPM, ARRAY_SIZE(szAMPM)))
|
!wcsnicmp(pFormat, szAMPM, ARRAY_SIZE(szAMPM)))
|
||||||
{
|
{
|
||||||
/* Date formats: System AM/PM designation
|
/* Date formats: System AM/PM designation
|
||||||
* Other formats: Literal
|
* Other formats: Literal
|
||||||
|
@ -772,7 +769,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
|
||||||
header->type = FMT_TYPE_DATE;
|
header->type = FMT_TYPE_DATE;
|
||||||
NEED_SPACE(sizeof(BYTE));
|
NEED_SPACE(sizeof(BYTE));
|
||||||
pFormat += ARRAY_SIZE(szAMPM);
|
pFormat += ARRAY_SIZE(szAMPM);
|
||||||
if (!strncmpW(pFormat, szampm, ARRAY_SIZE(szampm)))
|
if (!wcsncmp(pFormat, szampm, ARRAY_SIZE(szampm)))
|
||||||
*pOut++ = FMT_DATE_AMPM_SYS2;
|
*pOut++ = FMT_DATE_AMPM_SYS2;
|
||||||
else
|
else
|
||||||
*pOut++ = FMT_DATE_AMPM_SYS1;
|
*pOut++ = FMT_DATE_AMPM_SYS1;
|
||||||
|
@ -810,7 +807,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
|
||||||
*pLastHours = *pLastHours + 2;
|
*pLastHours = *pLastHours + 2;
|
||||||
TRACE("A/P\n");
|
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
|
/* Date formats: lowercase AM or PM designation
|
||||||
* Other formats: Literal
|
* Other formats: Literal
|
||||||
|
@ -824,7 +821,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
|
||||||
*pLastHours = *pLastHours + 2;
|
*pLastHours = *pLastHours + 2;
|
||||||
TRACE("AM/PM\n");
|
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
|
/* Date formats: Uppercase AM or PM designation
|
||||||
* Other formats: Literal
|
* Other formats: Literal
|
||||||
|
@ -986,7 +983,7 @@ HRESULT WINAPI VarTokenizeFormatString(LPOLESTR lpszFormat, LPBYTE rgbTok,
|
||||||
fmt_state &= ~FMT_STATE_OPEN_COPY;
|
fmt_state &= ~FMT_STATE_OPEN_COPY;
|
||||||
}
|
}
|
||||||
else if ((*pFormat == 't' || *pFormat == 'T') &&
|
else if ((*pFormat == 't' || *pFormat == 'T') &&
|
||||||
!strncmpiW(pFormat, szTTTTT, ARRAY_SIZE(szTTTTT)))
|
!wcsnicmp(pFormat, szTTTTT, ARRAY_SIZE(szTTTTT)))
|
||||||
{
|
{
|
||||||
/* Date formats: System time specifier
|
/* Date formats: System time specifier
|
||||||
* Other formats: Literal
|
* Other formats: Literal
|
||||||
|
@ -1376,7 +1373,7 @@ VARIANT_FormatNumber_Bool:
|
||||||
hRes = VarBstrFromBool(V_BOOL(&vBool), lcid, boolFlag, &boolStr);
|
hRes = VarBstrFromBool(V_BOOL(&vBool), lcid, boolFlag, &boolStr);
|
||||||
if (SUCCEEDED(hRes))
|
if (SUCCEEDED(hRes))
|
||||||
{
|
{
|
||||||
strcpyW(pBuff, boolStr);
|
lstrcpyW(pBuff, boolStr);
|
||||||
SysFreeString(boolStr);
|
SysFreeString(boolStr);
|
||||||
while (*pBuff)
|
while (*pBuff)
|
||||||
pBuff++;
|
pBuff++;
|
||||||
|
@ -1418,13 +1415,13 @@ VARIANT_FormatNumber_Bool:
|
||||||
if (exponent < 0)
|
if (exponent < 0)
|
||||||
{
|
{
|
||||||
*pBuff++ = '-';
|
*pBuff++ = '-';
|
||||||
sprintfW(pBuff, szPercentZeroStar_d, pToken[1], -exponent);
|
swprintf(pBuff, ARRAY_SIZE(buff) - (pBuff - buff), szPercentZeroStar_d, pToken[1], -exponent);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (*pToken == FMT_NUM_EXP_POS_L || *pToken == FMT_NUM_EXP_POS_U)
|
if (*pToken == FMT_NUM_EXP_POS_L || *pToken == FMT_NUM_EXP_POS_U)
|
||||||
*pBuff++ = '+';
|
*pBuff++ = '+';
|
||||||
sprintfW(pBuff, szPercentZeroStar_d, pToken[1], exponent);
|
swprintf(pBuff, ARRAY_SIZE(buff) - (pBuff - buff), szPercentZeroStar_d, pToken[1], exponent);
|
||||||
}
|
}
|
||||||
while (*pBuff)
|
while (*pBuff)
|
||||||
pBuff++;
|
pBuff++;
|
||||||
|
@ -1897,7 +1894,7 @@ static HRESULT VARIANT_FormatDate(LPVARIANT pVarIn, LPOLESTR lpszFormat,
|
||||||
}
|
}
|
||||||
else if (szPrintFmt)
|
else if (szPrintFmt)
|
||||||
{
|
{
|
||||||
sprintfW(pBuff, szPrintFmt, dwVal);
|
swprintf(pBuff, ARRAY_SIZE(buff) - (pBuff - buff), szPrintFmt, dwVal);
|
||||||
while (*pBuff)
|
while (*pBuff)
|
||||||
pBuff++;
|
pBuff++;
|
||||||
}
|
}
|
||||||
|
@ -1956,7 +1953,7 @@ static HRESULT VARIANT_FormatString(LPVARIANT pVarIn, LPOLESTR lpszFormat,
|
||||||
pSrc = V_BSTR(&vStr);
|
pSrc = V_BSTR(&vStr);
|
||||||
if ((strHeader->flags & (FMT_FLAG_LT|FMT_FLAG_GT)) == FMT_FLAG_GT)
|
if ((strHeader->flags & (FMT_FLAG_LT|FMT_FLAG_GT)) == FMT_FLAG_GT)
|
||||||
bUpper = TRUE;
|
bUpper = TRUE;
|
||||||
blanks_first = strHeader->copy_chars - strlenW(pSrc);
|
blanks_first = strHeader->copy_chars - lstrlenW(pSrc);
|
||||||
pToken = (const BYTE*)strHeader + sizeof(FMT_DATE_HEADER);
|
pToken = (const BYTE*)strHeader + sizeof(FMT_DATE_HEADER);
|
||||||
|
|
||||||
while (*pToken != FMT_GEN_END)
|
while (*pToken != FMT_GEN_END)
|
||||||
|
@ -1997,9 +1994,9 @@ static HRESULT VARIANT_FormatString(LPVARIANT pVarIn, LPOLESTR lpszFormat,
|
||||||
while (dwCount > 0 && *pSrc)
|
while (dwCount > 0 && *pSrc)
|
||||||
{
|
{
|
||||||
if (bUpper)
|
if (bUpper)
|
||||||
*pBuff++ = toupperW(*pSrc);
|
*pBuff++ = towupper(*pSrc);
|
||||||
else
|
else
|
||||||
*pBuff++ = tolowerW(*pSrc);
|
*pBuff++ = towlower(*pSrc);
|
||||||
dwCount--;
|
dwCount--;
|
||||||
pSrc++;
|
pSrc++;
|
||||||
}
|
}
|
||||||
|
@ -2025,9 +2022,9 @@ VARIANT_FormatString_Exit:
|
||||||
while (*pSrc)
|
while (*pSrc)
|
||||||
{
|
{
|
||||||
if (bUpper)
|
if (bUpper)
|
||||||
*pBuff++ = toupperW(*pSrc);
|
*pBuff++ = towupper(*pSrc);
|
||||||
else
|
else
|
||||||
*pBuff++ = tolowerW(*pSrc);
|
*pBuff++ = towlower(*pSrc);
|
||||||
pSrc++;
|
pSrc++;
|
||||||
}
|
}
|
||||||
VariantClear(&vStr);
|
VariantClear(&vStr);
|
||||||
|
@ -2380,12 +2377,12 @@ HRESULT WINAPI VarFormatPercent(LPVARIANT pVarIn, INT nDigits, INT nLeading, INT
|
||||||
|
|
||||||
if (SUCCEEDED(hRet))
|
if (SUCCEEDED(hRet))
|
||||||
{
|
{
|
||||||
DWORD dwLen = strlenW(*pbstrOut);
|
DWORD dwLen = lstrlenW(*pbstrOut);
|
||||||
BOOL bBracket = (*pbstrOut)[dwLen] == ')';
|
BOOL bBracket = (*pbstrOut)[dwLen] == ')';
|
||||||
|
|
||||||
dwLen -= bBracket;
|
dwLen -= bBracket;
|
||||||
memcpy(buff, *pbstrOut, dwLen * sizeof(WCHAR));
|
memcpy(buff, *pbstrOut, dwLen * sizeof(WCHAR));
|
||||||
strcpyW(buff + dwLen, bBracket ? szPercentBracket : szPercent);
|
lstrcpyW(buff + dwLen, bBracket ? szPercentBracket : szPercent);
|
||||||
SysFreeString(*pbstrOut);
|
SysFreeString(*pbstrOut);
|
||||||
*pbstrOut = SysAllocString(buff);
|
*pbstrOut = SysAllocString(buff);
|
||||||
if (!*pbstrOut)
|
if (!*pbstrOut)
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -37,7 +35,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
#include "resource.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 */
|
/* First consume all the leading symbols and space from the string */
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (pNumprs->dwInFlags & NUMPRS_LEADING_WHITE && isspaceW(*lpszStr))
|
if (pNumprs->dwInFlags & NUMPRS_LEADING_WHITE && iswspace(*lpszStr))
|
||||||
{
|
{
|
||||||
pNumprs->dwOutFlags |= NUMPRS_LEADING_WHITE;
|
pNumprs->dwOutFlags |= NUMPRS_LEADING_WHITE;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
cchUsed++;
|
cchUsed++;
|
||||||
lpszStr++;
|
lpszStr++;
|
||||||
} while (isspaceW(*lpszStr));
|
} while (iswspace(*lpszStr));
|
||||||
}
|
}
|
||||||
else if (pNumprs->dwInFlags & NUMPRS_LEADING_PLUS &&
|
else if (pNumprs->dwInFlags & NUMPRS_LEADING_PLUS &&
|
||||||
*lpszStr == chars.cPositiveSymbol &&
|
*lpszStr == chars.cPositiveSymbol &&
|
||||||
|
@ -1717,14 +1714,14 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
|
||||||
|
|
||||||
while (*lpszStr)
|
while (*lpszStr)
|
||||||
{
|
{
|
||||||
if (isdigitW(*lpszStr))
|
if (iswdigit(*lpszStr))
|
||||||
{
|
{
|
||||||
if (dwState & B_PROCESSING_EXPONENT)
|
if (dwState & B_PROCESSING_EXPONENT)
|
||||||
{
|
{
|
||||||
int exponentSize = 0;
|
int exponentSize = 0;
|
||||||
if (dwState & B_EXPONENT_START)
|
if (dwState & B_EXPONENT_START)
|
||||||
{
|
{
|
||||||
if (!isdigitW(*lpszStr))
|
if (!iswdigit(*lpszStr))
|
||||||
break; /* No exponent digits - invalid */
|
break; /* No exponent digits - invalid */
|
||||||
while (*lpszStr == '0')
|
while (*lpszStr == '0')
|
||||||
{
|
{
|
||||||
|
@ -1734,7 +1731,7 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (isdigitW(*lpszStr))
|
while (iswdigit(*lpszStr))
|
||||||
{
|
{
|
||||||
exponentSize *= 10;
|
exponentSize *= 10;
|
||||||
exponentSize += *lpszStr - '0';
|
exponentSize += *lpszStr - '0';
|
||||||
|
@ -1906,14 +1903,14 @@ HRESULT WINAPI VarParseNumFromStr(OLECHAR *lpszStr, LCID lcid, ULONG dwFlags,
|
||||||
/* Consume any trailing symbols and space */
|
/* Consume any trailing symbols and space */
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if ((pNumprs->dwInFlags & NUMPRS_TRAILING_WHITE) && isspaceW(*lpszStr))
|
if ((pNumprs->dwInFlags & NUMPRS_TRAILING_WHITE) && iswspace(*lpszStr))
|
||||||
{
|
{
|
||||||
pNumprs->dwOutFlags |= NUMPRS_TRAILING_WHITE;
|
pNumprs->dwOutFlags |= NUMPRS_TRAILING_WHITE;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
cchUsed++;
|
cchUsed++;
|
||||||
lpszStr++;
|
lpszStr++;
|
||||||
} while (isspaceW(*lpszStr));
|
} while (iswspace(*lpszStr));
|
||||||
}
|
}
|
||||||
else if (pNumprs->dwInFlags & NUMPRS_TRAILING_PLUS &&
|
else if (pNumprs->dwInFlags & NUMPRS_TRAILING_PLUS &&
|
||||||
!(pNumprs->dwOutFlags & NUMPRS_LEADING_PLUS) &&
|
!(pNumprs->dwOutFlags & NUMPRS_LEADING_PLUS) &&
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#define NONAMELESSSTRUCT
|
#define NONAMELESSSTRUCT
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winnt.h"
|
#include "winnt.h"
|
||||||
|
@ -6150,13 +6149,13 @@ VarBoolFromStr_CheckLocalised:
|
||||||
if (VARIANT_GetLocalisedText(langId, IDS_TRUE, szBuff))
|
if (VARIANT_GetLocalisedText(langId, IDS_TRUE, szBuff))
|
||||||
{
|
{
|
||||||
/* Compare against localised strings, ignoring case */
|
/* Compare against localised strings, ignoring case */
|
||||||
if (!strcmpiW(strIn, szBuff))
|
if (!wcsicmp(strIn, szBuff))
|
||||||
{
|
{
|
||||||
*pBoolOut = VARIANT_TRUE; /* Matched localised 'true' text */
|
*pBoolOut = VARIANT_TRUE; /* Matched localised 'true' text */
|
||||||
return hRes;
|
return hRes;
|
||||||
}
|
}
|
||||||
VARIANT_GetLocalisedText(langId, IDS_FALSE, szBuff);
|
VARIANT_GetLocalisedText(langId, IDS_FALSE, szBuff);
|
||||||
if (!strcmpiW(strIn, szBuff))
|
if (!wcsicmp(strIn, szBuff))
|
||||||
{
|
{
|
||||||
*pBoolOut = VARIANT_FALSE; /* Matched localised 'false' text */
|
*pBoolOut = VARIANT_FALSE; /* Matched localised 'false' text */
|
||||||
return hRes;
|
return hRes;
|
||||||
|
@ -6171,9 +6170,9 @@ VarBoolFromStr_CheckLocalised:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All checks against localised text have failed, try #TRUE#/#FALSE# */
|
/* All checks against localised text have failed, try #TRUE#/#FALSE# */
|
||||||
if (!strcmpW(strIn, szFalse))
|
if (!wcscmp(strIn, szFalse))
|
||||||
*pBoolOut = VARIANT_FALSE;
|
*pBoolOut = VARIANT_FALSE;
|
||||||
else if (!strcmpW(strIn, szTrue))
|
else if (!wcscmp(strIn, szTrue))
|
||||||
*pBoolOut = VARIANT_TRUE;
|
*pBoolOut = VARIANT_TRUE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -6356,7 +6355,7 @@ static BSTR VARIANT_MakeBstr(LCID lcid, DWORD dwFlags, WCHAR *szOut)
|
||||||
szOut, NULL, szConverted, ARRAY_SIZE(szConverted));
|
szOut, NULL, szConverted, ARRAY_SIZE(szConverted));
|
||||||
szOut = szConverted;
|
szOut = szConverted;
|
||||||
}
|
}
|
||||||
return SysAllocStringByteLen((LPCSTR)szOut, strlenW(szOut) * sizeof(WCHAR));
|
return SysAllocStringByteLen((LPCSTR)szOut, lstrlenW(szOut) * sizeof(WCHAR));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create a (possibly localised) BSTR from a UI8 and sign */
|
/* 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 */
|
minFormat.NegativeOrder = 1; /* NLS_NEG_LEFT */
|
||||||
|
|
||||||
/* count number of decimal digits in string */
|
/* count number of decimal digits in string */
|
||||||
p = strchrW( buff, '.' );
|
p = wcschr( buff, '.' );
|
||||||
if (p) minFormat.NumDigits = strlenW(p + 1);
|
if (p) minFormat.NumDigits = lstrlenW(p + 1);
|
||||||
|
|
||||||
numbuff[0] = '\0';
|
numbuff[0] = '\0';
|
||||||
if (!GetNumberFormatW(lcid, 0, buff, &minFormat, numbuff, ARRAY_SIZE(numbuff)))
|
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)
|
if (!pbstrOut)
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
sprintfW( buff, lpszFormat, dblIn );
|
swprintf( buff, ARRAY_SIZE(buff), lpszFormat, dblIn );
|
||||||
|
|
||||||
/* Negative zeroes are disallowed (some applications depend on this).
|
/* Negative zeroes are disallowed (some applications depend on this).
|
||||||
If buff starts with a minus, and then nothing follows but zeroes
|
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] == '-')
|
if (buff[0] == '-')
|
||||||
{
|
{
|
||||||
static const WCHAR szAccept[] = {'0', '.', '\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'; }
|
{ 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))
|
if (!(dwFlags & VAR_DATEVALUEONLY))
|
||||||
{
|
{
|
||||||
time = date + strlenW(date);
|
time = date + lstrlenW(date);
|
||||||
if (time != date)
|
if (time != date)
|
||||||
*time++ = ' ';
|
*time++ = ' ';
|
||||||
if (!GetTimeFormatW(lcid, dwFormatFlags, &st, NULL, time, ARRAY_SIZE(date)-(time-date)))
|
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 */
|
/* Parse the string into our structure */
|
||||||
while (*strIn)
|
while (*strIn)
|
||||||
{
|
{
|
||||||
if (isdigitW(*strIn))
|
if (iswdigit(*strIn))
|
||||||
{
|
{
|
||||||
if (dp.dwCount >= 6)
|
if (dp.dwCount >= 6)
|
||||||
{
|
{
|
||||||
hRet = DISP_E_TYPEMISMATCH;
|
hRet = DISP_E_TYPEMISMATCH;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
dp.dwValues[dp.dwCount] = strtoulW(strIn, &strIn, 10);
|
dp.dwValues[dp.dwCount] = wcstoul(strIn, &strIn, 10);
|
||||||
dp.dwCount++;
|
dp.dwCount++;
|
||||||
strIn--;
|
strIn--;
|
||||||
}
|
}
|
||||||
else if (isalphaW(*strIn))
|
else if (iswalpha(*strIn))
|
||||||
{
|
{
|
||||||
BOOL bFound = FALSE;
|
BOOL bFound = FALSE;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(tokens); i++)
|
for (i = 0; i < ARRAY_SIZE(tokens); i++)
|
||||||
{
|
{
|
||||||
DWORD dwLen = strlenW(tokens[i]);
|
DWORD dwLen = lstrlenW(tokens[i]);
|
||||||
if (dwLen && !strncmpiW(strIn, tokens[i], dwLen))
|
if (dwLen && !wcsnicmp(strIn, tokens[i], dwLen))
|
||||||
{
|
{
|
||||||
if (i <= 25)
|
if (i <= 25)
|
||||||
{
|
{
|
||||||
|
@ -7755,7 +7754,7 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
|
||||||
else
|
else
|
||||||
dp.dwFlags[dp.dwCount - 1] |= DP_DATESEP;
|
dp.dwFlags[dp.dwCount - 1] |= DP_DATESEP;
|
||||||
}
|
}
|
||||||
else if (*strIn == ',' || isspaceW(*strIn))
|
else if (*strIn == ',' || iswspace(*strIn))
|
||||||
{
|
{
|
||||||
if (*strIn == ',' && !strIn[1])
|
if (*strIn == ',' && !strIn[1])
|
||||||
hRet = DISP_E_TYPEMISMATCH;
|
hRet = DISP_E_TYPEMISMATCH;
|
||||||
|
|
Loading…
Reference in New Issue