ホーム › Networking.WinInet › CommitUrlCacheEntryBinaryBlob
CommitUrlCacheEntryBinaryBlob
関数バイナリBLOBデータをURLキャッシュへ登録する。
シグネチャ
// WININET.dll
#include <windows.h>
DWORD CommitUrlCacheEntryBinaryBlob(
LPCWSTR pwszUrlName,
DWORD dwType,
FILETIME ftExpireTime,
FILETIME ftModifiedTime,
const BYTE* pbBlob, // optional
DWORD cbBlob
);パラメーター
| 名前 | 型 | 方向 |
|---|---|---|
| pwszUrlName | LPCWSTR | in |
| dwType | DWORD | in |
| ftExpireTime | FILETIME | in |
| ftModifiedTime | FILETIME | in |
| pbBlob | BYTE* | inoptional |
| cbBlob | DWORD | in |
戻り値の型: DWORD
各言語での呼び出し定義
// WININET.dll
#include <windows.h>
DWORD CommitUrlCacheEntryBinaryBlob(
LPCWSTR pwszUrlName,
DWORD dwType,
FILETIME ftExpireTime,
FILETIME ftModifiedTime,
const BYTE* pbBlob, // optional
DWORD cbBlob
);[DllImport("WININET.dll", ExactSpelling = true)]
static extern uint CommitUrlCacheEntryBinaryBlob(
[MarshalAs(UnmanagedType.LPWStr)] string pwszUrlName, // LPCWSTR
uint dwType, // DWORD
FILETIME ftExpireTime, // FILETIME
FILETIME ftModifiedTime, // FILETIME
IntPtr pbBlob, // BYTE* optional
uint cbBlob // DWORD
);<DllImport("WININET.dll", ExactSpelling:=True)>
Public Shared Function CommitUrlCacheEntryBinaryBlob(
<MarshalAs(UnmanagedType.LPWStr)> pwszUrlName As String, ' LPCWSTR
dwType As UInteger, ' DWORD
ftExpireTime As FILETIME, ' FILETIME
ftModifiedTime As FILETIME, ' FILETIME
pbBlob As IntPtr, ' BYTE* optional
cbBlob As UInteger ' DWORD
) As UInteger
End Function' pwszUrlName : LPCWSTR
' dwType : DWORD
' ftExpireTime : FILETIME
' ftModifiedTime : FILETIME
' pbBlob : BYTE* optional
' cbBlob : DWORD
Declare PtrSafe Function CommitUrlCacheEntryBinaryBlob Lib "wininet" ( _
ByVal pwszUrlName As LongPtr, _
ByVal dwType As Long, _
ByVal ftExpireTime As LongPtr, _
ByVal ftModifiedTime As LongPtr, _
ByVal pbBlob As LongPtr, _
ByVal cbBlob As Long) As Long
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。import ctypes
from ctypes import wintypes
CommitUrlCacheEntryBinaryBlob = ctypes.windll.wininet.CommitUrlCacheEntryBinaryBlob
CommitUrlCacheEntryBinaryBlob.restype = wintypes.DWORD
CommitUrlCacheEntryBinaryBlob.argtypes = [
wintypes.LPCWSTR, # pwszUrlName : LPCWSTR
wintypes.DWORD, # dwType : DWORD
FILETIME, # ftExpireTime : FILETIME
FILETIME, # ftModifiedTime : FILETIME
ctypes.POINTER(ctypes.c_ubyte), # pbBlob : BYTE* optional
wintypes.DWORD, # cbBlob : DWORD
]require 'fiddle'
require 'fiddle/import'
lib = Fiddle.dlopen('WININET.dll')
CommitUrlCacheEntryBinaryBlob = Fiddle::Function.new(
lib['CommitUrlCacheEntryBinaryBlob'],
[
Fiddle::TYPE_VOIDP, # pwszUrlName : LPCWSTR
-Fiddle::TYPE_INT, # dwType : DWORD
Fiddle::TYPE_VOIDP, # ftExpireTime : FILETIME
Fiddle::TYPE_VOIDP, # ftModifiedTime : FILETIME
Fiddle::TYPE_VOIDP, # pbBlob : BYTE* optional
-Fiddle::TYPE_INT, # cbBlob : DWORD
],
-Fiddle::TYPE_INT)#[link(name = "wininet")]
extern "system" {
fn CommitUrlCacheEntryBinaryBlob(
pwszUrlName: *const u16, // LPCWSTR
dwType: u32, // DWORD
ftExpireTime: FILETIME, // FILETIME
ftModifiedTime: FILETIME, // FILETIME
pbBlob: *const u8, // BYTE* optional
cbBlob: u32 // DWORD
) -> u32;
}
// crates: windows-sys provides ready-made bindings for this API.$sig = @"
[DllImport("WININET.dll")]
public static extern uint CommitUrlCacheEntryBinaryBlob([MarshalAs(UnmanagedType.LPWStr)] string pwszUrlName, uint dwType, FILETIME ftExpireTime, FILETIME ftModifiedTime, IntPtr pbBlob, uint cbBlob);
"@
$api = Add-Type -MemberDefinition $sig -Name 'WININET_CommitUrlCacheEntryBinaryBlob' -Namespace Win32 -PassThru
# $api::CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, pbBlob, cbBlob)#uselib "WININET.dll"
#func global CommitUrlCacheEntryBinaryBlob "CommitUrlCacheEntryBinaryBlob" sptr, sptr, sptr, sptr, sptr, sptr
; CommitUrlCacheEntryBinaryBlob pwszUrlName, dwType, ftExpireTime, ftModifiedTime, varptr(pbBlob), cbBlob ; 戻り値は stat
; pwszUrlName : LPCWSTR -> "sptr"
; dwType : DWORD -> "sptr"
; ftExpireTime : FILETIME -> "sptr"
; ftModifiedTime : FILETIME -> "sptr"
; pbBlob : BYTE* optional -> "sptr"
; cbBlob : DWORD -> "sptr"
; ※値渡し構造体は直接渡せません。intにパック、または var で構造体変数を渡してください。
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。出力引数:
#uselib "WININET.dll" #cfunc global CommitUrlCacheEntryBinaryBlob "CommitUrlCacheEntryBinaryBlob" wstr, int, int, int, var, int ; res = CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, pbBlob, cbBlob) ; pwszUrlName : LPCWSTR -> "wstr" ; dwType : DWORD -> "int" ; ftExpireTime : FILETIME -> "int" ; ftModifiedTime : FILETIME -> "int" ; pbBlob : BYTE* optional -> "var" ; cbBlob : DWORD -> "int" ; ※値渡し構造体は直接渡せません。intにパック、または var で構造体変数を渡してください。 ; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。#uselib "WININET.dll" #cfunc global CommitUrlCacheEntryBinaryBlob "CommitUrlCacheEntryBinaryBlob" wstr, int, int, int, sptr, int ; res = CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, varptr(pbBlob), cbBlob) ; pwszUrlName : LPCWSTR -> "wstr" ; dwType : DWORD -> "int" ; ftExpireTime : FILETIME -> "int" ; ftModifiedTime : FILETIME -> "int" ; pbBlob : BYTE* optional -> "sptr" ; cbBlob : DWORD -> "int" ; ※値渡し構造体は直接渡せません。intにパック、または var で構造体変数を渡してください。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
出力引数:
; DWORD CommitUrlCacheEntryBinaryBlob(LPCWSTR pwszUrlName, DWORD dwType, FILETIME ftExpireTime, FILETIME ftModifiedTime, BYTE* pbBlob, DWORD cbBlob) #uselib "WININET.dll" #cfunc global CommitUrlCacheEntryBinaryBlob "CommitUrlCacheEntryBinaryBlob" wstr, int, int, int, var, int ; res = CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, pbBlob, cbBlob) ; pwszUrlName : LPCWSTR -> "wstr" ; dwType : DWORD -> "int" ; ftExpireTime : FILETIME -> "int" ; ftModifiedTime : FILETIME -> "int" ; pbBlob : BYTE* optional -> "var" ; cbBlob : DWORD -> "int" ; ※値渡し構造体は直接渡せません。intにパック、または var で構造体変数を渡してください。 ; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。; DWORD CommitUrlCacheEntryBinaryBlob(LPCWSTR pwszUrlName, DWORD dwType, FILETIME ftExpireTime, FILETIME ftModifiedTime, BYTE* pbBlob, DWORD cbBlob) #uselib "WININET.dll" #cfunc global CommitUrlCacheEntryBinaryBlob "CommitUrlCacheEntryBinaryBlob" wstr, int, int, int, intptr, int ; res = CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, varptr(pbBlob), cbBlob) ; pwszUrlName : LPCWSTR -> "wstr" ; dwType : DWORD -> "int" ; ftExpireTime : FILETIME -> "int" ; ftModifiedTime : FILETIME -> "int" ; pbBlob : BYTE* optional -> "intptr" ; cbBlob : DWORD -> "int" ; ※値渡し構造体は直接渡せません。intにパック、または var で構造体変数を渡してください。 ; ※出力/バッファ引数はポインタ方式(token=intptr / 呼び出しは varptr(変数))。
import (
"golang.org/x/sys/windows"
"unsafe"
)
var (
wininet = windows.NewLazySystemDLL("WININET.dll")
procCommitUrlCacheEntryBinaryBlob = wininet.NewProc("CommitUrlCacheEntryBinaryBlob")
)
// pwszUrlName (LPCWSTR), dwType (DWORD), ftExpireTime (FILETIME), ftModifiedTime (FILETIME), pbBlob (BYTE* optional), cbBlob (DWORD)
r1, _, err := procCommitUrlCacheEntryBinaryBlob.Call(
uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(pwszUrlName))),
uintptr(dwType),
uintptr(ftExpireTime),
uintptr(ftModifiedTime),
uintptr(pbBlob),
uintptr(cbBlob),
)
_ = err // syscall.Errno (valid when the call sets last-error)
_ = r1 // DWORDfunction CommitUrlCacheEntryBinaryBlob(
pwszUrlName: PWideChar; // LPCWSTR
dwType: DWORD; // DWORD
ftExpireTime: FILETIME; // FILETIME
ftModifiedTime: FILETIME; // FILETIME
pbBlob: Pointer; // BYTE* optional
cbBlob: DWORD // DWORD
): DWORD; stdcall;
external 'WININET.dll' name 'CommitUrlCacheEntryBinaryBlob';result := DllCall("WININET\CommitUrlCacheEntryBinaryBlob"
, "WStr", pwszUrlName ; LPCWSTR
, "UInt", dwType ; DWORD
, "Ptr", ftExpireTime ; FILETIME
, "Ptr", ftModifiedTime ; FILETIME
, "Ptr", pbBlob ; BYTE* optional
, "UInt", cbBlob ; DWORD
, "UInt") ; return: DWORD●CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, pbBlob, cbBlob) = DLL("WININET.dll", "dword CommitUrlCacheEntryBinaryBlob(char*, dword, void*, void*, void*, dword)")
# 呼び出し: CommitUrlCacheEntryBinaryBlob(pwszUrlName, dwType, ftExpireTime, ftModifiedTime, pbBlob, cbBlob)
# pwszUrlName : LPCWSTR -> "char*"
# dwType : DWORD -> "dword"
# ftExpireTime : FILETIME -> "void*"
# ftModifiedTime : FILETIME -> "void*"
# pbBlob : BYTE* optional -> "void*"
# cbBlob : DWORD -> "dword"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。