最近解析老版本office和qq的文件发现其中其实都是复合文档,故对复合文档进行了解析
头文件在这里
复合文档解析
使用方式
#include "ReadStorage.h"
using namespace std;
int main()
{
// WCHAR szPath[] = L"G:\\WorkSpace\\Registry.db";
// WCHAR szPathName[] = L"E:\\WorkSpace\\QQDcyt\\Registry.db";
WCHAR szPathName[] = L"E:\\文件夹测试目录\\文档\\20141012210616692.ppt";
// WCHAR szPath[] = L"E:\\WorkSpace\\QQDcyt\\Registry2.0.db";
IStorage* pIsStorage = NULL;
// 枚举复合文档
IEnumSTATSTG *iEnum = NULL;
IEnumSTATSTG* iEnumStub = NULL;
STATSTG stg = { 0 };
STATSTG stgStub = { 0 };
//判断是否为复合文档
if (isStorageFile(szPathName))
{
pIsStorage = openStorageFile(szPathName);
}
iEnum = getEnumStorageFile(pIsStorage);
stg = getNextEnumElements(iEnum);
//保存文件夹
std::wstring strPath = L"E:\\文件夹测试目录\\文档\\20141012210616692";
GetEnum(stg, pIsStorage, iEnum, strPath);
pIsStorage->Release();
// CoTaskMemFree(stg.pwcsName);
return 0;
}