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 */
 
 /*