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。 只有在不會從 ANSI 轉譯為 Unicode 的情況下,才能使用這種類型的 BSTR,反之亦然。
例如,請勿在 16 位與 32 位 Windows 系統上執行的 32 位應用程式之間使用這些 BSTR。 OLE 16 位到 32 位 (和 32 位到 16 位) 互通性層會轉譯 BSTR 並損毀二進位資料。 傳遞二進位資料的慣用方法是使用VT_UI1的 SAFEARRAY,這不會由 OLE 轉譯。
如果 psz 為 Null,則會配置所要求長度的字串,但不會初始化。 字串 psz 可以包含內嵌的 Null 字元,而且不需要以 Null 結尾。 稍後使用 SysFreeString釋放傳回的字串。
需求
目標平台 | Windows |
標頭 | oleauto.h |
程式庫 | OleAut32.lib |
Dll | OleAut32.dll |