* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#include <stdarg.h>
+#ifdef __REACTOS__
+#include <wchar.h>
+#endif
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "ole2.h"
+#include "winsxs.h"
+
+#include "wine/debug.h"
#include "sxs_private.h"
+WINE_DEFAULT_DEBUG_CHANNEL(sxs);
+
struct name
{
IAssemblyName IAssemblyName_iface;
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;
}
DWORD cbReserved,
LPVOID *ppReserved )
{
- FIXME("%p, %s, %p, %p, %s, %x%08x, %p, %d, %p\n", iface,
+ FIXME("%p, %s, %p, %p, %s, %s, %p, %d, %p\n", iface,
debugstr_guid(riid), pUnkReserved1, pUnkReserved2,
- debugstr_w(szReserved), (DWORD)(llReserved >> 32), (DWORD)llReserved,
+ debugstr_w(szReserved), wine_dbgstr_longlong(llReserved),
pvReserved, cbReserved, ppReserved);
return E_NOTIMPL;
}
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;