I have recently been working on CD/DVD burning feature and I was using Ahead Nero API as an option. Frankly, I was of a better opinion of this API. It is more or less well documented and C++ definitions looks fine, however…
The first problem was it failed to operate on a worker thread. My lord! I have to have burning task running on the application GUI STA thread using crappy poll-style abort callbacks. Anyway it did not work on a worker thread stumbling on a number of memory access violations. It was ludicrous that I already made everything look almost like in their sample application but API kept throwing exceptions. Until I realized it makes difference if it was running on a worker thread or not.
Anyway it keeps throwing int exceptions, and when under debugger and you stop on the exception, then chances are high that there will be anyway access violations later after burn is complete.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: dummy_exception @ 0x0013a688.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.
First-chance exception at 0x7c81eb33 in DVRRunDll.exe: Microsoft C++ exception: int @ 0x00139594.