描述:
C++开发ActiveX控件从本地文件(.doc)创建IStorage然后创建ISteam,最后从流中读取数据到char*缓冲区,不知为何无法读出,请高手帮忙!代码如下:
其中:pwszName为任意宽字符串
test.doc存在
char* m_charFMsgFile
ULONG ulReadLen
IStorage *mstgroot = NULL;
IStream *mFStream = NULL;
// 创建一个存储对象...
if ((mstgroot) || FAILED(hr = StgCreateDocfile(L"c:\\test.doc",STGM_TRANSACTED | STGM_READWRITE |
STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &mstgroot)))
return hr;
// 创建流对象
if (pwszName != NULL)
{
if((mFStream)||FAILED(mstgroot->CreateStream(pwszName,
STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &mFStream)))
return hr;
MemFree(pwszName);
}
//将流读入缓冲区
if(mFStream != NULL)
{
mFStream->Read(this ->m_charFMsgFile,1024000,&ulReadLen);
}
m_charFMsgFile到这里为空字符串