ホーム › Security.Cryptography.Catalog › CryptCATCDFOpen
CryptCATCDFOpen
関数カタログ定義ファイル(CDF)を開いて解析ハンドルを取得する。
シグネチャ
// WINTRUST.dll
#include <windows.h>
CRYPTCATCDF* CryptCATCDFOpen(
LPWSTR pwszFilePath,
PFN_CDF_PARSE_ERROR_CALLBACK pfnParseError // optional
);パラメーター
| 名前 | 型 | 方向 |
|---|---|---|
| pwszFilePath | LPWSTR | in |
| pfnParseError | PFN_CDF_PARSE_ERROR_CALLBACK | inoptional |
戻り値の型: CRYPTCATCDF*
各言語での呼び出し定義
// WINTRUST.dll
#include <windows.h>
CRYPTCATCDF* CryptCATCDFOpen(
LPWSTR pwszFilePath,
PFN_CDF_PARSE_ERROR_CALLBACK pfnParseError // optional
);[DllImport("WINTRUST.dll", ExactSpelling = true)]
static extern IntPtr CryptCATCDFOpen(
[MarshalAs(UnmanagedType.LPWStr)] string pwszFilePath, // LPWSTR
IntPtr pfnParseError // PFN_CDF_PARSE_ERROR_CALLBACK optional
);<DllImport("WINTRUST.dll", ExactSpelling:=True)>
Public Shared Function CryptCATCDFOpen(
<MarshalAs(UnmanagedType.LPWStr)> pwszFilePath As String, ' LPWSTR
pfnParseError As IntPtr ' PFN_CDF_PARSE_ERROR_CALLBACK optional
) As IntPtr
End Function' pwszFilePath : LPWSTR
' pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional
Declare PtrSafe Function CryptCATCDFOpen Lib "wintrust" ( _
ByVal pwszFilePath As LongPtr, _
ByVal pfnParseError As LongPtr) As LongPtr
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。import ctypes
from ctypes import wintypes
CryptCATCDFOpen = ctypes.windll.wintrust.CryptCATCDFOpen
CryptCATCDFOpen.restype = ctypes.c_void_p
CryptCATCDFOpen.argtypes = [
wintypes.LPCWSTR, # pwszFilePath : LPWSTR
ctypes.c_void_p, # pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional
]require 'fiddle'
require 'fiddle/import'
lib = Fiddle.dlopen('WINTRUST.dll')
CryptCATCDFOpen = Fiddle::Function.new(
lib['CryptCATCDFOpen'],
[
Fiddle::TYPE_VOIDP, # pwszFilePath : LPWSTR
Fiddle::TYPE_VOIDP, # pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional
],
Fiddle::TYPE_VOIDP)#[link(name = "wintrust")]
extern "system" {
fn CryptCATCDFOpen(
pwszFilePath: *mut u16, // LPWSTR
pfnParseError: *const core::ffi::c_void // PFN_CDF_PARSE_ERROR_CALLBACK optional
) -> *mut CRYPTCATCDF;
}
// crates: windows-sys provides ready-made bindings for this API.$sig = @"
[DllImport("WINTRUST.dll")]
public static extern IntPtr CryptCATCDFOpen([MarshalAs(UnmanagedType.LPWStr)] string pwszFilePath, IntPtr pfnParseError);
"@
$api = Add-Type -MemberDefinition $sig -Name 'WINTRUST_CryptCATCDFOpen' -Namespace Win32 -PassThru
# $api::CryptCATCDFOpen(pwszFilePath, pfnParseError)#uselib "WINTRUST.dll"
#func global CryptCATCDFOpen "CryptCATCDFOpen" sptr, sptr
; CryptCATCDFOpen pwszFilePath, pfnParseError ; 戻り値は stat
; pwszFilePath : LPWSTR -> "sptr"
; pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional -> "sptr"
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。#uselib "WINTRUST.dll"
#cfunc global CryptCATCDFOpen "CryptCATCDFOpen" wstr, sptr
; res = CryptCATCDFOpen(pwszFilePath, pfnParseError)
; pwszFilePath : LPWSTR -> "wstr"
; pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional -> "sptr"; CRYPTCATCDF* CryptCATCDFOpen(LPWSTR pwszFilePath, PFN_CDF_PARSE_ERROR_CALLBACK pfnParseError)
#uselib "WINTRUST.dll"
#cfunc global CryptCATCDFOpen "CryptCATCDFOpen" wstr, intptr
; res = CryptCATCDFOpen(pwszFilePath, pfnParseError)
; pwszFilePath : LPWSTR -> "wstr"
; pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional -> "intptr"import (
"golang.org/x/sys/windows"
"unsafe"
)
var (
wintrust = windows.NewLazySystemDLL("WINTRUST.dll")
procCryptCATCDFOpen = wintrust.NewProc("CryptCATCDFOpen")
)
// pwszFilePath (LPWSTR), pfnParseError (PFN_CDF_PARSE_ERROR_CALLBACK optional)
r1, _, err := procCryptCATCDFOpen.Call(
uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(pwszFilePath))),
uintptr(pfnParseError),
)
_ = err // syscall.Errno (valid when the call sets last-error)
_ = r1 // CRYPTCATCDF*function CryptCATCDFOpen(
pwszFilePath: PWideChar; // LPWSTR
pfnParseError: Pointer // PFN_CDF_PARSE_ERROR_CALLBACK optional
): Pointer; stdcall;
external 'WINTRUST.dll' name 'CryptCATCDFOpen';result := DllCall("WINTRUST\CryptCATCDFOpen"
, "WStr", pwszFilePath ; LPWSTR
, "Ptr", pfnParseError ; PFN_CDF_PARSE_ERROR_CALLBACK optional
, "Ptr") ; return: CRYPTCATCDF*●CryptCATCDFOpen(pwszFilePath, pfnParseError) = DLL("WINTRUST.dll", "void* CryptCATCDFOpen(char*, void*)")
# 呼び出し: CryptCATCDFOpen(pwszFilePath, pfnParseError)
# pwszFilePath : LPWSTR -> "char*"
# pfnParseError : PFN_CDF_PARSE_ERROR_CALLBACK optional -> "void*"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。