Thanks for responding matze,
NeroAPITest.exe can eject the drive without problem, so i assume i must be doing something wrong.
Windows 2000 SP3
Ejecting the drive is basically the first thing that my program does, as it is sopposed to work an automated disc publishing system, it needs to eject the drive in order to have the robotic arm place a blank cd in it (so NeroEjectLoadCD is the first thing NeroAPI does after initializing itself). Although the program origionally did the burning on a seperate thread than the one which initialized the API, since i've been running into this problem i've attempted to open the drive on the same thread it uses to start (this hasn't worked any better).
The managed c++ wrapper class really doesn't do anything other than create an unmanaged object of the class i use to control the drive (this class is the one that uses the NeroAPI), and acts simply to point to that class for when it comes time to burn something.... meaning i really don't understand how that could be effecting the API.
have people reported problems with using .NET interoperability and NeroAPI before?