Juan Lang : cryptui: Make a copy of export info in CryptUIWizExport.
Alexandre Julliard
julliard at winehq.org
Mon Feb 9 10:29:13 CST 2009
Module: wine
Branch: master
Commit: bd3c99279566ac0efa691e0bc65bf86e36b7cef8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd3c99279566ac0efa691e0bc65bf86e36b7cef8
Author: Juan Lang <juan.lang at gmail.com>
Date: Sun Feb 1 10:34:05 2009 -0800
cryptui: Make a copy of export info in CryptUIWizExport.
---
dlls/cryptui/main.c | 24 ++++++++++++++----------
1 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 70710bd..36ba3f7 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -5515,7 +5515,7 @@ struct ExportWizData
HFONT titleFont;
DWORD dwFlags;
LPCWSTR pwszWizardTitle;
- PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo;
+ CRYPTUI_WIZ_EXPORT_INFO exportInfo;
CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO contextInfo;
LPWSTR fileName;
HANDLE file;
@@ -5636,7 +5636,7 @@ static LRESULT CALLBACK export_format_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
data = (struct ExportWizData *)page->lParam;
SetWindowLongPtrW(hwnd, DWLP_USER, (LPARAM)data);
- hasPrivateKey = export_info_has_private_key(data->pExportInfo);
+ hasPrivateKey = export_info_has_private_key(&data->exportInfo);
if (hasPrivateKey)
EnableWindow(GetDlgItem(hwnd, IDC_EXPORT_FORMAT_PFX), TRUE);
switch (data->contextInfo.dwExportFormat)
@@ -5762,7 +5762,7 @@ static LPWSTR export_append_extension(struct ExportWizData *data,
extension = pfx;
break;
default:
- switch (data->pExportInfo->dwSubjectChoice)
+ switch (data->exportInfo.dwSubjectChoice)
{
case CRYPTUI_WIZ_EXPORT_CRL_CONTEXT:
extension = crl;
@@ -5961,9 +5961,9 @@ static LRESULT CALLBACK export_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
data = (struct ExportWizData *)page->lParam;
SetWindowLongPtrW(hwnd, DWLP_USER, (LPARAM)data);
- if (data->pExportInfo->pwszExportFileName)
+ if (data->exportInfo.pwszExportFileName)
SendMessageW(GetDlgItem(hwnd, IDC_EXPORT_FILENAME), WM_SETTEXT, 0,
- (LPARAM)data->pExportInfo->pwszExportFileName);
+ (LPARAM)data->exportInfo.pwszExportFileName);
break;
}
case WM_NOTIFY:
@@ -6041,7 +6041,7 @@ static LRESULT CALLBACK export_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = make_export_file_filter(
data->contextInfo.dwExportFormat,
- data->pExportInfo->dwSubjectChoice);
+ data->exportInfo.dwSubjectChoice);
ofn.lpstrFile = fileBuf;
ofn.nMaxFile = sizeof(fileBuf) / sizeof(fileBuf[0]);
fileBuf[0] = 0;
@@ -6078,7 +6078,7 @@ static void show_export_details(HWND lv, struct ExportWizData *data)
}
item.pszText = text;
- switch (data->pExportInfo->dwSubjectChoice)
+ switch (data->exportInfo.dwSubjectChoice)
{
case CRYPTUI_WIZ_EXPORT_CRL_CONTEXT:
case CRYPTUI_WIZ_EXPORT_CTL_CONTEXT:
@@ -6119,7 +6119,7 @@ static void show_export_details(HWND lv, struct ExportWizData *data)
SendMessageW(lv, LVM_INSERTITEMW, 0, (LPARAM)&item);
item.iSubItem = 1;
- switch (data->pExportInfo->dwSubjectChoice)
+ switch (data->exportInfo.dwSubjectChoice)
{
case CRYPTUI_WIZ_EXPORT_CRL_CONTEXT:
contentID = IDS_EXPORT_FILTER_CRL;
@@ -6371,7 +6371,7 @@ static LRESULT CALLBACK export_finish_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
DWORD mbFlags;
data = (struct ExportWizData *)GetWindowLongPtrW(hwnd, DWLP_USER);
- if ((data->success = do_export(data->file, data->pExportInfo,
+ if ((data->success = do_export(data->file, &data->exportInfo,
&data->contextInfo)))
{
messageID = IDS_EXPORT_SUCCEEDED;
@@ -6413,7 +6413,11 @@ static BOOL show_export_ui(DWORD dwFlags, HWND hwndParent,
data.dwFlags = dwFlags;
data.pwszWizardTitle = pwszWizardTitle;
- data.pExportInfo = pExportInfo;
+ memset(&data.exportInfo, 0, sizeof(data.exportInfo));
+ memcpy(&data.exportInfo, pExportInfo,
+ min(sizeof(data.exportInfo), pExportInfo->dwSize));
+ if (pExportInfo->dwSize > sizeof(data.exportInfo))
+ data.exportInfo.dwSize = sizeof(data.exportInfo);
data.contextInfo.dwSize = sizeof(data.contextInfo);
data.contextInfo.dwExportFormat = CRYPTUI_WIZ_EXPORT_FORMAT_DER;
data.contextInfo.fExportChain = FALSE;
More information about the wine-cvs
mailing list