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