Juan Lang : cryptui: Set purpose selection radio button based on enhanced key usage value.

Alexandre Julliard julliard at winehq.org
Fri Dec 19 11:19:23 CST 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Dec 18 14:03:30 2008 -0800

cryptui: Set purpose selection radio button based on enhanced key usage value.

---

 dlls/cryptui/main.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 00a0389..dc1c807 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -1716,6 +1716,7 @@ static void show_cert_usages(HWND hwnd, struct detail_data *data)
     PCCRYPT_OID_INFO *usages;
     RECT rc;
     LVCOLUMNW column;
+    PurposeSelection purposeSelection;
 
     GetWindowRect(lv, &rc);
     column.mask = LVCF_WIDTH;
@@ -1738,6 +1739,10 @@ static void show_cert_usages(HWND hwnd, struct detail_data *data)
             HeapFree(GetProcessHeap(), 0, usage);
             usage = NULL;
         }
+        else if (usage->cUsageIdentifier)
+            purposeSelection = PurposeEnableSelected;
+        else
+            purposeSelection = PurposeDisableAll;
     }
     else if (CertGetEnhancedKeyUsage(cert, CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG,
      NULL, &size))
@@ -1749,9 +1754,16 @@ static void show_cert_usages(HWND hwnd, struct detail_data *data)
             HeapFree(GetProcessHeap(), 0, usage);
             usage = NULL;
         }
+        else if (usage->cUsageIdentifier)
+            purposeSelection = PurposeEnableAll;
+        else
+            purposeSelection = PurposeDisableAll;
     }
     else
+    {
+        purposeSelection = PurposeEnableAll;
         usage = NULL;
+    }
     if (usage)
     {
         DWORD i;
@@ -1779,7 +1791,9 @@ static void show_cert_usages(HWND hwnd, struct detail_data *data)
             WTHelperGetKnownUsages(2, &usages);
         }
     }
-    select_purposes(hwnd, PurposeEnableAll);
+    select_purposes(hwnd, purposeSelection);
+    SendMessageW(GetDlgItem(hwnd, IDC_ENABLE_ALL_PURPOSES + purposeSelection),
+     BM_CLICK, 0, 0);
 }
 
 static void set_general_cert_properties(HWND hwnd, struct detail_data *data)
@@ -1800,7 +1814,6 @@ static void set_general_cert_properties(HWND hwnd, struct detail_data *data)
         HeapFree(GetProcessHeap(), 0, str);
     }
     show_cert_usages(hwnd, data);
-    SendMessageW(GetDlgItem(hwnd, IDC_ENABLE_ALL_PURPOSES), BM_CLICK, 0, 0);
 }
 
 #define MAX_FRIENDLY_NAME 40




More information about the wine-cvs mailing list