三、复合文件的编码实现
为了更好理解复合文档结构,下面程序片段,演示了建立一个复合文件,并在其下建立一个子存储,在该子存储中再建立一个流,写入数据。
void SampleCreateDoc(){ ::CoInitialize(NULL); // COM 初始化
// 如果是MFC程序,可以使用AfxOleInit()替代HRESULT hr; // 函数执行返回值
IStorage *pStg = NULL; // 根存储接口指针 IStorage *pSub = NULL; // 子存储接口指针 IStream *pStm = NULL; // 流接口指针 hr = ::StgCreateDocfile( // 建立复合文件 L"c:\\a.stg", // 文件名称 STGM_CREATE | STGM_WRITE | STGM_SHARE_EXCLUSIVE, // 打开方式 0, // 保留参数