In masm32 forum this topic (http://masm32.com/board/index.php?topic=4665.msg59826#msg59826) inspirate to do this test:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mmsystem.h>
#include <ImageHlp.h>
#include <stddef.h>
// http://www.catb.org/esr/structure-packing/
// http://stackoverflow.com/questions/1208954/c-struct-grabbing-data-by-offset
#ifndef offsetof
#define offsetof(ty,m)  ((size_t)&(((ty*)0)->m))
#endif
#define GET_FIELD_OFFSET(type, field)    ((size_t)&(((type *)0)->field))
#define GET_FIELD_SIZE(type, field)      (sizeof(((type *)0)->field))
#define PRINTSIZE(x)  printf("\n%-16s %d %Xh bytes\n",#x,sizeof(x),sizeof(x));
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
int main(void)
{
	PRINTSIZE(PSINJECTDATA);
	PRINTOFSSIZE(PSINJECTDATA,DataBytes);
	PRINTOFSSIZE(PSINJECTDATA,InjectionPoint);
	PRINTOFSSIZE(PSINJECTDATA,PageNumber);
	PRINTSIZE(MCI_ANIM_WINDOW_PARMS);
	PRINTOFSSIZE(MCI_ANIM_WINDOW_PARMS,dwCallback);
	PRINTOFSSIZE(MCI_ANIM_WINDOW_PARMS,hWnd);
	PRINTOFSSIZE(MCI_ANIM_WINDOW_PARMS,nCmdShow);
	PRINTOFSSIZE(MCI_ANIM_WINDOW_PARMS,lpstrText);
	PRINTSIZE(LOADED_IMAGE);
	PRINTOFSSIZE(LOADED_IMAGE,ModuleName);
	PRINTOFSSIZE(LOADED_IMAGE,hFile);
	PRINTOFSSIZE(LOADED_IMAGE,MappedAddress);
	PRINTOFSSIZE(LOADED_IMAGE,FileHeader);
	PRINTOFSSIZE(LOADED_IMAGE,LastRvaSection);
	PRINTOFSSIZE(LOADED_IMAGE,NumberOfSections);
	PRINTOFSSIZE(LOADED_IMAGE,Sections);
	PRINTOFSSIZE(LOADED_IMAGE,Characteristics);
	PRINTOFSSIZE(LOADED_IMAGE,fSystemImage);
	PRINTOFSSIZE(LOADED_IMAGE,fDOSImage);
	PRINTOFSSIZE(LOADED_IMAGE,Version);
	PRINTOFSSIZE(LOADED_IMAGE,Links);
	PRINTOFSSIZE(LOADED_IMAGE,SizeOfImage);
	return 0;
}
			
			
			
				Hi Timo,
Thanks, that is interesting. In fact I had also on my (full) agenda to generate C code for all these structures, and let Pelles C (and MS VC, GCC) show what it really uses in 32-bit and 64-bit code. Haven't made progress, though - too many other things cooking 8)