次の方法で共有


CStringT::SetSysString

更新 : 2007 年 11 月

pbstr によって指される BSTR を再割り当てし、NULL 文字も含めて CStringT オブジェクトの内容をコピーします。

BSTR SetSysString(
   BSTR* pbstr
) const;

パラメータ

  • pbstr
    文字列へのポインタ。

戻り値

新しい文字列を返します。

解説

CStringT オブジェクトの内容に応じて、pbstr によって参照される BSTR の値は変わります。メモリ不足のときは CMemoryException がスローされます。

この関数は、通常オートメーションに参照で渡される文字列の値を変更するときに使用します。

Windows の OLE 再割り当て関数の詳細については、SysReAllocStringLenSysFreeString に関する説明を参照してください。

使用例

BSTR bstr = ::SysAllocString(L"Golf is fun!");

// create a CAtlString and change the OLE
// string to the contents of the BSTR
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best!"));
BSTR bstr2 = str.SetSysString(&bstr);

// Now, both bstr and bstr2 reference a single instance of
// the "Soccer" string. The "Golf" string has been freed.
ASSERT(bstr2 == bstr);   

必要条件

ヘッダー : cstringt.h

参照

参照

CStringT クラス

CMemoryException クラス

その他の技術情報

CStringT のメンバ