Ciao a tutti, ho un disperato bisogno di aiuto. Allora vi spiego. Sto programmando in .NET un masterizzatore semplicissimo, prendendo il codice da: http://www.extremebit.it/forum/showthread.php?t=662
il problema è che alla fine quando finisco tutto, cerco di provare a masterizzare e mi restituisce questo errore: "La classe di eventi per questa sottoscrizione si trova in una partizione non valida (Eccezione da HRESULT: 0x8004020F)"
Premetto che il mio masterizzatore si trova all'interno di un progetto, quindi, ho creato un nuovo Form chiamandolo "Masterizzatore" ed ho cambiato nel codice il nome del Form, mettendo appunto "Masterizzatore". Vi posto il codice, se qualcuno può aiutarmi gli sarei molto grato. Grazie ancora
' Importo lo spazio XPBurn (preventivamente aggiunto ai riferimenti xpburn.dll)
Imports XPBurn
Public Class Masterizzatore
' Oggetto globale per la gestione degli eventi e dei metodi per la masterizzazione con XPBurn
Private WithEvents ObjMasterizza As XPBurn.XPBurnCD
Private Sub Masterizzatore_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Inizializzo ObjMasterizza
' Nel ciclo FOR carico tutti i masterizzatori trovati nel sistema nella ComboBox
Dim i As Integer
ObjMasterizza = New XPBurnCD
For i = 0 To (ObjMasterizza.RecorderDrives.Count - 1)
ObjMasterizza.BurnerDrive = ObjMasterizza.RecorderDrives(i)
comboMasterizzatori.Items.Add(ObjMasterizza.Produc tID)
Next
' Se nella ComboBox c'è qualche voce allora seleziona la prima in automatico
If comboMasterizzatori.Items.Count > 0 Then comboMasterizzatori.SelectedIndex = 0
End Sub
Private Sub comboMasterizzatori_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboMasterizzatori.SelectedIndexChanged
' Imposta l'oggetto ObjMasterizza col masterizzatore selezionato nella ComboBox
ObjMasterizza.BurnerDrive = ObjMasterizza.RecorderDrives(comboMasterizzatori.S electedIndex).ToString
End Sub
Private Sub btnEspelli_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEspelli.Click
' Espulsione disco
ObjMasterizza.Eject()
End Sub
Private Sub btnSfoglia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSfoglia.Click
' Apro una finestra di dialogo in cui selezionare il file da inserire
Dim DlgApri As New OpenFileDialog()
If DlgApri.ShowDialog = Windows.Forms.DialogResult.OK Then
txtFile.Text = DlgApri.FileName
End If
End Sub
Private Sub btnAggiungi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAggiungi.Click
' Aggiungo alla ListBox e all'oggetto ObjMasterizza i percorsi dei file da masterizzare
' Facendo il controllo dell'esistenza del file
If Not System.IO.File.Exists(txtFile.Text) Then Exit Sub
ObjMasterizza.AddFile(txtFile.Text, txtFile.Text)
listFile.Items.Add(txtFile.Text)
End Sub
Private Sub btnMasterizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMasterizza.Click
' Scrittura disco
' ObjMasterizza.RecordDisc(booleano, booleano):
' - il 1° booleano indica se fare o no il test di verifica prima della scrittura
' - il 2° booleano indica se espellere il disco a fine scrittura
Try
ObjMasterizza.RecordDisc(False, True)
' In caso di errori mostro l'errore
Catch ex As XPBurnException
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub ObjMasterizza_AddProgress(ByVal nCompletedSteps As Integer, ByVal nTotalSteps As Integer) Handles ObjMasterizza.AddProgress
' Aggiornamento della progressbar Preparazione
pbPreparazione.Maximum = nTotalSteps ' n° dei blocchi totali da elaborare
pbPreparazione.Value = nCompletedSteps ' n° dei blocchi completati
End Sub
Private Sub ObjMasterizza_PreparingBurn(ByVal nEstimatedSeconds As Integer) Handles ObjMasterizza.PreparingBurn
' Evento che si verifica durante la preparazione del disco
listLog.Items.Add("Preparazione in corso ... tempo richiesto: " & nEstimatedSeconds & " secondi")
End Sub
Private Sub ObjMasterizza_BlockProgress(ByVal nCompletedSteps As Integer, ByVal nTotalSteps As Integer) Handles ObjMasterizza.BlockProgress
' Evento che fornisce informazioni sullo stato della copia
pbScrittura.Maximum = nTotalSteps ' n° dei blocchi totali da scrivere
pbScrittura.Value = nCompletedSteps ' n° dei blocchi scritti
End Sub
Private Sub ObjMasterizza_BurnComplete(ByVal status As System.UInt32) Handles ObjMasterizza.BurnComplete
' Evento che si verifica quando ha completato di scrivere il disco
pbScrittura.Maximum = 0
pbScrittura.Value = 0
listLog.Items.Add("Operazione completata!")
End Sub
Private Sub ObjMasterizza_ClosingDisc(ByVal nEstimatedSeconds As Integer) Handles ObjMasterizza.ClosingDisc
' Evento che si verifica durante la chiusura del disco
listLog.Items.Add("Chiusura disco ... attendere " & nEstimatedSeconds & " secondi")
End Sub
End Class
Dove sbaglio? Scusate la mia ignoranza. Grazie

Rispondi quotando