Juan Lang : cryptui: Add a (empty) certificate manager dialog.

Alexandre Julliard julliard at winehq.org
Fri Jan 9 09:52:28 CST 2009


Module: wine
Branch: master
Commit: 1f183ea2893c24180f92a496c3b299d2b7cd1393
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1f183ea2893c24180f92a496c3b299d2b7cd1393

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Jan  7 16:15:05 2009 -0800

cryptui: Add a (empty) certificate manager dialog.

---

 dlls/cryptui/cryptui_En.rc |   21 +++++++++++++++++++++
 dlls/cryptui/cryptuires.h  |   11 +++++++++++
 dlls/cryptui/main.c        |   40 ++++++++++++++++++++++++++++++++++++++--
 3 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/dlls/cryptui/cryptui_En.rc b/dlls/cryptui/cryptui_En.rc
index 0609229..251bf01 100644
--- a/dlls/cryptui/cryptui_En.rc
+++ b/dlls/cryptui/cryptui_En.rc
@@ -287,3 +287,24 @@ BEGIN
     LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
     115,67,174,100
 END
+
+IDD_CERT_MGR DIALOG DISCARDABLE 0,0,335,270
+CAPTION "Certificates"
+FONT 8, "MS Shell Dlg"
+BEGIN
+  LTEXT "I&ntended purpose:", IDC_STATIC, 7,9,100,12
+  COMBOBOX IDC_MGR_PURPOSE_SELECTION, 83,7,245,14,
+    CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP
+  CONTROL "", IDC_MGR_STORES, "SysTabControl32",
+    WS_CLIPSIBLINGS|WS_TABSTOP, 7,25,321,140
+  CONTROL "", IDC_MGR_CERTS, "SysListView32",
+    LVS_REPORT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 15,46,305,111
+  PUSHBUTTON "&Import...", IDC_MGR_IMPORT, 7,172,51,14
+  PUSHBUTTON "&Export...", IDC_MGR_EXPORT, 62,172,51,14, WS_DISABLED
+  PUSHBUTTON "&Remove", IDC_MGR_REMOVE, 117,172,51,14, WS_DISABLED
+  PUSHBUTTON "&Advanced...", IDC_MGR_ADVANCED, 277,172,51,14
+  GROUPBOX "Certificate intended purposes", grp1,7,194,321,47, BS_GROUPBOX
+  LTEXT "", IDC_MGR_PURPOSES, 13,208,252,30
+  PUSHBUTTON "&View...", IDC_MGR_VIEW, 269,218,51,14, WS_DISABLED
+  PUSHBUTTON "&Close", IDCANCEL, 277,249,51,14, BS_DEFPUSHBUTTON
+END
diff --git a/dlls/cryptui/cryptuires.h b/dlls/cryptui/cryptuires.h
index 14f576e..6799d54 100644
--- a/dlls/cryptui/cryptuires.h
+++ b/dlls/cryptui/cryptuires.h
@@ -130,6 +130,7 @@
 #define IDD_IMPORT_FILE 108
 #define IDD_IMPORT_STORE 109
 #define IDD_IMPORT_FINISH 110
+#define IDD_CERT_MGR 111
 
 #define IDB_SMALL_ICONS 200
 #define IDB_CERT 201
@@ -184,4 +185,14 @@
 #define IDC_IMPORT_BROWSE_STORE 2706
 #define IDC_IMPORT_SETTINGS 2707
 
+#define IDC_MGR_PURPOSE_SELECTION 2800
+#define IDC_MGR_STORES 2801
+#define IDC_MGR_CERTS 2802
+#define IDC_MGR_IMPORT 2803
+#define IDC_MGR_EXPORT 2804
+#define IDC_MGR_REMOVE 2805
+#define IDC_MGR_ADVANCED 2806
+#define IDC_MGR_PURPOSES 2807
+#define IDC_MGR_VIEW 2808
+
 #endif /* ndef __CRYPTUIRES_H_ */
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 987599d..1a48c6f 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -65,13 +65,49 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
     return TRUE;
 }
 
+static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
+ LPARAM lp)
+{
+    switch (msg)
+    {
+    case WM_INITDIALOG:
+    {
+        PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr =
+         (PCCRYPTUI_CERT_MGR_STRUCT)lp;
+
+        if (pCryptUICertMgr->pwszTitle)
+            SendMessageW(hwnd, WM_SETTEXT, 0,
+             (LPARAM)pCryptUICertMgr->pwszTitle);
+        break;
+    }
+    case WM_COMMAND:
+        switch (wp)
+        {
+        case IDCANCEL:
+            EndDialog(hwnd, IDCANCEL);
+            break;
+        }
+        break;
+    }
+    return 0;
+}
+
 /***********************************************************************
  *		CryptUIDlgCertMgr (CRYPTUI.@)
  */
 BOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr)
 {
-    FIXME("(%p): stub\n", pCryptUICertMgr);
-    return FALSE;
+    TRACE("(%p)\n", pCryptUICertMgr);
+
+    if (pCryptUICertMgr->dwSize != sizeof(CRYPTUI_CERT_MGR_STRUCT))
+    {
+        WARN("unexpected size %d\n", pCryptUICertMgr->dwSize);
+        SetLastError(E_INVALIDARG);
+        return FALSE;
+    }
+    DialogBoxParamW(hInstance, MAKEINTRESOURCEW(IDD_CERT_MGR),
+     pCryptUICertMgr->hwndParent, cert_mgr_dlg_proc, (LPARAM)pCryptUICertMgr);
+    return TRUE;
 }
 
 /* FIXME: real names are unknown, functions are undocumented */




More information about the wine-cvs mailing list