Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. #include <imapi2.h>
  2. #include <imapi2error.h>
  3. #include <imapi2fs.h>
  4. #include <imapi2fserror.h>
  5.  
  6. #pragma comment (lib, "Ole32.lib")
  7.  
  8. void iampi2_cpp::convert2iso() {
  9. HRESULT hres = 0;
  10. CoInitialize(NULL);
  11. IFileSystemImage* image = NULL;
  12. IFileSystemImageResult* result = NULL;
  13. IFsiDirectoryItem* root = NULL;
  14. IStream* file = NULL;
  15. IStream* r_i = NULL;
  16. hres = CoCreateInstance(CLSID_MsftFileSystemImage, NULL, CLSCTX_ALL, __uuidof(IFileSystemImage), (void**)&image);
  17. printf("CoCreateInstance %08X\n", hres);
  18. hres = image->put_FileSystemsToCreate((FsiFileSystems)(FsiFileSystemJoliet | FsiFileSystemISO9660));
  19. printf("put_FileSystemsToCreate %08X\n", hres);
  20. hres = image->put_VolumeName(L"Pictures");
  21. printf("put_VolumeName %08X\n", hres);
  22. hres = image->ChooseImageDefaultsForMediaType(IMAPI_MEDIA_TYPE_CDRW);
  23. printf("ChooseImageDefaultsForMediaType %08X\n", hres);
  24.  
  25. hres = image->get_Root(&root);
  26. printf("get_Root %08X\n", hres);
  27. hres = root->AddTree(L"C:\\isome", VARIANT_TRUE);
  28. printf("AddTree %08X\n", hres);
  29.  
  30. hres = image->CreateResultImage(&result);
  31. printf("CreateResultImage %08X\n", hres);
  32. hres = result->get_ImageStream(&r_i);
  33. printf("get_ImageStream %08X\n", hres);
  34.  
  35. STATSTG stg;
  36. r_i->Stat(&stg, 1);
  37. char* data = new char[stg.cbSize.QuadPart];
  38. ULONG size;
  39. r_i->Read(data, stg.cbSize.QuadPart, &size);
  40.  
  41. FILE* f = fopen("C:\\image.iso", "wb");
  42. fwrite(data, stg.cbSize.QuadPart, 1, f);
  43. fclose(f);
  44.  
  45. delete data;
  46. r_i->Release();
  47. root->Release();
  48. result->Release();
  49. image->Release();
  50.  
  51. CoUninitialize();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement