Juan Lang : cryptui: Add a (empty) select store dialog.

Alexandre Julliard julliard at winehq.org
Mon Dec 22 10:19:45 CST 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Sat Dec 20 10:11:00 2008 -0800

cryptui: Add a (empty) select store dialog.

---

 dlls/cryptui/cryptui_En.rc |   13 +++++++++++
 dlls/cryptui/cryptuires.h  |    5 ++++
 dlls/cryptui/main.c        |   49 +++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 66 insertions(+), 1 deletions(-)

diff --git a/dlls/cryptui/cryptui_En.rc b/dlls/cryptui/cryptui_En.rc
index f904fa7..a101ad2 100644
--- a/dlls/cryptui/cryptui_En.rc
+++ b/dlls/cryptui/cryptui_En.rc
@@ -183,3 +183,16 @@ BEGIN
   PUSHBUTTON "OK", IDOK, 33,48,60,14
   PUSHBUTTON "Cancel", IDCANCEL, 100,48,60,14
 END
+
+IDD_SELECT_STORE DIALOG DISCARDABLE 0,0,200,136
+CAPTION "Select Certificate Store"
+FONT 8, "MS Shell Dlg"
+BEGIN
+  LTEXT "Select the certificate store you want to use:", IDC_STORE_TEXT, 6,6,190,28
+  CONTROL "",IDC_STORE_LIST, "SysTreeView32", TVS_HASLINES|WS_BORDER|WS_TABSTOP,
+    6,28,188,70
+  CHECKBOX "&Show physical stores", IDC_SHOW_PHYSICAL_STORES, 6,102,90,14,
+    BS_AUTOCHECKBOX|WS_TABSTOP
+  PUSHBUTTON "OK", IDOK, 90,118,50,14, BS_DEFPUSHBUTTON
+  PUSHBUTTON "Cancel", IDCANCEL, 144,118,50,14
+END
diff --git a/dlls/cryptui/cryptuires.h b/dlls/cryptui/cryptuires.h
index 9e18852..0376511 100644
--- a/dlls/cryptui/cryptuires.h
+++ b/dlls/cryptui/cryptuires.h
@@ -92,6 +92,7 @@
 #define IDD_USERNOTICE 103
 #define IDD_CERT_PROPERTIES_GENERAL 104
 #define IDD_ADD_CERT_PURPOSE 105
+#define IDD_SELECT_STORE 106
 
 #define IDB_SMALL_ICONS 200
 #define IDB_CERT 201
@@ -131,4 +132,8 @@
 
 #define IDC_NEW_PURPOSE 2500
 
+#define IDC_STORE_TEXT 2600
+#define IDC_STORE_LIST 2601
+#define IDC_SHOW_PHYSICAL_STORES 2602
+
 #endif /* ndef __CRYPTUIRES_H_ */
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 7ae27d2..76f8ea7 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -118,12 +118,59 @@ typedef struct _CRYPTUI_SELECTSTORE_INFO_W
     void                 *pvArg;
 } CRYPTUI_SELECTSTORE_INFO_W, *PCRYPTUI_SELECTSTORE_INFO_W;
 
+static LRESULT CALLBACK select_store_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
+ LPARAM lp)
+{
+    PCRYPTUI_SELECTSTORE_INFO_W info;
+    LRESULT ret = 0;
+
+    switch (msg)
+    {
+    case WM_INITDIALOG:
+    {
+        info = (PCRYPTUI_SELECTSTORE_INFO_W)lp;
+        SetWindowLongPtrW(hwnd, DWLP_USER, lp);
+        if (info->pwszTitle)
+            SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)info->pwszTitle);
+        if (info->pwszText)
+            SendMessageW(GetDlgItem(hwnd, IDC_STORE_TEXT), WM_SETTEXT, 0,
+             (LPARAM)info->pwszText);
+        if (!(info->dwFlags & CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE))
+            ShowWindow(GetDlgItem(hwnd, IDC_SHOW_PHYSICAL_STORES), FALSE);
+        break;
+    }
+    case WM_COMMAND:
+        switch (wp)
+        {
+        case IDOK:
+            EndDialog(hwnd, IDOK);
+            ret = TRUE;
+            break;
+        case IDCANCEL:
+            EndDialog(hwnd, IDCANCEL);
+            ret = TRUE;
+            break;
+        }
+        break;
+    }
+    return ret;
+}
+
 /***********************************************************************
  *		CryptUIDlgSelectStoreW (CRYPTUI.@)
  */
 HCERTSTORE WINAPI CryptUIDlgSelectStoreW(PCRYPTUI_SELECTSTORE_INFO_W info)
 {
-    FIXME("(%p): stub\n", info);
+    TRACE("(%p)\n", info);
+
+    if (info->dwSize != sizeof(CRYPTUI_SELECTSTORE_INFO_W))
+    {
+        WARN("unexpected size %d\n", info->dwSize);
+        SetLastError(E_INVALIDARG);
+        return NULL;
+    }
+    DialogBoxParamW(hInstance, MAKEINTRESOURCEW(IDD_SELECT_STORE), info->parent,
+     select_store_dlg_proc, (LPARAM)info);
     return NULL;
 }
 




More information about the wine-cvs mailing list