Added support for anonymous structs/unions on compilers that implement it.
diff --git a/include/winnt.h b/include/winnt.h
index f597056..db0e2bd 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -908,16 +908,20 @@
* LUID_AND_ATTRIBUTES
*/
-typedef struct _LARGE_INTEGER
-{
- DWORD LowPart;
- LONG HighPart;
+typedef union _LARGE_INTEGER {
+ struct {
+ DWORD LowPart;
+ LONG HighPart;
+ } DUMMYSTRUCTNAME;
+ LONGLONG QuadPart;
} LARGE_INTEGER, *LPLARGE_INTEGER, *PLARGE_INTEGER;
-typedef struct _ULARGE_INTEGER
-{
- DWORD LowPart;
- DWORD HighPart;
+typedef union _ULARGE_INTEGER {
+ struct {
+ DWORD LowPart;
+ LONG HighPart;
+ } DUMMYSTRUCTNAME;
+ LONGLONG QuadPart;
} ULARGE_INTEGER, *LPULARGE_INTEGER, *PULARGE_INTEGER;
/*
diff --git a/include/wtypes.h b/include/wtypes.h
index b0a0ddb..d4607ca 100644
--- a/include/wtypes.h
+++ b/include/wtypes.h
@@ -147,19 +147,20 @@
#ifndef _tagCY_DEFINED
#define _tagCY_DEFINED
-typedef union tagCY
-{
+
+typedef union tagCY {
struct {
#ifdef BIG_ENDIAN
- long Hi;
- long Lo;
-#else
- unsigned long Lo;
- long Hi;
-#endif
- } u;
+ LONG Hi;
+ LONG Lo;
+#else /* defined(BIG_ENDIAN) */
+ ULONG Lo;
+ LONG Hi;
+#endif /* defined(BIG_ENDIAN) */
+ } DUMMYSTRUCTNAME;
LONGLONG int64;
} CY;
+
#endif /* _tagCY_DEFINED */
/*