Hi,
I am working on vb6, and unable to write code related to copying a folder to cd.
I am using nerocom.dll.
I refered
http://www.google.com/url?sa=U&start=18
&q=http://club.cdfreaks.com/lite/t-82050.html&e=7207, but i am still unable to compile the code.
Option Explicit
Public WithEvents Nero As Nero
Public WithEvents Drive As NeroDrive
Dim Drives As INeroDrives
Dim Folder As INeroFolder
Dim Isotrack As NeroISOTrack
Dim File As NeroFilePrivate Sub cmd_Abort_Click()
Nero.Abort
End Sub
'Recursive function to build the Folders/Files to burn
Private Sub BuildFileFolderTree(ByRef nroFolderToUse As NeroFolder, folCurrent As Folder[B] )
Dim folTMP As Folder
Dim filTMP As File
Dim nroFolTmp As NeroFolder
Dim nroFilTmp As NeroFile'Add all files in the current directory
For Each filTMP In folCurrent.Files
Set nroFilTmp = New NeroFile
nroFilTmp.Name = filTMP.Name
nroFilTmp.SourceFilePath = filTMP.Path
nroFolderToUse.Files.Add nroFilTmp
Next'Write the sub folders
For Each folTMP In folCurrent.SubFolders
Set nroFolTmp = New NeroFolder
nroFolTmp.Name = folTMP.Name
nroFolderToUse.Folders.Add nroFolTmp
Call BuildFileFolderTree(nroFolTmp, folTMP)
NextEnd Sub
[/B]Private Sub cmd_Burn_Click()
Dim Source_Dir As String
Dim X As Boolean
Dim temp
Dim FSO As New FileSystemObjectSource_Dir = âC:\unison\bendâ
lst_Messages.Clearcmd_Abort.Enabled = True
cmd_Burn.Enabled = FalseSet Folder = New NeroFolder
Set Drives = Nero.GetDrives(NERO_MEDIA_CDR)
Set Drive = Drives(lst_AvailableDevices.ListIndex)
Set Isotrack = New NeroISOTrackCall BuildFileFolderTree(Folder, FSO.GetFolder(Source_Dir))
Isotrack.Name = âUnisonâ
Isotrack.RootFolder = Folder
Isotrack.BurnOptions = NERO_BURN_OPTION_CREATE_ISO_FS + NERO_BURN_OPTION_USE_JOLIET
If Drive.Capabilities And NERO_CAP_BUF_UNDERRUN_PROT Then
Drive.BurnIsoAudioCD âUnisonâ, âBackupâ, 0, Isotrack, Nothing, Nothing, NERO_BURN_FLAG_WRITE + NERO_BURN_FLAG_BUF_UNDERRUN_PROT, 0,
NERO_MEDIA_CD
Else
Drive.BurnIsoAudioCD âUnisonâ, âBackupâ, 0, Isotrack, Nothing, Nothing, NERO_BURN_FLAG_WRITE, 0, NERO_MEDIA_CD
End IfEnd Sub
Private Sub drive_OnAborted(Abort As Boolean)
Abort = False
End SubPrivate Sub drive_OnAddLogLine(TextType As NEROLib.NERO_TEXT_TYPE, Text As String)
If Not SplitText(Text) Then
MsgBox âError Splitting Message Data!â
End If
End SubPrivate Function SplitText(ByVal Data As String) As Boolean
Dim temp As String
Dim I As IntegerSplitText = False
temp = ââ
For I = 1 To Len(Data)
If Mid$(Data, I, 1) = Chr$(13) Then
lst_Messages.AddItem Trim$(temp)
temp = ââ
ElseIf Mid$(Data, I, 1) <> Chr$(10) Then
temp = temp + Mid$(Data, I, 1)
End If
Next
If temp <> ââ Then
lst_Messages.AddItem Trim$(temp)
End If
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
SplitText = TrueEnd Function
Private Sub drive_OnDoneBurn(StatusCode As NEROLib.NERO_BURN_ERROR)
Dim strMessages As StringIf Not SplitText(Nero.ErrorLog) Then
MsgBox âError Splitting Message Data!â
End If
If Not SplitText(Nero.LastError) Then
MsgBox âError Splitting Message Data!â
End IfstrMessages = "Burn finished "
If StatusCode <> NEROLib.NERO_BURN_OK Then
strMessages = strMessages + âNOT Successfully (â & StatusCode & â)â
Else
strMessages = strMessages + âSuccessfullyâ
End Iflst_Messages.AddItem strMessages
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
cmd_Abort.Enabled = Falsecmd_Burn.Enabled = True
pgs_progress1.Value = 0End Sub
Private Sub drive_OnDoneWaitForMedia(Success As Boolean)
lst_Messages.AddItem âDone waiting for media.â
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
End SubPrivate Sub drive_OnProgress(ProgressInPercent As Long, Abort As Boolean)
Abort = False
pgs_progress1.Value = ProgressInPercent
End SubPrivate Sub drive_OnSetPhase(Text As String)
If Not SplitText(Text) Then
MsgBox âError Splitting Message Data!â
End If
End SubPrivate Sub Form_Initialize()
Dim myIndex As Integer
Set Nero = New Neropgs_progress1.Value = 0
lst_Messages.ClearSet Drives = Nero.GetDrives(NERO_MEDIA_CDR)
For myIndex = 0 To Drives.Count - 1
lst_AvailableDevices.AddItem Drives(myIndex).DeviceName, myIndex
Next
'set to second item (normally would use first or allow to select?)
lst_AvailableDevices.ListIndex = 1
ErrHandler:
Exit Sub
End SubPrivate Sub nero_OnMegaFatal()
lst_Messages.AddItem âA mega fatal error has occurred.â
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
End SubPrivate Sub nero_OnNonEmptyCDRW(Response As NEROLib.NERO_RESPONSE)
lst_Messages.AddItem âCD-RW not empty!â
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
Response = NERO_RETURN_EXIT
End SubPrivate Sub nero_OnRestart()
lst_Messages.AddItem âThe system is being restarted.â
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
End SubPrivate Sub nero_OnWaitCD(WaitCD As NEROLib.NERO_WAITCD_TYPE, WaitCDLocalizedText As String)
If Not SplitText(WaitCDLocalizedText) Then
MsgBox âError Splitting Message Data!â
End If
End SubPrivate Sub nero_OnWaitCDDone()
lst_Messages.AddItem âDone waiting for CD.â
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
End SubPrivate Sub nero_OnWaitCDMediaInfo(LastDetectedMedia As NEROLib.NERO_MEDIA_TYPE, LastDetectedMediaName As String, RequestedMedia As
NEROLib.NERO_MEDIA_TYPE, RequestedMediaName As String)
lst_Messages.AddItem âWaiting for a particular media type:â
If Not SplitText(RequestedMediaName) Then
MsgBox âError Splitting Message Data!â
End If
End SubPrivate Sub nero_OnWaitCDReminder()
lst_Messages.AddItem âStill waiting for CDâŚâ
If lst_Messages.ListCount <> 0 Then
lst_Messages.ListIndex = lst_Messages.ListCount - 1
lst_Messages.Refresh
End If
End Sub
I got a problem in âBuildFileFolderTreeâ procedure, on second parameter âfolCurrent As Folderâ is notSays Compile Error: User
type not defined
please help⌠Its very important.
Regards,WaseemâŚ