wintrust: Add some stubs.
diff --git a/include/wintrust.h b/include/wintrust.h
index e86179b..174a391 100644
--- a/include/wintrust.h
+++ b/include/wintrust.h
@@ -121,6 +121,166 @@
     CRYPT_TRUST_REG_ENTRY sCleanupProvider;
 } CRYPT_REGISTER_ACTIONID, *PCRYPT_REGISTER_ACTIONID;
 
+typedef struct _CRYPT_PROVUI_DATA {
+    DWORD cbStruct;
+    DWORD dwFinalError;
+    WCHAR *pYesButtonText;
+    WCHAR *pNoButtonText;
+    WCHAR *pMoreInfoButtonText;
+    WCHAR *pAdvancedLinkText;
+    WCHAR *pCopyActionText;
+    WCHAR *pCopyActionTextNoTS;
+    WCHAR *pCopyActionTextNotSigned;
+} CRYPT_PROVUI_DATA, *PCRYPT_PROVUI_DATA;
+
+typedef struct _CRYPT_PROVIDER_CERT {
+    DWORD               cbStruct;
+    PCCERT_CONTEXT      pCert;
+    BOOL                fCommercial;
+    BOOL                fTrustedRoot;
+    BOOL                fSelfSigned;
+    BOOL                fTestCert;
+    DWORD               dwRevokedReason;
+    DWORD               dwConfidence;
+    DWORD               dwError;
+    CTL_CONTEXT        *pTrustListContext;
+    BOOL                fTrustListSignerCert;
+    PCCTL_CONTEXT       pCtlContext;
+    DWORD               dwCtlError;
+    BOOL                fIsCyclic;
+    PCERT_CHAIN_ELEMENT pChainElement;
+} CRYPT_PROVIDER_CERT, *PCRYPT_PROVIDER_CERT;
+
+typedef struct _CRYPT_PROVIDER_SGNR {
+    DWORD                cbStruct;
+    FILETIME             sftVerifyAsOf;
+    DWORD                csCertChain;
+    CRYPT_PROVIDER_CERT *pasCertChain;
+    DWORD                dwSignerType;
+    CMSG_SIGNER_INFO    *psSigner;
+    DWORD                dwError;
+    DWORD                csCounterSigners;
+    struct _CRYPT_PROVIDER_SGNR *pasCounterSigners;
+    PCCERT_CHAIN_CONTEXT pChainContext;
+} CRYPT_PROVIDER_SGNR, *PCRYPT_PROVIDER_SGNR;
+
+typedef struct _CRYPT_PROVIDER_PRIVDATA {
+    DWORD cbStruct;
+    GUID  gProviderID;
+    DWORD cbProvData;
+    void *pvProvData;
+} CRYPT_PROVIDER_PRIVDATA, *PCRYPT_PROVIDER_PRIVDATA;
+
+struct _CRYPT_PROVIDER_DATA;
+
+typedef void * (*PFN_CPD_MEM_ALLOC)(DWORD cbSize);
+typedef void (*PFN_CPD_MEM_FREE)(void *pvMem2Free);
+typedef BOOL (*PFN_CPD_ADD_STORE)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ HCERTSTORE hStore2Add);
+typedef BOOL (*PFN_CPD_ADD_SGNR)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ BOOL fCounterSigner, DWORD idxSigner, struct _CRYPT_PROVIDER_SGNR *pSgnr2Add);
+typedef BOOL (*PFN_CPD_ADD_CERT)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner,
+ PCCERT_CONTEXT pCert2Add);
+typedef BOOL (*PFN_CPD_ADD_PRIVDATA)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ struct _CRYPT_PROVIDER_PRIVDATA *pPrivData2Add);
+typedef HRESULT (*PFN_PROVIDER_INIT_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_OBJTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_SIGTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_CERTTTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_FINALPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_TESTFINALPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_CLEANUP_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef BOOL (*PFN_PROVIDER_CERTCHKPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner,
+ BOOL fCounterSignerChain, DWORD idxCounterSigner);
+
+typedef struct _CRYPT_PROVIDER_FUNCTIONS {
+    DWORD cbStruct;
+    PFN_CPD_MEM_ALLOC    pfnAlloc;
+    PFN_CPD_MEM_FREE     pfnFree;
+    PFN_CPD_ADD_STORE    pfnAddStore2Chain;
+    PFN_CPD_ADD_SGNR     pfnAddSgnr2Chain;
+    PFN_CPD_ADD_CERT     pfnAddCert2Chain;
+    PFN_CPD_ADD_PRIVDATA pfnAddPrivData2Chain;
+    PFN_PROVIDER_INIT_CALL            pfnInitialize;
+    PFN_PROVIDER_OBJTRUST_CALL        pfnObjectTrust;
+    PFN_PROVIDER_SIGTRUST_CALL        pfnSignatureTrust;
+    PFN_PROVIDER_CERTTTRUST_CALL      pfnCertificateTrust;
+    PFN_PROVIDER_FINALPOLICY_CALL     pfnFinalPolicy;
+    PFN_PROVIDER_CERTCHKPOLICY_CALL   pfnCertCheckPolicy;
+    PFN_PROVIDER_TESTFINALPOLICY_CALL pfnTestFinalPolicy;
+    struct _CRYPT_PROVUI_FUNCS       *psUIpfns;
+    PFN_PROVIDER_CLEANUP_CALL         pfnCleanupPolicy;
+} CRYPT_PROVIDER_FUNCTIONS, *PCRYPT_PROVIDER_FUNCTIONS;
+
+struct SIP_DISPATCH_INFO_;
+struct SIP_SUBJECTINFO_;
+struct SIP_INDIRECT_DATA_;
+
+typedef struct _PROVDATA_SIP {
+    DWORD cbStruct;
+    GUID  gSubject;
+    struct SIP_DISPATCH_INFO_ *pSip;
+    struct SIP_DISPATCH_INFO_ *pCATSip;
+    struct SIP_SUBJECTINFO_   *psSipSubjectInfo;
+    struct SIP_SUBJECTINFO_   *psSipCATSubjectInfo;
+    struct SIP_INDIRECT_DATA_ *psIndirectData;
+} PROVDATA_SIP, *PPROVDATA_SIP;
+
+typedef struct _CRYPT_PROVIDER_DATA {
+    DWORD                     cbStruct;
+    WINTRUST_DATA            *pWintrustData;
+    BOOL                      fOpenedFile;
+    HWND                      hWndParent;
+    GUID                     *pgActionID;
+    HCRYPTPROV                hProv;
+    DWORD                     dwError;
+    DWORD                     dwRegSecuritySettings;
+    DWORD                     dwRegPolicySettings;
+    CRYPT_PROVIDER_FUNCTIONS *psPfns;
+    DWORD                     cdwTrustStepErrors;
+    DWORD                    *padwTrustStepErrors;
+    DWORD                     chStores;
+    HCERTSTORE               *pahStores;
+    DWORD                     dwEncoding;
+    HCRYPTMSG                 hMsg;
+    DWORD                     csSigners;
+    CRYPT_PROVIDER_SGNR      *pasSigners;
+    DWORD                     dwSubjectChoice;
+    union {
+        struct _PROVDATA_SIP        *pPDSip;
+    } DUMMYUNIONNAME;
+    char                     *pszUsageOID;
+    BOOL                      fRecallWithState;
+    FILETIME                  sftSystemTime;
+    char                      *pszCTLSignerUsageOID;
+    DWORD                     dwProvFlags;
+    DWORD                     dwFinalError;
+    PCERT_USAGE_MATCH         pRequestUsage;
+    DWORD                     dwTrustPubSettings;
+    DWORD                     dwUIStateFlags;
+} CRYPT_PROVIDER_DATA, *PCRYPT_PROVIDER_DATA;
+
+typedef BOOL (*PFN_PROVUI_CALL)(HWND hWndSecurityDialog,
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+
+typedef struct _CRYPT_PROVUI_FUNCS {
+    DWORD cbStruct;
+    CRYPT_PROVUI_DATA psUIData;
+    PFN_PROVUI_CALL pfnOnMoreInfoClick;
+    PFN_PROVUI_CALL pfnOnMoreInfoClickDefault;
+    PFN_PROVUI_CALL pfnOnAdvancedClick;
+    PFN_PROVUI_CALL pfnOnAdvancedClickDefault;
+} CRYPT_PROVUI_FUNCS, *PCRYPT_PROVUI_FUNCS;
+
 #include <poppack.h>
 
 
@@ -131,6 +291,12 @@
 BOOL      WINAPI WintrustAddActionID(GUID*,DWORD,CRYPT_REGISTER_ACTIONID*);
 void      WINAPI WintrustGetRegPolicyFlags(DWORD*);
 LONG      WINAPI WinVerifyTrust(HWND,GUID*,WINTRUST_DATA*);
+HRESULT   WINAPI WinVerifyTrustEx(HWND,GUID*,WINTRUST_DATA*);
+
+CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain(
+ CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner,
+ DWORD idxCounterSigner);
+CRYPT_PROVIDER_DATA * WINAPI WTHelperProvDataFromStateData(HANDLE hStateData);
 
 #ifdef __cplusplus
 }