Jump to content

CD/DVD Burning UDF


monoceres
 Share

Recommended Posts

Hi!

According to the msdn page it's the full path to the file.

If you read it you will also see that my documentation is wrong about the return type (1 = directory, 2= file).

However I just tested this function and I can't get it to work. I have no idea why. I will check it when I get time. It's not an essential function however so you might wanna think about keeping the info if a file has been added internally.

My idea was to build an array first (with the CD Contents) and then, last step before burning, create the FS. I'm just afraid it will be slower than say populating the FS from the gui directly. Thanks for the response.
Link to comment
Share on other sites

  • 2 months later...
  • Replies 70
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

ok, I runned this:

CODE
' This script burns data files to disc in a single session

' using files from a single directory tree.

' Copyright © Microsoft Corp. 2006

Option Explicit

' *** CD/DVD disc file system types

Const FsiFileSystemISO9660 = 1

Const FsiFileSystemJoliet = 2

Const FsiFileSystemUDF102 = 4

' *** IFormat2Data Write Action Enumerations

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA = 0

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA = 1

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE = 2

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER = 3

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA = 4

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION = 5

Const IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED = 6

'Here is a phony progress bar that uses an IE Window

dim x

set x = createobject("internetexplorer.application")

'in code, the colon acts as a line feed

x.navigate2 "about:blank" : x.width = 950 : x.height = 287 : x.toolbar = false : x.menubar = false : x.statusbar = false : x.visible = True

x.document.write "<font color=blue>"

WScript.Quit(Main)

Function Main

Dim Index ' Index to recording drive.

Dim Recorder ' Recorder object

Dim Path ' Directory of files to burn

Dim Stream ' Data stream for burning device

'Index = 1 ' Second drive on the system

Index = 0 ' First drive on the system

Path = "C:\Program Files\Merge eFilm\eFilm\CD\NG\NG" ' Files to transfer to disc

' Create a DiscMaster2 object to connect to CD/DVD drives.

Dim g_DiscMaster

Set g_DiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")

' Create a DiscRecorder object for the specified burning device.

Dim uniqueId

set recorder = WScript.CreateObject("IMAPI2.MsftDiscRecorder2")

uniqueId = g_DiscMaster.Item(index)

recorder.InitializeDiscRecorder( uniqueId )

' Create an image stream for a specified directory.

Dim FSI 'Disc file system

Dim Dir 'Root directory of the disc file system

Dim dataWriter

' Create a new file system image and retrieve root directory

Set FSI = CreateObject("IMAPI2FS.MsftFileSystemImage")

Set Dir = FSI.Root

' Define the new disc format and set the recorder

Set dataWriter = CreateObject ("IMAPI2.MsftDiscFormat2Data")

dataWriter.recorder = Recorder

dataWriter.ClientName = "IMAPIv2 TEST"

FSI.FreeMediaBlocks = dataWriter.FreeSectorsOnMedia

FSI.FileSystemsToCreate = FsiFileSystemISO9660

' Add the directory and its contents to the file system

Dir.AddTree Path, false

' Create an image from the file system

Dim result

Set result = FSI.CreateResultImage()

Stream = result.ImageStream

' Attach event handler to the data writing object.

WScript.ConnectObject dataWriter, "dwBurnEvent_"

' Specify the recorder and write the stream to disc.

'~ WScript.Echo "Writing content to disc..."

x.document.write "Writing content to disc...<br>"

dataWriter.write(Stream)

'~ WScript.Echo "----- Finished writing content -----"

x.document.write "----- Finished writing content -----<br>"

Main = 0

wscript.sleep 1000

x.quit

set x = nothing

End Function

' Event handler - Progress updates when writing data

SUB dwBurnEvent_Update( byRef object, byRef progress )

DIM strTimeStatus

strTimeStatus = "Time: " & progress.ElapsedTime & _

" / " & progress.TotalTime

SELECT CASE progress.CurrentAction

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA

'~ WScript.Echo "Validating media " & strTimeStatus

x.document.write "Validating media " & strTimeStatus & "<br>"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA

'~ WScript.Echo "Formatting media " & strTimeStatus

x.document.write "Formatting media " & strTimeStatus & "<br>"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE

'~ WScript.Echo "Initializing Hardware " & strTimeStatus

x.document.write "Initializing Hardware " & strTimeStatus & "<br>"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER

'~ WScript.Echo "Calibrating Power (OPC) " & strTimeStatus

x.document.write "Calibrating Power (OPC) " & strTimeStatus & "<br>"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA

DIM totalSectors, writtenSectors, percentDone

totalSectors = progress.SectorCount

writtenSectors = progress.LastWrittenLba - progress.StartLba

percentDone = FormatPercent(writtenSectors/totalSectors)

'~ WScript.Echo "Progress: " & percentDone & " " & strTimeStatus

'~ x.document.write "Progress: " & percentDone & " " & strTimeStatus & "<br>"

x.document.title = "Progress: " & percentDone & " %"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION

'~ WScript.Echo "Finishing the writing " & strTimeStatus

x.document.write "Finishing the writing " & strTimeStatus & "<br>"

CASE IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED

'~ WScript.Echo "Completed the burn."

x.document.write "Completed the burn." & "<br>"

CASE ELSE

'~ WScript.Echo "Unknown action: " & progress.CurrentAction

x.document.write "Unknown action: " & progress.CurrentAction & "<br>"

END SELECT

END SUB

and translate it to autoit

;~ ' This script burns data files to disc in a single session 
;~ ' using files from a single directory tree. 

;~ ' Copyright (C) Microsoft Corp. 2006

;~ Option Explicit

;~ ' *** CD/DVD disc file system types
Const $FsiFileSystemISO9660 = 1
Const $FsiFileSystemJoliet  = 2
Const $FsiFileSystemUDF102  = 4

;~ ' *** IFormat2Data Write Action Enumerations
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA      = 0
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA      = 1
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE = 2
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER     = 3
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA          = 4
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION          = 5
Const $IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED             = 6

Main()

Func Main()
    Global $Index               ; ' Index to recording drive.
    Global $Recorder            ; ' Recorder object
    Global $Path                ; ' Directory of files to burn
    Global $Stream              ; ' Data stream for burning device
    
;~     '    Index = 1                ' Second drive on the system
    $Index = 0               ; ' First drive on the system
    $Path = "C:\Program Files\Merge eFilm\eFilm\CD\NG\NG"     ; ' Files to transfer to disc

    ; 'Create a DiscMaster2 object to connect to CD/DVD drives.
    Global $g_DiscMaster
    $g_DiscMaster = ObjCreate("IMAPI2.MsftDiscMaster2")

    ; 'Create a DiscRecorder object for the specified burning device.
    Global $uniqueId
    $recorder = ObjCreate("IMAPI2.MsftDiscRecorder2")
    $uniqueId = $g_DiscMaster.Item($index)
    $recorder.InitializeDiscRecorder( $uniqueId )

    ; 'Create an image stream for a specified directory.
    Global $FSI                 ; 'Disc file system
    Global $Dir                 ; 'Root directory of the disc file system
    Global $dataWriter    
        
    ; 'Create a new file system image and retrieve root directory
    $FSI = ObjCreate("IMAPI2FS.MsftFileSystemImage")
    $Dir = $FSI.Root

    ; 'Define the new disc format and set the recorder
    $dataWriter = ObjCreate("IMAPI2.MsftDiscFormat2Data")
    $dataWriter.recorder = $Recorder
    $dataWriter.ClientName = "IMAPIv2 TEST"

    $FSI.FreeMediaBlocks = $dataWriter.FreeSectorsOnMedia
    $FSI.FileSystemsToCreate = $FsiFileSystemISO9660

    ; 'Add the directory and its contents to the file system 
    $Dir.AddTree( $Path, false )
        
    ; 'Create an image from the file system
    Global $oResult,$Stream
    $oResult = $FSI.CreateResultImage()
    $Stream = $oResult.ImageStream
    
    ; 'Attach event handler to the data writing object.
    ObjEvent($dataWriter, "dwBurnEvent_")

    ; 'Specify the recorder and write the stream to disc.
    ConsoleWrite("-Writing content to disc..."&@CRLF)
    ProgressOn("Burner", "", "Writing content to disc...")
    $dataWriter.write($Stream)

    ConsoleWrite("----- Finished writing content -----"&@CRLF)
    ProgressSet(100 , "", "----- Finished writing content -----")
    Return 0
EndFunc

; 'Event handler - Progress updates when writing data

Func dwBurnEvent_Update($object, $progress)
    DIM $strTimeStatus
    $strTimeStatus = "Time: " & $progress.ElapsedTime & _
        " / " & $progress.TotalTime
   
    Switch $progress.CurrentAction
    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA
        ConsoleWrite("+Validating media " & $strTimeStatus  &@CRLF)
        ProgressSet(0 , "", "Validating media")

    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA
        ConsoleWrite("+Formatting media " & $strTimeStatus  &@CRLF)
        ProgressSet(0 , "", "Formatting media")
        
    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE
        ConsoleWrite("+Initializing Hardware " & $strTimeStatus &@CRLF)
        ProgressSet(0 , "", "Initializing Hardware")

    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER
        ConsoleWrite("+Calibrating Power (OPC) " & $strTimeStatus   &@CRLF)
        ProgressSet(0 , "", "Calibrating Power (OPC)")

    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA
        DIM $totalSectors, $writtenSectors, $percentDone
        $totalSectors = $progress.SectorCount
        $writtenSectors = $progress.LastWrittenLba - $progress.StartLba
        $percentDone = Round($writtenSectors/$totalSectors,2)
        ConsoleWrite("+Progress:  " & $percentDone * 100 & "  " & $strTimeStatus    &@CRLF)
        ProgressSet($percentDone * 100 , "Progress:", $strTimeStatus)

    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION
        ConsoleWrite("+Finishing the writing " & $strTimeStatus &@CRLF)
        ProgressSet(100 , "", "Finishing the writing")
    
    CASE $IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED
        ConsoleWrite("+Completed the burn." &@CRLF)
        ProgressSet(100 , "", "Completed the burn.")

    CASE ELSE
        ConsoleWrite("+Unknown action: " & $progress.CurrentAction  &@CRLF)
        ProgressSet(0 , "Unknown action:", $progress.CurrentAction)
   EndSwitch
EndFunc

....and it works just like in the VBS but the callback to the update is unresponsive, any workaround ? TIA

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

  • 1 month later...

This looks like a great way to fashion a one-button backup of all my essential information. Unfortunately I got an error right off the bat when I tried it. Here's the message I got:

>Running:(3.3.0.0):P:\AutoIt3\autoit3.exe "E:\Scripts\CDBurn.au3"

E:\Scripts\CDBurnRequest.au3 (13) : ==> Subscript used with non-Array variable.:

$drive = _IMAPI2_DriveGetObj($ids[1])

$drive = _IMAPI2_DriveGetObj($ids^ ERROR

->10:55:24 AutoIT3.exe ended.rc:1

These seem to be the statements involved:

; Get the unique ids of all the drives on the system
$ids = _IMAPI2_DrivesGetID()

; Get the object of the first drive
$drive = _IMAPI2_DriveGetObj($ids[1])

Can someone suggest the proper solution? I'm running the latest AU3, but have I missed an include file or something? I'm always reluctant to go changing someone's script, especially since the SyntaxCheck didn't show any problems.

Thanks in advance for any help.

Link to comment
Share on other sites

Are you sure that _IMAPI2_DrivesGetID() actually succeds and returns an array with the index you're trying to use?

Thanks for your reply. Indeed, the problem seems two-fold.

The first is that the statement "$drive = _IMAPI2_DriveGetObj($ids[1])" got the -1 Array Error. Defining Global $ids[20] didn't solve it. However, changing the name to $fids[20] seems to make the variable work in the statement -- but I don't know why $ids shouldn't work.

Secondly, using $fids as the variable, IMAPI2 then got the same kind of error (-1 Array) in statement number 274: Return StringLeft ($temp[0], 1). I tried changing it to Return StringLeft($temp, 1) and it executes, but it returns -1.

What I need to know is why the array variables aren't working in the first place. I don't like changing scripts when I don't understand why I making the change. I hope you can stick with me on solving this. I do appreciate the help.

Link to comment
Share on other sites

I think my working example of appending files to an "open" CD that I posted last October in this thread (on page 3.5) is related? If I recall correctly, I may have encountered this same error resulting from "virtual CD drives" created by DaemonTools, Roxio, MagicISO, or a dozen other CD applications. I believe they caused _IMAPI2_DriveGetObj to choke.

Do you have any such pseudo-CD drivers installed?

I'd added a test to bypass drives reporting as "SCSI" (which is what the phoney CD drivers report) in my example, and that corrected the problem for me. IDE and USB drives performed fine.

Link to comment
Share on other sites

Can someone suggest the proper solution?

Thanks.

I dug out the source for the example routine I posted here in October, removed the "scsi" test, and ran it:

IMAPI2.au3 (274) : ==> Subscript used with non-Array variable.:

So, my previous post IS your problem.

Either _IMAPI2_DrivesGetID() needs to be modified to keep virtual drives (with the SCSI string) out of the array (that's the route I went in my October example on page 3), or, code needs to be in place to ensure that the drive selected from the "ids" array, and passed to _IMAPI2_DriveGetObj, is a true IDE, PCIe, or USB-attached CD/DVD drive, and not a pseudo-drive.

Link to comment
Share on other sites

I'd added a test to bypass drives reporting as "SCSI" (which is what the phoney CD drivers report) in my example, and that corrected the problem for me. IDE and USB drives performed fine.

I do believe that is my problem. Thanks for explaining it!
Link to comment
Share on other sites

I'm not sure that testing for the "scsi" string is the best way to identify the virtual drives, but it works.

I'd suggest that the _IMAPI2_DrivesGetID() function in the UDF be modified to either:

Func _IMAPI2_DrivesGetID()
    Local $oDiscmaster, $iCount
    $oDiscmaster = ObjCreate("IMAPI2.MsftDiscMaster2")
    If Not IsObj($oDiscmaster) Then Return -1
    $iCount = $oDiscmaster.Count()
    Local $sArray[$iCount + 1]
    $sArray[0] = 0
    For $i = 1 To $iCount
        If StringMid($oDiscmaster.Item($i - 1), 5, 4) <> "scsi" Then
            $sArray[0] += 1
            $sArray[$sArray[0]] = $oDiscmaster.Item($i - 1)
        Endif
    Next
    Redim $sArray[$sArray[0] + 1]
    $oDiscmaster = ""
    Return $sArray
EndFunc ;==>_IMAPI2_DrivesGetID
or

Func _IMAPI2_DrivesGetID()
    Local $oDiscmaster, $iCount
    $oDiscmaster = ObjCreate("IMAPI2.MsftDiscMaster2")
    If Not IsObj($oDiscmaster) Then Return -1
    $iCount = $oDiscmaster.Count()
    Local $sArray[$iCount + 1]
    $sArray[0] = 0
    For $i = 1 To $iCount
        If StringMid($oDiscmaster.Item($i - 1), 5, 4) = "scsi" Then
            Redim $sArray[$sArray[0] + ($iCount - $i + 1)]
        Else
            $sArray[0] += 1
            $sArray[$sArray[0]] = $oDiscmaster.Item($i - 1)
        Endif
    Next
    $oDiscmaster = ""
    Return $sArray
EndFunc ;==>_IMAPI2_DrivesGetID

The second example with the more complex, but optional, redim might be preferrable if most PC's don't have a virtual drive defined, as no Redim would be executed. If a few clock tics aren't important, or virtual drives are common, then the first example with the simple, but static, redim would be cool. Guess it's up to Monoceres if he wants to update the UDF, with one of these patches, or one of his own.

Edit: fixed Redim syntax

Edited by Spiff59
Link to comment
Share on other sites

I'm not sure that testing for the "scsi" string is the best way to identify the virtual drives, but it works.

I'd suggest that the _IMAPI2_DrivesGetID() function in the UDF be modified to either:

Func _IMAPI2_DrivesGetID()
    Local $oDiscmaster, $iCount
    $oDiscmaster = ObjCreate("IMAPI2.MsftDiscMaster2")
    If Not IsObj($oDiscmaster) Then Return -1
    $iCount = $oDiscmaster.Count()
    Local $sArray[$iCount + 1]
    $sArray[0] = 0
    For $i = 1 To $iCount
        If StringMid($oDiscmaster.Item($i - 1), 5, 4) <> "scsi" Then
            $sArray[0] += 1
            $sArray[$sArray[0]] = $oDiscmaster.Item($i - 1)
        Endif
    Next
    Redim($sArray, $sArray[0] + 1)
    $oDiscmaster = ""
    Return $sArray
EndFunc ;==>_IMAPI2_DrivesGetID
or

Func _IMAPI2_DrivesGetID()
    Local $oDiscmaster, $iCount
    $oDiscmaster = ObjCreate("IMAPI2.MsftDiscMaster2")
    If Not IsObj($oDiscmaster) Then Return -1
    $iCount = $oDiscmaster.Count()
    Local $sArray[$iCount + 1]
    $sArray[0] = 0
    For $i = 1 To $iCount
        If StringMid($oDiscmaster.Item($i - 1), 5, 4) = "scsi" Then
            Redim($sArray, $sArray[0] + ($iCount - $i + 1)
        Else
            $sArray[0] += 1
            $sArray[$sArray[0]] = $oDiscmaster.Item($i - 1)
        Endif
    Next
    $oDiscmaster = ""
    Return $sArray
EndFunc ;==>_IMAPI2_DrivesGetID

The second example with the more complex, but optional, redim might be preferrable if most PC's don't have a virtual drive defined, as no Redim would be executed. If a few clock tics aren't important, or virtual drives are common, then the first example with the simple, but static, redim would be cool. Guess it's up to Monoceres if he wants to update the UDF, with one of these patches, or one of his own.

Hello

thx for you help, but i have a problem

E:\..\..\IMAPI2.au3(95,10) : ERROR: syntax error

Redim(

can you say me why?

greets

Link to comment
Share on other sites

  • 1 month later...

Ok, I think I have it now: "$sDestinationDir - Foler in the fs where the file is added" is not the Destination "Directory", it's the destination filename/dir on the cd/dvd. :)

"_IMAPI2_AddFileToFS($fs, "D:\TestSrc\Test.mp3", "\Test.mp3")

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Minor update. Added _IMAPI2_CreateDirectoryInFS() & _IMAPI2_RemoveFileFromFS().

See first post for download.

The function "_IMAPI2_RemoveFileFromFS" is misnamed, and I don't think the reference to "multisession disks" in the "_IMAPI2_BurnFSToDrive" comment is correct?
Link to comment
Share on other sites

@monoceres

I still play with these great UDFs and thought i would throw these two minor additions up here just in case someone needed them.I use them to fill in Info on the GUI i made for your UDFs.If you like you can add them to yours or if not ,O.K. ,there kind of useless for most people.

Func _IMAPI2_DriveGetVendorId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.VendorId
    Return ($sTemp)
EndFunc;==>_IMAPI2_DriveGetVendorId



Func _IMAPI2_DriveGetProductId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.ProductId
    Return ($sTemp)
EndFunc;==>_IMAPI2_DriveGetProductId

EXAMPLE

#include<IMAPI2.au3>
#include <GUIConstantsEx.au3>



$controlGui = GUICreate("ControlGUI", 400,400)

$list = GUICtrlCreateList("", 0, 65, 392, 80)
GUICtrlSetTip(-1, "List of Drives", "", 1)

$Combo1 = GUICtrlCreateCombo("select", 5, 26, 64, 25)
GUICtrlSetTip(-1, "Drive Letters ", "", 1)

$ids = _IMAPI2_DrivesGetID()
If $ids[0] = 0 Then Exit
For $i = 1 To $ids[0]
    $drive = _IMAPI2_DriveGetObj($ids[$i])
    If IsObj($drive) = 0 Then ContinueLoop
    $letters = _IMAPI2_DriveGetLetter($drive)
    $media = _IMAPI2_DriveGetMedia($drive)
    $vendor =  _IMAPI2_DriveGetVendorId($drive)
    $product = _IMAPI2_DriveGetProductId($drive)
    GUICtrlSetData($Combo1, $letters & ": ")
    GUICtrlSetData($list, $letters & ": "&$vendor &  $product)
Next
GUISetState()

    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then Exit
    WEnd

; #FUNCTION# ====================================================================================================



;================
; Name...........: _IMAPI2_DriveGetVendorId
; Description ...: Gets the VendorId of a drive using the object for the drive
; Syntax.........: _IMAPI2_DriveGetVendorId(ByRef $oRecorder)
; Parameters ....: $oRecorder - Object of the drive
; Return values .: Success - VendorId
; Author ........: Andreas Karlsson (monoceres)
; Modified.......: FrouFrou
; Remarks .......:
; Related .......: _IMAPI2_DriveGetObj
; Link ..........;
; Example .......; No
; ====================================================================================================



;===========================
Func _IMAPI2_DriveGetVendorId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.VendorId
    Return ($sTemp)
EndFunc;==>_IMAPI2_DriveGetVendorId
; #FUNCTION# ====================================================================================================



;================
; Name...........: _IMAPI2_DriveProductId
; Description ...: Gets the ProductId of a drive using the object for the drive
; Syntax.........: _IMAPI2_DriveProductId(ByRef $oRecorder)
; Parameters ....: $oRecorder - Object of the drive
; Return values .: Success - ProductId
; Author ........: Andreas Karlsson (monoceres)
; Modified.......: FrouFrou
; Remarks .......:
; Related .......: _IMAPI2_DriveGetObj
; Link ..........;
; Example .......; No
; ====================================================================================================



;===========================
Func _IMAPI2_DriveGetProductId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.ProductId
    Return ($sTemp)
EndFunc;==>_IMAPI2_DriveGetProductId
Edited by froufrou
Link to comment
Share on other sites

The function "_IMAPI2_RemoveFileFromFS" is misnamed, and I don't think the reference to "multisession disks" in the "_IMAPI2_BurnFSToDrive" comment is correct?

Thanks, first post updated.

@froufrou

Provide the appropriate comment header as well and it's in :D

Broken link? PM me and I'll send you the file!

Link to comment
Share on other sites

Something like this? :P;):D:D:D;) If not just tell me what i need to do. :D

; #FUNCTION# =====================================================================
; Name...........: _IMAPI2_DriveGetVendorId
; Description ...: Gets the VendorId of a drive using the object for the drive
; Syntax.........: _IMAPI2_DriveGetVendorId(ByRef $oRecorder)
; Parameters ....: $oRecorder - Object of the drive
; Return values .: Success - VendorId
; Author ........: FrouFrou
; Modified.......: 
; Remarks .......: derived from Imapi2 UDFs by Andreas Karlsson (monoceres)
; Related .......: _IMAPI2_DriveGetObj
; Link ..........;
; Example .......; No
; ===============================================================================
Func _IMAPI2_DriveGetVendorId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.VendorId
    Return ($sTemp)
EndFunc  ;==>_IMAPI2_DriveGetVendorId

; #FUNCTION# =====================================================================
; Name...........: _IMAPI2_DriveProductId
; Description ...: Gets the ProductId of a drive using the object for the drive
; Syntax.........: _IMAPI2_DriveProductId(ByRef $oRecorder)
; Parameters ....: $oRecorder - Object of the drive
; Return values .: Success - ProductId
; Author ........: FrouFrou
; Modified.......: 
; Remarks .......: derived from Imapi2 UDFs by Andreas Karlsson (monoceres)
; Related .......: _IMAPI2_DriveGetObj
; Link ..........;
; Example .......; No
; ================================================================================
Func _IMAPI2_DriveGetProductId(ByRef $oRecorder)
    Local $sTemp = $oRecorder.ProductId
    Return ($sTemp)
EndFunc  ;==>_IMAPI2_DriveGetProductId
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...