cryptuiapi.h revision 3194da424708abdd288b28d96892b3a5f3f7df0b
/*
* Copyright (C) 2008 Juan Lang
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __CRYPTUIAPI_H__
#define __CRYPTUIAPI_H__
#include <wintrust.h>
#include <wincrypt.h>
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <pshpack8.h>
/* Values for dwDontUseColumn */
#define CRYPTUI_SELECT_ISSUEDTO_COLUMN 0x00000001
#define CRYPTUI_SELECT_ISSUEDBY_COLUMN 0x00000002
#define CRYPTUI_SELECT_INTENDEDUSE_COLUMN 0x00000004
#define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN 0x00000008
#define CRYPTUI_SELECT_LOCATION_COLUMN 0x00000010
#define CRYPTUI_SELECT_EXPIRATION_COLUMN 0x00000020
/* Values for CRYPTUI_CERT_MGR_STRUCT's dwFlags */
#define CRYPTUI_CERT_MGR_PUBLISHER_TAB 0x00000004
#define CRYPTUI_CERT_MGR_TAB_MASK 0x0000000f
#define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG 0x00008000
typedef struct _CRYPTUI_CERT_MGR_STRUCT
{
typedef const struct _CRYPTUI_CERT_MGR_STRUCT *PCCRYPTUI_CERT_MGR_STRUCT;
typedef struct tagCRYPTUI_INITDIALOG_STRUCT
{
/* Values for CRYPTUI_VIEWCERTIFICATE_STRUCT's dwFlags */
#define CRYPTUI_HIDE_HIERARCHYPAGE 0x00000001
#define CRYPTUI_HIDE_DETAILPAGE 0x00000002
#define CRYPTUI_DISABLE_EDITPROPERTIES 0x00000004
#define CRYPTUI_ENABLE_EDITPROPERTIES 0x00000008
#define CRYPTUI_DISABLE_ADDTOSTORE 0x00000010
#define CRYPTUI_ENABLE_ADDTOSTORE 0x00000020
#define CRYPTUI_ACCEPT_DECLINE_STYLE 0x00000040
#define CRYPTUI_IGNORE_UNTRUSTED_ROOT 0x00000080
#define CRYPTUI_DONT_OPEN_STORES 0x00000100
#define CRYPTUI_ONLY_OPEN_ROOT_STORE 0x00000200
#define CRYPTUI_WARN_UNTRUSTED_ROOT 0x00000400
#define CRYPTUI_ENABLE_REVOCATION_CHECKING 0x00000800
#define CRYPTUI_WARN_REMOTE_TRUST 0x00001000
#define CRYPTUI_DISABLE_EXPORT 0x00002000
#define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT 0x00004000
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN 0x00008000
#define CRYPTUI_DISABLE_HTMLLINK 0x00010000
#define CRYPTUI_DISABLE_ISSUERSTATEMENT 0x00020000
typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTA
{
union {
typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTA *PCCRYPTUI_VIEWCERTIFICATE_STRUCTA;
typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW
{
union {
typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTW *PCCRYPTUI_VIEWCERTIFICATE_STRUCTW;
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO
{
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO *
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO
{
void *pvCallbackData;
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO *
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO
{
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO *
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO
{
union {
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO *
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO
{
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO *
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_INFO
{
union {
union {
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT
{
typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT;
/* Values for CryptUIWizDigitalSign's dwFlags */
#define CRYPTUI_WIZ_NO_UI 0x00000001
#define CRYPTUI_WIZ_DIGITAL_SIGN_EXCLUDE_PAGE_HASHES 0x00000002
#define CRYPTUI_WIZ_DIGITAL_SIGN_INCLUDE_PAGE_HASHES 0x00000004
/* Values for CRYPTUI_WIZ_EXPORT_INFO's dwSubjectChoice */
#define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT 1
#define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT 2
#define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT 3
#define CRYPTUI_WIZ_EXPORT_CERT_STORE 4
#define CRYPTUI_WIZ_EXPORT_FORMAT_CRL 6
#define CRYPTUI_WIZ_EXPORT_FORMAT_CTL 7
typedef struct _CRYPTUI_WIZ_EXPORT_INFO
{
union {
typedef const CRYPTUI_WIZ_EXPORT_INFO *PCCRYPTUI_WIZ_EXPORT_INFO;
/* Values for CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO's dwExportFormat */
#define CRYPTUI_WIZ_EXPORT_FORMAT_DER 1
#define CRYPTUI_WIZ_EXPORT_FORMAT_PFX 2
#define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7 3
#define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64 4
typedef struct _CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO
{
typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO *
/* Values for CRYPTUI_WIZ_IMPORT_SRC_INFO's dwSubjectChoice */
#define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE 1
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT 2
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT 3
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT 4
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE 5
typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO
{
union {
typedef const CRYPTUI_WIZ_IMPORT_SRC_INFO *PCCRYPTUI_WIZ_IMPORT_SRC_INFO;
/* Values for CryptUIWizImport's dwFlags */
#define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE 0x00010000
#define CRYPTUI_WIZ_IMPORT_ALLOW_CERT 0x00020000
#define CRYPTUI_WIZ_IMPORT_ALLOW_CRL 0x00040000
#define CRYPTUI_WIZ_IMPORT_ALLOW_CTL 0x00080000
#define CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE 0x00100000
#define CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER 0x00200000
#define CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE 0x00400000
/* Definitions missing from PSDK's cryptuiapi.h, but documented on MSDN. */
/* Values for CRYPTUI_SELECTCERTIFICATE_STRUCT's dwFlags */
#define CRYPTUI_SELECTCERT_MULTISELECT 0x00000001
typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTA
{
void *pvCallbackData;
typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTA *
typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTW
{
void *pvCallbackData;
typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTW *
typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTA
{
typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTW
{
#include <poppack.h>
#ifdef __cplusplus
}
#endif
#endif