这个是我从网上找的,然后根据自己的情况改写 的,但是每当我往WordDocument流中写入时,相应的WORD文档就不能打开了,请问是编码问题吗?求思路
::OleInitialize (NULL);
// TODO: 在此添加控件通知处理程序代码
IStorage* pStorage=NULL;
IStream* pStream=NULL;
//检测是否是复合文档
HRESULT hResult=::StgIsStorageFile(TEXT("E:\\资料集锦\\思想汇报\\try.doc"));
if(FAILED(hResult))
{
MessageBox(L"不是复合文档,i am sorry",0);
return;
}
//打开复合文档
hResult=::StgOpenStorage(TEXT("E:\\资料集锦\\思想汇报\\try.doc"),NULL,    STGM_READWRITE | STGM_SHARE_EXCLUSIVE ,NULL,0,&pStorage);
//枚举复合文档
IEnumSTATSTG *iEnum=NULL;
hResult=pStorage->EnumElements(0,NULL,0,&iEnum);
if(FAILED(hResult))
{
MessageBox(L"枚举器获取失败,so  i am sorry",0,0);
return;
}
STATSTG stg={0};
//怎么样才能给WordDocument
while(NOERROR==iEnum->Next(1,&stg,NULL))
{
if(STGTY_STREAM==stg.type)
{
MessageBox(stg.pwcsName,L"istream",0);

}
else if(STGTY_STORAGE==stg.type )
{
MessageBox(L"STORAGE",0,0);
}
::CoTaskMemFree(stg.pwcsName);
}
hResult=pStorage->OpenStream(TEXT("WordDocument"),0,STGM_DIRECT|STGM_READWRITE|STGM_SHARE_EXCLUSIVE,0,&pStream);

CComVariant var(_T("dsada"));
hResult=pStream->Write(var.bstrVal,var.GetSize(),NULL);
pStorage->Release();
pStream->Release();
::OleUninitialize ();WordstgOpen