NeroAPI dependancy on IMAPI

I’ve got two recorder drives in my system:

  • Iomega SuperDVD USB2 DVD rewriter (IOMEGA DVDRW8440E2D-B USB Device)
  • NEC internal CD rewriter _NEC CD-RW NR-9300A

I’m burning data to CD / DVD using my own app based on NeroAPI and Nero v.

My app works fine burning to both of these drives, but:

If I disable the IMAPI service then by NeroAPI application stops working with the NEC CD rewriter drive (the Iomega DVD rewriter still works fine).

m_pNeroCDInfo = NeroGetCDInfo(m_hNeroDeviceHandle, 0);

if (NULL == m_pNeroCDInfo)

	NeroGetLastDriveError(&driveError, NULL);

The call to NeroGetLastDriveError() returns NDE_NO_ERROR. Which is obviously incorrect as NeroGetCDInfo() returned a NULL pointer.

If I re-enable IMAPI it all starts working again (without a reboot), so I’m fairly certain that’s the cause.

Oh, and my app works on Windows 2000 which doesn’t have IMAPI.

So, does anyone know why Nero is dependent on IMAPI?

And does anyone know of a work around / fix to this problem other than telling the user to re-enable IMAPI?