Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

IMAPI

2 réponses
Avatar
Damien Detrain
Bonjour,

Quelqu'un utilise-t-il IMAPI pour graver des CD's ?

Voilà mon problème, j'ai un petit programme qui graver des données de
manière très simple.

Ce que je veux, c'est pouvoir afficher une barre de progression. J'ai trouvé
sur le site de microsoft un exemple que j'ai adapté en .NET, le voici dans
les grandes lignes :

'Déclaration des variables

Private WithEvents DataWriter As New IMAPI2.MsftDiscFormat2Data
Private WithEvents DataEraser As New IMAPI2.MsftDiscFormat2Erase

'interception des évènements :

Private Sub test(ByVal objet As Object, ByVal progress As Object) Handles
DataWriter.Update
Dim strTimeStatus
strTimeStatus = "Time: " & progress.ElapsedTime & " / " &
progress.TotalTime
Select Case progress.CurrentAction
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA
Label1.Text = "Validating media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA
Label1.Text = "Formatting media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE
Label1.Text = "Initializing Hardware " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER
Label1.Text = "Calibrating Power (OPC) " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA
Dim totalSectors, writtenSectors, percentDone
totalSectors = progress.SectorCount
writtenSectors = progress.LastWrittenLba - progress.StartLba
percentDone = FormatPercent(writtenSectors / totalSectors)
Label1.Text = "Progress: " & percentDone & " " &
strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION
Label1.Text = "Finishing the writing " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED
Label1.Text = "Completed the burn."
Case Else
Label1.Text = "Unknown action: " & progress.CurrentAction
End Select
End Sub

Et bien, à aucun moment le programme ne passe dans la gestion d'évènements.
Quelqu'un à une idée ?

Merci.

Damien Detrain
S.A. LOGAL.

2 réponses

Avatar
William
Bonjour,
Dans les propriétés de ton projet - informations de l'assembly, coche la
case rendre l'assembly visible par COM.

++
William.

"Damien Detrain" wrote in message
news:48e1ca0d$0$2865$
Bonjour,

Quelqu'un utilise-t-il IMAPI pour graver des CD's ?

Voilà mon problème, j'ai un petit programme qui graver des données de
manière très simple.

Ce que je veux, c'est pouvoir afficher une barre de progression. J'ai
trouvé sur le site de microsoft un exemple que j'ai adapté en .NET, le
voici dans les grandes lignes :

'Déclaration des variables

Private WithEvents DataWriter As New IMAPI2.MsftDiscFormat2Data
Private WithEvents DataEraser As New IMAPI2.MsftDiscFormat2Erase

'interception des évènements :

Private Sub test(ByVal objet As Object, ByVal progress As Object) Handles
DataWriter.Update
Dim strTimeStatus
strTimeStatus = "Time: " & progress.ElapsedTime & " / " &
progress.TotalTime
Select Case progress.CurrentAction
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA
Label1.Text = "Validating media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA
Label1.Text = "Formatting media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE
Label1.Text = "Initializing Hardware " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER
Label1.Text = "Calibrating Power (OPC) " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA
Dim totalSectors, writtenSectors, percentDone
totalSectors = progress.SectorCount
writtenSectors = progress.LastWrittenLba -
progress.StartLba
percentDone = FormatPercent(writtenSectors / totalSectors)
Label1.Text = "Progress: " & percentDone & " " &
strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION
Label1.Text = "Finishing the writing " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED
Label1.Text = "Completed the burn."
Case Else
Label1.Text = "Unknown action: " & progress.CurrentAction
End Select
End Sub

Et bien, à aucun moment le programme ne passe dans la gestion
d'évènements. Quelqu'un à une idée ?

Merci.

Damien Detrain
S.A. LOGAL.


Avatar
Damien Detrain
Malheureusement cela ne fonctionne pas.

Merci quand même.

D. Detrain

"William" a écrit dans le message de groupe de
discussion :
Bonjour,
Dans les propriétés de ton projet - informations de l'assembly, coche la
case rendre l'assembly visible par COM.

++
William.

"Damien Detrain" wrote in message
news:48e1ca0d$0$2865$
Bonjour,

Quelqu'un utilise-t-il IMAPI pour graver des CD's ?

Voilà mon problème, j'ai un petit programme qui graver des données de
manière très simple.

Ce que je veux, c'est pouvoir afficher une barre de progression. J'ai
trouvé sur le site de microsoft un exemple que j'ai adapté en .NET, le
voici dans les grandes lignes :

'Déclaration des variables

Private WithEvents DataWriter As New IMAPI2.MsftDiscFormat2Data
Private WithEvents DataEraser As New IMAPI2.MsftDiscFormat2Erase

'interception des évènements :

Private Sub test(ByVal objet As Object, ByVal progress As Object) Handles
DataWriter.Update
Dim strTimeStatus
strTimeStatus = "Time: " & progress.ElapsedTime & " / " &
progress.TotalTime
Select Case progress.CurrentAction
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA
Label1.Text = "Validating media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA
Label1.Text = "Formatting media " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE
Label1.Text = "Initializing Hardware " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER
Label1.Text = "Calibrating Power (OPC) " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA
Dim totalSectors, writtenSectors, percentDone
totalSectors = progress.SectorCount
writtenSectors = progress.LastWrittenLba -
progress.StartLba
percentDone = FormatPercent(writtenSectors / totalSectors)
Label1.Text = "Progress: " & percentDone & " " &
strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION
Label1.Text = "Finishing the writing " & strTimeStatus
Case IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED
Label1.Text = "Completed the burn."
Case Else
Label1.Text = "Unknown action: " & progress.CurrentAction
End Select
End Sub

Et bien, à aucun moment le programme ne passe dans la gestion
d'évènements. Quelqu'un à une idée ?

Merci.

Damien Detrain
S.A. LOGAL.