次の方法で共有


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

参照

参照

CComBSTR クラス

CComBSTR::ReadFromStream

その他の技術情報

CComBSTR のメンバ