SysAllocStringByteLen 関数 (oleauto.h)
ANSI 文字列を入力として受け取り、ANSI 文字列を含む BSTR を返します。 ANSI から Unicode への変換は実行しません。
構文
BSTR SysAllocStringByteLen(
[in, optional] LPCSTR psz,
[in] UINT len
);
パラメーター
[in, optional] psz
コピーする文字列。初期化されていない文字列を保持する場合は NULL。
[in] len
コピーするバイト数。 後で null 文字が配置され、 合計 len と OLECHAR バイトのサイズが割り当てられます。
戻り値
文字列のコピー。操作を完了するためのメモリが不足している場合は NULL。
解説
この関数は、バイナリ データを含む BSTR を作成するために提供されます。 この種類の BSTR は、ANSI から Unicode に変換されない場合、またはその逆の場合にのみ使用できます。
たとえば、32 ビット Windows システムで実行されている 16 ビットアプリケーションと 32 ビット アプリケーションの間では、これらの BSTR を使用しないでください。 OLE 16 ビットから 32 ビット (および 32 ビットから 16 ビット) の相互運用性レイヤーは、BSTR を変換し、バイナリ データを破損します。 バイナリ データを渡す場合の推奨される方法は、VT_UI1の SAFEARRAY を使用することです。OLE では変換されません。
psz が Null の場合、要求された長さの文字列が割り当てられますが、初期化されません。 文字列 psz には null 文字を埋め込むことができます。Null で終わる必要はありません。 後で SysFreeString を使用して、返された文字列を解放します。
必要条件
対象プラットフォーム | Windows |
ヘッダー | oleauto.h |
Library | OleAut32.lib |
[DLL] | OleAut32.dll |