Страница 13 из 111 SysAllocStringByteLen Принимает на входе строку ANSI и возвращает содержащую ее BSTR. Не выполняет никаких преобразований ANSI-Unicode. BSTR SysAllocStringByteLen( char FAR* psz, unsigned int len );
Параметры: - psz - Заканчивающаяся нулем строка, которую нужно скопировать, или NULL, если новая строка должна остаться неинициализированной.
- len - Число байт, которые нужно скопировать из psz. После скопированных символов добавляется нулевой символ, т. е. всего выделяется len +1 байт.
Выделяет новую строку длиной в len байт, копирует в нее len байт из исходной строки и затем добавляет к концу нулевой символ. Имеется только в 32-разрядных системах. Возвращаемое значение: Указатель на копию строки или NULL, если не хватает памяти. Комментарии: Эта функция предназначена для создания BSTR, содержащих двоичные данные. Вы можете использовать BSTR такого типа только в тех случаях, если они не будут транслироваться из ANSI в Unicode или наоборот. Например, не используйте такие BSTR для обмена информацией между 16- и 32-разрядными приложениями, выполняющимися под управлением 32-разрядной Windows. Слой OLE, обеспечивающий взаимодействие 16—32 (и 32—16), транслирует BSTR и разрушит двоичные данные. Для передачи двоичных данных рекомендуется использовать SAFEARRAY типа VT_UI1, который не транслируется OLE. Если psz равен NULL, то строка заданной длины выделяется, но не инициализируется. Строка psz может содержать внутри нулевые символы и не обязана заканчиваться таким символом. Для освобождения полученной строки используйте SysFreeString. |