private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = textBoxLabel.Text; fileSystemImage.Update += new DFileSystemImage_EventHandler(fileSystemImage_Update); // // If multisessions, then import previous sessions // if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } // // Get the image root // IFsiDirectoryItem rootItem = fileSystemImage.Root; // // Add Files and Directories to File System Image // foreach (IMediaItem mediaItem in listBoxFiles.Items) { // // Check if we've cancelled // if (backgroundBurnWorker.CancellationPending) { break; } // // Add to File System // mediaItem.AddToFileSystem(rootItem); } fileSystemImage.Update -= new DFileSystemImage_EventHandler(fileSystemImage_Update); // // did we cancel? // if (backgroundBurnWorker.CancellationPending) { dataStream = null; return(false); } dataStream = fileSystemImage.CreateResultImage().ImageStream; return(true); }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { bool flag; MsftFileSystemImage msftFileSystemImageClass = null; try { try { msftFileSystemImageClass = (MsftFileSystemImage)(new MsftFileSystemImageClass()); msftFileSystemImageClass.ChooseImageDefaults(discRecorder); msftFileSystemImageClass.FileSystemsToCreate = FsiFileSystems.FsiFileSystemISO9660 | FsiFileSystems.FsiFileSystemJoliet; msftFileSystemImageClass.VolumeName = this.txtVolumeLabel.Text; msftFileSystemImageClass.Update += new DFileSystemImage_EventHandler(this.fileSystemImage_Update); if (multisessionInterfaces != null) { msftFileSystemImageClass.MultisessionInterfaces = multisessionInterfaces; msftFileSystemImageClass.ImportFileSystem(); } IFsiDirectoryItem root = msftFileSystemImageClass.Root; foreach (IMediaItem dirItem in this.DirItems) { if (this.backgroundWorker.CancellationPending) { break; } dirItem.AddToFileSystem(root); } msftFileSystemImageClass.Update -= new DFileSystemImage_EventHandler(this.fileSystemImage_Update); if (!this.backgroundWorker.CancellationPending) { dataStream = msftFileSystemImageClass.CreateResultImage().ImageStream; } else { dataStream = null; flag = false; return(flag); } } catch (COMException cOMException1) { COMException cOMException = cOMException1; MessageBox.Show(this, cOMException.Message, "Create File System Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); dataStream = null; flag = false; return(flag); } return(true); } finally { if (msftFileSystemImageClass != null) { Marshal.ReleaseComObject(msftFileSystemImageClass); } } return(flag); }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = textBoxLabel.Text; fileSystemImage.Update += FileSystemImage_Update; if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } var rootItem = fileSystemImage.Root; foreach (IMediaItem mediaItem in listBoxFiles.Items) { if (backgroundBurnWorker.CancellationPending) { break; } mediaItem.AddToFileSystem(rootItem); } fileSystemImage.Update -= FileSystemImage_Update; if (backgroundBurnWorker.CancellationPending) { dataStream = null; return(false); } dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (COMException exception) { MessageBox.Show(this, exception.Message, "Create File System Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dataStream = null; return(false); } finally { if (fileSystemImage != null) { Marshal.ReleaseComObject(fileSystemImage); } } return(true); }
private bool membuatFileSystem(IDiscRecorder2 Recorder, object[] multiSesi, out IStream streamData) { MsftFileSystemImage fileSystem = null; try { fileSystem = new MsftFileSystemImage(); fileSystem.ChooseImageDefaults(Recorder); fileSystem.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystem.VolumeName = textBoxNamaDisc.Text; fileSystem.Update += new DFileSystemImage_EventHandler(fileSystemHandler); if (multiSesi != null) { fileSystem.MultisessionInterfaces = multiSesi; fileSystem.ImportFileSystem(); } IFsiDirectoryItem rootItem = fileSystem.Root; foreach (IMediaItem mediaItem in listBox.Items) { if (backgroundWorker.CancellationPending) { break; } mediaItem.tambahkanKeFileSystem(rootItem); } fileSystem.Update -= new DFileSystemImage_EventHandler(fileSystemHandler); if (backgroundWorker.CancellationPending) { streamData = null; return(false); } streamData = fileSystem.CreateResultImage().ImageStream; } catch (COMException exception) { MessageBox.Show(this, exception.Message, "Kesalahan File System dengan kode :", MessageBoxButtons.OK, MessageBoxIcon.Error); streamData = null; return(false); } finally { if (fileSystem != null) { Marshal.ReleaseComObject(fileSystem); } } return(true); }
public void BurnCD() { #region CD WRITING MsftDiscMaster2 discMaster = null; discMaster = new MsftDiscMaster2(); String path = "D://hello2.txt"; Console.WriteLine("Writing to the disc"); if (!discMaster.IsSupportedEnvironment) { return; } foreach (string uniqueRecorderId in discMaster) { var discRecorder2 = new MsftDiscRecorder2(); discRecorder2.InitializeDiscRecorder(uniqueRecorderId); MsftDiscFormat2Data datawriter = new MsftDiscFormat2Data(); datawriter.Recorder = discRecorder2; datawriter.ClientName = "IMAPIv2 TEST"; MsftFileSystemImage FSI = new MsftFileSystemImage(); try { if (!datawriter.MediaHeuristicallyBlank) { FSI.MultisessionInterfaces = datawriter.MultisessionInterfaces; FSI.ImportFileSystem(); } } catch (Exception) { FSI.ChooseImageDefaults(discRecorder2); Console.WriteLine("Multisession is not supported on this disk!"); } try { FSI.Root.AddTree(path, false); IFileSystemImageResult Result = FSI.CreateResultImage(); var stream = Result.ImageStream; Console.WriteLine("\nWriting to disc now!!"); datawriter.Write(stream); Console.WriteLine("\nWrite Process completed!"); } catch (Exception) { Console.WriteLine("Unable to form image from given path!"); Console.WriteLine("\nAborted process!"); } discRecorder2.EjectMedia(); } #endregion OperationContext.Current.GetCallbackChannel <MyCallBackHandler>().CDBurnt(); }
private void _CreateImage(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage image = null; string volumeLabel = this.VolumeLabel; try { if (String.IsNullOrEmpty(volumeLabel)) { volumeLabel = DateTime.Now.ToShortDateString(); } image = new MsftFileSystemImage(); image.ChooseImageDefaults(discRecorder); image.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; image.VolumeName = volumeLabel; image.Update += _fileSystemImage_Update; // If multisessions, then import previous sessions if (multisessionInterfaces != null) { image.MultisessionInterfaces = multisessionInterfaces; image.ImportFileSystem(); } IFsiDirectoryItem rootNode = image.Root; foreach (IMediaNode node in this.Nodes) { _AddNode(rootNode, node); } image.Update -= _fileSystemImage_Update; dataStream = image.CreateResultImage().ImageStream; } finally { if (image != null) { Marshal.ReleaseComObject(image); } } }
private bool createMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = _sessionName; // If multisessions, then import previous sessions if (multisessionInterfaces != null) { try { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } catch (Exception ex) { // ignore multisession Log.WriteLine(ex.ToString()); } } // Get the image root IFsiDirectoryItem rootItem = fileSystemImage.Root; // Burn disks in parallel could make the file in burning is lock lock (syncData) { // Add Files and Directories to File System Image var fileItem = new FileItem(_filePath); IMediaItem mediaItem = fileItem; mediaItem.AddToFileSystem(rootItem); // Make data stream try { dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (Exception ex) { dataStream = null; MessageBox.Show("Ổ đĩa bị khóa hoặc có lỗi trong quá trình định dạng đĩa"); Log.WriteLine(ex.ToString()); return(false); } } } catch (Exception ex) { dataStream = null; MessageBox.Show("Ổ đĩa bị khóa hoặc có lỗi trong quá trình định dạng đĩa"); Log.WriteLine(ex.ToString()); return(false); } finally { if (fileSystemImage != null) { Marshal.ReleaseComObject(fileSystemImage); } } return(true); }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = volume_label.Text; fileSystemImage.Update += fileSystemImage_Update; // // If multisessions, then import previous sessions // if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } // // Get the image root // IFsiDirectoryItem rootItem = fileSystemImage.Root; // // Add Files and Directories to File System Image // foreach (IMediaItem mediaItem in lb.Items) { // // Check if we've cancelled // if (backgroundBurnWorker.CancellationPending) { break; } // // Add to File System // mediaItem.AddToFileSystem(rootItem); } fileSystemImage.Update -= fileSystemImage_Update; // // did we cancel? // if (backgroundBurnWorker.CancellationPending) { dataStream = null; return(false); } dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (COMException exception) { MessageBox.Show(this, exception.Message, "Create File System Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dataStream = null; return(false); } finally { if (fileSystemImage != null) { Marshal.ReleaseComObject(fileSystemImage); } } return(true); }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = ""; fileSystemImage.Update += fileSystemImage_Update; if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } var rootItem = fileSystemImage.Root; foreach (var mediaItem in mediaItems) { if (cancellationToken.IsCancellationRequested) break; mediaItem.AddToFileSystem(rootItem); } fileSystemImage.Update -= fileSystemImage_Update; if (cancellationToken.IsCancellationRequested) { dataStream = null; return false; } dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (COMException exception) { MessageBox.Show(exception.Message, "Create File System Error", MessageBoxButton.OK, MessageBoxImage.Error); dataStream = null; return false; } finally { if (fileSystemImage != null) Marshal.ReleaseComObject(fileSystemImage); } return true; }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; System.Diagnostics.Trace.WriteLine("Etichetta: " + this.etichetta); fileSystemImage.VolumeName = this.etichetta; //fileSystemImage.Update += fileSystemImage_Update; fileSystemImage.Update += new DFileSystemImage_EventHandler(fileSystemImage_Update); // // If multisessions, then import previous sessions // if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } // // Get the image root // IFsiDirectoryItem rootItem = fileSystemImage.Root; // // Add Files and Directories to File System Image // foreach (IMediaItem mediaItem in listaFileDaMasterizzare) { // // Check if we've cancelled // if (backgroundBurnWorker.CancellationPending) { break; } // // Add to File System // mediaItem.AddToFileSystem(rootItem); } //fileSystemImage.Update -= fileSystemImage_Update; fileSystemImage.Update -= new DFileSystemImage_EventHandler(fileSystemImage_Update); // // did we cancel? // if (backgroundBurnWorker.CancellationPending) { dataStream = null; return(false); } dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (COMException exception) { System.Diagnostics.Trace.WriteLine("FileSystem" + exception.Message); BurnerMsg burnerMsg = new BurnerMsg(this); burnerMsg.fase = Fase.MasterizzazioneFallita; OnInviaStatoMasterizzazione(burnerMsg); //MessageBox.Show(this, exception.Message, "Create File System Error", // MessageBoxButtons.OK, MessageBoxIcon.Error); dataStream = null; return(false); } finally { if (fileSystemImage != null) { Marshal.ReleaseComObject(fileSystemImage); } } return(true); }
private bool CreateMediaFileSystem(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage fileSystemImage = null; try { fileSystemImage = new MsftFileSystemImage(); fileSystemImage.ChooseImageDefaults(discRecorder); fileSystemImage.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; fileSystemImage.VolumeName = volume_label.Text; fileSystemImage.Update += fileSystemImage_Update; // // If multisessions, then import previous sessions // if (multisessionInterfaces != null) { fileSystemImage.MultisessionInterfaces = multisessionInterfaces; fileSystemImage.ImportFileSystem(); } // // Get the image root // IFsiDirectoryItem rootItem = fileSystemImage.Root; // // Add Files and Directories to File System Image // foreach (IMediaItem mediaItem in lb.Items) { // // Check if we've cancelled // if (backgroundBurnWorker.CancellationPending) { break; } // // Add to File System // mediaItem.AddToFileSystem(rootItem); } fileSystemImage.Update -= fileSystemImage_Update; // // did we cancel? // if (backgroundBurnWorker.CancellationPending) { dataStream = null; return false; } dataStream = fileSystemImage.CreateResultImage().ImageStream; } catch (COMException exception) { MessageBox.Show(this, exception.Message, "Create File System Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dataStream = null; return false; } finally { if (fileSystemImage != null) { Marshal.ReleaseComObject(fileSystemImage); } } return true; }
private void _CreateImage(IDiscRecorder2 discRecorder, object[] multisessionInterfaces, out IStream dataStream) { MsftFileSystemImage image = null; string volumeLabel = this.VolumeLabel; try { if (String.IsNullOrEmpty(volumeLabel)) volumeLabel = DateTime.Now.ToShortDateString(); image = new MsftFileSystemImage(); image.ChooseImageDefaults(discRecorder); image.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; image.VolumeName = volumeLabel; image.Update += _fileSystemImage_Update; // If multisessions, then import previous sessions if (multisessionInterfaces != null) { image.MultisessionInterfaces = multisessionInterfaces; image.ImportFileSystem(); } IFsiDirectoryItem rootNode = image.Root; foreach (IMediaNode node in this.Nodes) { _AddNode(rootNode, node); } image.Update -= _fileSystemImage_Update; dataStream = image.CreateResultImage().ImageStream; } finally { if (image != null) Marshal.ReleaseComObject(image); } }