*/
#include <stdarg.h>
+#ifdef __REACTOS__
+#include <wchar.h>
+#endif
#define COBJMACROS
#include "winsxs.h"
#include "wine/debug.h"
-#include "wine/unicode.h"
#include "sxs_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(sxs);
if (!buflen || flags) return E_INVALIDARG;
- len = strlenW( name->name ) + 1;
- if (name->arch) len += strlenW( archW ) + strlenW( name->arch ) + 4;
- if (name->token) len += strlenW( tokenW ) + strlenW( name->token ) + 4;
- if (name->type) len += strlenW( typeW ) + strlenW( name->type ) + 4;
- if (name->version) len += strlenW( versionW ) + strlenW( version ) + 4;
+ len = lstrlenW( name->name ) + 1;
+ if (name->arch) len += lstrlenW( archW ) + lstrlenW( name->arch ) + 4;
+ if (name->token) len += lstrlenW( tokenW ) + lstrlenW( name->token ) + 4;
+ if (name->type) len += lstrlenW( typeW ) + lstrlenW( name->type ) + 4;
+ if (name->version) len += lstrlenW( versionW ) + lstrlenW( version ) + 4;
if (len > *buflen)
{
*buflen = len;
return HRESULT_FROM_WIN32( ERROR_INSUFFICIENT_BUFFER );
}
- strcpyW( buffer, name->name );
- len = strlenW( buffer );
- if (name->arch) len += sprintfW( buffer + len, fmtW, archW, name->arch );
- if (name->token) len += sprintfW( buffer + len, fmtW, tokenW, name->token );
- if (name->type) len += sprintfW( buffer + len, fmtW, typeW, name->type );
- if (name->version) len += sprintfW( buffer + len, fmtW, versionW, name->version );
+ lstrcpyW( buffer, name->name );
+ len = lstrlenW( buffer );
+ if (name->arch) len += swprintf( buffer + len, fmtW, archW, name->arch );
+ if (name->token) len += swprintf( buffer + len, fmtW, tokenW, name->token );
+ if (name->type) len += swprintf( buffer + len, fmtW, typeW, name->type );
+ if (name->version) len += swprintf( buffer + len, fmtW, versionW, name->version );
return S_OK;
}
if (!buflen || !buffer) return E_INVALIDARG;
name = get_name_attribute( iface, NAME_ATTR_ID_NAME );
- len = strlenW( name ) + 1;
+ len = lstrlenW( name ) + 1;
if (len > *buflen)
{
*buflen = len;
return HRESULT_FROM_WIN32( ERROR_INSUFFICIENT_BUFFER );
}
- strcpyW( buffer, name );
+ lstrcpyW( buffer, name );
*buflen = len + 3;
return S_OK;
}
for (i = 0, p = version; i < 4; i++)
{
if (!*p) break;
- q = strchrW( p, '.' );
+ q = wcschr( p, '.' );
if (q) *q = 0;
- ver[i] = atolW( p );
+ ver[i] = wcstol( p, NULL, 10 );
if (!q && i < 3) break;
p = q + 1;
}
while (*q && *q != '=') q++;
if (!*q) return E_INVALIDARG;
len = q - p;
- if (len == sizeof(archW)/sizeof(archW[0]) - 1 && !memcmp( p, archW, len * sizeof(WCHAR) ))
+ if (len == ARRAY_SIZE(archW) - 1 && !memcmp( p, archW, len * sizeof(WCHAR) ))
{
p = ++q;
if (!(name->arch = parse_value( p, &len ))) return E_INVALIDARG;
q += len;
}
- else if (len == sizeof(tokenW)/sizeof(tokenW[0]) - 1 && !memcmp( p, tokenW, len * sizeof(WCHAR) ))
+ else if (len == ARRAY_SIZE(tokenW) - 1 && !memcmp( p, tokenW, len * sizeof(WCHAR) ))
{
p = ++q;
if (!(name->token = parse_value( p, &len ))) return E_INVALIDARG;
q += len;
}
- else if (len == sizeof(typeW)/sizeof(typeW[0]) - 1 && !memcmp( p, typeW, len * sizeof(WCHAR) ))
+ else if (len == ARRAY_SIZE(typeW) - 1 && !memcmp( p, typeW, len * sizeof(WCHAR) ))
{
p = ++q;
if (!(name->type = parse_value( p, &len ))) return E_INVALIDARG;
q += len;
}
- else if (len == sizeof(versionW)/sizeof(versionW[0]) - 1 && !memcmp( p, versionW, len * sizeof(WCHAR) ))
+ else if (len == ARRAY_SIZE(versionW) - 1 && !memcmp( p, versionW, len * sizeof(WCHAR) ))
{
p = ++q;
if (!(name->version = parse_value( p, &len ))) return E_INVALIDARG;