#include "wine/port.h"
#include <stdarg.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "wine/winuser16.h"
#include "wine/unicode.h"
#include "module.h"
-#include "task.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(resource);
/* If no space left, grow table */
if ( map->nUsed == map->nAlloc )
{
- if ( !(newElem = (HRSRC_ELEM *)HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
- map->elem,
- (map->nAlloc + HRSRC_MAP_BLOCKSIZE)
- * sizeof(HRSRC_ELEM) ) ))
+
+ if (map->elem)
+ newElem = (HRSRC_ELEM *)HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
+ map->elem, (map->nAlloc + HRSRC_MAP_BLOCKSIZE) * sizeof(HRSRC_ELEM) );
+ else
+ newElem = (HRSRC_ELEM *)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
+ (map->nAlloc + HRSRC_MAP_BLOCKSIZE) * sizeof(HRSRC_ELEM) );
+
+ if ( !newElem )
{
ERR("Cannot grow HRSRC map\n" );
return 0;
return prevHandler;
}
+static inline DWORD get_dword(LPVOID *p)
+{
+ DWORD ret = *(DWORD*)*p;
+ *p = (DWORD *)*p + 1;
+ return ret;
+}
+
+static inline void put_dword(LPVOID *p, DWORD d)
+{
+ *(DWORD*)*p = d;
+ *p = (DWORD *)*p + 1;
+}
+
+static inline WORD get_word(LPVOID *p)
+{
+ WORD ret = *(WORD*)*p;
+ *p = (WORD *)*p + 1;
+ return ret;
+}
+
+static inline void put_word(LPVOID *p, WORD w)
+{
+ *(WORD*)*p = w;
+ *p = (WORD *)*p + 1;
+}
+
+static inline BYTE get_byte(LPVOID *p)
+{
+ BYTE ret = *(BYTE *)*p;
+ *p = (BYTE *)*p + 1;
+ return ret;
+}
+
+static inline void put_byte(LPVOID *p, BYTE b)
+{
+ *(BYTE *)*p = b;
+ *p = (BYTE *)*p + 1;
+}
+
+/* convert a resource name */
+static void convert_name( LPVOID *dst, LPVOID *src )
+{
+ int len;
+ switch (*((WORD *)*src))
+ {
+ case 0x0000:
+ get_word( src );
+ put_byte( dst, 0 );
+ break;
+ case 0xffff:
+ get_word( src );
+ put_byte( dst, 0xff );
+ put_word( dst, get_word(src) );
+ break;
+ default:
+ len = WideCharToMultiByte( CP_ACP, 0, *src, -1, *dst, 0x7fffffff, NULL,NULL );
+ *dst = (char *)*dst + len;
+ *src = (WCHAR *)*src + strlenW( (WCHAR *)*src ) + 1;
+ break;
+ }
+}
/**********************************************************************
* ConvertDialog32To16 (KERNEL.615)
*/
VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
{
- LPVOID p = dialog32;
WORD nbItems, data, dialogEx;
DWORD style;
- style = *((DWORD *)dialog16)++ = *((DWORD *)p)++;
+ style = get_dword( &dialog32 );
+ put_dword( &dialog16, style );
dialogEx = (style == 0xffff0001); /* DIALOGEX resource */
if (dialogEx)
{
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* helpID */
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* exStyle */
- style = *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* style */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* helpID */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* exStyle */
+ style = get_dword( &dialog32 );
+ put_dword( &dialog16, style ); /* style */
}
else
- ((DWORD *)p)++; /* exStyle ignored in 16-bit standard dialog */
+ dialog32 = (DWORD *)dialog32 + 1; /* exStyle ignored in 16-bit standard dialog */
- nbItems = *((BYTE *)dialog16)++ = (BYTE)*((WORD *)p)++;
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* x */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* y */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* cx */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* cy */
+ nbItems = get_word( &dialog32 );
+ put_byte( &dialog16, nbItems );
+ put_word( &dialog16, get_word( &dialog32 ) ); /* x */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* y */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* cx */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* cy */
/* Transfer menu name */
- switch (*((WORD *)p))
- {
- case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
- case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
- *((WORD *)dialog16)++ = *((WORD *)p)++; break;
- default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
- break;
- }
+ convert_name( &dialog16, &dialog32 );
/* Transfer class name */
- switch (*((WORD *)p))
- {
- case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
- case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
- *((WORD *)dialog16)++ = *((WORD *)p)++; break;
- default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
- break;
- }
+ convert_name( &dialog16, &dialog32 );
/* Transfer window caption */
- WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ WideCharToMultiByte( CP_ACP, 0, dialog32, -1, dialog16, 0x7fffffff, NULL, NULL );
+ dialog16 = (LPSTR)dialog16 + strlen( (LPSTR)dialog16 ) + 1;
+ dialog32 = (LPWSTR)dialog32 + strlenW( (LPWSTR)dialog32 ) + 1;
/* Transfer font info */
if (style & DS_SETFONT)
{
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* pointSize */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* pointSize */
if (dialogEx)
{
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* weight */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* italic */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* weight */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* italic */
}
- WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL ); /* faceName */
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ WideCharToMultiByte( CP_ACP, 0, (LPWSTR)dialog32, -1, (LPSTR)dialog16, 0x7fffffff, NULL, NULL ); /* faceName */
+ dialog16 = (LPSTR)dialog16 + strlen( (LPSTR)dialog16 ) + 1;
+ dialog32 = (LPWSTR)dialog32 + strlenW( (LPWSTR)dialog32 ) + 1;
}
/* Transfer dialog items */
while (nbItems)
{
/* align on DWORD boundary (32-bit only) */
- p = (LPVOID)((((int)p) + 3) & ~3);
+ dialog32 = (LPVOID)((((int)dialog32) + 3) & ~3);
if (dialogEx)
{
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* helpID */
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* exStyle */
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* style */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* helpID */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* exStyle */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* style */
}
else
{
- style = *((DWORD *)p)++; /* save style */
- ((DWORD *)p)++; /* ignore exStyle */
+ style = get_dword( &dialog32 ); /* save style */
+ dialog32 = (DWORD *)dialog32 + 1; /* ignore exStyle */
}
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* x */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* y */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* cx */
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* cy */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* x */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* y */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* cx */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* cy */
if (dialogEx)
- *((DWORD *)dialog16)++ = *((DWORD *)p)++; /* ID */
+ put_dword( &dialog16, get_dword( &dialog32 ) ); /* ID */
else
{
- *((WORD *)dialog16)++ = *((WORD *)p)++; /* ID */
- *((DWORD *)dialog16)++ = style; /* style from above */
+ put_word( &dialog16, get_word( &dialog32 ) ); /* ID */
+ put_dword( &dialog16, style ); /* style from above */
}
/* Transfer class name */
- switch (*((WORD *)p))
+ switch (*(WORD *)dialog32)
{
- case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
- case 0xffff: ((WORD *)p)++;
- *((BYTE *)dialog16)++ = (BYTE)*((WORD *)p)++; break;
- default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
- break;
+ case 0x0000:
+ get_word( &dialog32 );
+ put_byte( &dialog16, 0 );
+ break;
+ case 0xffff:
+ get_word( &dialog32 );
+ put_byte( &dialog16, get_word( &dialog32 ) );
+ break;
+ default:
+ WideCharToMultiByte( CP_ACP, 0, (LPWSTR)dialog32, -1, (LPSTR)dialog16, 0x7fffffff, NULL, NULL );
+ dialog16 = (LPSTR)dialog16 + strlen( (LPSTR)dialog16 ) + 1;
+ dialog32 = (LPWSTR)dialog32 + strlenW( (LPWSTR)dialog32 ) + 1;
+ break;
}
/* Transfer window name */
- switch (*((WORD *)p))
- {
- case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
- case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
- *((WORD *)dialog16)++ = *((WORD *)p)++; break;
- default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
- ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
- break;
- }
+ convert_name( &dialog16, &dialog32 );
/* Transfer data */
- data = *((WORD *)p)++;
+ data = get_word( &dialog32 );
if (dialogEx)
- *((WORD *)dialog16)++ = data;
+ put_word(&dialog16, data);
else
- *((BYTE *)dialog16)++ = (BYTE)data;
+ put_byte(&dialog16,(BYTE)data);
if (data)
{
- memcpy( dialog16, p, data );
- (LPSTR)dialog16 += data;
- (LPSTR)p += data;
+ memcpy( dialog16, dialog32, data );
+ dialog16 = (BYTE *)dialog16 + data;
+ dialog32 = (BYTE *)dialog32 + data;
}
/* Next item */
WORD nbItems, data, dialogEx;
DWORD style;
- style = *((DWORD *)p)++;
+ style = get_dword(&p);
dialogEx = (style == 0xffff0001); /* DIALOGEX resource */
if (dialogEx)
{
- ((DWORD *)p)++; /* helpID */
- ((DWORD *)p)++; /* exStyle */
- style = *((DWORD *)p)++; /* style */
+ p = (DWORD *)p + 1; /* helpID */
+ p = (DWORD *)p + 1; /* exStyle */
+ style = get_dword(&p); /* style */
}
else
- ((DWORD *)p)++; /* exStyle */
+ p = (DWORD *)p + 1; /* exStyle */
- nbItems = *((WORD *)p)++;
- ((WORD *)p)++; /* x */
- ((WORD *)p)++; /* y */
- ((WORD *)p)++; /* cx */
- ((WORD *)p)++; /* cy */
+ nbItems = get_word(&p);
+ p = (WORD *)p + 1; /* x */
+ p = (WORD *)p + 1; /* y */
+ p = (WORD *)p + 1; /* cx */
+ p = (WORD *)p + 1; /* cy */
/* Skip menu name */
switch (*((WORD *)p))
{
- case 0x0000: ((WORD *)p)++; break;
- case 0xffff: ((WORD *)p) += 2; break;
- default: ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1; break;
+ case 0x0000: p = (WORD *)p + 1; break;
+ case 0xffff: p = (WORD *)p + 2; break;
+ default: p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1; break;
}
/* Skip class name */
switch (*((WORD *)p))
{
- case 0x0000: ((WORD *)p)++; break;
- case 0xffff: ((WORD *)p) += 2; break;
- default: ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1; break;
+ case 0x0000: p = (WORD *)p + 1; break;
+ case 0xffff: p = (WORD *)p + 2; break;
+ default: p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1; break;
}
/* Skip window caption */
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1;
/* Skip font info */
if (style & DS_SETFONT)
{
- ((WORD *)p)++; /* pointSize */
+ p = (WORD *)p + 1; /* pointSize */
if (dialogEx)
{
- ((WORD *)p)++; /* weight */
- ((WORD *)p)++; /* italic */
+ p = (WORD *)p + 1; /* weight */
+ p = (WORD *)p + 1; /* italic */
}
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1; /* faceName */
+ p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1; /* faceName */
}
/* Skip dialog items */
if (dialogEx)
{
- ((DWORD *)p)++; /* helpID */
- ((DWORD *)p)++; /* exStyle */
- ((DWORD *)p)++; /* style */
+ p = (DWORD *)p + 1; /* helpID */
+ p = (DWORD *)p + 1; /* exStyle */
+ p = (DWORD *)p + 1; /* style */
}
else
{
- ((DWORD *)p)++; /* style */
- ((DWORD *)p)++; /* exStyle */
+ p = (DWORD *)p + 1; /* style */
+ p = (DWORD *)p + 1; /* exStyle */
}
- ((WORD *)p)++; /* x */
- ((WORD *)p)++; /* y */
- ((WORD *)p)++; /* cx */
- ((WORD *)p)++; /* cy */
+ p = (WORD *)p + 1; /* x */
+ p = (WORD *)p + 1; /* y */
+ p = (WORD *)p + 1; /* cx */
+ p = (WORD *)p + 1; /* cy */
if (dialogEx)
- ((DWORD *)p)++; /* ID */
+ p = (DWORD *)p + 1; /* ID */
else
- ((WORD *)p)++; /* ID */
+ p = (WORD *)p + 1; /* ID */
/* Skip class name */
switch (*((WORD *)p))
{
- case 0x0000: ((WORD *)p)++; break;
- case 0xffff: ((WORD *)p) += 2; break;
- default: ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1; break;
+ case 0x0000: p = (WORD *)p + 1; break;
+ case 0xffff: p = (WORD *)p + 2; break;
+ default: p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1; break;
}
/* Skip window name */
switch (*((WORD *)p))
{
- case 0x0000: ((WORD *)p)++; break;
- case 0xffff: ((WORD *)p) += 2; break;
- default: ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1; break;
+ case 0x0000: p = (WORD *)p + 1; break;
+ case 0xffff: p = (WORD *)p + 2; break;
+ default: p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1; break;
}
/* Skip data */
- data = *((WORD *)p)++;
- (LPSTR)p += data;
+ data = get_word(&p);
+ p = (BYTE *)p + data;
/* Next item */
nbItems--;
*/
VOID WINAPI ConvertMenu32To16( LPVOID menu32, DWORD size, LPVOID menu16 )
{
- LPVOID p = menu32;
WORD version, headersize, flags, level = 1;
- version = *((WORD *)menu16)++ = *((WORD *)p)++;
- headersize = *((WORD *)menu16)++ = *((WORD *)p)++;
+ version = get_word( &menu32 );
+ headersize = get_word( &menu32 );
+ put_word( &menu16, version );
+ put_word( &menu16, headersize );
if ( headersize )
{
- memcpy( menu16, p, headersize );
- ((LPSTR)menu16) += headersize;
- ((LPSTR)p) += headersize;
+ memcpy( menu16, menu32, headersize );
+ menu16 = (BYTE *)menu16 + headersize;
+ menu32 = (BYTE *)menu32 + headersize;
}
while ( level )
if ( version == 0 ) /* standard */
{
- flags = *((WORD *)menu16)++ = *((WORD *)p)++;
+ flags = get_word( &menu32 );
+ put_word( &menu16, flags );
if ( !(flags & MF_POPUP) )
- *((WORD *)menu16)++ = *((WORD *)p)++; /* ID */
+ put_word( &menu16, get_word( &menu32 ) ); /* ID */
else
level++;
- WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)menu16, 0x7fffffff, NULL,NULL );
- ((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ WideCharToMultiByte( CP_ACP, 0, (LPWSTR)menu32, -1, (LPSTR)menu16, 0x7fffffff, NULL, NULL );
+ menu16 = (LPSTR)menu16 + strlen( (LPSTR)menu16 ) + 1;
+ menu32 = (LPWSTR)menu32 + strlenW( (LPWSTR)menu32 ) + 1;
if ( flags & MF_END )
level--;
}
else /* extended */
{
- *((DWORD *)menu16)++ = *((DWORD *)p)++; /* fType */
- *((DWORD *)menu16)++ = *((DWORD *)p)++; /* fState */
- *((WORD *)menu16)++ = (WORD)*((DWORD *)p)++; /* ID */
- flags = *((BYTE *)menu16)++ = (BYTE)*((WORD *)p)++;
+ put_dword( &menu16, get_dword( &menu32 ) ); /* fType */
+ put_dword( &menu16, get_dword( &menu32 ) ); /* fState */
+ put_word( &menu16, get_dword( &menu32 ) ); /* ID */
+ flags = get_word( &menu32 );
+ put_byte(&menu16,flags);
- WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)menu16, 0x7fffffff, NULL,NULL );
- ((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ WideCharToMultiByte( CP_ACP, 0, (LPWSTR)menu32, -1, (LPSTR)menu16, 0x7fffffff, NULL, NULL );
+ menu16 = (LPSTR)menu16 + strlen( (LPSTR)menu16 ) + 1;
+ menu32 = (LPWSTR)menu32 + strlenW( (LPWSTR)menu32 ) + 1;
/* align on DWORD boundary (32-bit only) */
- p = (LPVOID)((((int)p) + 3) & ~3);
+ menu32 = (LPVOID)((((int)menu32) + 3) & ~3);
/* If popup, transfer helpid */
if ( flags & 1)
{
- *((DWORD *)menu16)++ = *((DWORD *)p)++;
+ put_dword( &menu16, get_dword( &menu32 ) );
level++;
}
LPVOID p = menu32;
WORD version, headersize, flags, level = 1;
- version = *((WORD *)p)++;
- headersize = *((WORD *)p)++;
- ((LPSTR)p) += headersize;
+ version = get_word(&p);
+ headersize = get_word(&p);
+ p = (BYTE *)p + headersize;
while ( level )
if ( version == 0 ) /* standard */
{
- flags = *((WORD *)p)++;
+ flags = get_word(&p);
if ( !(flags & MF_POPUP) )
- ((WORD *)p)++; /* ID */
+ p = (WORD *)p + 1; /* ID */
else
level++;
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1;
if ( flags & MF_END )
level--;
}
else /* extended */
{
- ((DWORD *)p)++; /* fType */
- ((DWORD *)p)++; /* fState */
- ((DWORD *)p)++; /* ID */
- flags = *((WORD *)p)++;
+ p = (DWORD *)p + 1; /* fType */
+ p = (DWORD *)p + 1; /* fState */
+ p = (DWORD *)p + 1; /* ID */
+ flags = get_word(&p);
- ((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
+ p = (LPWSTR)p + strlenW( (LPWSTR)p ) + 1;
/* align on DWORD boundary (32-bit only) */
p = (LPVOID)((((int)p) + 3) & ~3);
/* If popup, skip helpid */
if ( flags & 1)
{
- ((DWORD *)p)++;
+ p = (DWORD *)p + 1;
level++;
}
*/
static void ConvertAccelerator32To16( LPVOID acc32, DWORD size, LPVOID acc16 )
{
- int type;
+ BYTE type;
do
{
/* Copy type */
- type = *((BYTE *)acc16)++ = *((BYTE *)acc32)++;
+ type = get_byte(&acc32);
+ put_byte(&acc16, type);
/* Skip padding */
- ((BYTE *)acc32)++;
+ get_byte(&acc32);
/* Copy event and IDval */
- *((WORD *)acc16)++ = *((WORD *)acc32)++;
- *((WORD *)acc16)++ = *((WORD *)acc32)++;
+ put_word(&acc16, get_word(&acc32));
+ put_word(&acc16, get_word(&acc32));
/* Skip padding */
- ((WORD *)acc32)++;
+ get_word(&acc32);
} while ( !( type & 0x80 ) );
}
switch (type)
{
- case RT_MENU16:
+ case RT_MENU:
ConvertMenu32To16( bits, size, GlobalLock16( handle ) );
break;
- case RT_DIALOG16:
+ case RT_DIALOG:
ConvertDialog32To16( bits, size, GlobalLock16( handle ) );
break;
- case RT_ACCELERATOR16:
+ case RT_ACCELERATOR:
ConvertAccelerator32To16( bits, size, GlobalLock16( handle ) );
break;
- case RT_STRING16:
+ case RT_STRING:
FIXME("not yet implemented!\n" );
/* fall through */
default: