diff --git a/dlls/cryptnet/cryptnet_main.c b/dlls/cryptnet/cryptnet_main.c
index b83adb850e316e3e9716711601477f2b728ebf95..487da9df170db9fef67677c3bab09e68647a05b7 100644
--- a/dlls/cryptnet/cryptnet_main.c
+++ b/dlls/cryptnet/cryptnet_main.c
@@ -23,6 +23,7 @@
 #include <stdio.h>
 
 #define NONAMELESSUNION
+#define NONAMELESSSTRUCT
 
 #include "windef.h"
 #include "wine/debug.h"
@@ -353,7 +354,7 @@ static BOOL CRYPT_GetObjectFromFile(HANDLE hFile, PCRYPT_BLOB_ARRAY pObject)
 
     if ((ret = GetFileSizeEx(hFile, &size)))
     {
-        if (size.HighPart)
+        if (size.u.HighPart)
         {
             WARN("file too big\n");
             SetLastError(ERROR_INVALID_DATA);
@@ -363,11 +364,11 @@ static BOOL CRYPT_GetObjectFromFile(HANDLE hFile, PCRYPT_BLOB_ARRAY pObject)
         {
             CRYPT_DATA_BLOB blob;
 
-            blob.pbData = CryptMemAlloc(size.LowPart);
+            blob.pbData = CryptMemAlloc(size.u.LowPart);
             if (blob.pbData)
             {
-                blob.cbData = size.LowPart;
-                ret = ReadFile(hFile, blob.pbData, size.LowPart, &blob.cbData,
+                blob.cbData = size.u.LowPart;
+                ret = ReadFile(hFile, blob.pbData, size.u.LowPart, &blob.cbData,
                  NULL);
                 if (ret)
                 {