UserDialog callback

vbimport

#1

I am trying to handle the situation where there is not enough room on the CD-RW. NeroCMD works OK. In my app the UserDialog callback never gets called. (IdleCallback DOES get called.) I have the same flags set for NeroBurn inmy app as for NeroCMD (0x29c), and all the same references in the code, which all get called. NeroBurn returns NEROAPI_BURN_USER_ABORT.
Any idea what would cause the callback not to be called?
I am using Nero 6 with VC++.NET on XP.


#2

The difference is that my app is doing an import for a multi-session. NeroCMD was not. The import causes the CD stamp to be set which appears to be the critical factor in stopping the callback working. If I set pWriteCD->m_pCDStamp to NULL, the callback works?
Why does the CD stamp affect the callback, and what is it for?


#3

I now have my UserDialog callback working. If there is not enough space on the CD, it is ejected and UserDialog is called with DLG_WAITCD, DLG_WAIT_DONE etc, but then there are no more calls until the CD is inserted. Is there a way of timing out so that NeroBurn returns with an error if the CD has not been inserted after a certain period?


#4

Why does the CD stamp affect the callback, and what is it for?

The purpose of the CD stamp is to let NeroAPI require exactly the disc that the CD stamp describes. E.g. for multisession discs, you don’t want the user to insert any disc, but the one, you have imported the session from.

Is there a way of timing out so that NeroBurn returns with an error if the CD has not been inserted after a certain period?

No. You can add a timer by yourself and if the timeout is reached, return FALSE in the idle callback, which will let NeroAPI cancel the burning operation.