From 183df56c115325cd0f645843d253f247c994a1a1 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Mon, 22 Dec 2008 19:16:24 -0800 Subject: [PATCH] cryptui: Separate opening a file from importing it. --- dlls/cryptui/main.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c index 23efa075304..4c53d88397b 100644 --- a/dlls/cryptui/main.c +++ b/dlls/cryptui/main.c @@ -3627,12 +3627,10 @@ static BOOL import_store(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, return ret; } -static BOOL import_file(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, - LPCWSTR fileName, HCERTSTORE dest) +static HCERTSTORE open_store_from_file(DWORD dwFlags, LPCWSTR fileName) { - HCERTSTORE source; + HCERTSTORE store = NULL; DWORD contentType, expectedContentTypeFlags; - BOOL ret; if (dwFlags & (CRYPTUI_WIZ_IMPORT_ALLOW_CERT | CRYPTUI_WIZ_IMPORT_ALLOW_CRL | @@ -3667,14 +3665,25 @@ static BOOL import_file(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PFX; - ret = CryptQueryObject(CERT_QUERY_OBJECT_FILE, fileName, + CryptQueryObject(CERT_QUERY_OBJECT_FILE, fileName, expectedContentTypeFlags, CERT_QUERY_FORMAT_FLAG_ALL, 0, NULL, - &contentType, NULL, &source, NULL, NULL); - if (ret) + &contentType, NULL, &store, NULL, NULL); + return store; +} + +static BOOL import_file(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, + LPCWSTR fileName, HCERTSTORE dest) +{ + HCERTSTORE source; + BOOL ret; + + if ((source = open_store_from_file(dwFlags, fileName))) { ret = import_store(dwFlags, hwnd, szTitle, source, dest); CertCloseStore(source, 0); } + else + ret = FALSE; return ret; } -- 2.11.4.GIT