...................................
[DllImport("cryptui.dll", SetLastError = true)]
public static extern bool CryptUIDlgViewCertificate(
ref PCCRYPTUI_VIEWCERTIFICATE_STRUCT pCertViewInfo,
ref bool pfPropertiesChanged);
[StructLayout(LayoutKind.Sequential)]
public struct PCCRYPTUI_VIEWCERTIFICATE_STRUCT
{
public uint dwSize; //required
public IntPtr hwndParent;
public uint dwFlags;
public String szTitle;
public IntPtr pCertContext; //required
public IntPtr rgszPurposes;
uint cPurposes;
IntPtr hWVTStateData;
bool fpCryptProviderDataTrustedUsage;
uint idxSigner;
uint idxCert;
bool fCounterSigner;
uint idxCounterSigner;
uint cStores;
IntPtr rghStores;
uint cPropSheetPages;
IntPtr rgPropSheetPages;
public uint nStartPage; //required
}
....................................................................................
IntPtr pCertContext =
CertFindCertificateInStore(hStoreHandle, MY_ENCODING_TYPE, 0, FIND_HASH , ref chb, IntPtr.Zero);
if (pCertContext != IntPtr.Zero)
{
PCCRYPTUI_VIEWCERTIFICATE_STRUCT vcstruct = new PCCRYPTUI_VIEWCERTIFICATE_STRUCT();
vcstruct.dwSize = (uint)Marshal.SizeOf(vcstruct);
vcstruct.pCertContext = pCertContext;
vcstruct.szTitle = "Мой сертификат";
vcstruct.nStartPage = 0;
bool propschanged = false;
Form1.CryptUIDlgViewCertificate(ref vcstruct, ref propschanged); //show the cert
}
.....
Отредактировано пользователем 29 июня 2012 г. 16:58:21(UTC)
| Причина: Не указана