cryptui: Correct return value of the user cancels the export wizard.
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index ee01c6e..677bee4 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -6650,6 +6650,7 @@
struct ExportWizData data;
int nPages = 0;
BOOL hasPrivateKey, showFormatPage = TRUE;
+ INT_PTR l;
data.dwFlags = dwFlags;
data.pwszWizardTitle = pwszWizardTitle;
@@ -6779,14 +6780,20 @@
hdr.nPages = nPages;
hdr.u4.pszbmWatermark = MAKEINTRESOURCEW(IDB_CERT_WATERMARK);
hdr.u5.pszbmHeader = MAKEINTRESOURCEW(IDB_CERT_HEADER);
- PropertySheetW(&hdr);
+ l = PropertySheetW(&hdr);
DeleteObject(data.titleFont);
if (data.freePassword)
HeapFree(GetProcessHeap(), 0,
(LPWSTR)data.contextInfo.pwszPassword);
CloseHandle(data.file);
HeapFree(GetProcessHeap(), 0, data.fileName);
- return data.success;
+ if (l == 0)
+ {
+ SetLastError(ERROR_CANCELLED);
+ return FALSE;
+ }
+ else
+ return data.success;
}
BOOL WINAPI CryptUIWizExport(DWORD dwFlags, HWND hwndParent,