Module: wine Branch: master Commit: a3f746b085ffd8ab08412d3000d123942c79e8cb URL: http://source.winehq.org/git/wine.git/?a=commit;h=a3f746b085ffd8ab08412d3000...
Author: Juan Lang juan.lang@gmail.com Date: Wed Jan 7 17:45:58 2009 -0800
cryptui: Show selected certificate when requested in the certificate manager dialog.
---
dlls/cryptui/main.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c index 00f87ca..6955f0c 100644 --- a/dlls/cryptui/main.c +++ b/dlls/cryptui/main.c @@ -779,6 +779,27 @@ static void cert_mgr_clear_cert_selection(HWND hwnd) refresh_store_certs(hwnd); }
+static void show_selected_cert(HWND hwnd, int index) +{ + LVITEMW item; + HWND lv = GetDlgItem(hwnd, IDC_MGR_CERTS); + + item.mask = LVIF_PARAM; + item.iItem = index; + item.iSubItem = 0; + if (SendMessageW(lv, LVM_GETITEMW, 0, (LPARAM)&item)) + { + CRYPTUI_VIEWCERTIFICATE_STRUCTW viewInfo; + + memset(&viewInfo, 0, sizeof(viewInfo)); + viewInfo.dwSize = sizeof(viewInfo); + viewInfo.hwndParent = hwnd; + viewInfo.pCertContext = (PCCERT_CONTEXT)item.lParam; + /* FIXME: this should be modal */ + CryptUIDlgViewCertificateW(&viewInfo, NULL); + } +} + static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { @@ -839,6 +860,9 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, } break; } + case NM_DBLCLK: + show_selected_cert(hwnd, ((NMITEMACTIVATE *)lp)->iItem); + break; } break; } @@ -877,6 +901,16 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, refresh_store_certs(hwnd); } break; + case IDC_MGR_VIEW: + { + HWND lv = GetDlgItem(hwnd, IDC_MGR_CERTS); + int selection = SendMessageW(lv, LVM_GETNEXTITEM, -1, + LVNI_SELECTED); + + if (selection >= 0) + show_selected_cert(hwnd, selection); + break; + } case IDCANCEL: free_certs(GetDlgItem(hwnd, IDC_MGR_CERTS)); close_stores(GetDlgItem(hwnd, IDC_MGR_STORES));