CComBSTR::WriteToStream
更新 : 2007 年 11 月
CComBSTR::m_str メンバをストリームに保存します。
HRESULT WriteToStream(
IStream* pStream
) throw( );
パラメータ
- pStream
[入力] ストリームに対する IStream インターフェイスへのポインタ。
戻り値
標準の HRESULT 値を返します。
解説
BSTR は、ReadFromStream 関数を使用してストリームの内容から再作成できます。
使用例
//implementation of IDataObject::GetData()
STDMETHODIMP CMyDataObj::GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium)
{
HRESULT hr = S_OK;
if (pformatetcIn->cfFormat == CF_TEXT && pformatetcIn->tymed == TYMED_ISTREAM)
{
IStream *pStm;
// Create an IStream from global memory
hr = CreateStreamOnHGlobal(NULL, TRUE, &pStm);
if (FAILED(hr))
return hr;
// Initialize CComBSTR
CComBSTR bstrStr = OLESTR("Hello World");
// Serialize string into stream
// the length followed by actual string is serialized into stream
hr = bstrStr.WriteToStream(pStm);
// Pass the IStream pointer back through STGMEDIUM struct
pmedium->tymed = TYMED_ISTREAM;
pmedium->pstm = pStm;
pmedium->pUnkForRelease = NULL;
}
return hr;
}
必要条件
ヘッダー : atlcomcli.h