Home COM GDI+ WebBrowser Data Access

ICDBurn Interface

 

CLSID_CDBurn

{FBEB8A05-BEEE-4442-804E-409D6C4515E9}

IID_ICDBurn

{3D73A659-E5D0-4D42-AFC0-5121BA425C8D}

 

 

The ICDBurn interface is used for three things.

  • To determine whether hardware capable of writing to CD is present on the system.

  • To determine the drive letter of a CD writer device.

  • To programmatically initiate a CD writing session.

 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

ICDBurn Methods

Description

GetRecorderDriveLetter

Retrieves the drive letter of a CD drive which has been marked as write-enabled.

Burn

Instructs data to be copied from the staging area to a writable CD.

HasRecordsableDrive

Scans the system for a CD drive with write-capability, returning TRUE if one is found.

 

Wrapper to create an instance of ICDBurn

 

FUNCTION ICDBurn_CreateInstance ( _

  BYREF ppCDBurn AS DWORD _

  ) AS LONG

   LOCAL CLSID_CDBurn AS GUID
   LOCAL IID_ICDBurn AS GUID

   CLSID_CDBurn = GUID$("{FBEB8A05-BEEE-4442-804E-409D6C4515E9}")
   IID_ICDBurn = GUID$("{3D73A659-E5D0-4D42-AFC0-5121BA425C8D}")
   FUNCTION = CoCreateInstance(CLSID_CDBurn, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ICDBurn, ppCDBurn)

END FUNCTION

 

 

GetRecorderDriveLetter

 

DECLARE FUNCTION Proto_ICDBurn_GetRecorderDriveLetter ( _
  BYVAL pthis AS DWORD PTR _
, BYVAL pszDrive AS DWORD _
, BYVAL cch AS DWORD _
  ) AS LONG

FUNCTION ICDBurn_GetRecorderDriveLetter ( _
  BYVAL pthis AS DWORD PTR _
, BYREF strDrive AS STRING _
  ) AS LONG

  LOCAL HRESULT AS LONG
  LOCAL nPos AS LONG
  LOCAL szDrive AS STRING
  szDrive = STRING$(10, CHR$(0)) ' // Null-terminated unicode string
  CALL DWORD @@pthis[3] USING Proto_ICDBurn_GetRecorderDriveLetter (pthis, STRPTR(szDrive), LEN(szDrive)) TO HRESULT
  strDrive = ACODE$(szDrive)
  nPos = INSTR(strDrive, CHR$(0))
  IF nPos THEN strDrive = LEFT$(strDrive, nPos - 1)
  FUNCTION = HRESULT

END FUNCTION

 

 

Burn

 

FUNCTION ICDBurn_Burn ( _
  BYVAL pthis AS DWORD PTR _
, BYVAL hWnd AS DWORD _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[4] USING ICDBurn_Burn (pthis, hWnd) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HasRecordableDrive

 

FUNCTION ICDBurn_HasRecordableDrive ( _
  BYVAL pthis AS DWORD PTR _
, BYREF pfHasRecorder AS DWORD _
  ) AS LONG

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

END FUNCTION

 

 

Page last updated on Monday, 20 March 2006 04:08:04 +0100