Module: wine Branch: master Commit: 183df56c115325cd0f645843d253f247c994a1a1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=183df56c115325cd0f645843d2...
Author: Juan Lang juan.lang@gmail.com Date: Mon Dec 22 19:16:24 2008 -0800
cryptui: Separate opening a file from importing it.
---
dlls/cryptui/main.c | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c index 23efa07..4c53d88 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; }