将CString传递为IStream *

时间:2014-10-02 20:09:26

标签: c++

我需要将CString传递给方法,但该方法需要Istream*作为我想知道的参数,有人可以告诉我如何将CString转换为Istream*

以下是方法:

void ConvertToODF(Istream* spLetterToconvert);

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用SHCreateMemStream(),例如:

CString str = ...;
IStream *strm = SHCreateMemStream((BYTE*)(LPCTSTR)str, str.GetLength() * sizeof(TCHAR));
if (strm)
{
    ConvertToODF(strm);
    strm->Release();
}

根据ConvertToODF()实际所期望的字符编码,您可能需要在调用CString之前转换SHCreateMemStream()的内容。