0

我需要检查内存缓冲区 BYTE* lpBuf 是否包含结构存储文件数据的数据。

目前我将缓冲区数据保存到一个临时文件中,然后使用 StgOpenStorage 打开该文件。如果打开成功,则该文件为结构化存储文件,否则不是。

CFile File;

if (File.Open(_T("E:\\Myfile.dat"), CFile::modeCreate | CFile::modeRead)
{
  File.Write(lpBuf, uBufSize);
  File.Close();
}

LPSTORAGE lpStorageFile = NULL;

HRESULT hr = StgOpenStorage(_T("E:\\Myfile.dat"), NULL, STGM_TRANSACTED | STGM_READ | STGM_SHARE_EXCLUSIVE, NULL, 0, &lpStorageFile);

return SUCCEED(hr);

有没有简单的方法来完成任务?

谢谢

4

0 回答 0