Juan Lang : cryptui: Add purpose selection and column headings to certificate manager dialog.

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


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

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

cryptui: Add purpose selection and column headings to certificate manager dialog.

---

 dlls/cryptui/cryptui_En.rc |    6 +++++
 dlls/cryptui/cryptuires.h  |    6 +++++
 dlls/cryptui/main.c        |   48 ++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/dlls/cryptui/cryptui_En.rc b/dlls/cryptui/cryptui_En.rc
index 251bf01..49096ab 100644
--- a/dlls/cryptui/cryptui_En.rc
+++ b/dlls/cryptui/cryptui_En.rc
@@ -94,6 +94,12 @@ STRINGTABLE DISCARDABLE
     IDS_IMPORT_SUCCEEDED "The import was successful."
     IDS_IMPORT_FAILED "The import failed."
     IDS_WIZARD_TITLE_FONT "Arial"
+    IDS_PURPOSE_ALL "<All>"
+    IDS_PURPOSE_ADVANCED "<Advanced Purposes>"
+    IDS_SUBJECT_COLUMN "Issued To"
+    IDS_ISSUER_COLUMN "Issued By"
+    IDS_EXPIRATION_COLUMN "Expiration Date"
+    IDS_FRIENDLY_NAME_COLUMN "Friendly Name"
     IDS_PURPOSE_SERVER_AUTH "Ensures the identify of a remote computer"
     IDS_PURPOSE_CLIENT_AUTH "Proves your identity to a remote computer"
     IDS_PURPOSE_CODE_SIGNING "Ensures software came from software publisher\nProtects software from alteration after publication"
diff --git a/dlls/cryptui/cryptuires.h b/dlls/cryptui/cryptuires.h
index 6799d54..f6127c2 100644
--- a/dlls/cryptui/cryptuires.h
+++ b/dlls/cryptui/cryptuires.h
@@ -91,6 +91,12 @@
 #define IDS_IMPORT_SUCCEEDED 1071
 #define IDS_IMPORT_FAILED 1072
 #define IDS_WIZARD_TITLE_FONT 1073
+#define IDS_PURPOSE_ALL 1074
+#define IDS_PURPOSE_ADVANCED 1075
+#define IDS_SUBJECT_COLUMN 1076
+#define IDS_ISSUER_COLUMN 1077
+#define IDS_EXPIRATION_COLUMN 1078
+#define IDS_FRIENDLY_NAME_COLUMN 1079
 
 #define IDS_PURPOSE_SERVER_AUTH 1100
 #define IDS_PURPOSE_CLIENT_AUTH 1101
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 1a48c6f..acf438b 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -65,6 +65,50 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
     return TRUE;
 }
 
+#define MAX_STRING_LEN 512
+
+static void add_cert_columns(HWND hwnd)
+{
+    HWND lv = GetDlgItem(hwnd, IDC_MGR_CERTS);
+    RECT rc;
+    WCHAR buf[MAX_STRING_LEN];
+    LVCOLUMNW column;
+
+    SendMessageW(lv, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
+    GetWindowRect(lv, &rc);
+    LoadStringW(hInstance, IDS_SUBJECT_COLUMN, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    column.mask = LVCF_WIDTH | LVCF_TEXT;
+    column.cx = (rc.right - rc.left) * 29 / 100 - 2;
+    column.pszText = buf;
+    SendMessageW(lv, LVM_INSERTCOLUMNW, 0, (LPARAM)&column);
+    LoadStringW(hInstance, IDS_ISSUER_COLUMN, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    SendMessageW(lv, LVM_INSERTCOLUMNW, 1, (LPARAM)&column);
+    column.cx = (rc.right - rc.left) * 16 / 100 - 2;
+    LoadStringW(hInstance, IDS_EXPIRATION_COLUMN, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    SendMessageW(lv, LVM_INSERTCOLUMNW, 2, (LPARAM)&column);
+    column.cx = (rc.right - rc.left) * 23 / 100 - 1;
+    LoadStringW(hInstance, IDS_FRIENDLY_NAME_COLUMN, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    SendMessageW(lv, LVM_INSERTCOLUMNW, 3, (LPARAM)&column);
+}
+
+static void initialize_purpose_selection(HWND hwnd)
+{
+    HWND cb = GetDlgItem(hwnd, IDC_MGR_PURPOSE_SELECTION);
+    WCHAR buf[MAX_STRING_LEN];
+
+    LoadStringW(hInstance, IDS_PURPOSE_ALL, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    SendMessageW(cb, CB_INSERTSTRING, -1, (LPARAM)buf);
+    LoadStringW(hInstance, IDS_PURPOSE_ADVANCED, buf,
+     sizeof(buf) / sizeof(buf[0]));
+    SendMessageW(cb, CB_INSERTSTRING, -1, (LPARAM)buf);
+    SendMessageW(cb, CB_SETCURSEL, 0, 0);
+}
+
 static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
  LPARAM lp)
 {
@@ -75,6 +119,8 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
         PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr =
          (PCCRYPTUI_CERT_MGR_STRUCT)lp;
 
+        initialize_purpose_selection(hwnd);
+        add_cert_columns(hwnd);
         if (pCryptUICertMgr->pwszTitle)
             SendMessageW(hwnd, WM_SETTEXT, 0,
              (LPARAM)pCryptUICertMgr->pwszTitle);
@@ -285,8 +331,6 @@ static void free_store_info(HWND tree)
     }
 }
 
-#define MAX_STRING_LEN 512
-
 static HCERTSTORE selected_item_to_store(HWND tree, HTREEITEM hItem)
 {
     WCHAR buf[MAX_STRING_LEN];




More information about the wine-cvs mailing list