4#include "activex/SBStr.h"
7sbstr::sbstr(
const char16 *non_bstr)
8 : bstr_(SysAllocString(non_bstr))
12sbstr::sbstr(
int nSize,
const char16 *non_bstr)
20 bstr_ = ::SysAllocStringLen(non_bstr, nSize);
29void sbstr::Reset(BSTR bstr)
46void sbstr::Swap(sbstr &bstr2)
58BSTR sbstr::Allocate(
const char16 *str)
60 Reset(SysAllocString(str));
64BSTR sbstr::AllocateBytes(
size_t bytes)
66 Reset(SysAllocStringByteLen(NULL,
static_cast<UINT
>(bytes)));
70void sbstr::SetByteLen(
size_t bytes)
72 uint32 *data =
reinterpret_cast<uint32 *
>(bstr_);
73 data[-1] =
static_cast<uint32
>(bytes);
76size_t sbstr::Length()
const
78 return SysStringLen(bstr_);
81size_t sbstr::ByteLength()
const
83 return SysStringByteLen(bstr_);