Home COM GDI+ WebBrowser Data Access

IDiscRecorder Interface

 

IID_IDiscRecorder

{85AC9776-CA88-4cf2-894E-09598C078A41}

 

 

The IDiscRecorder interface enables access to a single disc recorder device, labeled the active disc recorder. An IMAPI object such as MSDiscMasterObj maintains an active disc recorder.

 

An IDiscRecorder object represents a single hardware device, but there can be multiple instances of IDiscRecorder all referencing the same hardware device. In this case, use OpenExclusive to access that device.

 

Use an instance of this object to select the recorder for a burn through IDiscMaster and to perform basic control tasks on a specific physical disc recorder.

Note  An application does not call CoCreateInstance for one of these objects, but instead uses the IDiscMaster::EnumDiscRecorders method to retrieve an enumerator that returns pointers to all the recorders valid for a specific format.

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IDiscRecorder Methods

Description

Init

Initializes the object for an underlying device. Used internally only.

GetRecorderGUID

Retrieves the underlying device GUID.

GetRecorderType

Identifies device as CD-R or CD-RW.

GetDisplayNames

Retrieves a name suitable for GUI display.

GetBasePnPID

Returns identifier unique to device class.

GetPath

Returns an OS path to the device.

GetRecorderProperties

Retrieve a pointer to the IPropertyStorage interface for the recorder.

SetRecorderProperties

Set properties for the recorder.

GetRecorderState

Checks if recorder is ready to burn.

OpenExclusive

Opens a device for exclusive use.

QueryMediaType

Identifies the type of media in the recorder.

QueryMediaInfo

Retrieves media properties.

Eject

Ejects a recorder's tray, if possible.

Erase

Erases CD-RW media, if possible.

Close

Close a recorder after exclusive access.

 

Init

 

FUNCTION IDiscRecorder_Init ( _
  BYVAL pthis AS DWORD PTR _

, BYVAL pbyUniqueID AS BYTE PTR _

, BYVAL nulIDSize AS DWORD _

, BYVAL nulDriveNumber AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[3] USING IDiscRecorder_Init (pthis, pbyUniqueID, nulIDSize, nulDriveNumber) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

GetRecorderGUID

 

FUNCTION IDiscRecorder_GetRecorderGUID ( _
  BYVAL pthis AS DWORD PTR _

, BYVAL pbyUniqueID AS BYTE PTR _

, BYVAL ulBufferSize AS DWORD _

, BYREF pulReturnSizeRequired AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[4] USING IDiscRecorder_GetRecorderGUID (pthis, pbyUniqueID, ulBufferSize, pulReturnSizeRequired) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

GetRecorderType

 

FUNCTION IDiscRecorder_GetRecorderType ( _
  BYVAL pthis AS DWORD PTR _

, BYREF fTypeCode AS LONG _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[5] USING IDiscRecorder_GetRecorderType (pthis, fTypeCode) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

GetDisplayNames

 

FUNCTION IDiscRecorder_GetDisplayNames ( _
  BYVAL pthis AS DWORD PTR _

, BYREF pbstrVendorID AS STRING _

, BYREF pbstrProductID AS STRING _

, BYREF pbstrRevision AS STRING _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[6] USING IDiscRecorder_GetDisplayNames (pthis, pbstrVendorID, pbstrProductID, pbstrRevision) TO HRESULT
  FUNCTION = HRESULT
  pbstrVendorID = ACODE$(pbstrVendorID)
  pbstrProductID = ACODE$(pbstrProductID)
  pbstrRevision = ACODE$(pbstrRevision)

END FUNCTION

 

 

GetBasePnPID

 

FUNCTION IDiscRecorder_GetBasePnPID ( _
  BYVAL pthis AS DWORD PTR _

, BYREF pbstrPath AS STRING _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[7] USING IDiscRecorder_GetBasePnPID (pthis, pbstrPath) TO HRESULT
  FUNCTION = HRESULT
  pbstrPath = ACODE$(pbstrPath)

END FUNCTION

 

 

GetPath

 

FUNCTION IDiscRecorder_GetPath ( _
  BYVAL pthis AS DWORD PTR _

, BYREF pbstrPath AS STRING _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[8] USING IDiscRecorder_GetPath (pthis, pbstrPath) TO HRESULT
  FUNCTION = HRESULT
  pbstrPath = ACODE$(pbstrPath)

END FUNCTION

 

 

GetRecorderProperties

 

FUNCTION IDiscRecorder_GetRecorderProperties ( _
  BYVAL pthis AS DWORD PTR _

, BYREF ppPropStg AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[9] USING IDiscRecorder_GetRecorderProperties (pthis, ppPropStg) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

SetRecorderProperties

 

FUNCTION IDiscRecorder_SetRecorderProperties ( _
  BYVAL pthis AS DWORD PTR _

, BYVAL ppPropStg AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[10] USING IDiscRecorder_SetRecorderProperties (pthis, ppPropStg) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

GetRecorderState

 

FUNCTION IDiscRecorder_GetRecorderState ( _
  BYVAL pthis AS DWORD PTR _

, BYREF pulDevStateFlags AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[11] USING IDiscRecorder_GetRecorderState (pthis, pulDevStateFlags) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

OpenExclusive

 

FUNCTION IDiscRecorder_OpenExclusive ( _
  BYVAL pthis AS DWORD PTR _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[12] USING IDiscRecorder_OpenExclusive (pthis) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

QueryMediaType

 

FUNCTION IDiscRecorder_QueryMediaType ( _
  BYVAL pthis AS DWORD PTR _

, BYREF fMediaType AS LONG _

, BYREF fMediaFlags AS LONG _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[13] USING IDiscRecorder_QueryMediaType (pthis, fMediaType, fMediaFlags) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

QueryMediaInfo

 

FUNCTION IDiscRecorder_QueryMediaInfo ( _
  BYVAL pthis AS DWORD PTR _

, BYREF pbSessions AS BYTE _

, BYREF pbLastTrack AS BYTE _

, BYREF ulStartAddress AS DWORD _

, BYREF ulNextWritable AS DWORD _

, BYREF ulFreeBlocks AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[14] USING IDiscRecorder_QueryMediaInfo (pthis, pbSessions, pbLastTrack, ulStartAddress, ulNextWritable, ulFreeBlocks) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Eject

 

FUNCTION IDiscRecorder_Eject ( _
  BYVAL pthis AS DWORD PTR _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[15] USING IDiscRecorder_Eject (pthis) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Erase

 

FUNCTION IDiscRecorder_Erase ( _
  BYVAL pthis AS DWORD PTR _

, BYVAL bFulLErase AS LONG _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[16] USING IDiscRecorder_Erase (pthis, bFulLErase) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Close

 

FUNCTION IDiscRecorder_Close ( _
  BYVAL pthis AS DWORD PTR _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[17] USING IDiscRecorder_Close (pthis) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Page last updated on Sunday, 12 March 2006 22:06:31 +0100