mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 16:32:59 +00:00
[USER32] Partially sync resources.c with Wine Staging 1.7.55. CORE-10536
svn path=/trunk/; revision=70169
This commit is contained in:
parent
82475df8f5
commit
fd71c4cbec
2 changed files with 50 additions and 42 deletions
|
@ -307,7 +307,7 @@ User32 -
|
||||||
reactos/win32ss/user/user32/misc/ddeclient.c # Synced to WineStaging-1.7.37
|
reactos/win32ss/user/user32/misc/ddeclient.c # Synced to WineStaging-1.7.37
|
||||||
reactos/win32ss/user/user32/misc/ddeserver.c # Synced to WineStaging-1.7.37
|
reactos/win32ss/user/user32/misc/ddeserver.c # Synced to WineStaging-1.7.37
|
||||||
reactos/win32ss/user/user32/misc/exticon.c # Synced to Wine-1_1_22
|
reactos/win32ss/user/user32/misc/exticon.c # Synced to Wine-1_1_22
|
||||||
reactos/win32ss/user/user32/misc/resources.c # Forked?
|
reactos/win32ss/user/user32/misc/resources.c # Partially synced to WineStaging-1.7.55
|
||||||
reactos/win32ss/user/user32/misc/winhelp.c # Last sync date unknown
|
reactos/win32ss/user/user32/misc/winhelp.c # Last sync date unknown
|
||||||
reactos/win32ss/user/user32/misc/wsprintf.c # Synced to Wine-1_1_23
|
reactos/win32ss/user/user32/misc/wsprintf.c # Synced to Wine-1_1_23
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include <user32.h>
|
#include <user32.h>
|
||||||
|
|
||||||
#include <wine/debug.h>
|
#include <wine/debug.h>
|
||||||
|
WINE_DEFAULT_DEBUG_CHANNEL(resource);
|
||||||
|
|
||||||
#ifndef _CFGMGR32_H_
|
#ifndef _CFGMGR32_H_
|
||||||
#define CR_SUCCESS 0x00000000
|
#define CR_SUCCESS 0x00000000
|
||||||
|
@ -20,43 +21,12 @@ typedef DWORD (WINAPI *CMP_UNREGNOTIFY) (ULONG );
|
||||||
|
|
||||||
static HINSTANCE hSetupApi = NULL;
|
static HINSTANCE hSetupApi = NULL;
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
/*
|
* LoadStringW (USER32.@)
|
||||||
* @implemented (Synced with Wine 08.01.2009)
|
* Synced with Wine Staging 1.7.55
|
||||||
*/
|
*/
|
||||||
INT
|
INT WINAPI LoadStringW( HINSTANCE instance, UINT resource_id,
|
||||||
WINAPI
|
LPWSTR buffer, INT buflen )
|
||||||
LoadStringA(HINSTANCE instance, UINT resource_id, LPSTR buffer, INT buflen)
|
|
||||||
{
|
|
||||||
HGLOBAL hmem;
|
|
||||||
HRSRC hrsrc;
|
|
||||||
DWORD retval = 0;
|
|
||||||
|
|
||||||
if (!buflen) return -1;
|
|
||||||
|
|
||||||
/* Use loword (incremented by 1) as resourceid */
|
|
||||||
if ((hrsrc = FindResourceW( instance, MAKEINTRESOURCEW((LOWORD(resource_id) >> 4) + 1),
|
|
||||||
(LPWSTR)RT_STRING )) &&
|
|
||||||
(hmem = LoadResource( instance, hrsrc )))
|
|
||||||
{
|
|
||||||
const WCHAR *p = LockResource(hmem);
|
|
||||||
unsigned int id = resource_id & 0x000f;
|
|
||||||
|
|
||||||
while (id--) p += *p + 1;
|
|
||||||
|
|
||||||
RtlUnicodeToMultiByteN( buffer, buflen - 1, &retval, (PWSTR)(p + 1), *p * sizeof(WCHAR) );
|
|
||||||
}
|
|
||||||
buffer[retval] = 0;
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented (Synced with Wine 08.01.2009)
|
|
||||||
*/
|
|
||||||
INT
|
|
||||||
WINAPI
|
|
||||||
LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
|
|
||||||
{
|
{
|
||||||
HGLOBAL hmem;
|
HGLOBAL hmem;
|
||||||
HRSRC hrsrc;
|
HRSRC hrsrc;
|
||||||
|
@ -64,6 +34,9 @@ LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
|
||||||
int string_num;
|
int string_num;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
TRACE("instance = %p, id = %04x, buffer = %p, length = %d\n",
|
||||||
|
instance, resource_id, buffer, buflen);
|
||||||
|
|
||||||
if(buffer == NULL)
|
if(buffer == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -79,6 +52,8 @@ LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
|
||||||
for (i = 0; i < string_num; i++)
|
for (i = 0; i < string_num; i++)
|
||||||
p += *p + 1;
|
p += *p + 1;
|
||||||
|
|
||||||
|
TRACE("strlen = %d\n", (int)*p );
|
||||||
|
|
||||||
/*if buflen == 0, then return a read-only pointer to the resource itself in buffer
|
/*if buflen == 0, then return a read-only pointer to the resource itself in buffer
|
||||||
it is assumed that buffer is actually a (LPWSTR *) */
|
it is assumed that buffer is actually a (LPWSTR *) */
|
||||||
if(buflen == 0)
|
if(buflen == 0)
|
||||||
|
@ -98,9 +73,42 @@ LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TRACE("%s loaded !\n", debugstr_w(buffer));
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* LoadStringA (USER32.@)
|
||||||
|
* Synced with Wine Staging 1.7.55
|
||||||
|
*/
|
||||||
|
INT WINAPI LoadStringA( HINSTANCE instance, UINT resource_id, LPSTR buffer, INT buflen )
|
||||||
|
{
|
||||||
|
HGLOBAL hmem;
|
||||||
|
HRSRC hrsrc;
|
||||||
|
DWORD retval = 0;
|
||||||
|
|
||||||
|
TRACE("instance = %p, id = %04x, buffer = %p, length = %d\n",
|
||||||
|
instance, resource_id, buffer, buflen);
|
||||||
|
|
||||||
|
if (!buflen) return -1;
|
||||||
|
|
||||||
|
/* Use loword (incremented by 1) as resourceid */
|
||||||
|
if ((hrsrc = FindResourceW( instance, MAKEINTRESOURCEW((LOWORD(resource_id) >> 4) + 1),
|
||||||
|
(LPWSTR)RT_STRING )) &&
|
||||||
|
(hmem = LoadResource( instance, hrsrc )))
|
||||||
|
{
|
||||||
|
const WCHAR *p = LockResource(hmem);
|
||||||
|
unsigned int id = resource_id & 0x000f;
|
||||||
|
|
||||||
|
while (id--) p += *p + 1;
|
||||||
|
|
||||||
|
if (buflen != 1)
|
||||||
|
RtlUnicodeToMultiByteN( buffer, buflen - 1, &retval, (PWSTR)(p + 1), *p * sizeof(WCHAR) );
|
||||||
|
}
|
||||||
|
buffer[retval] = 0;
|
||||||
|
TRACE("returning %s\n", debugstr_a(buffer));
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue