[SDK][INCLUDE] Fix offsetof and CCSIZEOF_STRUCT for Clang-CL build (#3624)
[reactos.git] / sdk / include / psdk / commctrl.h
index 942d07c..845fd30 100644 (file)
@@ -147,7 +147,11 @@ extern "C" {
 #define NM_THEMECHANGED (NM_FIRST-22)
 
 #ifndef CCSIZEOF_STRUCT
+#if defined(__clang__) /* Clang-CL fails without this workaround. See CORE-17547 */
+#define CCSIZEOF_STRUCT(structname,member) (__builtin_offsetof(structname,member) + sizeof(((structname*)0)->member))
+#else
 #define CCSIZEOF_STRUCT(structname,member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0))))+sizeof(((structname*)0)->member))
+#endif
 #endif
 
   typedef struct tagNMTOOLTIPSCREATED {