Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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();
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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;
        }
Example #10
0
        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);
        }
Example #11
0
        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;
        }
Example #12
0
        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);
            }
        }