Option Explicit
Private Declare Sub RtlZeroMemory Lib "kernel32.dll" (Destination As Any, ByRef Length As Long)
Private Declare Sub RtlFillMemory Lib "kernel32.dll" (Destination As Long, Length As Long, Fill As Byte)
Private Declare Function WinVerifyTrust Lib "Wintrust.dll" (hWnd As Long, pgActionID As Long, pWVTData As Long) As Long
Private Declare Function GetLastError Lib "kernel32.dll" () As Long
Private Const ERROR_SUCCESS = 0&
Private Const TRUST_E_NOSIGNATURE = &H800B0100
Private Const TRUST_E_EXPLICIT_DISTRUST = &H800B0111
Private Const CRYPT_E_SECURITY_SETTINGS = &H80092026
Private Const WTD_UI_ALL = 1& 'Display all UI.
Private Const WTD_UI_NONE = 2& ' Display no UI.
Private Const WTD_UI_NOBAD = 3& ' Do not display any negative UI.
Private Const WTD_UI_NOGOOD = 4& ' Do not display any positive UI.
Private Const WTD_REVOKE_NONE = 0& 'No addITional revocation checking will be done.
Private Const WTD_REVOKE_WHOLECHAIN = 1& ' Revocation checking will be done on the whole chain.
Private Const WTD_CHOICE_FILE = 1& ' Use the file pointed to by pFile.
Private Const WTD_CHOICE_CATALOG = 2& ' Use the catalog pointed to by pCatalog.
Private Const WTD_CHOICE_BLOB = 3& ' Use the BLOB pointed to by PBlob.
Private Const WTD_CHOICE_SIGNER = 4& ' Use the WINTRUST_SGNR_INFO structure pointed to by pSgnr.
Private Const WTD_CHOICE_CERT = 5& ' Use the certificate pointed to by pCert.
Private Const WTD_SAFER_FLAG = 256&
Private Const INVALID_HANDLE_VALUE = (-1)
Private Const TRUST_E_SUBJECT_FORM_UNKNOWN = (&H800B0003)
Private Const TRUST_E_PROVIDER_UNKNOWN = (&H800B0001)
Private Const TRUST_E_SUBJECT_NOT_TRUSTED = (&H800B0004)
Private Type GUID
D1 As Long