Win32 API 日本語リファレンス
ホームデータ型 › BSTR

BSTR

データ型
OLE/COM の長さ前置き付き文字列(UTF-16)。SysAllocString で確保、SysFreeString で解放。
C 型OLECHAR*サイズx64: 8 / x86: 4 バイト分類文字列 (Unicode/UTF-16)

各言語での型表記

FFI/呼び出し定義で BSTR に対応する型(代表例)。文字列はマーシャリング方法により表現が異なる場合があります。

言語
C/C++LPCWSTR
C# (P/Invoke)string
VB.NETString
VBALongPtr
Python (ctypes)wintypes.LPCWSTR
Ruby (Fiddle)Fiddle::TYPE_VOIDP
Rust*const u16
PowerShellstring
HSP3.7wstr
HSP3.8wstr
IronHSPwstr
Go (syscall)*uint16
Delphi/PascalPWideChar
AutoHotkey v2WStr
なでしこ1char*
Zig[*c]const u16
NimWideCString
Dconst(wchar)*
JuliaCwstring
LuaJITconst uint16_t*
Node.js (koffi)'str16'
Deno"buffer"
PHP (FFI)const uint16_t*
Java (JNA)WString
CrystalUInt16*
Dart (FFI)Pointer<Utf16>
Free PascalPWideChar
HaskellCWString
OCaml (ctypes)(ptr uint16_t)
Common Lisp (CFFI)(:string :encoding :utf-16le)
Perl (Win32::API)LPCWSTR

※ .NET(C#/VB)では string/String に [MarshalAs(UnmanagedType.BStr)] を付けます(SysAllocString/SysFreeString による確保・解放はランタイムが処理)。