Burn help

Hello, i’m problem burn cd/dvd please help,
bug its in function, bat it can I commit mistake.

int iRes = NeroBurn(ndhDeviceHandle, NERO_ISO_AUDIO_CD, &writeCD,NBF_WRITE, 0, &npProgress); <= her its a bug “access violation”

my code see:

void CBurnMeDlg::OnBurn()
{
// TODO: Add your control notification handler code here
if (mstrFileName == “”)
{
AppendString(“You have to choose a file before you can start burning!”);
}
else
{
strcpy(mniiFile.fileName, mstrFileName);
strcpy(mniiFile.sourceFilePath, mstrPathName);
mniiFile.isDirectory=FALSE;
mniiFile.isReference=FALSE;
mniiFile.nextItem=NULL;
writeCD.nwcdpCDStamp=NULL;
writeCD.nwcdArtist=NULL;
writeCD.nwcdTitle=NULL;
writeCD.nwcdCDExtra=FALSE;
writeCD.nwcdNumTracks=0;
writeCD.nwcdMediaType = MEDIA_CD;
int i = mcbxDevices.GetCurSel();
NERO_SCSI_DEVICE_INFO* nsdiDevice =
(NERO_SCSI_DEVICE_INFO*)mcbxDevices.GetItemDataPtr(i);

ndhDeviceHandle = NeroOpenDevice(nsdiDevice);
if (!ndhDeviceHandle)
{
AppendString("Device could not be opened: "+(CString)nsdiDevice->nsdiDeviceName);
}
else
{
mbtnAbort.EnableWindow(true);
mCancel.EnableWindow(false);
mOK.EnableWindow(false);
mcbxDevices.EnableWindow(false);
mbtnBrowse.EnableWindow(false);
mbtnBurn.EnableWindow(false);
mpgsProgress.SetRange(0,100);
writeCD.nwcdIsoTrack = NeroCreateIsoTrackEx(&mniiFile,
“NeroFiddles”, NCITEF_CREATE_ISO_FS|NCITEF_USE_JOLIET);

int iRes = NeroBurn(ndhDeviceHandle, NERO_ISO_AUDIO_CD, &writeCD,NBF_WRITE, 0, &npProgress); <= her its a bug access violation

NeroFreeIsoTrack(writeCD.nwcdIsoTrack);
NeroCloseDevice(ndhDeviceHandle);
mbtnAbort.EnableWindow(false);
mCancel.EnableWindow(true);
mOK.EnableWindow(true);
mcbxDevices.EnableWindow(true);
mbtnBrowse.EnableWindow(true);
mbtnBurn.EnableWindow(true);
mpgsProgress.SetPos(0);
mbAborted = false;
char* Log = NeroGetErrorLog();
AppendString(Log);
NeroFreeMem(Log);
switch(iRes)
{
case NEROAPI_BURN_OK:
AppendString (“BurnCD() : burn successful”);
break;
case NEROAPI_BURN_UNKNOWN_CD_FORMAT:
AppendString (“BurnCD() : unknown CD format”);
break;
case NEROAPI_BURN_INVALID_DRIVE:
AppendString (“BurnCD() : invalid drive”);
break;
case NEROAPI_BURN_FAILED:
AppendString (“BurnCD() : burn failed”);
break;
case NEROAPI_BURN_FUNCTION_NOT_ALLOWED:
AppendString (“BurnCD() : function not allowed”);
break;
case NEROAPI_BURN_DRIVE_NOT_ALLOWED:
AppendString (“BurnCD() : drive not allowed”);
break;
case NEROAPI_BURN_USER_ABORT:
AppendString (“BurnCD() : user aborted”);
break;
case NEROAPI_BURN_BAD_MESSAGE_FILE:
AppendString (“BurnCD() : bad message file”);
break;
default:
AppendString (“BurnCD() : unknown error”);
break;
}
}
}
}