From 1f183ea2893c24180f92a496c3b299d2b7cd1393 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Wed, 7 Jan 2009 16:15:05 -0800 Subject: [PATCH] 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 06092290ad8..251bf01deb3 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 14f576ef19c..6799d544795 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 987599d6f64..1a48c6fa9c5 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 */