{
DWORD dwFlags;
LPCWSTR pwszWizardTitle;
- PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc;
+ CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc;
+ BOOL freeSource;
HCERTSTORE hDestCertStore;
};
warningID = IDS_IMPORT_TYPE_MISMATCH;
else
{
- FIXME("save %s for import\n", debugstr_w(fileName));
- CertCloseStore(source, 0);
+ data->importSrc.dwSubjectChoice =
+ CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE;
+ data->importSrc.u.hCertStore = source;
+ data->freeSource = TRUE;
ret = TRUE;
}
if (warningID)
{
PROPSHEETHEADERW hdr;
PROPSHEETPAGEW pages[4];
- struct ImportWizData data = { dwFlags, pwszWizardTitle, pImportSrc,
- hDestCertStore };
+ struct ImportWizData data;
FIXME("\n");
+ data.dwFlags = dwFlags;
+ data.pwszWizardTitle = pwszWizardTitle;
+ if (pImportSrc)
+ memcpy(&data.importSrc, pImportSrc, sizeof(data.importSrc));
+ else
+ memset(&data.importSrc, 0, sizeof(data.importSrc));
+ data.freeSource = FALSE;
+ data.hDestCertStore = hDestCertStore;
memset(&pages, 0, sizeof(pages));
pages[0].dwSize = sizeof(pages[0]);
hdr.u3.ppsp = pages;
hdr.nPages = 4;
PropertySheetW(&hdr);
+ if (data.freeSource &&
+ data.importSrc.dwSubjectChoice == CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE)
+ CertCloseStore(data.importSrc.u.hCertStore, 0);
return FALSE;
}