mirror of
https://github.com/reactos/reactos.git
synced 2026-05-23 07:40:09 +08:00
[CRYPTUI] Sync with Wine Staging 4.0. CORE-15682
This commit is contained in:
@@ -173,6 +173,13 @@
|
||||
#define IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE 1225
|
||||
#define IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE 1226
|
||||
|
||||
#define IDS_INTENDED_USE_COLUMN 1300
|
||||
#define IDS_LOCATION_COLUMN 1301
|
||||
#define IDS_SELECT_CERT_TITLE 1302
|
||||
#define IDS_SELECT_CERT 1303
|
||||
|
||||
#define IDS_NO_IMPL 1400
|
||||
|
||||
#define IDD_GENERAL 100
|
||||
#define IDD_DETAIL 101
|
||||
#define IDD_HIERARCHY 102
|
||||
@@ -192,6 +199,7 @@
|
||||
#define IDD_EXPORT_FORMAT 116
|
||||
#define IDD_EXPORT_FILE 117
|
||||
#define IDD_EXPORT_FINISH 118
|
||||
#define IDD_SELECT_CERT 119
|
||||
|
||||
#define IDB_SMALL_ICONS 200
|
||||
#define IDB_CERT 201
|
||||
@@ -273,4 +281,8 @@
|
||||
#define IDC_EXPORT_PASSWORD 2915
|
||||
#define IDC_EXPORT_PASSWORD_CONFIRM 2916
|
||||
|
||||
#define IDC_SELECT_DISPLAY_STRING 3000
|
||||
#define IDC_SELECT_CERTS 3001
|
||||
#define IDC_SELECT_VIEW_CERT 3002
|
||||
|
||||
#endif /* ndef __CRYPTUIRES_H_ */
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Die Passwörter sind unterschiedlich."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Hinweis: Der private Schlüssel des Zertifikats konnte nicht geöffnet werden."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Hinweis: Der private Schlüssel des Zertifikats kann nicht exportiert werden."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -455,3 +460,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "The passwords do not match."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Note: The private key for this certificate could not be opened."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Note: The private key for this certificate is not exportable."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Les mots de passe ne correspondent pas."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Note : la clé privée de ce certificat n'a pu être ouverte."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Note : la clé privée de ce certificat n'est pas exportable."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "The passwords do not match."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Note: The private key for this certificate could not be opened."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Note: The private key for this certificate is not exportable."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Le password non corrispondono."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Nota: impossibile aprire la chiave privata per questo certificato."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Nota: la chiave privata per questo certificato non è esportabile."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "이 암호는 맞지 않습니다."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "주의: 이 인증서를 위한 개인 키를 열 수 없습니다."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "주의: 이 인증서를 위한 개인 키를 내보낼 수 없습니다."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Slaptažodžiai nesutampa."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Pastaba: nepavyko atverti privačiojo rakto šiam liudijimui."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Pastaba: šio liudijimo privatusis raktas neišeksportuojamas."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "De wachtwoorden zijn niet gelijk."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Noot: De persoonlijke sleutel voor dit certificaat kon niet geopend worden."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Noot: De persoonlijke sleutel voor dit certificaat kan niet geëxporteerd worden."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -455,3 +460,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Passordene er ikke like."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Merk: Klarte ikke åpne den private nøkkelen for dette sertifikatet."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Merk: Den private nøkkelen for dette sertifikatet kan ikke eksporteres."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -453,3 +458,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Niezgodność haseł."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Uwaga: Nie można otworzyć klucza prywatnego dla tego certyfikatu."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Uwaga: Klucz prywatny dla tego certyfikatu jest oznaczony jako nie do eksportu."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "As palavras chave não coincidem."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Nota: A chave privada para este certificado não conseguiu ser aberta."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Nota: A chave privada para este certificado não é exportável."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -453,3 +458,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -174,6 +174,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Parolele nu se potrivesc."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Notă: Cheia privată pentru acest certificat nu a putut fi deschisă."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Notă: Cheia privată pentru acest certificat nu este exportabilă."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -460,3 +465,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -173,6 +173,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Пароли не совпадают."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Замечание: Закрытый ключ для этого сертификата не может быть открыт."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Замечание: Закрытый ключ для этого сертификата не может быть экспортирован."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -459,3 +464,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -172,6 +172,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Passwordi nuk perputhet."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Shenim: Çelësi privat për këtë certifikatë nuk mund të hapet."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Shenim: Çelësi privat për këtë certifikatë nuk është eksportueshme."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -458,3 +463,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Şifreler uyuşmuyor."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Önemli: Bu onay belgesinin husûsî anahtarı açılamadı."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Önemli: Bu onay belgesinin husûsî anahtarı verilebilen değil."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -457,3 +462,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -171,6 +171,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "Паролі не співпадають."
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "Увага: Приватний ключ для цього сертифікату не може бути відкритий."
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "Увага: Приватний ключ для цього сертифікату не може бути експортований."
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -453,3 +458,15 @@ BEGIN
|
||||
LVS_REPORT|LVS_NOCOLUMNHEADER|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -175,6 +175,11 @@ STRINGTABLE
|
||||
IDS_EXPORT_PASSWORD_MISMATCH "密码不匹配。"
|
||||
IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE "注意: 无法打开此证书的专用密钥。"
|
||||
IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE "注: 此证书的私钥不可导出。"
|
||||
IDS_INTENDED_USE_COLUMN "Intended Use"
|
||||
IDS_LOCATION_COLUMN "Location"
|
||||
IDS_SELECT_CERT_TITLE "Select Certificate"
|
||||
IDS_SELECT_CERT "Select a certificate"
|
||||
IDS_NO_IMPL "Not yet implemented"
|
||||
}
|
||||
|
||||
IDD_GENERAL DIALOGEX 0, 0, 255, 236
|
||||
@@ -462,4 +467,14 @@ BEGIN
|
||||
115,67,174,100
|
||||
END
|
||||
|
||||
|
||||
IDD_SELECT_CERT DIALOG 0,0,278,157
|
||||
CAPTION "Select Certificate"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select a certificate you want to use", IDC_SELECT_DISPLAY_STRING, 7,7,264,26
|
||||
CONTROL "", IDC_SELECT_CERTS, "SysListView32",
|
||||
LVS_REPORT|LVS_SINGLESEL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 7,40,264,89
|
||||
PUSHBUTTON "OK", IDOK, 91,136,51,14, BS_DEFPUSHBUTTON
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 149,136,51,14
|
||||
PUSHBUTTON "&View Certificate", IDC_SELECT_VIEW_CERT, 207,136,65,14, WS_DISABLED
|
||||
END
|
||||
|
||||
@@ -46,6 +46,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(cryptui);
|
||||
|
||||
static HINSTANCE hInstance;
|
||||
|
||||
static const WCHAR empty[] = {0};
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
|
||||
@@ -62,6 +64,14 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static WCHAR *strdupAtoW( const char *str )
|
||||
{
|
||||
DWORD len = MultiByteToWideChar( CP_ACP, 0, str, -1, NULL, 0 );
|
||||
WCHAR *ret = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
|
||||
if (ret) MultiByteToWideChar( CP_ACP, 0, str, -1, ret, len );
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define MAX_STRING_LEN 512
|
||||
|
||||
static void add_cert_columns(HWND hwnd)
|
||||
@@ -796,8 +806,6 @@ static LRESULT CALLBACK cert_mgr_advanced_dlg_proc(HWND hwnd, UINT msg,
|
||||
|
||||
static void cert_mgr_clear_cert_selection(HWND hwnd)
|
||||
{
|
||||
WCHAR empty[] = { 0 };
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_MGR_EXPORT), FALSE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_MGR_REMOVE), FALSE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_MGR_VIEW), FALSE);
|
||||
@@ -837,10 +845,8 @@ static void show_selected_cert(HWND hwnd, int index)
|
||||
}
|
||||
}
|
||||
|
||||
static void cert_mgr_show_cert_usages(HWND hwnd, int index)
|
||||
static void get_cert_usages(PCCERT_CONTEXT cert, LPWSTR *str)
|
||||
{
|
||||
HWND text = GetDlgItem(hwnd, IDC_MGR_PURPOSES);
|
||||
PCCERT_CONTEXT cert = cert_mgr_index_to_cert(hwnd, index);
|
||||
PCERT_ENHKEY_USAGE usage;
|
||||
DWORD size;
|
||||
|
||||
@@ -879,7 +885,7 @@ static void cert_mgr_show_cert_usages(HWND hwnd, int index)
|
||||
{
|
||||
static const WCHAR commaSpace[] = { ',',' ',0 };
|
||||
DWORD i, len = 1;
|
||||
LPWSTR str, ptr;
|
||||
LPWSTR ptr;
|
||||
|
||||
for (i = 0; i < usage->cUsageIdentifier; i++)
|
||||
{
|
||||
@@ -895,10 +901,10 @@ static void cert_mgr_show_cert_usages(HWND hwnd, int index)
|
||||
if (i < usage->cUsageIdentifier - 1)
|
||||
len += strlenW(commaSpace);
|
||||
}
|
||||
str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
if (str)
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
if (*str)
|
||||
{
|
||||
for (i = 0, ptr = str; i < usage->cUsageIdentifier; i++)
|
||||
for (i = 0, ptr = *str; i < usage->cUsageIdentifier; i++)
|
||||
{
|
||||
PCCRYPT_OID_INFO info =
|
||||
CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,
|
||||
@@ -925,25 +931,37 @@ static void cert_mgr_show_cert_usages(HWND hwnd, int index)
|
||||
}
|
||||
}
|
||||
*ptr = 0;
|
||||
SendMessageW(text, WM_SETTEXT, 0, (LPARAM)str);
|
||||
HeapFree(GetProcessHeap(), 0, str);
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, usage);
|
||||
}
|
||||
else
|
||||
{
|
||||
WCHAR buf[MAX_STRING_LEN];
|
||||
|
||||
LoadStringW(hInstance, IDS_ALLOWED_PURPOSE_NONE, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(text, WM_SETTEXT, 0, (LPARAM)buf);
|
||||
size = MAX_STRING_LEN * sizeof(WCHAR);
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (*str)
|
||||
LoadStringW(hInstance, IDS_ALLOWED_PURPOSE_NONE, *str, size);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WCHAR buf[MAX_STRING_LEN];
|
||||
size = MAX_STRING_LEN * sizeof(WCHAR);
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (*str)
|
||||
LoadStringW(hInstance, IDS_ALLOWED_PURPOSE_ALL, *str, size);
|
||||
}
|
||||
}
|
||||
|
||||
LoadStringW(hInstance, IDS_ALLOWED_PURPOSE_ALL, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(text, WM_SETTEXT, 0, (LPARAM)buf);
|
||||
static void cert_mgr_show_cert_usages(HWND hwnd, int index)
|
||||
{
|
||||
HWND text = GetDlgItem(hwnd, IDC_MGR_PURPOSES);
|
||||
PCCERT_CONTEXT cert = cert_mgr_index_to_cert(hwnd, index);
|
||||
LPWSTR str = NULL;
|
||||
|
||||
get_cert_usages(cert, &str);
|
||||
if (str)
|
||||
{
|
||||
SendMessageW(text, WM_SETTEXT, 0, (LPARAM)str);
|
||||
HeapFree(GetProcessHeap(), 0, str);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1148,7 +1166,6 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
|
||||
break;
|
||||
case LVN_ITEMCHANGED:
|
||||
{
|
||||
WCHAR empty[] = { 0 };
|
||||
NMITEMACTIVATE *nm = (NMITEMACTIVATE*)lp;
|
||||
HWND lv = GetDlgItem(hwnd, IDC_MGR_CERTS);
|
||||
int numSelected = SendMessageW(lv, LVM_GETSELECTEDCOUNT, 0, 0);
|
||||
@@ -3480,7 +3497,7 @@ static void set_general_cert_properties(HWND hwnd, struct edit_cert_data *data)
|
||||
static void set_cert_string_property(PCCERT_CONTEXT cert, DWORD prop,
|
||||
LPWSTR str)
|
||||
{
|
||||
if (str && strlenW(str))
|
||||
if (str && *str)
|
||||
{
|
||||
CRYPT_DATA_BLOB blob;
|
||||
|
||||
@@ -4887,7 +4904,7 @@ static const WCHAR filter_cms[] = { '*','.','s','p','c',';','*','.',
|
||||
'p','7','b',0 };
|
||||
static const WCHAR filter_all[] = { '*','.','*',0 };
|
||||
|
||||
static struct StringToFilter
|
||||
static const struct
|
||||
{
|
||||
int id;
|
||||
DWORD allowFlags;
|
||||
@@ -6983,16 +7000,550 @@ BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void init_columns(HWND lv, DWORD flags)
|
||||
{
|
||||
WCHAR buf[MAX_STRING_LEN];
|
||||
LVCOLUMNW column;
|
||||
DWORD i = 0;
|
||||
|
||||
SendMessageW(lv, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
|
||||
column.mask = LVCF_WIDTH | LVCF_TEXT;
|
||||
column.cx = 90;
|
||||
column.pszText = buf;
|
||||
if (!(flags & CRYPTUI_SELECT_ISSUEDTO_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_SUBJECT_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_ISSUEDBY_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_ISSUER_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_INTENDEDUSE_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_INTENDED_USE_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_FRIENDLYNAME_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_FRIENDLY_NAME_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_EXPIRATION_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_EXPIRATION_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_LOCATION_COLUMN))
|
||||
{
|
||||
LoadStringW(hInstance, IDS_LOCATION_COLUMN, buf, ARRAY_SIZE(buf));
|
||||
SendMessageW(lv, LVM_INSERTCOLUMNW, i++, (LPARAM)&column);
|
||||
}
|
||||
}
|
||||
|
||||
static void add_cert_to_list(HWND lv, PCCERT_CONTEXT cert, DWORD flags, DWORD *allocatedLen,
|
||||
LPWSTR *str)
|
||||
{
|
||||
DWORD len;
|
||||
LVITEMW item;
|
||||
WCHAR dateFmt[80]; /* sufficient for LOCALE_SSHORTDATE */
|
||||
WCHAR buf[80];
|
||||
SYSTEMTIME sysTime;
|
||||
LPWSTR none, usages;
|
||||
|
||||
item.mask = LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT;
|
||||
item.iItem = SendMessageW(lv, LVM_GETITEMCOUNT, 0, 0);
|
||||
item.iSubItem = 0;
|
||||
item.iImage = 0;
|
||||
item.lParam = (LPARAM)CertDuplicateCertificateContext(cert);
|
||||
if (!item.iItem)
|
||||
{
|
||||
item.mask |= LVIF_STATE;
|
||||
item.state = LVIS_SELECTED;
|
||||
item.stateMask = -1;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_ISSUEDTO_COLUMN))
|
||||
{
|
||||
len = CertGetNameStringW(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL, NULL, 0);
|
||||
if (len > *allocatedLen)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, *str);
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
if (*str)
|
||||
*allocatedLen = len;
|
||||
}
|
||||
if (*str)
|
||||
{
|
||||
CertGetNameStringW(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL, *str, len);
|
||||
item.pszText = *str;
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
}
|
||||
item.mask = LVIF_TEXT;
|
||||
++item.iSubItem;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_ISSUEDBY_COLUMN))
|
||||
{
|
||||
len = CertGetNameStringW(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, NULL,
|
||||
NULL, 0);
|
||||
if (len > *allocatedLen)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, *str);
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
if (*str)
|
||||
*allocatedLen = len;
|
||||
}
|
||||
if (*str)
|
||||
{
|
||||
CertGetNameStringW(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, NULL,
|
||||
*str, len);
|
||||
item.pszText = *str;
|
||||
if (!item.iSubItem)
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
else
|
||||
SendMessageW(lv, LVM_SETITEMTEXTW, item.iItem, (LPARAM)&item);
|
||||
}
|
||||
item.mask = LVIF_TEXT;
|
||||
++item.iSubItem;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_INTENDEDUSE_COLUMN))
|
||||
{
|
||||
get_cert_usages(cert, &usages);
|
||||
if (usages)
|
||||
{
|
||||
item.pszText = usages;
|
||||
if (!item.iSubItem)
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
else
|
||||
SendMessageW(lv, LVM_SETITEMTEXTW, item.iItem, (LPARAM)&item);
|
||||
HeapFree(GetProcessHeap(), 0, usages);
|
||||
}
|
||||
item.mask = LVIF_TEXT;
|
||||
++item.iSubItem;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_FRIENDLYNAME_COLUMN))
|
||||
{
|
||||
if (!CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID, NULL, &len))
|
||||
len = LoadStringW(hInstance, IDS_FRIENDLY_NAME_NONE, (LPWSTR)&none, 0);
|
||||
if (len > *allocatedLen)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, *str);
|
||||
*str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
if (*str)
|
||||
*allocatedLen = len;
|
||||
}
|
||||
if (*str)
|
||||
{
|
||||
if (!CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID, *str, &len))
|
||||
item.pszText = none;
|
||||
else
|
||||
item.pszText = *str;
|
||||
if (!item.iSubItem)
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
else
|
||||
SendMessageW(lv, LVM_SETITEMTEXTW, item.iItem, (LPARAM)&item);
|
||||
}
|
||||
item.mask = LVIF_TEXT;
|
||||
++item.iSubItem;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_EXPIRATION_COLUMN))
|
||||
{
|
||||
GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, dateFmt, ARRAY_SIZE(dateFmt));
|
||||
FileTimeToSystemTime(&cert->pCertInfo->NotAfter, &sysTime);
|
||||
GetDateFormatW(LOCALE_SYSTEM_DEFAULT, 0, &sysTime, dateFmt, buf, ARRAY_SIZE(buf));
|
||||
item.pszText = buf;
|
||||
if (!item.iSubItem)
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
else
|
||||
SendMessageW(lv, LVM_SETITEMTEXTW, item.iItem, (LPARAM)&item);
|
||||
item.mask = LVIF_TEXT;
|
||||
++item.iSubItem;
|
||||
}
|
||||
if (!(flags & CRYPTUI_SELECT_LOCATION_COLUMN))
|
||||
{
|
||||
static int show_fixme;
|
||||
if (!show_fixme++)
|
||||
FIXME("showing location is not implemented\n");
|
||||
LoadStringW(hInstance, IDS_NO_IMPL, buf, ARRAY_SIZE(buf));
|
||||
if (!item.iSubItem)
|
||||
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
|
||||
else
|
||||
SendMessageW(lv, LVM_SETITEMTEXTW, item.iItem, (LPARAM)&item);
|
||||
}
|
||||
}
|
||||
|
||||
static void add_store_certs(HWND lv, HCERTSTORE store, DWORD flags, PFNCFILTERPROC filter,
|
||||
void *callback_data)
|
||||
{
|
||||
PCCERT_CONTEXT cert = NULL;
|
||||
BOOL select = FALSE;
|
||||
DWORD allocatedLen = 0;
|
||||
LPWSTR str = NULL;
|
||||
|
||||
do {
|
||||
cert = CertEnumCertificatesInStore(store, cert);
|
||||
if (cert && (!filter || filter(cert, &select, callback_data)))
|
||||
add_cert_to_list(lv, cert, flags, &allocatedLen, &str);
|
||||
} while (cert);
|
||||
HeapFree(GetProcessHeap(), 0, str);
|
||||
}
|
||||
|
||||
static PCCERT_CONTEXT select_cert_get_selected(HWND hwnd, int selection)
|
||||
{
|
||||
HWND lv = GetDlgItem(hwnd, IDC_SELECT_CERTS);
|
||||
PCCERT_CONTEXT cert = NULL;
|
||||
LVITEMW item;
|
||||
|
||||
if (selection < 0)
|
||||
selection = SendMessageW(lv, LVM_GETNEXTITEM, -1, LVNI_SELECTED);
|
||||
if (selection < 0)
|
||||
return NULL;
|
||||
item.mask = LVIF_PARAM;
|
||||
item.iItem = selection;
|
||||
item.iSubItem = 0;
|
||||
if (SendMessageW(lv, LVM_GETITEMW, 0, (LPARAM)&item))
|
||||
cert = (PCCERT_CONTEXT)item.lParam;
|
||||
return cert;
|
||||
}
|
||||
|
||||
static void select_cert_update_view_button(HWND hwnd)
|
||||
{
|
||||
HWND lv = GetDlgItem(hwnd, IDC_SELECT_CERTS);
|
||||
int numSelected = SendMessageW(lv, LVM_GETSELECTEDCOUNT, 0, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SELECT_VIEW_CERT), numSelected == 1);
|
||||
}
|
||||
|
||||
struct SelectCertData
|
||||
{
|
||||
PCCERT_CONTEXT *cert;
|
||||
DWORD dateColumn;
|
||||
HIMAGELIST imageList;
|
||||
LPCWSTR title;
|
||||
DWORD cStores;
|
||||
HCERTSTORE *rghStores;
|
||||
DWORD cPropSheetPages;
|
||||
LPCPROPSHEETPAGEW rgPropSheetPages;
|
||||
PFNCCERTDISPLAYPROC displayProc;
|
||||
void *callbackData;
|
||||
};
|
||||
|
||||
static void select_cert_view(HWND hwnd, PCCERT_CONTEXT cert, struct SelectCertData *data)
|
||||
{
|
||||
CRYPTUI_VIEWCERTIFICATE_STRUCTW viewInfo;
|
||||
|
||||
if (data->displayProc && data->displayProc(cert, hwnd, data->callbackData))
|
||||
return;
|
||||
memset(&viewInfo, 0, sizeof(viewInfo));
|
||||
viewInfo.dwSize = sizeof(viewInfo);
|
||||
viewInfo.hwndParent = hwnd;
|
||||
viewInfo.pCertContext = cert;
|
||||
viewInfo.cStores = data->cStores;
|
||||
viewInfo.rghStores = data->rghStores;
|
||||
viewInfo.cPropSheetPages = data->cPropSheetPages;
|
||||
viewInfo.rgPropSheetPages = data->rgPropSheetPages;
|
||||
/* FIXME: this should be modal */
|
||||
CryptUIDlgViewCertificateW(&viewInfo, NULL);
|
||||
}
|
||||
|
||||
struct SortData
|
||||
{
|
||||
HWND hwnd;
|
||||
int column;
|
||||
};
|
||||
|
||||
static int CALLBACK select_cert_sort_by_text(LPARAM lp1, LPARAM lp2, LPARAM lp)
|
||||
{
|
||||
struct SortData *data = (struct SortData *)lp;
|
||||
return cert_mgr_sort_by_text(data->hwnd, data->column, lp1, lp2);
|
||||
}
|
||||
|
||||
struct SelectCertParam
|
||||
{
|
||||
PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc;
|
||||
PCCERT_CONTEXT cert;
|
||||
};
|
||||
|
||||
static LRESULT CALLBACK select_cert_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
||||
{
|
||||
struct SelectCertData *data;
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
struct SelectCertParam *param = (struct SelectCertParam *)lp;
|
||||
PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc = param->pcsc;
|
||||
HWND lv = GetDlgItem(hwnd, IDC_SELECT_CERTS);
|
||||
DWORD i = 0;
|
||||
|
||||
data = HeapAlloc(GetProcessHeap(), 0, sizeof(*data));
|
||||
if (!data)
|
||||
return 0;
|
||||
data->cert = ¶m->cert;
|
||||
data->dateColumn = 4 -
|
||||
((pcsc->dwDontUseColumn & CRYPTUI_SELECT_ISSUEDTO_COLUMN) ? 1 : 0) -
|
||||
((pcsc->dwDontUseColumn & CRYPTUI_SELECT_ISSUEDBY_COLUMN) ? 1 : 0) -
|
||||
((pcsc->dwDontUseColumn & CRYPTUI_SELECT_INTENDEDUSE_COLUMN) ? 1 : 0) -
|
||||
((pcsc->dwDontUseColumn & CRYPTUI_SELECT_FRIENDLYNAME_COLUMN) ? 1 : 0);
|
||||
data->imageList = ImageList_Create(16, 16, ILC_COLOR4 | ILC_MASK, 2, 0);
|
||||
if (data->imageList)
|
||||
{
|
||||
HBITMAP bmp;
|
||||
COLORREF backColor = RGB(255, 0, 255);
|
||||
|
||||
bmp = LoadBitmapW(hInstance, MAKEINTRESOURCEW(IDB_SMALL_ICONS));
|
||||
ImageList_AddMasked(data->imageList, bmp, backColor);
|
||||
DeleteObject(bmp);
|
||||
ImageList_SetBkColor(data->imageList, CLR_NONE);
|
||||
SendMessageW(GetDlgItem(hwnd, IDC_SELECT_CERTS), LVM_SETIMAGELIST, LVSIL_SMALL,
|
||||
(LPARAM)data->imageList);
|
||||
}
|
||||
data->title = pcsc->szTitle;
|
||||
data->cStores = pcsc->cStores;
|
||||
data->rghStores = pcsc->rghStores;
|
||||
data->cPropSheetPages = pcsc->cPropSheetPages;
|
||||
data->rgPropSheetPages = pcsc->rgPropSheetPages;
|
||||
data->displayProc = pcsc->pDisplayCallback;
|
||||
data->callbackData = pcsc->pvCallbackData;
|
||||
SetWindowLongPtrW(hwnd, DWLP_USER, (LPARAM)data);
|
||||
|
||||
if (pcsc->szTitle)
|
||||
SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)pcsc->szTitle);
|
||||
if (pcsc->szDisplayString)
|
||||
SendMessageW(GetDlgItem(hwnd, IDC_SELECT_DISPLAY_STRING), WM_SETTEXT, 0,
|
||||
(LPARAM)pcsc->szDisplayString);
|
||||
init_columns(lv, pcsc->dwDontUseColumn);
|
||||
while (i < pcsc->cDisplayStores)
|
||||
add_store_certs(lv, pcsc->rghDisplayStores[i++], pcsc->dwDontUseColumn,
|
||||
pcsc->pFilterCallback, pcsc->pvCallbackData);
|
||||
select_cert_update_view_button(hwnd);
|
||||
break;
|
||||
}
|
||||
case WM_NOTIFY:
|
||||
{
|
||||
NMHDR *hdr = (NMHDR *)lp;
|
||||
|
||||
switch (hdr->code)
|
||||
{
|
||||
case NM_DBLCLK:
|
||||
{
|
||||
PCCERT_CONTEXT cert = select_cert_get_selected(hwnd, ((NMITEMACTIVATE *)lp)->iItem);
|
||||
|
||||
data = (struct SelectCertData *)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
if (cert)
|
||||
select_cert_view(hwnd, cert, data);
|
||||
break;
|
||||
}
|
||||
case LVN_COLUMNCLICK:
|
||||
{
|
||||
NMLISTVIEW *nmlv = (NMLISTVIEW *)lp;
|
||||
HWND lv = GetDlgItem(hwnd, IDC_SELECT_CERTS);
|
||||
|
||||
/* FIXME: doesn't support swapping sort order between ascending and descending. */
|
||||
data = (struct SelectCertData *)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
if (nmlv->iSubItem == data->dateColumn)
|
||||
SendMessageW(lv, LVM_SORTITEMS, 0, (LPARAM)cert_mgr_sort_by_date);
|
||||
else
|
||||
{
|
||||
struct SortData sortData;
|
||||
|
||||
sortData.hwnd = lv;
|
||||
sortData.column = nmlv->iSubItem;
|
||||
SendMessageW(lv, LVM_SORTITEMSEX, (WPARAM)&sortData,
|
||||
(LPARAM)select_cert_sort_by_text);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_COMMAND:
|
||||
switch (wp)
|
||||
{
|
||||
case IDOK:
|
||||
{
|
||||
PCCERT_CONTEXT cert = select_cert_get_selected(hwnd, -1);
|
||||
|
||||
data = (struct SelectCertData *)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
if (!cert)
|
||||
{
|
||||
WCHAR buf[40], title[40];
|
||||
|
||||
LoadStringW(hInstance, IDS_SELECT_CERT, buf, ARRAY_SIZE(buf));
|
||||
if (!data->title)
|
||||
LoadStringW(hInstance, IDS_SELECT_CERT_TITLE, title, ARRAY_SIZE(title));
|
||||
MessageBoxW(hwnd, buf, data->title ? data->title : title, MB_OK | MB_ICONWARNING);
|
||||
break;
|
||||
}
|
||||
*data->cert = CertDuplicateCertificateContext(cert);
|
||||
free_certs(GetDlgItem(hwnd, IDC_SELECT_CERTS));
|
||||
ImageList_Destroy(data->imageList);
|
||||
HeapFree(GetProcessHeap(), 0, data);
|
||||
EndDialog(hwnd, IDOK);
|
||||
break;
|
||||
}
|
||||
case IDCANCEL:
|
||||
data = (struct SelectCertData *)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
free_certs(GetDlgItem(hwnd, IDC_SELECT_CERTS));
|
||||
ImageList_Destroy(data->imageList);
|
||||
HeapFree(GetProcessHeap(), 0, data);
|
||||
EndDialog(hwnd, IDCANCEL);
|
||||
break;
|
||||
case IDC_SELECT_VIEW_CERT:
|
||||
{
|
||||
PCCERT_CONTEXT cert = select_cert_get_selected(hwnd, -1);
|
||||
|
||||
data = (struct SelectCertData *)GetWindowLongPtrW(hwnd, DWLP_USER);
|
||||
if (cert)
|
||||
select_cert_view(hwnd, cert, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW(PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc)
|
||||
{
|
||||
FIXME("%p: stub\n", pcsc);
|
||||
struct SelectCertParam param;
|
||||
|
||||
TRACE("%p\n", pcsc);
|
||||
|
||||
if (pcsc->dwSize != sizeof(*pcsc) && pcsc->dwSize != sizeof(*pcsc) - sizeof(HCERTSTORE))
|
||||
{
|
||||
WARN("unexpected size %d\n", pcsc->dwSize);
|
||||
SetLastError(E_INVALIDARG);
|
||||
return NULL;
|
||||
}
|
||||
if (pcsc->dwFlags & CRYPTUI_SELECTCERT_MULTISELECT)
|
||||
FIXME("ignoring CRYPTUI_SELECTCERT_MULTISELECT\n");
|
||||
param.pcsc = pcsc;
|
||||
param.cert = NULL;
|
||||
DialogBoxParamW(hInstance, MAKEINTRESOURCEW(IDD_SELECT_CERT), pcsc->hwndParent,
|
||||
select_cert_dlg_proc, (LPARAM)¶m);
|
||||
return param.cert;
|
||||
}
|
||||
|
||||
static void free_prop_sheet_pages(PROPSHEETPAGEW *pages, DWORD num)
|
||||
{
|
||||
DWORD i;
|
||||
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
if (!(pages[i].dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(pages[i].u.pszTemplate))
|
||||
HeapFree(GetProcessHeap(), 0, (void *)pages[i].u.pszTemplate);
|
||||
if ((pages[i].dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(pages[i].u2.pszIcon))
|
||||
HeapFree(GetProcessHeap(), 0, (void *)pages[i].u2.pszIcon);
|
||||
if ((pages[i].dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(pages[i].pszTitle))
|
||||
HeapFree(GetProcessHeap(), 0, (void *)pages[i].pszTitle);
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(pages[i].pszHeaderTitle))
|
||||
HeapFree(GetProcessHeap(), 0, (void *)pages[i].pszHeaderTitle);
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERSUBTITLE) &&
|
||||
!IS_INTRESOURCE(pages[i].pszHeaderSubTitle))
|
||||
HeapFree(GetProcessHeap(), 0, (void *)pages[i].pszHeaderSubTitle);
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, pages);
|
||||
}
|
||||
|
||||
static PROPSHEETPAGEW *prop_sheet_pages_AtoW(LPCPROPSHEETPAGEA pages, DWORD num)
|
||||
{
|
||||
PROPSHEETPAGEW *psp;
|
||||
DWORD i, size = sizeof(*psp) * num;
|
||||
|
||||
psp = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (!psp)
|
||||
return NULL;
|
||||
memcpy(psp, pages, size);
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
if (!(pages[i].dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(pages[i].u.pszTemplate))
|
||||
psp[i].u.pszTemplate = NULL;
|
||||
if ((pages[i].dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(pages[i].u2.pszIcon))
|
||||
psp[i].u2.pszIcon = NULL;
|
||||
if ((pages[i].dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(pages[i].pszTitle))
|
||||
psp[i].pszTitle = NULL;
|
||||
if (pages[i].dwFlags & PSP_USECALLBACK)
|
||||
psp[i].pfnCallback = NULL;
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(pages[i].pszHeaderTitle))
|
||||
psp[i].pszHeaderTitle = NULL;
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERSUBTITLE) &&
|
||||
!IS_INTRESOURCE(pages[i].pszHeaderSubTitle))
|
||||
psp[i].pszHeaderSubTitle = NULL;
|
||||
}
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
if (!(pages[i].dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(pages[i].u.pszTemplate))
|
||||
{
|
||||
if (!(psp[i].u.pszTemplate = strdupAtoW( pages[i].u.pszTemplate ))) goto error;
|
||||
}
|
||||
if ((pages[i].dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(pages[i].u2.pszIcon))
|
||||
{
|
||||
if (!(psp[i].u2.pszIcon = strdupAtoW( pages[i].u2.pszIcon ))) goto error;
|
||||
}
|
||||
if ((pages[i].dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(pages[i].pszTitle))
|
||||
{
|
||||
if (!(psp[i].pszTitle = strdupAtoW( pages[i].pszTitle ))) goto error;
|
||||
}
|
||||
if (pages[i].dwFlags & PSP_USECALLBACK)
|
||||
FIXME("ignoring pfnCallback\n");
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(pages[i].pszHeaderTitle))
|
||||
{
|
||||
if (!(psp[i].pszHeaderTitle = strdupAtoW( pages[i].pszHeaderTitle ))) goto error;
|
||||
}
|
||||
if ((pages[i].dwFlags & PSP_USEHEADERSUBTITLE) &&
|
||||
!IS_INTRESOURCE(pages[i].pszHeaderSubTitle))
|
||||
{
|
||||
if (!(psp[i].pszHeaderSubTitle = strdupAtoW( pages[i].pszHeaderSubTitle ))) goto error;
|
||||
}
|
||||
}
|
||||
return psp;
|
||||
error:
|
||||
free_prop_sheet_pages(psp, num);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc)
|
||||
{
|
||||
FIXME("%p: stub\n", pcsc);
|
||||
return NULL;
|
||||
PCCERT_CONTEXT cert = NULL;
|
||||
CRYPTUI_SELECTCERTIFICATE_STRUCTW selCertInfo;
|
||||
LPWSTR title = NULL, display_str = NULL;
|
||||
PROPSHEETPAGEW *pages = NULL;
|
||||
|
||||
TRACE("%p\n", pcsc);
|
||||
|
||||
if (pcsc->dwSize != sizeof(*pcsc) && pcsc->dwSize != sizeof(*pcsc) - sizeof(HCERTSTORE))
|
||||
{
|
||||
WARN("unexpected size %d\n", pcsc->dwSize);
|
||||
SetLastError(E_INVALIDARG);
|
||||
return NULL;
|
||||
}
|
||||
memcpy(&selCertInfo, pcsc, pcsc->dwSize);
|
||||
if (pcsc->szTitle)
|
||||
{
|
||||
if (!(title = strdupAtoW( pcsc->szTitle ))) goto error;
|
||||
selCertInfo.szTitle = title;
|
||||
}
|
||||
if (pcsc->szDisplayString)
|
||||
{
|
||||
if (!(display_str = strdupAtoW( pcsc->szDisplayString ))) goto error;
|
||||
selCertInfo.szDisplayString = display_str;
|
||||
}
|
||||
if (pcsc->cPropSheetPages)
|
||||
{
|
||||
pages = prop_sheet_pages_AtoW(pcsc->rgPropSheetPages, pcsc->cPropSheetPages);
|
||||
if (!pages)
|
||||
goto error;
|
||||
selCertInfo.rgPropSheetPages = pages;
|
||||
}
|
||||
cert = CryptUIDlgSelectCertificateW(&selCertInfo);
|
||||
error:
|
||||
HeapFree(GetProcessHeap(), 0, title);
|
||||
HeapFree(GetProcessHeap(), 0, display_str);
|
||||
if (pcsc->cPropSheetPages)
|
||||
free_prop_sheet_pages(pages, pcsc->cPropSheetPages);
|
||||
return cert;
|
||||
}
|
||||
|
||||
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle,
|
||||
|
||||
@@ -62,7 +62,7 @@ reactos/dll/win32/crypt32 # Synced to WineStaging-4.0
|
||||
reactos/dll/win32/cryptdlg # Synced to WineStaging-3.3
|
||||
reactos/dll/win32/cryptdll # Synced to WineStaging-3.3
|
||||
reactos/dll/win32/cryptnet # Synced to WineStaging-3.3
|
||||
reactos/dll/win32/cryptui # Synced to WineStaging-3.17
|
||||
reactos/dll/win32/cryptui # Synced to WineStaging-4.0
|
||||
reactos/dll/win32/dbghelp # Synced to WineStaging-3.9
|
||||
reactos/dll/win32/dciman32 # Synced to WineStaging-3.3
|
||||
reactos/dll/win32/faultrep # Synced to WineStaging-2.9
|
||||
|
||||
Reference in New Issue
Block a user