Prevent CY type from being redefined.

diff --git a/include/wtypes.h b/include/wtypes.h
index 8d07292..8096615 100644
--- a/include/wtypes.h
+++ b/include/wtypes.h
@@ -617,6 +617,8 @@
 } CY;
 
 #else
+#ifndef _tagCY_DEFINED
+#define _tagCY_DEFINED
 typedef union tagCY {
     struct {
 #ifdef WORDS_BIGENDIAN
@@ -630,6 +632,7 @@
     LONGLONG int64;
 } CY;
 #endif
+#endif
 typedef CY *LPCY;
 
 #if 0
diff --git a/include/wtypes.idl b/include/wtypes.idl
index 2e05d6c..d51467d 100644
--- a/include/wtypes.idl
+++ b/include/wtypes.idl
@@ -570,6 +570,8 @@
   LONGLONG int64;
 } CY;
 cpp_quote("#else") /* C/C++ defs */
+cpp_quote("#ifndef _tagCY_DEFINED")
+cpp_quote("#define _tagCY_DEFINED")
 cpp_quote("typedef union tagCY {")
 cpp_quote("    struct {")
 cpp_quote("#ifdef WORDS_BIGENDIAN")
@@ -583,6 +585,7 @@
 cpp_quote("    LONGLONG int64;")
 cpp_quote("} CY;")
 cpp_quote("#endif")
+cpp_quote("#endif")
 
 typedef CY *LPCY;