* include/winnt.h, include/ddk/winddk.h (FIELD_OFFSET):

Compile with recent C++ compiler such as gcc 3.4.
	* include/ddk/winddk.h: Ditto.
This commit is contained in:
Dimitri Papadopoulos 2006-04-19 08:40:53 +00:00
parent a2601182c0
commit cb784c8950
3 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2006-04-19 Dimitri Papadopoulos <papadopo@users.sourceforge.net>
* include/winnt.h, include/ddk/winddk.h (FIELD_OFFSET):
Compile with recent C++ compiler such as gcc 3.4.
* include/ddk/winddk.h: Ditto.
2006-04-19 Dimitri Papadopoulos <papadopo@users.sourceforge.net> 2006-04-19 Dimitri Papadopoulos <papadopo@users.sourceforge.net>
* include/winuser.h (CharNextEx,CharNextExW,CharPrevEx,CharPrevExW): * include/winuser.h (CharNextEx,CharNextExW,CharPrevEx,CharPrevExW):

View File

@ -3967,9 +3967,14 @@ KefReleaseSpinLockFromDpcLevel(
* IN PCHAR Field); * IN PCHAR Field);
*/ */
#ifndef FIELD_OFFSET #ifndef FIELD_OFFSET
#ifdef __cplusplus
#define FIELD_OFFSET(Type, Field) (reinterpret_cast<LONG> \
(&reinterpret_cast<char&>(static_cast<Type *>(0)->Field)))
#else
#define FIELD_OFFSET(Type, Field) \ #define FIELD_OFFSET(Type, Field) \
((LONG) (&(((Type *) 0)->Field))) ((LONG) (&(((Type *) 0)->Field)))
#endif #endif
#endif
/* /*
* PVOID * PVOID

View File

@ -845,7 +845,12 @@ typedef DWORD FLONG;
#define RTL_CRITSECT_TYPE 0 #define RTL_CRITSECT_TYPE 0
#define RTL_RESOURCE_TYPE 1 #define RTL_RESOURCE_TYPE 1
/* Also in winddk.h */ /* Also in winddk.h */
#ifdef __cplusplus
#define FIELD_OFFSET(t,f) (reinterpret_cast<LONG> \
(&reinterpret_cast<char&>(static_cast<t*>(0)->f)))
#else
#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f)) #define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
#endif
#ifndef CONTAINING_RECORD #ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) \ #define CONTAINING_RECORD(address, type, field) \
((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field))) ((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field)))