Функция SysAllocStringByteLen (oleauto.h)

Принимает строку ANSI в качестве входных данных и возвращает BSTR, содержащий строку ANSI. Не выполняет преобразование ANSI в Юникод.

Синтаксис

BSTR SysAllocStringByteLen(
  [in, optional] LPCSTR psz,
  [in]           UINT   len
);

Параметры

[in, optional] psz

Строка для копирования или NULL, чтобы сохранить строку неинициализированной.

[in] len

Число байт для копирования. После этого помещается символ NULL, выделяя в общей сложности len плюс размер OLECHAR байтов.

Возвращаемое значение

Копия строки или значение NULL, если недостаточно памяти для завершения операции.

Комментарии

Эта функция предоставляется для создания BSTR, содержащих двоичные данные. Этот тип BSTR можно использовать только в тех случаях, когда он не будет переведен из ANSI в Юникод или наоборот.

Например, не используйте эти BSTR между 16-разрядными и 32-разрядными приложениями, работающими в 32-разрядной системе Windows. Уровень взаимодействия OLE от 16 до 32-разрядных (и от 32 до 16-разрядных) преобразует BSTR и повреждает двоичные данные. Предпочтительным методом передачи двоичных данных является использование safearray VT_UI1, который не будет преобразован с помощью OLE.

Если psz имеет значение Null, строка запрошенной длины выделяется, но не инициализируется. Строковый psz может содержать внедренные символы NULL и не должен заканчиваться на null. Освободите возвращаемую строку позже с помощью SysFreeString.

Требования

   
Целевая платформа Windows
Header oleauto.h
Библиотека OleAut32.lib
DLL OleAut32.dll

См. также раздел

Функции управления строками