wintrust: Add tests for WVTAsn1CatMemberInfoDecode.
diff --git a/dlls/wintrust/tests/asn.c b/dlls/wintrust/tests/asn.c
index 5dd4eff..00f1ebc 100644
--- a/dlls/wintrust/tests/asn.c
+++ b/dlls/wintrust/tests/asn.c
@@ -531,6 +531,63 @@
     }
 }
 
+static void test_decodeCatMemberInfo(void)
+{
+   BOOL ret;
+   LPBYTE buf;
+   DWORD size;
+   CAT_MEMBERINFO *info;
+
+    if (!pCryptDecodeObjectEx)
+    {
+        skip("CryptDecodeObjectEx() is not available. Skipping the decodeCatMemberInfo tests\n");
+        return;
+    }
+
+    ret = pCryptDecodeObjectEx(X509_ASN_ENCODING, CAT_MEMBERINFO_STRUCT,
+     emptyCatMemberInfo, sizeof(emptyCatMemberInfo),
+     CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
+    todo_wine
+    ok(ret, "CryptDecodeObjectEx failed: %08x\n", GetLastError());
+    if (ret)
+    {
+        info = (CAT_MEMBERINFO *)buf;
+        ok(!info->pwszSubjGuid || !info->pwszSubjGuid[0],
+         "expected empty pwszSubjGuid\n");
+        ok(info->dwCertVersion == 0, "expected dwCertVersion == 0, got %d\n",
+         info->dwCertVersion);
+        LocalFree(buf);
+    }
+    ret = pCryptDecodeObjectEx(X509_ASN_ENCODING, CAT_MEMBERINFO_STRUCT,
+     catMemberInfoWithSillyGuid, sizeof(catMemberInfoWithSillyGuid),
+     CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
+    todo_wine
+    ok(ret, "CryptDecodeObjectEx failed: %08x\n", GetLastError());
+    if (ret)
+    {
+        info = (CAT_MEMBERINFO *)buf;
+        ok(info->pwszSubjGuid && !lstrcmpW(info->pwszSubjGuid, foo),
+         "unexpected pwszSubjGuid\n");
+        ok(info->dwCertVersion == 0, "expected dwCertVersion == 0, got %d\n",
+         info->dwCertVersion);
+        LocalFree(buf);
+    }
+    ret = pCryptDecodeObjectEx(X509_ASN_ENCODING, CAT_MEMBERINFO_STRUCT,
+     catMemberInfoWithGuid, sizeof(catMemberInfoWithGuid),
+     CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
+    todo_wine
+    ok(ret, "CryptDecodeObjectEx failed: %08x\n", GetLastError());
+    if (ret)
+    {
+        info = (CAT_MEMBERINFO *)buf;
+        ok(info->pwszSubjGuid && !lstrcmpW(info->pwszSubjGuid, guidStr),
+         "unexpected pwszSubjGuid\n");
+        ok(info->dwCertVersion == 0, "expected dwCertVersion == 0, got %d\n",
+         info->dwCertVersion);
+        LocalFree(buf);
+    }
+}
+
 START_TEST(asn)
 {
     HMODULE hCrypt32 = LoadLibraryA("crypt32.dll");
@@ -542,6 +599,7 @@
     test_encodeSPCPEImage();
     test_decodeSPCPEImage();
     test_encodeCatMemberInfo();
+    test_decodeCatMemberInfo();
 
     FreeLibrary(hCrypt32);
 }