我用word2003保存一个文件,里面就一行内容mynameisabc。
然后用VC6自带的DFView来看,发现里面有6个流Data
1Table
Comp0
WordDocument
|SummaryInformation
|DocumentSummaryInformation我用下面这个程序来输出:EXTERN_C void wmain()
{
HRESULT hr = S_OK;
IPropertySetStorage *pPropSetStg = NULL;
IPropertyStorage *pPropStg = NULL;
const OLECHAR fn[] = L"d:\\name.doc"; hr=StgIsStorageFile(fn);
ASSERT(SUCCEEDED(hr));
IStorage* pStorage=NULL;
hr=StgOpenStorageEx(fn,STGM_READ|STGM_SHARE_DENY_WRITE,STGFMT_STORAGE,0,
NULL,0,IID_IStorage,(void**)&pStorage);
ASSERT(SUCCEEDED(hr));
IEnumSTATSTG* pEnum=NULL;
hr=pStorage->EnumElements(0,NULL,0,&pEnum);
ASSERT(SUCCEEDED(hr));
STATSTG statstg;
while(S_OK == pEnum->Next(1,&statstg,NULL))
{
printf("type=%d\,,statstg.type);
wprintf(L"name=%s\n",statstg.pwcsName);
CoTaskMemFree(statstg.pwcsName);
}
}输出得到的却是:
type=2,name=Data
type=2,name=1Table
type=2,name=☺CompObj
type=2,name=WordDocument
type=2,name=♣SummaryInformation
type=2,name=♣DocumentSummaryInformation这到底是为什么?
然后用VC6自带的DFView来看,发现里面有6个流Data
1Table
Comp0
WordDocument
|SummaryInformation
|DocumentSummaryInformation我用下面这个程序来输出:EXTERN_C void wmain()
{
HRESULT hr = S_OK;
IPropertySetStorage *pPropSetStg = NULL;
IPropertyStorage *pPropStg = NULL;
const OLECHAR fn[] = L"d:\\name.doc"; hr=StgIsStorageFile(fn);
ASSERT(SUCCEEDED(hr));
IStorage* pStorage=NULL;
hr=StgOpenStorageEx(fn,STGM_READ|STGM_SHARE_DENY_WRITE,STGFMT_STORAGE,0,
NULL,0,IID_IStorage,(void**)&pStorage);
ASSERT(SUCCEEDED(hr));
IEnumSTATSTG* pEnum=NULL;
hr=pStorage->EnumElements(0,NULL,0,&pEnum);
ASSERT(SUCCEEDED(hr));
STATSTG statstg;
while(S_OK == pEnum->Next(1,&statstg,NULL))
{
printf("type=%d\,,statstg.type);
wprintf(L"name=%s\n",statstg.pwcsName);
CoTaskMemFree(statstg.pwcsName);
}
}输出得到的却是:
type=2,name=Data
type=2,name=1Table
type=2,name=☺CompObj
type=2,name=WordDocument
type=2,name=♣SummaryInformation
type=2,name=♣DocumentSummaryInformation这到底是为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货