23#define NONAMELESSUNION
55 case DLL_WINE_PREATTACH:
73#define MAX_STRING_LEN 512
116 if (
len > *allocatedLen)
134 if (
len > *allocatedLen)
160 if (
len > *allocatedLen)
181 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
182 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
183 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
184 'r',
'p',
'o',
's',
'e',0 };
239 ptr = comma ? comma + 1 :
NULL,
262 if (!
usage->cUsageIdentifier)
267 usage->rgpszUsageIdentifier,
268 (
usage->cUsageIdentifier + 1) *
sizeof(
LPSTR));
269 if (
usage->rgpszUsageIdentifier)
270 usage->rgpszUsageIdentifier[
usage->cUsageIdentifier++] = oid;
289 ptr = comma ? comma + 1 :
NULL,
311 LPSTR disabledUsagesStr;
327 for (
i = 0; !disabled &&
334 (
LPSTR)(*ptr)->pszOID);
348 return advancedUsage;
358 DWORD allocatedLen = 0;
415 for (
i = 0; !show &&
i < numOIDs;
i++)
421 for (
i = 0; !show &&
i < numOIDs;
i++)
454 'A',
'd',
'd',
'r',
'e',
's',
's',
'B',
'o',
'o',
'k',0 };
458 'T',
'r',
'u',
's',
't',
'e',
'd',
'P',
'u',
'b',
'l',
'i',
's',
'h',
'e',
'r',0 };
459static const WCHAR disallowed[] = {
'D',
'i',
's',
'a',
'l',
'l',
'o',
'w',
'e',
'd',0 };
512 data->nStores = cStores;
513 data->stores = storeList;
514 for (
i = 0;
i < cStores;
i++)
566 for (
i = 0;
i < tabs;
i++)
664 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
665 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
666 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
667 'r',
'p',
'o',
's',
'e',0 };
677 for (
i = 0;
i < purposes;
i++)
733 LPSTR disabledUsages;
758 ptr = comma ? comma + 1 :
NULL,
841 memset(&viewInfo, 0,
sizeof(viewInfo));
842 viewInfo.
dwSize =
sizeof(viewInfo);
886 if (
usage->cUsageIdentifier)
892 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
896 usage->rgpszUsageIdentifier[
i],
903 if (i < usage->cUsageIdentifier - 1)
913 usage->rgpszUsageIdentifier[
i],
929 if (i < usage->cUsageIdentifier - 1)
985 warningID =
data->stores[tabIndex].removePluralWarning;
987 warningID =
data->stores[tabIndex].removeWarning;
989 pTitle =
data->title;
1021 if (selectionCount == 1)
1043 else if (selectionCount > 1)
1055 info.dwSubjectChoice =
1057 info.u.hCertStore = store;
1085 item.pszText = buf1;
1086 item.iItem = index1;
1087 item.iSubItem = col;
1089 item.pszText = buf2;
1090 item.iItem = index2;
1110 &
cert2->pCertInfo->NotAfter);
1136 if (
data->imageList)
1186 if (numSelected == 1)
1313 TRACE(
"(%p)\n", pCryptUICertMgr);
1317 WARN(
"unexpected size %d\n", pCryptUICertMgr->
dwSize);
1345#define CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE 0x00000001
1405 if (storeInfo->u.
name)
1624 WARN(
"unexpected size %d\n",
info->dwSize);
1630 return selectInfo.
store;
1646 WARN(
"unexpected size %d\n",
info->dwSize);
1680 TRACE(
"(%p, %p)\n", pCertViewInfo, pfPropertiesChanged);
1682 memcpy(&viewInfo, pCertViewInfo,
sizeof(viewInfo));
1703 FIXME(
"ignoring additional prop sheet pages\n");
1725 TRACE(
"(%p, %p, %d, %p)\n",
string,
buf,
cb, pcb);
1743 editstream.dwCookie = (
DWORD_PTR)&
string;
1744 editstream.dwError = 0;
1813 LPOLECACHE oleCache =
NULL;
1814 FORMATETC formatEtc;
1831 hr = IOleObject_GetUserClassID(
object, &
clsid);
1834 hr = IOleObject_QueryInterface(
object, &
IID_IOleCache, (
void**)&oleCache);
1838 formatEtc.ptd =
NULL;
1839 formatEtc.dwAspect = DVASPECT_CONTENT;
1840 formatEtc.lindex = -1;
1841 formatEtc.tymed = TYMED_GDI;
1842 hr = IOleCache_Cache(oleCache, &formatEtc, 0, &conn);
1846 (
void**)&dataObject);
1849 hr = IRichEditOle_GetClientSite(richEditOle, &clientSite);
1856 stgm.tymed = TYMED_GDI;
1858 stgm.pUnkForRelease =
NULL;
1859 hr = IDataObject_SetData(dataObject, &formatEtc, &stgm,
TRUE);
1863 reObject.
cbStruct =
sizeof(reObject);
1864 reObject.
cp = REO_CP_SELECTION;
1870 reObject.
dvaspect = DVASPECT_CONTENT;
1874 IRichEditOle_InsertObject(richEditOle, &reObject);
1878 IOleClientSite_Release(clientSite);
1880 IDataObject_Release(dataObject);
1882 IOleCache_Release(oleCache);
1884 IOleObject_Release(
object);
1886 IRichEditOle_Release(richEditOle);
1889#define MY_INDENT 200
1897 parFmt.
cbSize =
sizeof(parFmt);
1978 while (indexLow <= indexHigh)
1980 int cmp,
i = (indexLow + indexHigh) / 2;
1997 parFmt.
cbSize =
sizeof(parFmt);
2023 linebreak -
ptr, &parFmt);
2024 ptr = linebreak + 1;
2027 else if (multiline && *
ptr)
2034 }
while (linebreak);
2063 BOOL *anyUsageAdded)
2069 if (!*anyUsageAdded)
2073 parFmt.
cbSize =
sizeof(parFmt);
2079 *anyUsageAdded =
TRUE;
2081 memset(&charFmt, 0,
sizeof(charFmt));
2082 charFmt.
cbSize =
sizeof(charFmt);
2087 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension)))
2105 pszPolicyQualifierId);
2115 BOOL *anyUsageAdded)
2133 if (!*anyUsageAdded)
2137 parFmt.
cbSize =
sizeof(parFmt);
2143 *anyUsageAdded =
TRUE;
2145 memset(&charFmt, 0,
sizeof(charFmt));
2146 charFmt.
cbSize =
sizeof(charFmt);
2151 if (!
usage->cUsageIdentifier)
2154 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
2156 usage->rgpszUsageIdentifier[
i]);
2183 includeCertUsages =
TRUE;
2186 includeAppUsages =
TRUE;
2192 includeAppUsages = includeCertUsages =
TRUE;
2193 if (includeAppUsages)
2195 if (includeCertUsages)
2202 parFmt.
cbSize =
sizeof(parFmt);
2222 pszPolicyQualifierId, policyOid))
2237 &qualifierValue, &
size))
2244 &qualifierValue->
Value, qualifierStr,
size);
2247 return qualifierStr;
2259 &qualifierValue, &
size))
2302 if (cps || userNotice)
2307 if (issuerStatement)
2309 issuerStatement->
cps =
cps;
2339 else if (!
root->fTrustedRoot)
2344 memset(&charFmt, 0,
sizeof(charFmt));
2345 charFmt.
cbSize =
sizeof(charFmt);
2350 parFmt.
cbSize =
sizeof(parFmt);
2366 else if (!
root->fTrustedRoot)
2383 DWORD nameFlags,
int heading)
2390 memset(&charFmt, 0,
sizeof(charFmt));
2391 charFmt.
cbSize =
sizeof(charFmt);
2395 parFmt.
cbSize =
sizeof(parFmt);
2428 memset(&charFmt, 0,
sizeof(charFmt));
2429 charFmt.
cbSize =
sizeof(charFmt);
2433 parFmt.
cbSize =
sizeof(parFmt);
2475 if (issuerStatement->
cps)
2495 HLNF_OPENINNEWWINDOW, 0);
2496 IBindCtx_Release(bctx);
2516 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
2539 if (issuerStatement)
2543 else if (issuerStatement->
cps)
2550 IBindCtx_Release(bctx);
2571 if (issuerStatement)
2599 static const WCHAR fmt[] = {
'V',
'%',
'd',0 };
2613 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2626 cert->pCertInfo->SerialNumber.cbData);
2703 cert->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId, 0);
2722 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData * 8;
2729 &
cert->pCertInfo->SubjectPublicKeyInfo);
2741 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.pbData,
2742 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData);
2854 if (
cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData)
2877 if (
ext->Value.cbData)
2905 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2915 if (
j ==
ext->Value.cbData &&
j % 8)
2917 static const WCHAR pad[] = {
' ',
' ',
' ' };
2973 for (
i = 0;
i <=
len;
i++)
2974 oidW[
i] =
ext->pszObjId[
i];
2988 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
2997 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
2998 if (
cert->pCertInfo->rgExtension[
i].fCritical)
3000 &
cert->pCertInfo->rgExtension[
i]);
3019 ext.Value.pbData = pb;
3020 ext.Value.cbData =
cb;
3166 info->pszOID = oidCopy;
3173 item.pszText = oidCopy;
3185 if (oid[0] !=
'0' && oid[0] !=
'1' && oid[0] !=
'2')
3187 else if (oid[1] !=
'.')
3202 else if (*(
ptr + 1) ==
'.')
3209 else if (!(*(
ptr + 1)))
3225#define MAX_PURPOSE 255
3441 else if (
usage->cUsageIdentifier)
3456 else if (
usage->cUsageIdentifier)
3470 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
3524#define WM_REFRESH_VIEW WM_USER + 0
3533#define MAX_FRIENDLY_NAME 40
3534#define MAX_DESCRIPTION 255
3567 for (
i = 0;
i < purposes;
i++)
3579 usage.rgpszUsageIdentifier =
3581 usage.rgpszUsageIdentifier,
3582 (
usage.cUsageIdentifier + 1) *
sizeof(
LPSTR));
3584 usage.rgpszUsageIdentifier =
3586 if (
usage.rgpszUsageIdentifier)
3587 usage.rgpszUsageIdentifier[
usage.cUsageIdentifier++] =
3596 if (
data->pfPropertiesChanged)
3605 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
3713 for (
i = 0;
i < cItem;
i++)
3762 hdr.dwSize =
sizeof(
hdr);
3776 for (
i = 0;
i <
data->cFields;
i++)
3802 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
3832 data->pCertViewInfo->pCertContext,
3872 info.u.pCertContext =
data->pCertViewInfo->pCertContext;
3958 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3959 data->pCertViewInfo->idxCounterSigner);
3966 return index << 1 | 1;
3973 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3974 data->pCertViewInfo->idxCounterSigner);
4021 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
4022 data->pCertViewInfo->idxCounterSigner);
4051 tvis.u.
item.iImage = 2;
4055 tvis.u.
item.iImage = 0;
4057 tvis.u.
item.iImage = 1;
4058 tvis.u.
item.iSelectedImage = tvis.u.
item.iImage;
4078 else if (
cert->dwRevokedReason)
4127 data->pCertViewInfo->idxSigner,
4128 data->pCertViewInfo->fCounterSigner,
4129 data->pCertViewInfo->idxCounterSigner);
4130 memset(&viewInfo, 0,
sizeof(viewInfo));
4131 viewInfo.
dwSize =
sizeof(viewInfo);
4159 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
4185 data->pCertViewInfo->idxSigner,
4186 data->pCertViewInfo->fCounterSigner,
4187 data->pCertViewInfo->idxCounterSigner);
4257 if (
data->imageList)
4263 data->selectedCert = 0xffffffff;
4311 static const WCHAR riched[] = {
'r',
'i',
'c',
'h',
'e',
'd',
'2',
'0',0 };
4330 hdr.dwSize =
sizeof(
hdr);
4341 &pages[
hdr.nPages]))
4376 hdr.nPages = nPages;
4392 hdr.u3.ppsp = pages;
4435 memset(&wvt, 0,
sizeof(wvt));
4492 TRACE(
"(%d, %p, %p, %s, %08x, %p)\n", dwContextType, pvContext,
hwnd,
4495 switch (dwContextType)
4501 memset(&viewInfo, 0,
sizeof(viewInfo));
4502 viewInfo.
dwSize =
sizeof(viewInfo);
4510 FIXME(
"unimplemented for context type %d\n", dwContextType);
4524 BOOL isCA = defaultIfNotSpecified;
4526 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4537 if (
info->SubjectType.cbData == 1)
4545 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4587 WARN(
"unable to open certificate store\n");
4613 WARN(
"unable to open certificate store\n");
4636 static const WCHAR trust[] = {
'T',
'r',
'u',
's',
't',0 };
4641 WARN(
"unable to open certificate store\n");
4784 }
while (
ret && ctl);
4792 DWORD *pContentType)
4795 DWORD contentType = 0, expectedContentTypeFlags;
4801 expectedContentTypeFlags =
4806 expectedContentTypeFlags |=
4810 expectedContentTypeFlags |=
4814 expectedContentTypeFlags |=
4819 expectedContentTypeFlags =
4834 *pContentType = contentType;
4941 int len, totalLen = 2;
4989 &
data->contentType);
4998 data->importSrc.dwSubjectChoice =
5015 LPWSTR msgBuf, fullError;
5017 if (
data->pwszWizardTitle)
5018 pTitle =
data->pwszWizardTitle;
5165 if (!
data->hDestCertStore)
5204 !
data->hDestCertStore)
5240 selectInfo.
dwSize =
sizeof(selectInfo);
5255 data->hDestCertStore = store;
5288 switch (
data->contentType)
5417 data->pwszWizardTitle, &
data->importSrc,
data->hDestCertStore)))
5422 if (
data->pwszWizardTitle)
5423 pTitle =
data->pwszWizardTitle;
5471 memset(pages, 0,
sizeof(pages));
5473 pages[nPages].
dwSize =
sizeof(pages[0]);
5477 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5484 pages[nPages].
dwSize =
sizeof(pages[0]);
5488 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5490 pages[nPages].pszHeaderSubTitle =
5514 pages[nPages].
dwSize =
sizeof(pages[0]);
5518 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5520 pages[nPages].pszHeaderSubTitle =
5525 pages[nPages].
dwSize =
sizeof(pages[0]);
5529 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5534 hdr.dwSize =
sizeof(
hdr);
5543 hdr.u3.ppsp = pages;
5544 hdr.nPages = nPages;
5548 if (
data.fileName !=
data.importSrc.u.pwszFileName)
5550 if (
data.freeSource &&
5554 return data.success;
5674 info->pwszProvName,
info->dwProvType, 0);
5679 for (
i = 0;
i <
info->cProvParam;
i++)
5681 info->rgProvParam[
i].pbData,
info->rgProvParam[
i].dwFlags);
5693 DWORD permissions,
size =
sizeof(permissions);
5723 data->exportInfo.u.pCertContext)))
5762 data->contextInfo.dwExportFormat =
5764 data->contextInfo.fExportPrivateKeys =
FALSE;
5768 data->contextInfo.dwExportFormat =
5770 data->contextInfo.fExportPrivateKeys =
TRUE;
5800 int defaultFormatID;
5802 switch (
data->contextInfo.dwExportFormat)
5869 data->contextInfo.dwExportFormat =
5872 data->contextInfo.dwExportFormat =
5876 data->contextInfo.dwExportFormat =
5879 data->contextInfo.fExportChain =
5884 data->contextInfo.dwExportFormat =
5887 data->contextInfo.fExportChain =
TRUE;
5889 data->contextInfo.fStrongEncryption =
TRUE;
5892 skipPasswordPage =
FALSE;
5944 if (
data->pwszWizardTitle)
5945 pTitle =
data->pwszWizardTitle;
5994 if (!passwordLen && !passwordConfirmLen)
5995 data->contextInfo.pwszPassword =
NULL;
5996 else if (passwordLen != passwordConfirmLen)
6005 (passwordLen + 1) *
sizeof(
WCHAR));
6007 (passwordConfirmLen + 1) *
sizeof(
WCHAR));
6015 passwordConfirmLen + 1, (
LPARAM)passwordConfirm);
6045 static const WCHAR cer[] = {
'.',
'c',
'e',
'r',0 };
6046 static const WCHAR crl[] = {
'.',
'c',
'r',
'l',0 };
6047 static const WCHAR ctl[] = {
'.',
'c',
't',
'l',0 };
6048 static const WCHAR p7b[] = {
'.',
'p',
'7',
'b',0 };
6049 static const WCHAR pfx[] = {
'.',
'p',
'f',
'x',0 };
6050 static const WCHAR sst[] = {
'.',
's',
's',
't',0 };
6053 BOOL appendExtension;
6055 switch (
data->contextInfo.dwExportFormat)
6064 switch (
data->exportInfo.dwSubjectChoice)
6081 appendExtension =
wcsicmp(dot, extension) != 0;
6083 appendExtension =
TRUE;
6084 if (appendExtension)
6107 if (
data->pwszWizardTitle)
6108 pTitle =
data->pwszWizardTitle;
6136 LPWSTR msgBuf, fullError;
6138 if (
data->pwszWizardTitle)
6139 pTitle =
data->pwszWizardTitle;
6181 int baseLen, allLen, totalLen = 2, baseID;
6185 switch (exportFormat)
6200 switch (subjectChoice)
6221 totalLen += baseLen +
lstrlenW(filterStr) + 2;
6259 if (
data->exportInfo.pwszExportFileName)
6261 (
LPARAM)
data->exportInfo.pwszExportFileName);
6272 if (
data->contextInfo.dwExportFormat !=
6290 if (
data->pwszWizardTitle)
6291 pTitle =
data->pwszWizardTitle;
6345 data->contextInfo.dwExportFormat,
6346 data->exportInfo.dwSubjectChoice);
6382 switch (
data->exportInfo.dwSubjectChoice)
6418 switch (
data->exportInfo.dwSubjectChoice)
6430 switch (
data->contextInfo.dwExportFormat)
6521 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6524 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6596 memset(&chainPara, 0,
sizeof(chainPara));
6597 chainPara.
cbSize =
sizeof(chainPara);
6606 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6609 if (
i == 0 &&
j == 0)
6611 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6615 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6643 freeKeyProvInfo =
TRUE;
6684 if (freeKeyProvInfo)
6803 &
data->contextInfo,
data->keyProvInfo,
data->deleteKeys)))
6813 if (
data->pwszWizardTitle)
6814 pTitle =
data->pwszWizardTitle;
6838 BOOL hasPrivateKey, showFormatPage =
TRUE;
6846 if (pExportInfo->
dwSize >
sizeof(
data.exportInfo))
6847 data.exportInfo.dwSize =
sizeof(
data.exportInfo);
6848 data.contextInfo.dwSize =
sizeof(
data.contextInfo);
6851 data.contextInfo.fStrongEncryption =
FALSE;
6852 data.contextInfo.fExportPrivateKeys =
FALSE;
6853 data.contextInfo.pwszPassword =
NULL;
6859 sizeof(
data.contextInfo)));
6866 memset(pages, 0,
sizeof(pages));
6868 pages[nPages].
dwSize =
sizeof(pages[0]);
6872 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6881 showFormatPage =
FALSE;
6885 showFormatPage =
FALSE;
6886 data.contextInfo.dwExportFormat =
6890 showFormatPage =
FALSE;
6895 if (hasPrivateKey && showFormatPage)
6897 pages[nPages].
dwSize =
sizeof(pages[0]);
6901 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6902 pages[nPages].pszHeaderTitle =
6904 pages[nPages].pszHeaderSubTitle =
6911 pages[nPages].
dwSize =
sizeof(pages[0]);
6915 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6916 pages[nPages].pszHeaderTitle =
6918 pages[nPages].pszHeaderSubTitle =
6923 if (hasPrivateKey && showFormatPage)
6925 pages[nPages].
dwSize =
sizeof(pages[0]);
6929 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6930 pages[nPages].pszHeaderTitle =
6932 pages[nPages].pszHeaderSubTitle =
6938 pages[nPages].
dwSize =
sizeof(pages[0]);
6942 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6944 pages[nPages].pszHeaderSubTitle =
6949 pages[nPages].
dwSize =
sizeof(pages[0]);
6953 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6958 hdr.dwSize =
sizeof(
hdr);
6967 hdr.u3.ppsp = pages;
6968 hdr.nPages = nPages;
6973 if (
data.freePassword)
6985 return data.success;
7018 FIXME(
"%p: stub\n", pcvsi);
7083 item.stateMask = -1;
7088 if (
len > *allocatedLen)
7093 *allocatedLen =
len;
7108 if (
len > *allocatedLen)
7113 *allocatedLen =
len;
7147 if (
len > *allocatedLen)
7152 *allocatedLen =
len;
7157 item.pszText = none;
7183 static int show_fixme;
7185 FIXME(
"showing location is not implemented\n");
7199 DWORD allocatedLen = 0;
7256 memset(&viewInfo, 0,
sizeof(viewInfo));
7257 viewInfo.
dwSize =
sizeof(viewInfo);
7303 data->dateColumn = 4 -
7309 if (
data->imageList)
7336 while (i < pcsc->cDisplayStores)
7451 FIXME(
"ignoring CRYPTUI_SELECTCERT_MULTISELECT\n");
7463 for (
i = 0;
i <
num;
i++)
7473 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7489 for (
i = 0;
i <
num;
i++)
7498 psp[
i].pfnCallback =
NULL;
7500 psp[
i].pszHeaderTitle =
NULL;
7501 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7503 psp[
i].pszHeaderSubTitle =
NULL;
7505 for (
i = 0;
i <
num;
i++)
7520 FIXME(
"ignoring pfnCallback\n");
7523 if (!(psp[
i].pszHeaderTitle =
strdupAtoW( pages[
i].pszHeaderTitle )))
goto error;
7525 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7528 if (!(psp[
i].pszHeaderSubTitle =
strdupAtoW( pages[
i].pszHeaderSubTitle )))
goto error;
7587 memset(&sc, 0,
sizeof(sc));
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
char * strchr(const char *String, int ch)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
WCHAR szTitle[MAX_LOADSTRING]
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
#define RegCloseKey(hKey)
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
static HWND LPCWSTR pwszWizardTitle
static HWND LPCWSTR PCCRYPTUI_WIZ_IMPORT_SRC_INFO HCERTSTORE hDestCertStore
static HWND LPCWSTR PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc
const CRYPTUI_VIEWCERTIFICATE_STRUCTW * PCCRYPTUI_VIEWCERTIFICATE_STRUCTW
#define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT
#define CRYPTUI_WIZ_EXPORT_CERT_STORE
#define CRYPTUI_WIZ_EXPORT_FORMAT_PFX
#define CRYPTUI_SELECT_ISSUEDTO_COLUMN
#define CRYPTUI_SELECT_ISSUEDBY_COLUMN
#define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT
#define CRYPTUI_WIZ_IMPORT_ALLOW_CRL
#define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT
#define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64
#define CRYPTUI_DISABLE_EXPORT
BOOL(WINAPI * PFNCCERTDISPLAYPROC)(PCCERT_CONTEXT pCertContext, HWND hWndSelCertDlg, void *pvCallbackData)
#define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY
#define CRYPTUI_WIZ_EXPORT_FORMAT_DER
#define CRYPTUI_HIDE_DETAILPAGE
#define CRYPTUI_WIZ_NO_UI
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT
#define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN
#define CRYPTUI_SELECTCERT_MULTISELECT
#define CRYPTUI_SELECT_EXPIRATION_COLUMN
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE
#define CRYPTUI_WIZ_IMPORT_ALLOW_CTL
#define CRYPTUI_ENABLE_EDITPROPERTIES
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define CRYPTUI_HIDE_HIERARCHYPAGE
#define CRYPTUI_SELECT_LOCATION_COLUMN
#define CRYPTUI_CERT_MGR_PUBLISHER_TAB
BOOL(WINAPI * PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext, BOOL *pfInitialSelectedCert, void *pvCallbackData)
#define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG
#define CRYPTUI_DISABLE_ADDTOSTORE
#define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT
#define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT
#define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE
#define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7
#define CRYPTUI_WIZ_IMPORT_ALLOW_CERT
#define CRYPTUI_SELECT_INTENDEDUSE_COLUMN
#define CRYPTUI_DISABLE_ISSUERSTATEMENT
const struct _CRYPTUI_CERT_MGR_STRUCT * PCCRYPTUI_CERT_MGR_STRUCT
#define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
#define IDS_IMPORT_DEST_DETERMINED
#define IDS_PURPOSE_KEY_RECOVERY
#define IDS_PURPOSE_OEM_WHQL
#define IDS_IMPORT_CONTENT_CERT
#define IDC_EXPORT_PASSWORD_CONFIRM
#define IDC_IMPORT_AUTO_STORE
#define IDS_WARN_REMOVE_PLURAL_CA
#define IDC_EXPORT_BROWSE_FILE
#define IDS_WARN_REMOVE_ROOT
#define IDS_IMPORT_FILTER_CERT
#define IDS_EXPORT_PASSWORD_MISMATCH
#define IDS_FRIENDLY_NAME_NONE
#define IDS_ISSUER_HEADING
#define IDS_PURPOSE_QUALIFIED_SUBORDINATION
#define IDS_PURPOSE_CTL_USAGE_SIGNING
#define IDS_EXPORT_FILTER_CMS
#define IDS_EXPIRATION_COLUMN
#define IDC_CERTIFICATE_USAGES
#define IDS_CERT_INFO_PURPOSES
#define IDC_EXPORT_PRIVATE_KEY_YES
#define IDS_CERTIFICATE_BAD_TIMENEST
#define IDS_ALLOWED_PURPOSE_ALL
#define IDC_EXPORT_FORMAT_CMS
#define IDS_IMPORT_WIZARD
#define IDD_ADD_CERT_PURPOSE
#define IDS_PURPOSE_TIMESTAMP_SIGNING
#define IDS_INTENDED_USE_COLUMN
#define IDS_IMPORT_FILTER_ALL
#define IDS_IMPORT_FILTER_CMS
#define IDC_EXPORT_FILENAME
#define IDD_EXPORT_PRIVATE_KEY
#define IDS_SUBJECT_HEADING
#define IDC_IMPORT_SPECIFY_STORE
#define IDS_IMPORT_FILTER_PFX
#define IDS_WARN_REMOVE_PLURAL_ADDRESSBOOK
#define IDS_CERT_INFO_PARTIAL_CHAIN
#define IDS_IMPORT_EMPTY_FILE
#define IDS_IMPORT_CONTENT_CMS
#define IDS_PURPOSE_EFS_RECOVERY
#define IDS_EXPORT_FORMAT_TITLE
#define IDS_WARN_REMOVE_PLURAL_TRUSTEDPUBLISHER
#define IDS_WARN_REMOVE_TRUSTEDPUBLISHER
#define IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE
#define IDS_CERTIFICATE_REVOKED
#define IDC_EXPORT_PFX_DELETE_PRIVATE_KEY
#define IDS_EXPORT_FORMAT_SUBTITLE
#define IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE
#define IDS_IMPORT_CONTENT
#define IDC_SHOW_PHYSICAL_STORES
#define IDS_IMPORT_SELECT_STORE
#define IDS_FIELD_SERIAL_NUMBER
#define IDS_FIELD_SUBJECT
#define IDC_EXPORT_SETTINGS
#define IDC_CERTIFICATESTATUSTEXT
#define IDS_PURPOSE_ROOT_LIST_SIGNER
#define IDC_IMPORT_SETTINGS
#define IDS_CERT_INFO_BAD_SIG
#define IDC_CERTIFICATE_ICON
#define IDS_PURPOSE_IPSEC
#define IDS_FIELD_VALID_FROM
#define IDS_EXPORT_FAILED
#define IDS_IMPORT_FILTER_CTL
#define IDS_CERT_INFO_UNTRUSTED_ROOT
#define IDS_CERT_INFO_BAD_PURPOSES
#define IDS_IMPORT_FILE_TITLE
#define IDS_PURPOSE_KEY_RECOVERY_AGENT
#define IDS_PROP_DESCRIPTION
#define IDC_EXPORT_PRIVATE_KEY_UNAVAILABLE
#define IDC_EXPORT_PFX_INCLUDE_CHAIN
#define IDS_IMPORT_FILE_SUBTITLE
#define IDS_EXPORT_FILE_EXISTS
#define IDS_FRIENDLY_NAME_COLUMN
#define IDS_WARN_REMOVE_CA
#define IDS_EXPORT_FILTER_BASE64_CERT
#define IDS_EXPORT_FILTER_CTL
#define IDS_EXPORT_WIZARD
#define IDC_SELECT_VIEW_CERT
#define IDS_PURPOSE_LICENSES
#define IDD_CERT_MGR_ADVANCED
#define IDS_IMPORT_FILTER_SERIALIZED_STORE
#define IDD_EXPORT_PASSWORD
#define IDC_CERTIFICATE_STATUS
#define IDS_PURPOSE_LICENSE_SERVER
#define IDS_IMPORT_CONTENT_STORE
#define IDS_WARN_REMOVE_ADDRESSBOOK
#define IDS_WARN_REMOVE_PLURAL_DEFAULT
#define IDS_IMPORT_CONTENT_PFX
#define IDS_FIELDS_PROPERTIES
#define IDS_IMPORT_CONTENT_CRL
#define IDD_EXPORT_FINISH
#define IDD_IMPORT_WELCOME
#define IDS_PURPOSE_CA_EXCHANGE
#define IDC_CERTIFICATE_NAMES
#define IDS_CERTIFICATEINFORMATION
#define IDC_ENABLE_SELECTED_PURPOSES
#define IDS_IMPORT_FILTER_CRL
#define IDD_EXPORT_WELCOME
#define IDS_EXPORT_INCLUDE_CHAIN
#define IDS_PURPOSE_EMAIL_PROTECTION
#define IDC_CERTIFICATE_INFO
#define IDS_FIELD_PUBLIC_KEY
#define IDS_EXPORT_PASSWORD_SUBTITLE
#define IDC_EXPORT_FORMAT_DER
#define IDS_IMPORT_STORE_SUBTITLE
#define IDS_PURPOSE_SERVER_AUTH
#define IDS_EXPORT_FILE_SUBTITLE
#define IDC_ENABLE_ALL_PURPOSES
#define IDS_LOCATION_COLUMN
#define IDC_ISSUERSTATEMENT
#define IDS_WARN_REMOVE_PLURAL_ROOT
#define IDS_CERTIFICATE_BAD_TIME
#define IDS_EXPORT_FORMAT
#define IDS_EXPORT_FILTER_SERIALIZED_CERT_STORE
#define IDS_EXPORT_FILTER_PFX
#define IDB_CERT_WATERMARK
#define IDS_IMPORT_FAILED
#define IDC_FRIENDLY_NAME
#define IDC_VIEWCERTIFICATE
#define IDC_DETAIL_SELECT
#define IDS_SELECT_STORE_TITLE
#define IDS_SELECT_CERT_TITLE
#define IDS_EXPORT_FILTER_CERT
#define IDS_CERT_INFO_UNTRUSTED_CA
#define IDS_FIELD_VERSION
#define IDS_IMPORT_STORE_TITLE
#define IDS_CERTIFICATE_PURPOSE_EXISTS
#define IDS_FIELD_PUBLIC_KEY_FORMAT
#define IDS_PURPOSE_EMBEDDED_NT
#define IDS_WARN_REMOVE_MY
#define IDS_ALLOWED_PURPOSE_NONE
#define IDS_PURPOSE_DS_EMAIL_REPLICATION
#define IDS_EXPORT_PRIVATE_KEY_SUBTITLE
#define IDS_IMPORT_STORE_SELECTION
#define IDC_IMPORT_BROWSE_STORE
#define IDS_PROP_FRIENDLY_NAME
#define IDS_IMPORT_BAD_FORMAT
#define IDS_PROP_ENHKEY_USAGE
#define IDC_EXPORT_PRIVATE_KEY_NO
#define IDC_EXPORT_PFX_STRONG_ENCRYPTION
#define IDC_EXPORT_PASSWORD
#define IDS_EXPORT_FILTER_CRL
#define IDS_SUBJECT_COLUMN
#define IDS_PURPOSE_SMARTCARD_LOGON
#define IDS_PURPOSE_ENROLLMENT_AGENT
#define IDS_CERTIFICATE_VALID
#define IDD_EXPORT_FORMAT
#define IDS_EXPORT_PASSWORD_TITLE
#define IDC_EXPORT_FORMAT_BASE64
#define IDS_IMPORT_CONTENT_CTL
#define IDS_IMPORT_SUCCEEDED
#define IDC_EXPORT_CMS_INCLUDE_CHAIN
#define IDS_WIZARD_TITLE_FONT
#define IDC_IMPORT_FILENAME
#define IDS_EXPORT_SUCCEEDED
#define IDC_MGR_PURPOSE_SELECTION
#define IDS_IMPORT_TYPE_MISMATCH
#define IDS_PURPOSE_DOCUMENT_SIGNING
#define IDS_CERTIFICATE_BAD_SIGNATURE
#define IDS_PURPOSE_LIFETIME_SIGNING
#define IDS_IMPORT_DEST_AUTOMATIC
#define IDS_FIELDS_EXTENSIONS
#define IDC_EXPORT_FORMAT_PFX
#define IDS_FIELDS_CRITICAL_EXTENSIONS
#define IDC_EDITPROPERTIES
#define IDS_PURPOSE_ADVANCED
#define IDS_CERTIFICATE_PURPOSE_ERROR
#define IDD_CERT_PROPERTIES_GENERAL
#define IDS_WARN_REMOVE_DEFAULT
#define IDS_ISSUER_COLUMN
#define IDS_EXPORT_PRIVATE_KEY_TITLE
#define IDS_FIELD_VALID_TO
#define IDS_PURPOSE_CODE_SIGNING
#define IDS_PURPOSE_CLIENT_AUTH
#define IDC_IMPORT_BROWSE_FILE
#define IDS_EXPORT_FILE_TITLE
#define IDD_IMPORT_FINISH
#define IDS_IMPORT_OPEN_FAILED
#define IDS_CERTIFICATE_PROPERTIES
#define IDC_DISABLE_ALL_PURPOSES
#define IDS_WARN_REMOVE_PLURAL_MY
#define IDC_SELECT_DISPLAY_STRING
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
BOOL WINAPI CryptSetProvParam(HCRYPTPROV hProv, DWORD dwParam, const BYTE *pbData, DWORD dwFlags)
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey)
BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST himl, COLORREF clrBk)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
INT WINAPI ImageList_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn)
BOOL WINAPI CryptBinaryToStringA(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey)
BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
BOOL WINAPI CertGetValidUsages(DWORD cCerts, PCCERT_CONTEXT *rghCerts, int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs)
BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
void WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
BOOL WINAPI PFXExportCertStore(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
static const WCHAR commaSpace[]
BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg, const void **ppvContext)
static struct list oidInfo
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
LPCWSTR WINAPI CryptFindLocalizedName(LPCWSTR pwszCryptName)
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum)
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
static CRYPT_OBJID_BLOB * find_policy_qualifier(CERT_POLICIES_INFO *policies, LPCSTR policyOid)
BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged)
#define MAX_FRIENDLY_NAME
static void add_purpose(HWND hwnd, LPCSTR oid)
static void add_string_resource_with_paraformat_to_control(HWND hwnd, int id, const PARAFORMAT2 *fmt)
static void init_general_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, PROPSHEETPAGEW *page)
static void export_format_enable_controls(HWND hwnd, const struct ExportWizData *data)
static void show_dialog_for_selected_cert(HWND hwnd)
static HCERTSTORE selected_item_to_store(HWND tree, HTREEITEM hItem)
static int CALLBACK cert_prop_sheet_proc(HWND hwnd, UINT msg, LPARAM lp)
static LRESULT CALLBACK import_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR export_filter_pfx[]
static WCHAR * get_cert_display_name(PCCERT_CONTEXT cert)
static WCHAR * field_format_detailed_issuer(PCCERT_CONTEXT cert, void *param)
BOOL WINAPI CryptUIDlgViewCertificateA(PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo, BOOL *pfPropertiesChanged)
static LRESULT CALLBACK add_purpose_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * get_user_notice_from_qualifier(const CRYPT_OBJID_BLOB *qualifier)
static void select_purposes(HWND hwnd, PurposeSelection selection)
static void import_warn_type_mismatch(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle)
static void set_general_info(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static void add_field_value_data(struct detail_data *data, create_detailed_value_func create, void *param)
static BOOL export_validate_filename(HWND hwnd, struct ExportWizData *data, LPCWSTR fileName)
static void add_local_oid_text_to_control(HWND text, LPCSTR oid)
static void select_cert_update_view_button(HWND hwnd)
static void create_show_list(HWND hwnd, struct detail_data *data)
static const struct @351 import_filters[]
void(* add_fields_func)(HWND hwnd, struct detail_data *data)
static WCHAR * make_export_file_filter(DWORD exportFormat, DWORD subjectChoice)
static void set_certificate_status_for_end_cert(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static void show_import_details(HWND lv, struct ImportWizData *data)
BOOL WINAPI WTHelperGetKnownUsages(DWORD action, PCCRYPT_OID_INFO **usages)
static WCHAR * field_format_subject(PCCERT_CONTEXT cert)
WCHAR *(* prop_to_value_func)(void *pb, DWORD cb)
static LRESULT CALLBACK general_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static BOOL export_info_has_private_key(PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo)
static void cert_mgr_clear_cert_selection(HWND hwnd)
static PCCERT_CONTEXT cert_mgr_index_to_cert(HWND hwnd, int index)
static BOOL display_cert_usages(HWND text, PCCERT_CONTEXT cert, BOOL *anyUsageAdded)
static const WCHAR filter_crl[]
static void redraw_states(HWND list, BOOL enabled)
static LRESULT CALLBACK export_private_key_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void add_cert_string_to_control(HWND hwnd, PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags)
static PCCERT_CONTEXT select_cert_get_selected(HWND hwnd, int selection)
static const WCHAR filter_cms[]
WCHAR *(* create_detailed_value_func)(PCCERT_CONTEXT cert, void *param)
static LPWSTR export_append_extension(const struct ExportWizData *data, LPWSTR fileName)
static void add_critical_extensions(HWND hwnd, struct detail_data *data)
static void init_columns(HWND lv, DWORD flags)
static BOOL export_is_key_exportable(HCRYPTPROV hProv, DWORD keySpec)
BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static int cert_mgr_sort_by_text(HWND lv, int col, int index1, int index2)
struct _CRYPTUI_ENUM_SYSTEM_STORE_ARGS * PCRYPTUI_ENUM_SYSTEM_STORE_ARGS
static BOOL do_import(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static const struct CertMgrStoreInfo defaultStoreList[]
static WCHAR * field_format_extension_hex_with_ascii(const CERT_EXTENSION *ext)
BOOL WINAPI CryptUIWizExport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, void *pvoid)
static HCERTSTORE open_store_from_file(DWORD dwFlags, LPCWSTR fileName, DWORD *pContentType)
static BOOL is_oid_in_list(HWND hwnd, LPCSTR oid)
static PCRYPT_KEY_PROV_INFO export_get_private_key_info(PCCERT_CONTEXT cert)
static void toggle_usage(HWND hwnd, int iItem)
static void create_cert_details_list(HWND hwnd, struct detail_data *data)
static void free_detail_fields(struct detail_data *data)
struct _CRYPTUI_SELECTSTORE_INFO_W * PCRYPTUI_SELECTSTORE_INFO_W
static BOOL save_cert_as_cms(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, BOOL includeChain)
static WCHAR * field_format_public_key(PCCERT_CONTEXT cert)
static void initialize_purpose_selection(HWND hwnd)
static int CALLBACK cert_mgr_sort_by_issuer(LPARAM lp1, LPARAM lp2, LPARAM lp)
static LRESULT CALLBACK import_welcome_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static BOOL is_valid_oid(LPCSTR oid)
static WCHAR * field_format_to_date(PCCERT_CONTEXT cert)
static void set_issuer_statement(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static UINT CALLBACK hierarchy_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static UINT CALLBACK detail_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static const WCHAR filter_serialized_store[]
static void add_all_fields(HWND hwnd, struct detail_data *data)
static struct OIDToString oidMap[]
static LRESULT CALLBACK cert_mgr_advanced_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
HCERTSTORE WINAPI CryptUIDlgSelectStoreW(PCRYPTUI_SELECTSTORE_INFO_W info)
struct _CRYPTUI_ENUM_DATA * PCRYPTUI_ENUM_DATA
static const struct v1_field v1_fields[]
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc)
static BOOL init_detail_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged, PROPSHEETPAGEW *page)
static BOOL show_import_ui(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static LRESULT CALLBACK user_notice_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void set_fields_selection(HWND hwnd, struct detail_data *data, int sel)
@ PurposeFilterShowAdvanced
static void show_export_details(HWND lv, const struct ExportWizData *data)
struct _CRYPTUI_SELECTSTORE_INFO_A * PCRYPTUI_SELECTSTORE_INFO_A
static BOOL import_crl(PCCRL_CONTEXT crl, HCERTSTORE hDestCertStore)
static void add_cert_to_view(HWND lv, PCCERT_CONTEXT cert, DWORD *allocatedLen, LPWSTR *str)
static void set_cert_validity_period(HWND hwnd, PCCERT_CONTEXT cert)
static void set_cert_string_property(PCCERT_CONTEXT cert, DWORD prop, LPWSTR str)
static LPSTR get_cert_mgr_usages(void)
static LRESULT CALLBACK export_format_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR disallowed[]
static int CALLBACK cert_mgr_sort_by_friendly_name(LPARAM lp1, LPARAM lp2, LPARAM lp)
static void set_cert_name_string(HWND hwnd, PCCERT_CONTEXT cert, DWORD nameFlags, int heading)
static BOOL import_cert(PCCERT_CONTEXT cert, HCERTSTORE hDestCertStore)
static void set_cert_info(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static void display_app_usages(HWND text, PCCERT_CONTEXT cert, BOOL *anyUsageAdded)
static const WCHAR addressBook[]
static void add_known_usages_to_list(HWND lv, CheckBitmapIndex state)
static BOOL show_export_ui(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, const void *pvoid)
static const struct CertMgrStoreInfo publisherStoreList[]
static WCHAR * format_hex_string(void *pb, DWORD cb)
static HCERTSTORE choose_store_for_cert(PCCERT_CONTEXT cert)
static BOOL save_serialized_store(HANDLE file, HCERTSTORE store)
BOOL WINAPI CryptUIWizDigitalSign(DWORD flags, HWND parent, LPCWSTR title, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO info, PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *context)
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW(PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc)
static const WCHAR trustedPublisher[]
static WCHAR * field_format_from_date(PCCERT_CONTEXT cert)
static const WCHAR export_filter_ctl[]
static void set_certificate_status(HWND hwnd, const CRYPT_PROVIDER_CERT *cert)
static LRESULT CALLBACK select_cert_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR export_filter_cert[]
static void add_string_id_and_value_to_list(HWND hwnd, struct detail_data *data, int id, LPWSTR value, create_detailed_value_func create, void *param)
static BOOL save_pfx(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO pContextInfo, PCRYPT_KEY_PROV_INFO keyProvInfo, BOOL deleteKeys)
static void show_store_certs(HWND hwnd, HCERTSTORE store)
static void show_cert_chain(HWND hwnd, struct hierarchy_data *data)
static BOOL import_validate_filename(HWND hwnd, struct ImportWizData *data, LPCWSTR fileName)
HCERTSTORE WINAPI CryptUIDlgSelectStoreA(PCRYPTUI_SELECTSTORE_INFO_A info)
static LRESULT CALLBACK detail_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static BOOL import_ctl(PCCTL_CONTEXT ctl, HCERTSTORE hDestCertStore)
static void close_stores(HWND tab)
static const struct selection_list_item listItems[]
static void show_cert_hierarchy(HWND hwnd, struct hierarchy_data *data)
static void add_icon_to_control(HWND hwnd, int id)
static HCERTSTORE cert_mgr_current_store(HWND hwnd)
static void cert_mgr_do_export(HWND hwnd)
static void add_date_string_to_control(HWND hwnd, const FILETIME *fileTime)
static void add_cert_extension_detail(HWND hwnd, struct detail_data *data, PCERT_EXTENSION ext)
static LRESULT CALLBACK export_password_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void add_field_and_value_to_list(HWND hwnd, struct detail_data *data, LPWSTR field, LPWSTR value, create_detailed_value_func create, void *param)
static LRESULT CALLBACK import_finish_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void cert_mgr_do_remove(HWND hwnd)
static void show_selected_cert(HWND hwnd, int index)
static void add_string_resource_to_control(HWND hwnd, int id)
static const WCHAR export_filter_sst[]
static WCHAR * format_enhanced_key_usage_value(void *pb, DWORD cb)
static const WCHAR filter_cert[]
static LRESULT CALLBACK export_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static CERT_ENHKEY_USAGE * add_oid_to_usage(CERT_ENHKEY_USAGE *usage, LPSTR oid)
static void add_v1_fields(HWND hwnd, struct detail_data *data)
static void add_store_certs(HWND lv, HCERTSTORE store, DWORD flags, PFNCFILTERPROC filter, void *callback_data)
static BOOL check_context_type(DWORD dwFlags, DWORD type)
static BOOL save_der(HANDLE file, const BYTE *pb, DWORD cb)
static void set_policy_text(HWND text, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static const WCHAR filter_pfx[]
static void add_text_with_paraformat_to_control(HWND hwnd, LPCWSTR text, LONG len, const PARAFORMAT2 *fmt)
static int CALLBACK select_cert_sort_by_text(LPARAM lp1, LPARAM lp2, LPARAM lp)
struct _CRYPTUI_ENUM_SYSTEM_STORE_ARGS CRYPTUI_ENUM_SYSTEM_STORE_ARGS
static UINT CALLBACK general_callback_proc(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static void import_warning(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, int warningID)
static const WCHAR empty[]
static void add_known_usage(HWND lv, PCCRYPT_OID_INFO info, CheckBitmapIndex state)
static BOOL is_ca_cert(PCCERT_CONTEXT cert, BOOL defaultIfNotSpecified)
static BOOL WINAPI enum_store_callback(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
static void export_password_mismatch(HWND hwnd, const struct ExportWizData *data)
static void cert_mgr_show_cert_usages(HWND hwnd, int index)
static BOOL CALLBACK refresh_propsheet_pages(HWND hwnd, LPARAM lParam)
static int CALLBACK cert_mgr_sort_by_date(LPARAM lp1, LPARAM lp2, LPARAM lp)
static BOOL show_cert_dialog(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, CRYPT_PROVIDER_CERT *provCert, BOOL *pfPropertiesChanged)
static LRESULT CALLBACK import_store_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * field_format_serial_number(PCCERT_CONTEXT cert)
static void show_cert_stores(HWND hwnd, DWORD dwFlags, struct CertMgrData *data)
BOOL WINAPI CryptUIDlgViewContext(DWORD dwContextType, LPVOID pvContext, HWND hwnd, LPCWSTR pwszTitle, DWORD dwFlags, LPVOID pvReserved)
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle, LPCWSTR pwszDisplayString, DWORD dwDontUseColumn, DWORD dwFlags, void *pvReserved)
static LRESULT CALLBACK hierarchy_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void select_cert_view(HWND hwnd, PCCERT_CONTEXT cert, struct SelectCertData *data)
static void show_user_notice(HWND hwnd, struct IssuerStatement *issuerStatement)
WCHAR *(* field_format_func)(PCCERT_CONTEXT cert)
static WCHAR * make_import_file_filter(DWORD dwFlags)
static void free_prop_sheet_pages(PROPSHEETPAGEW *pages, DWORD num)
static LPARAM index_to_lparam(struct hierarchy_data *data, DWORD index)
static void add_oid_text_to_control(HWND hwnd, char *oid)
static DWORD lparam_to_index(struct hierarchy_data *data, LPARAM lp)
struct _CRYPTUI_SELECTSTORE_INFO_A CRYPTUI_SELECTSTORE_INFO_A
static WCHAR * field_format_detailed_public_key(PCCERT_CONTEXT cert, void *param)
#define CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE
static void add_properties(HWND hwnd, struct detail_data *data)
static const struct prop_id_to_string_id prop_id_map[]
static UINT CALLBACK cert_properties_general_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static void save_cert_mgr_usages(HWND hwnd)
static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO pContextInfo, PCRYPT_KEY_PROV_INFO keyProvInfo, BOOL deleteKeys)
static void enumerate_stores(HWND hwnd, CRYPTUI_ENUM_DATA *pEnumData)
static void add_cert_to_list(HWND lv, PCCERT_CONTEXT cert, DWORD flags, DWORD *allocatedLen, LPWSTR *str)
static void set_general_cert_properties(HWND hwnd, struct edit_cert_data *data)
static void show_cert_usages(HWND hwnd, struct edit_cert_data *data)
static WCHAR * field_format_detailed_extension(PCCERT_CONTEXT cert, void *param)
BOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr)
static WCHAR * get_cps_str_from_qualifier(const CRYPT_OBJID_BLOB *qualifier)
static void refresh_store_certs(HWND hwnd)
static void add_all_extensions(HWND hwnd, struct detail_data *data)
static void show_edit_cert_properties_dialog(HWND parent, struct detail_data *data)
struct _CRYPTUI_SELECTSTORE_INFO_W CRYPTUI_SELECTSTORE_INFO_W
static LRESULT CALLBACK export_welcome_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static LPWSTR get_cert_name_string(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags)
static WCHAR * strdupAtoW(const char *str)
static const WCHAR filter_ctl[]
static WCHAR * get_cert_property_as_string(PCCERT_CONTEXT cert, DWORD prop)
static void create_listview_columns(HWND hwnd)
static CERT_ENHKEY_USAGE * convert_usages_str_to_usage(LPSTR usageStr)
static PROPSHEETPAGEW * prop_sheet_pages_AtoW(LPCPROPSHEETPAGEA pages, DWORD num)
static WCHAR * field_format_detailed_subject(PCCERT_CONTEXT cert, void *param)
static LRESULT CALLBACK cert_properties_general_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void free_store_info(HWND tree)
static void apply_general_changes(HWND hwnd)
static const WCHAR filter_all[]
static WCHAR * field_format_issuer(PCCERT_CONTEXT cert)
static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void add_unformatted_text_to_control(HWND hwnd, LPCWSTR text, LONG len)
struct _CRYPTUI_ENUM_DATA CRYPTUI_ENUM_DATA
@ CheckBitmapIndexChecked
@ CheckBitmapIndexUnchecked
@ CheckBitmapIndexDisabledUnchecked
@ CheckBitmapIndexDisabledChecked
static BOOL save_base64(HANDLE file, const BYTE *pb, DWORD cb)
static DWORD CALLBACK read_text_callback(DWORD_PTR dwCookie, LPBYTE buf, LONG cb, LONG *pcb)
static void add_cert_columns(HWND hwnd)
static BOOL export_acquire_private_key(const CRYPT_KEY_PROV_INFO *info, HCRYPTPROV *phProv)
static BOOL import_store(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, HCERTSTORE source, HCERTSTORE dest)
BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi)
static struct hierarchy_data * get_hierarchy_data_from_tree_item(HWND tree, HTREEITEM hItem)
static WCHAR * crypt_format_extension(const CERT_EXTENSION *ext, DWORD formatStrType)
static void add_v1_field(HWND hwnd, struct detail_data *data, const struct v1_field *field)
static struct OIDToString * findSupportedOID(LPCSTR oid)
static int CALLBACK cert_mgr_sort_by_subject(LPARAM lp1, LPARAM lp2, LPARAM lp)
static WCHAR * field_format_version(PCCERT_CONTEXT cert)
static void get_cert_usages(PCCERT_CONTEXT cert, LPWSTR *str)
static const WCHAR export_filter_cms[]
static const WCHAR export_filter_crl[]
static LRESULT CALLBACK export_finish_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * format_long_date(const FILETIME *fileTime)
static LRESULT CALLBACK select_store_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * field_format_detailed_cert_name(PCERT_NAME_BLOB name)
static void free_certs(HWND lv)
static CERT_ENHKEY_USAGE * create_advanced_filter(void)
static HCERTSTORE cert_mgr_index_to_store(HWND tab, int index)
static BOOL init_hierarchy_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, PROPSHEETPAGEW *page)
static BOOL save_store_as_cms(HANDLE file, HCERTSTORE store)
BOOL(WINAPI * PFN_SELECTED_STORE_CB)(HCERTSTORE store, HWND hwnd, void *pvArg)
static void refresh_details_view(HWND hwnd)
static BOOL import_file(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, LPCWSTR fileName, HCERTSTORE dest)
static LONG_PTR find_oid_in_list(HWND lv, LPCSTR oid)
static BOOL check_store_context_type(DWORD dwFlags, HCERTSTORE store)
#define ERROR_INVALID_PARAMETER
#define DLL_PROCESS_ATTACH
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define MultiByteToWideChar
static const WCHAR *const ext[]
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
INT WSAAPI select(IN INT s, IN OUT LPFD_SET readfds, IN OUT LPFD_SET writefds, IN OUT LPFD_SET exceptfds, IN CONST struct timeval *timeout)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum GLsizei GLuint GLint * bytesWritten
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLsizeiptr const GLvoid GLenum usage
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
HLOCAL NTAPI LocalFree(HLOCAL hMem)
_CONST_RETURN wchar_t *__cdecl wmemchr(_In_reads_(_N) const wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
static const SecPkgInfoW infoW
static IN DWORD IN LPVOID lpvReserved
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static const BYTE cert2[]
static const BYTE cert1[]
static DWORD DWORD void LPSTR DWORD cch
static LPCSTR DWORD void * pvReserved
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HMODULE MODULEINFO DWORD cb
static const struct access_res create[16]
#define cmp(status, error)
static APTTYPEQUALIFIER * qualifier
static PCCRYPT_OID_INFO ** usages
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
#define LOCALE_SYSTEM_DEFAULT
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IDataObject
const GUID IID_IOleObject
#define PSM_SETWIZBUTTONS
struct _PROPSHEETPAGEW PROPSHEETPAGEW
#define PSH_PROPSHEETPAGE
#define LVM_DELETEALLITEMS
struct _TREEITEM * HTREEITEM
#define LVS_EX_FULLROWSELECT
#define LVM_INSERTCOLUMNW
#define INDEXTOSTATEIMAGEMASK(i)
#define LVM_GETSELECTEDCOUNT
#define LVIS_STATEIMAGEMASK
#define TVIF_SELECTEDIMAGE
#define LVM_SETEXTENDEDLISTVIEWSTYLE
static unsigned __int64 next
#define EM_GETOLEINTERFACE
BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, DWORD dwSaveAs, DWORD dwSaveTo, void *pvSaveToPara, DWORD dwFlags)
#define WINTRUST_ACTION_GENERIC_CERT_VERIFY
const struct CertMgrStoreInfo * stores
CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO contextInfo
PCRYPT_KEY_PROV_INFO keyProvInfo
CRYPTUI_WIZ_EXPORT_INFO exportInfo
HCERTSTORE hDestCertStore
CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc
PFNCCERTDISPLAYPROC displayProc
LPCPROPSHEETPAGEW rgPropSheetPages
PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc
PCRYPTUI_SELECTSTORE_INFO_W info
enum StoreInfo::@352 type
union StoreInfo::@353 DUMMYUNIONNAME
CERT_TRUST_STATUS TrustStatus
CERT_TRUST_STATUS TrustStatus
PCERT_EXTENSION rgExtension
CERT_RDN_VALUE_BLOB Value
CERT_POLICY_INFO * rgPolicyInfo
CERT_POLICY_QUALIFIER_INFO * rgPolicyQualifier
PCRYPTUI_ENUM_SYSTEM_STORE_ARGS rgEnumArgs
void * pvSystemStoreLocationPara
HCERTSTORE * rghDisplayStores
LPCPROPSHEETPAGEW rgPropSheetPages
PFNCFILTERPROC pFilterCallback
PFNCCERTDISPLAYPROC pDisplayCallback
CRYPTUI_ENUM_DATA * pEnumData
PFN_SELECTED_STORE_CB pfnSelectedStoreCallback
CRYPTUI_ENUM_DATA * pEnumData
PFN_SELECTED_STORE_CB pfnSelectedStoreCallback
PCCTL_CONTEXT pCTLContext
LPCWSTR pwszExportFileName
PCCERT_CONTEXT pCertContext
PCCRL_CONTEXT pCRLContext
PCERT_CHAIN_ELEMENT pChainElement
PCCERT_CHAIN_CONTEXT pChainContext
CRYPT_PROVIDER_CERT * pasCertChain
LPSTR * rgpszUsageIdentifier
struct WINTRUST_CERT_INFO_ * pCert
DWORD fdwRevocationChecks
BOOL * pfPropertiesChanged
struct field_value_data * fields
PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo
BOOL * pfPropertiesChanged
create_detailed_value_func create
PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo
prop_to_value_func prop_to_value
CRYPT_PROVIDER_DATA const * pCryptProviderData
LPCPROPSHEETPAGEW rgPropSheetPages
PCCERT_CONTEXT pCertContext
create_detailed_value_func create_detailed_value
HRESULT WINAPI HlinkSimpleNavigateToString(LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved)
DWORD WINAPI GetLastError(void)
#define FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_FROM_SYSTEM
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
#define szOID_PKIX_KP_IPSEC_END_SYSTEM
#define szOID_KP_DOCUMENT_SIGNING
#define CERT_ENHKEY_USAGE_PROP_ID
#define szOID_EFS_RECOVERY
#define CRYPT_FORMAT_STR_MULTI_LINE
#define CERT_QUERY_CONTENT_SERIALIZED_CERT
#define szOID_KP_KEY_RECOVERY_AGENT
#define CERT_QUERY_CONTENT_FLAG_CTL
#define CERT_STORE_SAVE_AS_STORE
#define CERT_NAME_SIMPLE_DISPLAY_TYPE
#define CERT_STORE_PROV_COLLECTION
#define szOID_PKIX_POLICY_QUALIFIER_CPS
struct _CRYPT_OID_INFO CRYPT_OID_INFO
#define CERT_STORE_LOCALIZED_NAME_PROP_ID
#define CERT_QUERY_OBJECT_FILE
#define CERT_X500_NAME_STR
#define szOID_BASIC_CONSTRAINTS2
#define CERT_QUERY_CONTENT_FLAG_CRL
#define CERT_STORE_SAVE_AS_PKCS7
#define CERT_QUERY_CONTENT_FLAG_CERT
#define CERT_KEY_PROV_INFO_PROP_ID
#define CERT_QUERY_CONTENT_CRL
#define szOID_ENROLLMENT_AGENT
#define CERT_DESCRIPTION_PROP_ID
#define CERT_STORE_CREATE_NEW_FLAG
#define CERT_QUERY_CONTENT_SERIALIZED_STORE
#define szOID_KP_LIFETIME_SIGNING
#define CRYPT_STRING_BASE64
struct _CRYPT_OID_INFO * PCRYPT_OID_INFO
#define szOID_PKIX_KP_CLIENT_AUTH
#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID
#define CERT_QUERY_CONTENT_CTL
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define szOID_PKIX_KP_CODE_SIGNING
#define CERT_QUERY_CONTENT_SERIALIZED_CTL
#define CRYPT_DELETEKEYSET
#define szOID_PKIX_KP_IPSEC_USER
#define szOID_PKIX_KP_TIMESTAMP_SIGNING
#define szOID_PKIX_KP_IPSEC_TUNNEL
#define szOID_OEM_WHQL_CRYPTO
#define X509_ASN_ENCODING
#define szOID_ANY_CERT_POLICY
#define szOID_BASIC_CONSTRAINTS
#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
#define CRYPT_DECODE_ALLOC_FLAG
#define CERT_STORE_PROV_MEMORY
#define CERT_NAME_STR_CRLF_FLAG
#define szOID_KP_CTL_USAGE_SIGNING
#define CERT_FRIENDLY_NAME_PROP_ID
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT
#define X509_CERT_POLICIES
#define CERT_STORE_CERTIFICATE_CONTEXT
#define CERT_CA_SUBJECT_FLAG
#define szOID_KP_QUALIFIED_SUBORDINATION
#define szOID_KP_KEY_RECOVERY
#define szOID_CERT_POLICIES
#define CERT_QUERY_CONTENT_SERIALIZED_CRL
const CERT_CONTEXT * PCCERT_CONTEXT
#define szOID_PKIX_KP_SERVER_AUTH
#define EXPORT_PRIVATE_KEYS
_In_ PCCERT_CONTEXT pCertContext
#define CERT_QUERY_CONTENT_PKCS7_SIGNED
#define CERT_HASH_PROP_ID
#define szOID_PKIX_KP_EMAIL_PROTECTION
#define szOID_KP_SMARTCARD_LOGON
#define CERT_NAME_ISSUER_FLAG
#define szOID_WHQL_CRYPTO
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED
#define CERT_STORE_ADD_ALWAYS
#define CERT_QUERY_FORMAT_FLAG_ALL
#define CERT_STORE_PROV_SYSTEM_W
const CRYPT_OID_INFO * PCCRYPT_OID_INFO
#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE
#define szOID_EMBEDDED_NT_CRYPTO
#define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE
#define CERT_TRUST_IS_PARTIAL_CHAIN
#define CRYPT_OID_INFO_OID_KEY
#define CERT_SYSTEM_STORE_CURRENT_USER
#define PKCS_7_ASN_ENCODING
#define szOID_KP_CA_EXCHANGE
#define CERT_STORE_SAVE_TO_FILE
#define CRYPT_FORMAT_STR_NO_HEX
#define szOID_ANY_APPLICATION_POLICY
#define CERT_QUERY_CONTENT_FLAG_PFX
#define szOID_APPLICATION_CERT_POLICIES
#define szOID_DS_EMAIL_REPLICATION
#define CERT_QUERY_CONTENT_CERT
struct _CERT_BASIC_CONSTRAINTS2_INFO CERT_BASIC_CONSTRAINTS2_INFO
#define X509_ENHANCED_KEY_USAGE
#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
#define szOID_ROOT_LIST_SIGNER
#define szOID_LICENSE_SERVER
#define TRUST_E_CERT_SIGNATURE
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define OUT_DEFAULT_PRECIS
HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR)
#define CLIP_DEFAULT_PRECIS
#define LOCALE_SSHORTDATE
#define HKEY_CURRENT_USER
#define WTD_REVOCATION_CHECK_CHAIN
#define WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define WTD_STATEACTION_CLOSE
#define WTD_STATEACTION_VERIFY
#define CERT_CONFIDENCE_TIME
#define CERT_CONFIDENCE_TIMENEST
#define WTD_REVOCATION_CHECK_END_CERT
#define CERT_CONFIDENCE_SIG
CRYPT_PROVIDER_CERT *WINAPI WTHelperGetProvCertFromChain(CRYPT_PROVIDER_SGNR *pSgnr, DWORD idxCert)
CRYPT_PROVIDER_SGNR *WINAPI WTHelperGetProvSignerFromChain(CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner)
CRYPT_PROVIDER_DATA *WINAPI WTHelperProvDataFromStateData(HANDLE hStateData)
LONG WINAPI WinVerifyTrust(HWND hwnd, GUID *ActionID, LPVOID ActionData)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define GetWindowLongPtrW
#define LR_LOADTRANSPARENT
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define DialogBoxW(i, t, p, f)
#define IS_INTRESOURCE(i)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CB_FINDSTRINGEXACT
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HDC WINAPI GetDC(_In_opt_ HWND)
#define MB_ICONEXCLAMATION
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
DWORD WINAPI GetClassLongW(_In_ HWND, _In_ int)
#define SetWindowLongPtrW
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)