NeroAPI refuses to abort

Hi all,
I am using NeroAPI I am trying to burn DVDs, and my program can usually do that without any problems. The program detects if the user aborts the program with ctrl-c and sets an abort-flag to true. This flag is returned by the idle callback.

Now, if the disc that I insert does not work (too worn down or what ever fault it might have), NeroAPI hangs on the ‘Checking discs’ phase. If the user then aborts the program, and even though the idle callback does return TRUE, NeroAPI will refuse to abort and cancel the burn process, and just continue checking the disc (I guess).

Does anyone know what I could do to ensure that Nero will abort, or is it a bug of some sort in Nero ?

Try whether you can reproduce this in Nero itself - I bet you can.

I had a similar problem where the checking disks process stopped at 75% or so and Nero seemed to just hang. The reason was that I was not processing the UserDialog function and Nero was actually telling me that the disc I was using did not have enough space on it to burn my files, and was waiting for me to put a disc in with enough space.

Are you processing the UserDialog function for all possible failures?

Yes, I catch all UserDialog cases. However, Nero never calls that callback in my case, it only seems to get stuck in some infinite loop ignoring the abort return value from the IdleCallback function.

I also tried, and it seems it also suffers from the same problem. It halts at the “Checking discs”, I press “Stop”, it grays out and nothing more happens. The “x” button on the top-right is also greyed out, and the only way to stop the program is to end the process in the Task Manager.

Quaint… so it is seems to be some bug in Nero thus. Be warned.

Did you try what happens if you do not use the Nero wait-for-disk procedure, but instead repeatedly get the CD info (e.g. in 500ms interval)?

Maybe this would be a quick’n’dirty workaround.

I am not myself using the NeroWaitForDisc function (I tried it, and behaves just like when burning), but the NeroBurn function itself is. I can get the CD info all right, but that will not help me as long as NeroBurn is trying to check the disc. Thanks for the suggestion, though.

So, just to understand you correctly, you can successfully retrieve the disk information with NeroGetCDInfo right before you call NeroBurn, but NeroBurn still hangs while the NeroGetCDInfo succeeds?

Indeed, doing a NeroGetCDInfo just before NeroBurn works fine. NeroBurn starts, and hangs at the Checking Discs phase. The idle callback routine is called over and over again, and even though it returns true, Nero just keeps calling the idle callback (and no other callback, I stoped waiting after a few minutes without anything else happening).