public static extern Boolean CryptUIWizImport(
     Int32 dwFlags,
     IntPtr hwndParent,
     IntPtr pwszWizardTitle,
     ref CRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,
     IntPtr hDestCertStore
     );
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: certimp.exe list.crl");
                Environment.ExitCode = 1;
            }
            else
            {
                IntPtr hLocalCertStore = CertOpenStore(
                    CERT_STORE_PROV_SYSTEM,
                    0,
                    IntPtr.Zero,
                    CERT_SYSTEM_STORE_LOCAL_MACHINE,
                    "ROOT"
                    );

                CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc = new CRYPTUI_WIZ_IMPORT_SRC_INFO();
                importSrc.dwSize          = Marshal.SizeOf(importSrc);
                importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;
                importSrc.pwszFileName    = args[0];
                importSrc.pwszPassword    = null;
                importSrc.dwFlags         = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;

                if (!CryptUIWizImport(
                        CRYPTUI_WIZ_NO_UI,
                        IntPtr.Zero,
                        IntPtr.Zero,
                        ref importSrc,
                        hLocalCertStore
                        ))
                {
                    Console.WriteLine("CryptUIWizImport error " + Marshal.GetLastWin32Error());
                    Environment.ExitCode = -1;
                }
            }
        }