viewer.cpp
上传用户:bjlvip
上传日期:2010-02-08
资源大小:744k
文件大小:1k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <iostream.h>
  3. void main(int argc, char** argv)
  4. {
  5. CoInitialize(NULL);
  6. IStorage* pStorage;
  7. HRESULT hr = StgOpenStorage(L"C:\TestFile.STG", NULL, STGM_DIRECT|STGM_READWRITE|STGM_SHARE_EXCLUSIVE, NULL, NULL, &pStorage);
  8. if(FAILED(hr))
  9. {
  10. cout << "StgOpenStream failed: Run PropertyStreams first" << endl;
  11. exit(0);
  12. }
  13. IEnumSTATSTG* pEnumerator;
  14. pStorage->EnumElements(NULL, NULL, NULL, &pEnumerator);
  15. STATSTG myStat;
  16. ULONG how_many;
  17. while(true)
  18. {
  19. pEnumerator->Next(1, &myStat, &how_many);
  20. if(how_many == 0)
  21. break;
  22. char buffer[255];
  23. WideCharToMultiByte(CP_ACP, 0, myStat.pwcsName, -1, buffer, 255, NULL, NULL);
  24. switch(myStat.type)
  25. {
  26. case STGTY_STORAGE:
  27. cout << buffer << " is a " << "storage" << endl;
  28. case STGTY_STREAM:
  29. cout << buffer << " is a " << "stream" << endl;
  30. }
  31. }
  32. pEnumerator->Release();
  33. pStorage->Release();
  34. CoUninitialize();
  35. }