23#define NONAMELESSUNION
56 case DLL_WINE_PREATTACH:
75#define MAX_STRING_LEN 512
118 if (
len > *allocatedLen)
136 if (
len > *allocatedLen)
162 if (
len > *allocatedLen)
183 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
184 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
185 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
186 'r',
'p',
'o',
's',
'e',0 };
241 ptr = comma ? comma + 1 :
NULL,
264 if (!
usage->cUsageIdentifier)
269 usage->rgpszUsageIdentifier,
270 (
usage->cUsageIdentifier + 1) *
sizeof(
LPSTR));
271 if (
usage->rgpszUsageIdentifier)
272 usage->rgpszUsageIdentifier[
usage->cUsageIdentifier++] = oid;
291 ptr = comma ? comma + 1 :
NULL,
313 LPSTR disabledUsagesStr;
329 for (
i = 0; !disabled &&
336 (
LPSTR)(*ptr)->pszOID);
350 return advancedUsage;
360 DWORD allocatedLen = 0;
417 for (
i = 0; !show &&
i < numOIDs;
i++)
423 for (
i = 0; !show &&
i < numOIDs;
i++)
456 'A',
'd',
'd',
'r',
'e',
's',
's',
'B',
'o',
'o',
'k',0 };
460 'T',
'r',
'u',
's',
't',
'e',
'd',
'P',
'u',
'b',
'l',
'i',
's',
'h',
'e',
'r',0 };
461static const WCHAR disallowed[] = {
'D',
'i',
's',
'a',
'l',
'l',
'o',
'w',
'e',
'd',0 };
514 data->nStores = cStores;
515 data->stores = storeList;
516 for (
i = 0;
i < cStores;
i++)
568 for (
i = 0;
i < tabs;
i++)
666 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
667 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
668 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
669 'r',
'p',
'o',
's',
'e',0 };
679 for (
i = 0;
i < purposes;
i++)
735 LPSTR disabledUsages;
760 ptr = comma ? comma + 1 :
NULL,
843 memset(&viewInfo, 0,
sizeof(viewInfo));
844 viewInfo.
dwSize =
sizeof(viewInfo);
888 if (
usage->cUsageIdentifier)
894 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
898 usage->rgpszUsageIdentifier[
i],
905 if (i < usage->cUsageIdentifier - 1)
915 usage->rgpszUsageIdentifier[
i],
931 if (i < usage->cUsageIdentifier - 1)
987 warningID =
data->stores[tabIndex].removePluralWarning;
989 warningID =
data->stores[tabIndex].removeWarning;
991 pTitle =
data->title;
1023 if (selectionCount == 1)
1045 else if (selectionCount > 1)
1057 info.dwSubjectChoice =
1059 info.u.hCertStore = store;
1087 item.pszText = buf1;
1088 item.iItem = index1;
1089 item.iSubItem = col;
1091 item.pszText = buf2;
1092 item.iItem = index2;
1112 &
cert2->pCertInfo->NotAfter);
1138 if (
data->imageList)
1188 if (numSelected == 1)
1315 TRACE(
"(%p)\n", pCryptUICertMgr);
1319 WARN(
"unexpected size %d\n", pCryptUICertMgr->
dwSize);
1347#define CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE 0x00000001
1407 if (storeInfo->u.
name)
1626 WARN(
"unexpected size %d\n",
info->dwSize);
1632 return selectInfo.
store;
1648 WARN(
"unexpected size %d\n",
info->dwSize);
1682 TRACE(
"(%p, %p)\n", pCertViewInfo, pfPropertiesChanged);
1684 memcpy(&viewInfo, pCertViewInfo,
sizeof(viewInfo));
1705 FIXME(
"ignoring additional prop sheet pages\n");
1727 TRACE(
"(%p, %p, %d, %p)\n",
string,
buf,
cb, pcb);
1745 editstream.dwCookie = (
DWORD_PTR)&
string;
1746 editstream.dwError = 0;
1815 LPOLECACHE oleCache =
NULL;
1816 FORMATETC formatEtc;
1833 hr = IOleObject_GetUserClassID(
object, &
clsid);
1836 hr = IOleObject_QueryInterface(
object, &
IID_IOleCache, (
void**)&oleCache);
1840 formatEtc.ptd =
NULL;
1841 formatEtc.dwAspect = DVASPECT_CONTENT;
1842 formatEtc.lindex = -1;
1843 formatEtc.tymed = TYMED_GDI;
1844 hr = IOleCache_Cache(oleCache, &formatEtc, 0, &conn);
1848 (
void**)&dataObject);
1851 hr = IRichEditOle_GetClientSite(richEditOle, &clientSite);
1858 stgm.tymed = TYMED_GDI;
1860 stgm.pUnkForRelease =
NULL;
1861 hr = IDataObject_SetData(dataObject, &formatEtc, &stgm,
TRUE);
1865 reObject.
cbStruct =
sizeof(reObject);
1866 reObject.
cp = REO_CP_SELECTION;
1872 reObject.
dvaspect = DVASPECT_CONTENT;
1876 IRichEditOle_InsertObject(richEditOle, &reObject);
1880 IOleClientSite_Release(clientSite);
1882 IDataObject_Release(dataObject);
1884 IOleCache_Release(oleCache);
1886 IOleObject_Release(
object);
1888 IRichEditOle_Release(richEditOle);
1891#define MY_INDENT 200
1899 parFmt.
cbSize =
sizeof(parFmt);
1980 while (indexLow <= indexHigh)
1982 int cmp,
i = (indexLow + indexHigh) / 2;
1999 parFmt.
cbSize =
sizeof(parFmt);
2025 linebreak -
ptr, &parFmt);
2026 ptr = linebreak + 1;
2029 else if (multiline && *
ptr)
2036 }
while (linebreak);
2065 BOOL *anyUsageAdded)
2071 if (!*anyUsageAdded)
2075 parFmt.
cbSize =
sizeof(parFmt);
2081 *anyUsageAdded =
TRUE;
2083 memset(&charFmt, 0,
sizeof(charFmt));
2084 charFmt.
cbSize =
sizeof(charFmt);
2089 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension)))
2107 pszPolicyQualifierId);
2117 BOOL *anyUsageAdded)
2135 if (!*anyUsageAdded)
2139 parFmt.
cbSize =
sizeof(parFmt);
2145 *anyUsageAdded =
TRUE;
2147 memset(&charFmt, 0,
sizeof(charFmt));
2148 charFmt.
cbSize =
sizeof(charFmt);
2153 if (!
usage->cUsageIdentifier)
2156 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
2158 usage->rgpszUsageIdentifier[
i]);
2185 includeCertUsages =
TRUE;
2188 includeAppUsages =
TRUE;
2194 includeAppUsages = includeCertUsages =
TRUE;
2195 if (includeAppUsages)
2197 if (includeCertUsages)
2204 parFmt.
cbSize =
sizeof(parFmt);
2224 pszPolicyQualifierId, policyOid))
2239 &qualifierValue, &
size))
2246 &qualifierValue->
Value, qualifierStr,
size);
2249 return qualifierStr;
2261 &qualifierValue, &
size))
2304 if (cps || userNotice)
2309 if (issuerStatement)
2311 issuerStatement->
cps =
cps;
2341 else if (!
root->fTrustedRoot)
2346 memset(&charFmt, 0,
sizeof(charFmt));
2347 charFmt.
cbSize =
sizeof(charFmt);
2352 parFmt.
cbSize =
sizeof(parFmt);
2368 else if (!
root->fTrustedRoot)
2385 DWORD nameFlags,
int heading)
2392 memset(&charFmt, 0,
sizeof(charFmt));
2393 charFmt.
cbSize =
sizeof(charFmt);
2397 parFmt.
cbSize =
sizeof(parFmt);
2430 memset(&charFmt, 0,
sizeof(charFmt));
2431 charFmt.
cbSize =
sizeof(charFmt);
2435 parFmt.
cbSize =
sizeof(parFmt);
2477 if (issuerStatement->
cps)
2497 HLNF_OPENINNEWWINDOW, 0);
2498 IBindCtx_Release(bctx);
2518 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
2541 if (issuerStatement)
2545 else if (issuerStatement->
cps)
2552 IBindCtx_Release(bctx);
2573 if (issuerStatement)
2601 static const WCHAR fmt[] = {
'V',
'%',
'd',0 };
2615 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2628 cert->pCertInfo->SerialNumber.cbData);
2705 cert->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId, 0);
2724 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData * 8;
2731 &
cert->pCertInfo->SubjectPublicKeyInfo);
2743 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.pbData,
2744 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData);
2856 if (
cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData)
2879 if (
ext->Value.cbData)
2907 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2917 if (
j ==
ext->Value.cbData &&
j % 8)
2919 static const WCHAR pad[] = {
' ',
' ',
' ' };
2975 for (
i = 0;
i <=
len;
i++)
2976 oidW[
i] =
ext->pszObjId[
i];
2990 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
2999 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
3000 if (
cert->pCertInfo->rgExtension[
i].fCritical)
3002 &
cert->pCertInfo->rgExtension[
i]);
3021 ext.Value.pbData = pb;
3022 ext.Value.cbData =
cb;
3168 info->pszOID = oidCopy;
3175 item.pszText = oidCopy;
3187 if (oid[0] !=
'0' && oid[0] !=
'1' && oid[0] !=
'2')
3189 else if (oid[1] !=
'.')
3204 else if (*(
ptr + 1) ==
'.')
3211 else if (!(*(
ptr + 1)))
3227#define MAX_PURPOSE 255
3443 else if (
usage->cUsageIdentifier)
3458 else if (
usage->cUsageIdentifier)
3472 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
3526#define WM_REFRESH_VIEW WM_USER + 0
3535#define MAX_FRIENDLY_NAME 40
3536#define MAX_DESCRIPTION 255
3569 for (
i = 0;
i < purposes;
i++)
3581 usage.rgpszUsageIdentifier =
3583 usage.rgpszUsageIdentifier,
3584 (
usage.cUsageIdentifier + 1) *
sizeof(
LPSTR));
3586 usage.rgpszUsageIdentifier =
3588 if (
usage.rgpszUsageIdentifier)
3589 usage.rgpszUsageIdentifier[
usage.cUsageIdentifier++] =
3598 if (
data->pfPropertiesChanged)
3607 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
3715 for (
i = 0;
i < cItem;
i++)
3764 hdr.dwSize =
sizeof(
hdr);
3778 for (
i = 0;
i <
data->cFields;
i++)
3804 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
3834 data->pCertViewInfo->pCertContext,
3874 info.u.pCertContext =
data->pCertViewInfo->pCertContext;
3960 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3961 data->pCertViewInfo->idxCounterSigner);
3968 return index << 1 | 1;
3975 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3976 data->pCertViewInfo->idxCounterSigner);
4023 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
4024 data->pCertViewInfo->idxCounterSigner);
4053 tvis.u.
item.iImage = 2;
4057 tvis.u.
item.iImage = 0;
4059 tvis.u.
item.iImage = 1;
4060 tvis.u.
item.iSelectedImage = tvis.u.
item.iImage;
4080 else if (
cert->dwRevokedReason)
4129 data->pCertViewInfo->idxSigner,
4130 data->pCertViewInfo->fCounterSigner,
4131 data->pCertViewInfo->idxCounterSigner);
4132 memset(&viewInfo, 0,
sizeof(viewInfo));
4133 viewInfo.
dwSize =
sizeof(viewInfo);
4161 TRACE(
"(%p, %08x, %08lx, %08lx)\n",
hwnd,
msg, wp, lp);
4187 data->pCertViewInfo->idxSigner,
4188 data->pCertViewInfo->fCounterSigner,
4189 data->pCertViewInfo->idxCounterSigner);
4259 if (
data->imageList)
4265 data->selectedCert = 0xffffffff;
4313 static const WCHAR riched[] = {
'r',
'i',
'c',
'h',
'e',
'd',
'2',
'0',0 };
4332 hdr.dwSize =
sizeof(
hdr);
4343 &pages[
hdr.nPages]))
4378 hdr.nPages = nPages;
4394 hdr.u3.ppsp = pages;
4437 memset(&wvt, 0,
sizeof(wvt));
4494 TRACE(
"(%d, %p, %p, %s, %08x, %p)\n", dwContextType, pvContext,
hwnd,
4497 switch (dwContextType)
4503 memset(&viewInfo, 0,
sizeof(viewInfo));
4504 viewInfo.
dwSize =
sizeof(viewInfo);
4512 FIXME(
"unimplemented for context type %d\n", dwContextType);
4526 BOOL isCA = defaultIfNotSpecified;
4528 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4539 if (
info->SubjectType.cbData == 1)
4547 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4589 WARN(
"unable to open certificate store\n");
4615 WARN(
"unable to open certificate store\n");
4638 static const WCHAR trust[] = {
'T',
'r',
'u',
's',
't',0 };
4643 WARN(
"unable to open certificate store\n");
4786 }
while (
ret && ctl);
4794 DWORD *pContentType)
4797 DWORD contentType = 0, expectedContentTypeFlags;
4803 expectedContentTypeFlags =
4808 expectedContentTypeFlags |=
4812 expectedContentTypeFlags |=
4816 expectedContentTypeFlags |=
4821 expectedContentTypeFlags =
4836 *pContentType = contentType;
4943 int len, totalLen = 2;
4991 &
data->contentType);
5000 data->importSrc.dwSubjectChoice =
5017 LPWSTR msgBuf, fullError;
5019 if (
data->pwszWizardTitle)
5020 pTitle =
data->pwszWizardTitle;
5167 if (!
data->hDestCertStore)
5206 !
data->hDestCertStore)
5242 selectInfo.
dwSize =
sizeof(selectInfo);
5257 data->hDestCertStore = store;
5290 switch (
data->contentType)
5419 data->pwszWizardTitle, &
data->importSrc,
data->hDestCertStore)))
5424 if (
data->pwszWizardTitle)
5425 pTitle =
data->pwszWizardTitle;
5473 memset(pages, 0,
sizeof(pages));
5475 pages[nPages].
dwSize =
sizeof(pages[0]);
5479 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5486 pages[nPages].
dwSize =
sizeof(pages[0]);
5490 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5492 pages[nPages].pszHeaderSubTitle =
5516 pages[nPages].
dwSize =
sizeof(pages[0]);
5520 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5522 pages[nPages].pszHeaderSubTitle =
5527 pages[nPages].
dwSize =
sizeof(pages[0]);
5531 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5536 hdr.dwSize =
sizeof(
hdr);
5545 hdr.u3.ppsp = pages;
5546 hdr.nPages = nPages;
5550 if (
data.fileName !=
data.importSrc.u.pwszFileName)
5552 if (
data.freeSource &&
5556 return data.success;
5676 info->pwszProvName,
info->dwProvType, 0);
5681 for (
i = 0;
i <
info->cProvParam;
i++)
5683 info->rgProvParam[
i].pbData,
info->rgProvParam[
i].dwFlags);
5695 DWORD permissions,
size =
sizeof(permissions);
5725 data->exportInfo.u.pCertContext)))
5764 data->contextInfo.dwExportFormat =
5766 data->contextInfo.fExportPrivateKeys =
FALSE;
5770 data->contextInfo.dwExportFormat =
5772 data->contextInfo.fExportPrivateKeys =
TRUE;
5802 int defaultFormatID;
5804 switch (
data->contextInfo.dwExportFormat)
5871 data->contextInfo.dwExportFormat =
5874 data->contextInfo.dwExportFormat =
5878 data->contextInfo.dwExportFormat =
5881 data->contextInfo.fExportChain =
5886 data->contextInfo.dwExportFormat =
5889 data->contextInfo.fExportChain =
TRUE;
5891 data->contextInfo.fStrongEncryption =
TRUE;
5894 skipPasswordPage =
FALSE;
5946 if (
data->pwszWizardTitle)
5947 pTitle =
data->pwszWizardTitle;
5996 if (!passwordLen && !passwordConfirmLen)
5997 data->contextInfo.pwszPassword =
NULL;
5998 else if (passwordLen != passwordConfirmLen)
6007 (passwordLen + 1) *
sizeof(
WCHAR));
6009 (passwordConfirmLen + 1) *
sizeof(
WCHAR));
6017 passwordConfirmLen + 1, (
LPARAM)passwordConfirm);
6047 static const WCHAR cer[] = {
'.',
'c',
'e',
'r',0 };
6048 static const WCHAR crl[] = {
'.',
'c',
'r',
'l',0 };
6049 static const WCHAR ctl[] = {
'.',
'c',
't',
'l',0 };
6050 static const WCHAR p7b[] = {
'.',
'p',
'7',
'b',0 };
6051 static const WCHAR pfx[] = {
'.',
'p',
'f',
'x',0 };
6052 static const WCHAR sst[] = {
'.',
's',
's',
't',0 };
6055 BOOL appendExtension;
6057 switch (
data->contextInfo.dwExportFormat)
6066 switch (
data->exportInfo.dwSubjectChoice)
6083 appendExtension =
wcsicmp(dot, extension) != 0;
6085 appendExtension =
TRUE;
6086 if (appendExtension)
6109 if (
data->pwszWizardTitle)
6110 pTitle =
data->pwszWizardTitle;
6138 LPWSTR msgBuf, fullError;
6140 if (
data->pwszWizardTitle)
6141 pTitle =
data->pwszWizardTitle;
6183 int baseLen, allLen, totalLen = 2, baseID;
6187 switch (exportFormat)
6202 switch (subjectChoice)
6223 totalLen += baseLen +
lstrlenW(filterStr) + 2;
6261 if (
data->exportInfo.pwszExportFileName)
6263 (
LPARAM)
data->exportInfo.pwszExportFileName);
6274 if (
data->contextInfo.dwExportFormat !=
6292 if (
data->pwszWizardTitle)
6293 pTitle =
data->pwszWizardTitle;
6347 data->contextInfo.dwExportFormat,
6348 data->exportInfo.dwSubjectChoice);
6384 switch (
data->exportInfo.dwSubjectChoice)
6420 switch (
data->exportInfo.dwSubjectChoice)
6432 switch (
data->contextInfo.dwExportFormat)
6523 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6526 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6598 memset(&chainPara, 0,
sizeof(chainPara));
6599 chainPara.
cbSize =
sizeof(chainPara);
6608 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6611 if (
i == 0 &&
j == 0)
6613 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6617 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6645 freeKeyProvInfo =
TRUE;
6686 if (freeKeyProvInfo)
6805 &
data->contextInfo,
data->keyProvInfo,
data->deleteKeys)))
6815 if (
data->pwszWizardTitle)
6816 pTitle =
data->pwszWizardTitle;
6840 BOOL hasPrivateKey, showFormatPage =
TRUE;
6848 if (pExportInfo->
dwSize >
sizeof(
data.exportInfo))
6849 data.exportInfo.dwSize =
sizeof(
data.exportInfo);
6850 data.contextInfo.dwSize =
sizeof(
data.contextInfo);
6853 data.contextInfo.fStrongEncryption =
FALSE;
6854 data.contextInfo.fExportPrivateKeys =
FALSE;
6855 data.contextInfo.pwszPassword =
NULL;
6861 sizeof(
data.contextInfo)));
6868 memset(pages, 0,
sizeof(pages));
6870 pages[nPages].
dwSize =
sizeof(pages[0]);
6874 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6883 showFormatPage =
FALSE;
6887 showFormatPage =
FALSE;
6888 data.contextInfo.dwExportFormat =
6892 showFormatPage =
FALSE;
6897 if (hasPrivateKey && showFormatPage)
6899 pages[nPages].
dwSize =
sizeof(pages[0]);
6903 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6904 pages[nPages].pszHeaderTitle =
6906 pages[nPages].pszHeaderSubTitle =
6913 pages[nPages].
dwSize =
sizeof(pages[0]);
6917 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6918 pages[nPages].pszHeaderTitle =
6920 pages[nPages].pszHeaderSubTitle =
6925 if (hasPrivateKey && showFormatPage)
6927 pages[nPages].
dwSize =
sizeof(pages[0]);
6931 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6932 pages[nPages].pszHeaderTitle =
6934 pages[nPages].pszHeaderSubTitle =
6940 pages[nPages].
dwSize =
sizeof(pages[0]);
6944 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6946 pages[nPages].pszHeaderSubTitle =
6951 pages[nPages].
dwSize =
sizeof(pages[0]);
6955 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6960 hdr.dwSize =
sizeof(
hdr);
6969 hdr.u3.ppsp = pages;
6970 hdr.nPages = nPages;
6975 if (
data.freePassword)
6987 return data.success;
7020 FIXME(
"%p: stub\n", pcvsi);
7085 item.stateMask = -1;
7090 if (
len > *allocatedLen)
7095 *allocatedLen =
len;
7110 if (
len > *allocatedLen)
7115 *allocatedLen =
len;
7149 if (
len > *allocatedLen)
7154 *allocatedLen =
len;
7159 item.pszText = none;
7185 static int show_fixme;
7187 FIXME(
"showing location is not implemented\n");
7201 DWORD allocatedLen = 0;
7258 memset(&viewInfo, 0,
sizeof(viewInfo));
7259 viewInfo.
dwSize =
sizeof(viewInfo);
7305 data->dateColumn = 4 -
7311 if (
data->imageList)
7338 while (i < pcsc->cDisplayStores)
7453 FIXME(
"ignoring CRYPTUI_SELECTCERT_MULTISELECT\n");
7465 for (
i = 0;
i <
num;
i++)
7475 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7491 for (
i = 0;
i <
num;
i++)
7500 psp[
i].pfnCallback =
NULL;
7502 psp[
i].pszHeaderTitle =
NULL;
7503 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7505 psp[
i].pszHeaderSubTitle =
NULL;
7507 for (
i = 0;
i <
num;
i++)
7522 FIXME(
"ignoring pfnCallback\n");
7525 if (!(psp[
i].pszHeaderTitle =
strdupAtoW( pages[
i].pszHeaderTitle )))
goto error;
7527 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7530 if (!(psp[
i].pszHeaderSubTitle =
strdupAtoW( pages[
i].pszHeaderSubTitle )))
goto error;
7589 memset(&sc, 0,
sizeof(sc));
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
char * strchr(const char *String, int ch)
static DWORD const fdwReason
#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 const struct @376 import_filters[]
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)
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::@377 type
union StoreInfo::@378 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)
static struct wctab tab[]
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)