Juan Lang : cryptui: Show UI rather than failing if no import source is specified.
Alexandre Julliard
julliard at winehq.org
Tue Dec 23 13:41:22 CST 2008
Module: wine
Branch: master
Commit: dbab34e8d574555778e25584f44137486a621708
URL: http://source.winehq.org/git/wine.git/?a=commit;h=dbab34e8d574555778e25584f44137486a621708
Author: Juan Lang <juan.lang at gmail.com>
Date: Mon Dec 22 19:09:28 2008 -0800
cryptui: Show UI rather than failing if no import source is specified.
---
dlls/cryptui/main.c | 74 +++++++++++++++++++++++++++-----------------------
1 files changed, 40 insertions(+), 34 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 074d8be..c37c6aa 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -3941,9 +3941,7 @@ BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardT
TRACE("(0x%08x, %p, %s, %p, %p)\n", dwFlags, hwndParent, debugstr_w(pwszWizardTitle),
pImportSrc, hDestCertStore);
- if (!(dwFlags & CRYPTUI_WIZ_NO_UI)) FIXME("UI not implemented\n");
-
- if (!pImportSrc ||
+ if (pImportSrc &&
pImportSrc->dwSize != sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO))
{
SetLastError(E_INVALIDARG);
@@ -3953,39 +3951,47 @@ BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardT
if (!(dwFlags & CRYPTUI_WIZ_NO_UI))
ret = show_import_ui(dwFlags, hwndParent, pwszWizardTitle, pImportSrc,
hDestCertStore);
-
- switch (pImportSrc->dwSubjectChoice)
+ else if (pImportSrc)
{
- case CRYPTUI_WIZ_IMPORT_SUBJECT_FILE:
- ret = import_file(dwFlags, hwndParent, pwszWizardTitle,
- pImportSrc->u.pwszFileName, hDestCertStore);
- break;
- case CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT:
- if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CERT)))
- ret = import_cert(pImportSrc->u.pCertContext, hDestCertStore);
- else
- import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
- break;
- case CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT:
- if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CRL)))
- ret = import_crl(pImportSrc->u.pCRLContext, hDestCertStore);
- else
- import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
- break;
- case CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT:
- if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CTL)))
- ret = import_ctl(pImportSrc->u.pCTLContext, hDestCertStore);
- else
- import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
- break;
- case CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE:
- ret = import_store(dwFlags, hwndParent, pwszWizardTitle,
- pImportSrc->u.hCertStore, hDestCertStore);
- break;
- default:
- WARN("unknown source type: %u\n", pImportSrc->dwSubjectChoice);
+ switch (pImportSrc->dwSubjectChoice)
+ {
+ case CRYPTUI_WIZ_IMPORT_SUBJECT_FILE:
+ ret = import_file(dwFlags, hwndParent, pwszWizardTitle,
+ pImportSrc->u.pwszFileName, hDestCertStore);
+ break;
+ case CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT:
+ if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CERT)))
+ ret = import_cert(pImportSrc->u.pCertContext, hDestCertStore);
+ else
+ import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
+ break;
+ case CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT:
+ if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CRL)))
+ ret = import_crl(pImportSrc->u.pCRLContext, hDestCertStore);
+ else
+ import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
+ break;
+ case CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT:
+ if ((ret = check_context_type(dwFlags, CERT_QUERY_CONTENT_CTL)))
+ ret = import_ctl(pImportSrc->u.pCTLContext, hDestCertStore);
+ else
+ import_warn_type_mismatch(dwFlags, hwndParent, pwszWizardTitle);
+ break;
+ case CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE:
+ ret = import_store(dwFlags, hwndParent, pwszWizardTitle,
+ pImportSrc->u.hCertStore, hDestCertStore);
+ break;
+ default:
+ WARN("unknown source type: %u\n", pImportSrc->dwSubjectChoice);
+ SetLastError(E_INVALIDARG);
+ ret = FALSE;
+ }
+ }
+ else
+ {
+ /* Can't have no UI without specifying source */
SetLastError(E_INVALIDARG);
- return FALSE;
+ ret = FALSE;
}
return ret;
More information about the wine-cvs
mailing list