cryptui: Add an add purpose dialog.
This commit is contained in:
parent
3c7e95ee39
commit
356596561c
|
@ -170,3 +170,14 @@ BEGIN
|
|||
24,100,220,90
|
||||
PUSHBUTTON "Add &Purpose...", IDC_ADD_PURPOSE,184,194,60,14
|
||||
END
|
||||
|
||||
IDD_ADD_CERT_PURPOSE DIALOG DISCARDABLE 0,0,200,68
|
||||
CAPTION "Add Purpose"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Add the object identifier (OID) for the certificate purpose you wish to add:",
|
||||
stc1, 6,6,190,28
|
||||
EDITTEXT IDC_NEW_PURPOSE, 6,28,190,14, ES_AUTOVSCROLL|ES_MULTILINE|WS_TABSTOP|WS_VSCROLL
|
||||
PUSHBUTTON "OK", IDOK, 33,48,60,14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 100,48,60,14
|
||||
END
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
#define IDD_HIERARCHY 102
|
||||
#define IDD_USERNOTICE 103
|
||||
#define IDD_CERT_PROPERTIES_GENERAL 104
|
||||
#define IDD_ADD_CERT_PURPOSE 105
|
||||
|
||||
#define IDB_SMALL_ICONS 200
|
||||
#define IDB_CERT 201
|
||||
|
@ -126,4 +127,6 @@
|
|||
#define IDC_CERTIFICATE_USAGES 2405
|
||||
#define IDC_ADD_PURPOSE 2406
|
||||
|
||||
#define IDC_NEW_PURPOSE 2500
|
||||
|
||||
#endif /* ndef __CRYPTUIRES_H_ */
|
||||
|
|
|
@ -1593,6 +1593,59 @@ static void add_purpose(HWND hwnd, LPCSTR oid)
|
|||
}
|
||||
}
|
||||
|
||||
#define MAX_PURPOSE 255
|
||||
|
||||
static LRESULT CALLBACK add_purpose_dlg_proc(HWND hwnd, UINT msg,
|
||||
WPARAM wp, LPARAM lp)
|
||||
{
|
||||
LRESULT ret = 0;
|
||||
char buf[MAX_PURPOSE + 1];
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
SendMessageW(GetDlgItem(hwnd, IDC_NEW_PURPOSE), EM_SETLIMITTEXT,
|
||||
MAX_PURPOSE, 0);
|
||||
ShowScrollBar(GetDlgItem(hwnd, IDC_NEW_PURPOSE), SB_VERT, FALSE);
|
||||
SetWindowLongPtrW(hwnd, DWLP_USER, lp);
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (HIWORD(wp))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
switch (LOWORD(wp))
|
||||
{
|
||||
case IDOK:
|
||||
SendMessageA(GetDlgItem(hwnd, IDC_NEW_PURPOSE), WM_GETTEXT,
|
||||
sizeof(buf) / sizeof(buf[0]), (LPARAM)buf);
|
||||
if (!buf[0])
|
||||
{
|
||||
/* An empty purpose is the same as cancelling */
|
||||
EndDialog(hwnd, IDCANCEL);
|
||||
ret = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
HWND parent = (HWND)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
|
||||
FIXME("validate %s\n", debugstr_a(buf));
|
||||
add_purpose(parent, buf);
|
||||
EndDialog(hwnd, wp);
|
||||
ret = TRUE;
|
||||
}
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hwnd, wp);
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static WCHAR *get_cert_property_as_string(PCCERT_CONTEXT cert, DWORD prop)
|
||||
{
|
||||
WCHAR *name = NULL;
|
||||
|
@ -1862,6 +1915,12 @@ static LRESULT CALLBACK cert_properties_general_dlg_proc(HWND hwnd, UINT msg,
|
|||
case BN_CLICKED:
|
||||
switch (LOWORD(wp))
|
||||
{
|
||||
case IDC_ADD_PURPOSE:
|
||||
if (DialogBoxParamW(hInstance,
|
||||
MAKEINTRESOURCEW(IDD_ADD_CERT_PURPOSE), hwnd,
|
||||
add_purpose_dlg_proc, (LPARAM)hwnd) == IDOK)
|
||||
SendMessageW(GetParent(hwnd), PSM_CHANGED, (WPARAM)hwnd, 0);
|
||||
break;
|
||||
case IDC_ENABLE_ALL_PURPOSES:
|
||||
case IDC_DISABLE_ALL_PURPOSES:
|
||||
case IDC_ENABLE_SELECTED_PURPOSES:
|
||||
|
|
Loading…
Reference in New Issue