123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599 |
- #ifndef _NEROAPI_
- #define _NEROAPI_
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
- #define NADLL_ATTR __cdecl
- #ifdef __NEROAPIGLUE__
- #define NEROAPI_API
- #else
-
- #ifdef NEROAPI
- #define NEROAPI_API __declspec(dllexport)
- #else
- #define NEROAPI_API __declspec(dllimport)
- #endif
- #endif
- #ifdef __cplusplus
- class CSourceDriveInfo;
- typedef CSourceDriveInfo *NERO_DEVICEHANDLE;
- #else
- typedef void *NERO_DEVICEHANDLE;
- #endif
- #include <windows.h> // the data types used below are those of windows
-
- #include <time.h>
- #include "NeroUserDialog.h"
- #if defined(__BORLANDC__)
- #pragma pack(push, 8)
- #pragma option push -b
- #endif
- NEROAPI_API void NADLL_ATTR NeroFreeMem (void *pMem);
- NEROAPI_API char * NADLL_ATTR NeroGetLastError ();
- NEROAPI_API char * NADLL_ATTR NeroGetErrorLog ();
- NEROAPI_API char * NADLL_ATTR NeroGetLastErrors(int iNum, DWORD dwFlags, void *reserved);
- #define NGLE_ALL (1<<0)
- #define NGLE_REPORT (1<<1)
- typedef enum
- {
- NDE_NO_ERROR = 0,
- NDE_GENERIC_ERROR = 1,
- NDE_DRIVE_IN_USE = 2,
- NDE_DRIVE_NOT_READY = 3,
- NDE_NO_DRIVE = 4,
- NDE_DISC_NOT_PRESENT = 5,
- NDE_DISC_NOT_PRESENT_TRAY_OPEN = 6,
- NDE_DISC_NOT_PRESENT_TRAY_CLOSED = 7
- } NERO_DRIVE_ERROR;
- #define DISC_NOT_PRESENT(x) (((x == NDE_DISC_NOT_PRESENT) || \
- (x == NDE_DISC_NOT_PRESENT_TRAY_CLOSED) || \
- (x == NDE_DISC_NOT_PRESENT_TRAY_OPEN)) ? TRUE : FALSE)
- NEROAPI_API void NADLL_ATTR NeroGetLastDriveError( NERO_DRIVE_ERROR *driveError, void *reserved);
- NEROAPI_API void NADLL_ATTR NeroClearErrors ();
- #define NEROAPI_VERSION_MAJOR_HIGH 6
- #define NEROAPI_VERSION_MAJOR_LOW 6
- #define NEROAPI_VERSION_MINOR_HIGH 0
- #define NEROAPI_VERSION_MINOR_LOW 1
- NEROAPI_API BOOL NADLL_ATTR NeroGetAPIVersionEx(WORD *majhi
- ,WORD *majlo
- ,WORD *minhi
- ,WORD *minlo
- ,void *reserved);
- NEROAPI_API BOOL NADLL_ATTR NeroSetExpectedAPIVersionEx(WORD majhi
- ,WORD majlo
- ,WORD minhi
- ,WORD minlo
- ,WORD *pPrevExpectedVersion);
- typedef struct tag_NERO_CALLBACK
- {
- void *ncCallbackFunction;
- void *ncUserData;
- } NERO_CALLBACK;
- typedef BOOL (NERO_CALLBACK_ATTR *NERO_IDLE_CALLBACK) (void *pUserData);
- typedef struct tag_NERO_SETTINGS
- {
- const char *nstNeroFilesPath;
-
- const char *nstVendor,
- *nstSoftware;
- const char *nstLanguageFile;
- NERO_CALLBACK nstIdle;
- NERO_CALLBACK nstUserDialog;
-
- BOOL nstEnableOverburn;
- DWORD nstOverburnSize;
- } NERO_SETTINGS;
- typedef enum
- {
- NEROAPI_INIT_OK=0,
- NEROAPI_INIT_INVALID_ARGS,
- NEROAPI_INIT_UNSPECIFIED_ERROR,
- NEROAPI_INIT_INVALID_SERIAL_NUM,
- NEROAPI_INIT_DEMOVERSION_EXPIRED,
- NEROAPI_INIT_ALREADY_INITIALISED,
- NEROAPI_INIT_CANNOT_LOCK
- } NEROAPI_INIT_ERROR;
- NEROAPI_API NEROAPI_INIT_ERROR NADLL_ATTR NeroInit (const NERO_SETTINGS *pNeroSettings,const char *reserved);
- NEROAPI_API BOOL NADLL_ATTR NeroDone ();
- typedef enum
- {
- NEROAPI_OPTION_MSG_FILE_NAME,
- NEROAPI_OPTION_WRITE_BUFFER_SIZE,
-
-
-
-
-
- NEROAPI_OPTION_USER_DLG_CALLBACK,
-
-
-
-
- NEROAPI_OPTION_IDLE_CALLBACK,
-
-
-
-
- NEROAPI_OPTION_OVERBURN,
-
-
-
-
- NEROAPI_OPTION_DVDOVERBURN
- } NEROAPI_OPTION;
- NEROAPI_API int NADLL_ATTR NeroSetOption(NEROAPI_OPTION option,void *value);
- typedef enum
- {
- NEA_SCSI_DEVTYPE_UNKNOWN,
- NEA_SCSI_DEVTYPE_WORM,
- NEA_SCSI_DEVTYPE_CDROM,
- NEA_SCSI_DEVTYPE_UNSUPPORTED_WORM
- } NEROAPI_SCSI_DEVTYPE;
- typedef struct tag_NERO_SPEED_INFOS
- {
- DWORD nsiNumSupportedSpeeds;
- DWORD nsiBaseSpeedKBs;
- DWORD nsiSupportedSpeedsKBs[64];
- DWORD nsiSupportedSpeeds[64];
- DWORD nsiReserved[32];
- } NERO_SPEED_INFOS;
- typedef enum tag_NERO_MEDIA_TYPE
- {
- MEDIA_NONE = 0,
- MEDIA_CD = 0x00001,
- MEDIA_DDCD = 0x00002,
- MEDIA_DVD_M = 0x00004,
- MEDIA_DVD_P = 0x00008,
- MEDIA_DVD_RAM = 0x00010,
- MEDIA_ML = 0x00020,
- MEDIA_MRW = 0x00040,
-
- MEDIA_NO_CDR = 0x00080,
- MEDIA_NO_CDRW = 0x00100,
- MEDIA_CDRW = MEDIA_CD|MEDIA_NO_CDR,
- MEDIA_CDR = MEDIA_CD|MEDIA_NO_CDRW,
- MEDIA_DVD_ROM = 0x00200,
- MEDIA_CDROM = 0x00400,
-
- MEDIA_NO_DVD_M_RW = 0x00800,
- MEDIA_NO_DVD_M_R = 0x01000,
- MEDIA_NO_DVD_P_RW = 0x02000,
- MEDIA_NO_DVD_P_R = 0x04000,
- MEDIA_DVD_M_R = MEDIA_DVD_M|MEDIA_NO_DVD_M_RW,
- MEDIA_DVD_M_RW = MEDIA_DVD_M|MEDIA_NO_DVD_M_R,
- MEDIA_DVD_P_R = MEDIA_DVD_P|MEDIA_NO_DVD_P_RW,
- MEDIA_DVD_P_RW = MEDIA_DVD_P|MEDIA_NO_DVD_P_R,
- MEDIA_FPACKET = 0x08000,
- MEDIA_VPACKET = 0x10000,
- MEDIA_PACKETW = MEDIA_MRW|MEDIA_FPACKET
- |MEDIA_VPACKET,
-
- MEDIA_HDB = 0x20000,
-
-
- MEDIA_DVD_P_R9 = 0x40000,
- MEDIA_DVD_ANY = MEDIA_DVD_M|MEDIA_DVD_P|MEDIA_DVD_RAM|MEDIA_DVD_P_R9
- } NERO_MEDIA_TYPE;
- typedef DWORD NERO_MEDIA_SET;
- typedef struct tag_NERO_SCSI_DEVICE_INFO
- {
- char nsdiDeviceName[64];
- char nsdiHostAdapterName[8];
- DWORD nsdiHostAdapterNo;
- DWORD nsdiDeviceID;
- NEROAPI_SCSI_DEVTYPE nsdiDevType;
- char nsdiDriveLetter;
- DWORD nsdiCapabilities;
- #define NSDI_ALLOWED (1<<0)
- #define NSDI_DAO (1<<1)
- #define NSDI_READ_CD_TEXT (1<<2)
- #define NSDI_VARIABLE_PAUSES_IN_TAO (1<<3)
- #define NSDI_DAO_WRITE_CD_TEXT (1<<4)
- #define NSDI_IMAGE_RECORDER (1<<6)
- #define NSDI_UNDETECTED (1<<7)
- #define NSDI_IDE_BUS (1<<8)
- #define NSDI_SCSI_BUS (1<<9)
- #define NSDI_BUF_UNDERRUN_PROT (1<<10)
- #define NSDI_RESERVED (1<<11)
- #define NSDI_RESERVED2 (1<<12)
- #define NSDI_ALLOW_CHANGE_BOOKTYPE (1<<13) /* NeroAPI >5.5.10.7: DVD recorder can change booktype of burned medium */
- #define NSDI_DVDPLUSVR_SUPPORTED (1<<14) /* NeroAPI >= 6.0.0.0: This recorder can write DVD+VR */
- NERO_SPEED_INFOS nsdiReadSpeeds;
- NERO_SPEED_INFOS nsdiWriteSpeeds;
- const void *nsdiDriver;
- char nsdiBufUnderrunProtName[64];
-
- DWORD nsdiMandatoryBUPSpeed;
- NERO_MEDIA_SET nsdiMediaSupport;
- DWORD nsdiDriveBufferSize;
-
- DWORD nsdiDriveError;
- NERO_MEDIA_SET nsdiMediaReadSupport;
- DWORD nsdiReserved[61];
- } NERO_SCSI_DEVICE_INFO;
- typedef struct tag_NERO_SCSI_DEVICE_INFOS
- {
- DWORD nsdisNumDevInfos;
- NERO_SCSI_DEVICE_INFO nsdisDevInfos[1];
- } NERO_SCSI_DEVICE_INFOS;
- NEROAPI_API NERO_SCSI_DEVICE_INFOS * NADLL_ATTR NeroGetAvailableDrivesEx(
- NERO_MEDIA_TYPE mediaType,
- void *reserved);
- NEROAPI_API NERO_DRIVE_ERROR NADLL_ATTR NeroUpdateDeviceInfo(NERO_SCSI_DEVICE_INFO *devInfo
- , NERO_MEDIA_TYPE mediaType
- , void *reserved);
- NEROAPI_API char *NADLL_ATTR NeroGetTypeNameOfMedia(NERO_MEDIA_SET media,void *reserved);
- NEROAPI_API NERO_DEVICEHANDLE NADLL_ATTR NeroOpenDevice(const NERO_SCSI_DEVICE_INFO* pDevInfo);
- NEROAPI_API void NADLL_ATTR NeroCloseDevice(NERO_DEVICEHANDLE aDeviceHandle);
-
- typedef enum
- {
- ACCESSTYPE_WRITE,
- ACCESSTYPE_READ
- } NERO_ACCESSTYPE;
- NEROAPI_API NERO_SPEED_INFOS * NADLL_ATTR NeroGetAvailableSpeeds(NERO_DEVICEHANDLE aDeviceHandle,
- NERO_ACCESSTYPE accessType,
- NERO_MEDIA_TYPE mediaType,
- void *reserved);
- typedef enum tag_BookTypeSettings
- {
- BTS_PHYSICAL_DISC_TYPE = 0,
- BTS_DVD_ROM = 1,
- BTS_UNMODIFIED = 2,
- BTS_AUTOMATIC = 3
- } NERO_BOOK_TYPE_SETTINGS;
- typedef enum
- {
-
- NERO_DEVICEOPTION_BOOKTYPE_DVDROM = 0,
-
- NERO_DEVICEOPTION_LAYERSWITCH = 1,
-
- NERO_DEVICEOPTION_BOOKTYPE_DVDROM_NEXT_WRITE = 2,
-
- NERO_DEVICEOPTION_BREAK_LAYER = 3
- } NERO_DEVICEOPTION;
- NEROAPI_API int NADLL_ATTR NeroSetDeviceOption(NERO_DEVICEHANDLE aDeviceHandle,
- NERO_DEVICEOPTION aOption,
- void *value);
- NEROAPI_API void* NADLL_ATTR NeroGetDeviceOption(NERO_DEVICEHANDLE aDeviceHandle,
- NERO_DEVICEOPTION aOption, void* reserved);
- typedef enum
- {
- NTT_UNKNOWN,
- NTT_DATA,
- NTT_AUDIO
- } NERO_TRACK_TYPE;
- typedef struct tag_NERO_TRACK_INFO
- {
- DWORD ntiSessionNumber;
- DWORD ntiTrackNumber;
- NERO_TRACK_TYPE ntiTrackType;
- DWORD ntiTrackStartBlk;
- DWORD ntiTrackLengthInBlks;
- char ntiArtist[65];
- char ntiTitle[65];
- char ntiISRC[13];
- DWORD ntiBlockSize;
- DWORD ntiReserved[28];
- } NERO_TRACK_INFO;
- typedef enum
- {
- NMT_UNKNOWN,
- NMT_CD_ROM,
- NMT_CD_RECORDABLE,
- NMT_CD_REWRITEABLE
- } NERO_MEDIUM_TYPE;
- typedef struct tag_NERO_CD_INFO
- {
- DWORD ncdiFreeCapacityInBlocks;
- BOOL ncdiIsWriteable;
- NERO_MEDIUM_TYPE ncdiMediumType;
- char ncdiArtist[65];
- char ncdiTitle[65];
- DWORD ncdiAvailableEraseModes;
- DWORD ncdiUnusedBlocks;
- NERO_MEDIA_TYPE ncdiMediaType;
- DWORD ncdiMediumFlags;
- #define NCDIMF_VIRTUALMULTISESSION (1<<0)
- #define NCDIMF_HDB_SUPPORTED (1<<1)
- DWORD ncdiLayer0MaxBlocks;
- DWORD ncdiTotalCapacity;
- DWORD ncdiReserved[26];
- DWORD ncdiNumTracks;
- NERO_TRACK_INFO ncdiTrackInfos[1];
- } NERO_CD_INFO;
- #define NCDI_IS_ERASE_MODE_AVAILABLE(cdInfo,eraseMode) ((cdInfo).ncdiAvailableEraseModes & (1<<(eraseMode)))
- NEROAPI_API NERO_CD_INFO * NADLL_ATTR NeroGetCDInfo(NERO_DEVICEHANDLE aDeviceHandle, DWORD dwFlags);
- #define NGCDI_READ_CD_TEXT (1<<0)
- #define NGCDI_READ_ISRC (1<<1) /* NeroAPI>=5.5.8.4 */
- #define NGCDI_USE_HDB (1<<2)
- typedef struct tag_NERO_VMSSESSION
- {
- char nvmssSessionName[256];
- struct tm nvmssCreationTime;
- DWORD nvmssNextWritableAddress;
- DWORD nvmssReserved[32];
- } NERO_VMSSESSION;
- typedef struct tag_NERO_VMS_INFO
- {
- DWORD nvmsiNextWritableAddress;
- DWORD nvmsiNumSessions;
- DWORD nvmsiReserved[32];
- NERO_VMSSESSION nvmsiSessionInfo[1];
- } NERO_VMS_INFO;
- NEROAPI_API NERO_VMS_INFO * NADLL_ATTR NeroGetVMSInfo(NERO_DEVICEHANDLE aDeviceHandle, DWORD dwFlags);
- NEROAPI_API NERO_CD_INFO * NADLL_ATTR NeroGetDiscImageInfo(const char *imagePath, void *reserved);
- typedef BOOL (NERO_CALLBACK_ATTR *NERO_PROGRESS_CALLBACK)(void *pUserData, DWORD dwProgressInPercent);
- typedef BOOL (NERO_CALLBACK_ATTR *NERO_ABORTED_CALLBACK)(void *pUserData);
- typedef enum
- {
- NERO_TEXT_INFO,
- NERO_TEXT_STOP,
- NERO_TEXT_EXCLAMATION,
- NERO_TEXT_QUESTION,
- NERO_TEXT_DRIVE,
- NERO_TEXT_FILE,
- NERO_TEXT_UNSPECIFIED
- } NERO_TEXT_TYPE;
- typedef enum
- {
- NERO_PHASE_UNSPECIFIED =-1,
- NERO_PHASE_START_CACHE =24,
- NERO_PHASE_DONE_CACHE =25,
- NERO_PHASE_FAIL_CACHE = 26,
- NERO_PHASE_ABORT_CACHE = 27,
- NERO_PHASE_START_TEST =28,
- NERO_PHASE_DONE_TEST =29,
- NERO_PHASE_FAIL_TEST = 30,
- NERO_PHASE_ABORT_TEST = 31,
- NERO_PHASE_START_SIMULATE =32,
- NERO_PHASE_DONE_SIMULATE =33,
- NERO_PHASE_FAIL_SIMULATE = 34,
- NERO_PHASE_ABORT_SIMULATE = 35,
- NERO_PHASE_START_WRITE =36,
- NERO_PHASE_DONE_WRITE =37,
- NERO_PHASE_FAIL_WRITE = 38,
- NERO_PHASE_ABORT_WRITE = 39,
- NERO_PHASE_START_SIMULATE_NOSPD =61,
- NERO_PHASE_DONE_SIMULATE_NOSPD =62,
- NERO_PHASE_FAIL_SIMULATE_NOSPD = 63,
- NERO_PHASE_ABORT_SIMULATE_NOSPD = 64,
- NERO_PHASE_START_WRITE_NOSPD =65,
- NERO_PHASE_DONE_WRITE_NOSPD =66,
- NERO_PHASE_FAIL_WRITE_NOSPD = 67,
- NERO_PHASE_ABORT_WRITE_NOSPD = 68,
- NERO_PHASE_PREPARE_ITEMS = 73,
- NERO_PHASE_VERIFY_COMPILATION = 78,
- NERO_PHASE_VERIFY_ABORTED = 79,
- NERO_PHASE_VERIFY_END_OK = 80,
- NERO_PHASE_VERIFY_END_FAIL = 81,
- NERO_PHASE_ENCODE_VIDEO =82,
- NERO_PHASE_SEAMLESSLINK_ACTIVATED = 87,
- NERO_PHASE_BUP_ACTIVATED =90,
- NERO_PHASE_START_FORMATTING = 98,
- NERO_PHASE_CONTINUE_FORMATTING =99,
- NERO_PHASE_FORMATTING_SUCCESSFUL =100,
- NERO_PHASE_FORMATTING_FAILED =101,
- NERO_PHASE_PREPARE_CD =105,
- NERO_PHASE_DONE_PREPARE_CD =106,
- NERO_PHASE_FAIL_PREPARE_CD =107,
- NERO_PHASE_ABORT_PREPARE_CD =108,
- NERO_PHASE_DVDVIDEO_DETECTED =111,
- NERO_PHASE_DVDVIDEO_REALLOC_STARTED =112,
- NERO_PHASE_DVDVIDEO_REALLOC_COMPLETED =113,
- NERO_PHASE_DVDVIDEO_REALLOC_NOTNEEDED =114,
- NERO_PHASE_DVDVIDEO_REALLOC_FAILED =115,
- NERO_PHASE_DRM_CHECK_FAILURE =169,
-
- NERO_PHASE_START_WRITE_DATAFILES =171,
- NERO_PHASE_DONE_WRITE_DATAFILES =172,
- NERO_PHASE_FAIL_WRITE_DATAFILES =173,
- NERO_PHASE_WARN_WRITE_DATAFILES =174,
- NERO_PHASE_START_BAO_FINALIZE =175,
- NERO_PHASE_FAIL_BAO_FINALIZE =176,
- NERO_PHASE_DONE_BAO_FINALIZE =177,
- NERO_PHASE_FAIL_BAO_PREPARE =178,
- NERO_PHASE_FAIL_BAO_WRITEFILE =179,
-
- NERO_PHASE_BURN_LAYER_1 =180,
- NERO_PHASE_BURN_LAYER_2 =181,
- } NERO_MAJOR_PHASE;
- typedef void (NERO_CALLBACK_ATTR *NERO_ADD_LOG_LINE_CALLBACK)(void *pUserData, NERO_TEXT_TYPE type, const char *text);
- typedef void (NERO_CALLBACK_ATTR *NERO_SET_PHASE_CALLBACK)(void *pUserData, const char *text);
- typedef void (NERO_CALLBACK_ATTR *NERO_DISABLE_ABORT_CALLBACK)(void *pUserData,BOOL abortEnabled);
- typedef void (NERO_CALLBACK_ATTR *NERO_SET_MAJOR_PHASE_CALLBACK)(void *pUserData,NERO_MAJOR_PHASE phase,void *reserved);
- typedef struct tag_NERO_PROGRESS
- {
- NERO_PROGRESS_CALLBACK npProgressCallback;
- NERO_ABORTED_CALLBACK npAbortedCallback;
- NERO_ADD_LOG_LINE_CALLBACK npAddLogLineCallback;
- NERO_SET_PHASE_CALLBACK npSetPhaseCallback;
- void *npUserData;
- NERO_DISABLE_ABORT_CALLBACK npDisableAbortCallback;
- NERO_SET_MAJOR_PHASE_CALLBACK npSetMajorPhaseCallback;
- NERO_PROGRESS_CALLBACK npSubTaskProgressCallback;
- } NERO_PROGRESS;
- NEROAPI_API NERO_PROGRESS* NADLL_ATTR NeroCreateProgress();
- typedef DWORD (NERO_CALLBACK_ATTR *NERO_IO_CALLBACK)(void *pUserData, BYTE *pBuffer, DWORD dwLen);
- typedef BOOL (NERO_CALLBACK_ATTR *NERO_STATUS_CALLBACK)(void *pUserData);
- typedef struct tag_NERO_IO
- {
- void *nioUserData;
- NERO_IO_CALLBACK nioIOCallback;
- NERO_STATUS_CALLBACK nioEOFCallback;
- NERO_STATUS_CALLBACK nioErrorCallback;
- } NERO_IO;
- typedef struct
- {
- DWORD ndwmiSize;
- NERO_MEDIA_TYPE ndwmiLastDetectedMedia;
- NERO_MEDIA_SET ndwmiRequestedMedia;
- const char *ndwmiLastDetectedMediaName;
- const char *ndwmiRequestedMediaName;
- } NERO_DLG_WAITCD_MEDIA_INFO;
- typedef struct tag_NERO_ISO_ITEM
- {
- char fileName[252];
- char *longFileName;
-
- BOOL isDirectory;
- BOOL isReference;
-
-
- char sourceFilePath[252];
- const char *longSourceFilePath;
- struct tag_NERO_ISO_ITEM *subDirFirstItem;
-
-
- struct tag_NERO_ISO_ITEM *nextItem;
- void *userData;
-
- long dataStartSec;
- __int64 dataLength;
- struct tm entryTime;
- int itemSize;
- struct CImportInfo *importinfo;
- WCHAR *unicodeFileName;
-
- } NERO_ISO_ITEM;
- typedef struct tag_NERO_IMPORT_DATA_TRACK_INFO
- {
- DWORD nidtiSize;
- char *nidtipVolumeName;
- } NERO_IMPORT_DATA_TRACK_INFO;
- #define NeroCreateIsoItem() NeroCreateIsoItemOfSize(sizeof(NERO_ISO_ITEM))
- NEROAPI_API NERO_ISO_ITEM * NADLL_ATTR NeroCreateIsoItemOfSize(size_t);
- NEROAPI_API void NADLL_ATTR NeroFreeIsoItem(NERO_ISO_ITEM *);
-
- NEROAPI_API void NADLL_ATTR NeroFreeIsoItemTree(NERO_ISO_ITEM*);
-
- NEROAPI_API NERO_ISO_ITEM * NADLL_ATTR NeroCopyIsoItem(const NERO_ISO_ITEM *iso_item);
- NEROAPI_API
- struct CNeroIsoTrack * NADLL_ATTR NeroCreateIsoTrackEx(NERO_ISO_ITEM *root,
- const char *name,
- DWORD flags);
- typedef struct tag_NERO_CITE_ARGS {
- int size;
-
- NERO_ISO_ITEM *firstRootItem;
- NERO_ISO_ITEM *firstRootItem_wrapper;
- const char *name;
- DWORD dwBurnOptions;
-
- const char *systemIdentifier;
- const char *volumeSet;
- const char *publisher;
- const char *dataPreparer;
- const char *application;
- const char *copyright;
- const char *abstract;
- const char *bibliographic;
- } NERO_CITE_ARGS;
- #define NeroCITEArgs NERO_CITE_ARGS
- #define NCITEF_USE_JOLIET (1<<0)
- #define NCITEF_USE_MODE2 (1<<1)
- #define NCITEF_USE_ROCKRIDGE (1<<2)
- #define NCITEF_CREATE_ISO_FS (1<<3)
- #define NCITEF_CREATE_UDF_FS (1<<4)
- #define NCITEF_CREATE_HFS_FS (1<<5)
- #define NCITEF_DVDVIDEO_REALLOC (1<<6) // NeroAPI>=5.5.7.8: Perform reallocation of files in the VIDEO_TS directory; NeroAPI>=6.3.1.4: Also create layerbreak if writing on a double layer medium
- #define NCITEF_USE_STRUCT (1<<7) // NeroAPI>=5.5.9.0: 'name' points to an argument struct instead of name. If set, 'root' and other 'flags' are ignored.
- #define NCITEF_RESERVED1 (1<<8)
- #define NCITEF_USE_ALLSPACE (1<<9) // NeroAPI>=5.5.9.17: Use all space available on the medium for the volume to be created. Supported for DVD+-RW only
- #define NCITEF_RESERVED2 (1<<10)
- #define NCITEF_RESERVED3 (1<<11)
- #define NCITEF_RESERVED4 (1<<12)
- #define NCITEF_RELAX_JOLIET (1<<13) // NeroAPI>=6.0.0.0:Relax joliet filename length limitations -> allow a maximum of 109 characters per filename
- #define NCITEF_DVDVIDEO_CMPT (1<<14) // NeroAPI>6.0.0.13: Create DVD-Video compatible medium, NCITEF_CREATE_ISO_FS and NCITEF_CREATE_UDF_FS must be set,
-
-
-
- #define NCITEF_RESERVED5 (1<<15)
- NEROAPI_API void NADLL_ATTR NeroFreeIsoTrack(struct CNeroIsoTrack *track);
- typedef enum
- {
- NIDTR_NO_ERROR=0,
- NIDTR_GENERIC_ERROR,
- NIDTR_DRIVE_ERROR,
-
-
-
- NIDTR_READ_ERROR,
- NIDTR_INVALID_FS,
- NIDTR_INVALID_TRACKNUMBER
- } NERO_IMPORT_DATA_TRACK_RESULT;
- NEROAPI_API NERO_ISO_ITEM *NADLL_ATTR NeroImportDataTrack( NERO_DEVICEHANDLE pRecorder,
- DWORD trackNumber,
- void **ppCDStamp,
- NERO_IMPORT_DATA_TRACK_INFO *pInfo,
- DWORD flags,
- NERO_IMPORT_DATA_TRACK_RESULT *result,
- void *reserved);
- #define NIITEF_IMPORT_ROCKRIDGE (1<<0)
- #define NIITEF_IMPORT_ISO_ONLY (1<<1)
- #define NIITEF_PREFER_ROCKRIDGE (1<<2)
- #define NIITEF_IMPORT_UDF (1<<3)
- #define NIITEF_IMPORT_VMS_SESSION (1<<4)
- NEROAPI_API void NADLL_ATTR NeroFreeCDStamp(void *pCDStamp);
- #ifdef __cplusplus
- namespace FileSystemContent
- {
- struct IFileSystemDescContainer;
- };
- #else
- struct IFileSystemDescContainer;
- #endif
- NEROAPI_API
- #ifdef __cplusplus
- FileSystemContent::
- #else
- struct
- #endif//__cplusplus
- IFileSystemDescContainer *NADLL_ATTR NeroCreateFileSystemContainer(void *reserved);
- typedef enum
- {
- NERO_ET_FILE,
- NERO_ET_IO_CALLBACK,
- NERO_ET_FILE_MP3,
- NERO_ET_FILE_WMA,
- NERO_ET_FILE_RAW,
- NERO_ET_AUDIO_FILE
- } NERO_DATA_EXCHANGE_TYPE;
- typedef void * NERO_AUDIO_ITEM_HANDLE;
- typedef struct tagNERO_AUDIO_ITEM_INFO
- {
- NERO_AUDIO_ITEM_HANDLE naiiAudioItem;
- const char *naiiFileName;
- } NERO_AUDIO_ITEM_INFO;
- typedef struct tag_NERO_DATA_EXCHANGE
- {
- NERO_DATA_EXCHANGE_TYPE ndeType;
- union
- {
- char ndeFileName[256];
- struct
- {
- DWORD reserved;
- const char *ptr;
- } ndeLongFileName;
- NERO_IO ndeIO;
- NERO_AUDIO_ITEM_INFO ndeAudioItemInfo;
- } ndeData;
- } NERO_DATA_EXCHANGE;
-
- typedef struct tag_NERO_AUDIO_TRACK
- {
- DWORD natPauseInBlksBeforeThisTrack;
- DWORD natNumIndexPositions;
-
- DWORD natRelativeIndexBlkPositions[98];
- const char *natTitle, *natArtist;
- NERO_DATA_EXCHANGE natSourceDataExchg;
- DWORD natLengthInBlocks;
- BOOL natIndex0ContainsData;
- DWORD natReserved[31];
- } NERO_AUDIO_TRACK;
- typedef enum
- {
- NERO_TRACKMODE_MODE1,
- NERO_TRACKMODE_MODE2_FORM1,
- NERO_TRACKMODE_AUDIO
- } NERO_TRACKMODE_TYPE;
-
- typedef struct tag_NERO_FREESTYLE_TRACK
- {
- DWORD nftStructureSize;
- DWORD nftPauseInBlksBeforeThisTrack;
- DWORD nftNumIndexPositions;
- DWORD nftRelativeIndexBlkPositions[98];
- const char *nftTitle, *nftArtist;
- NERO_DATA_EXCHANGE nftSourceDataExchg;
- DWORD nftLengthInBlocks;
- NERO_TRACKMODE_TYPE nftTracktype;
- } NERO_FREESTYLE_TRACK;
-
- typedef enum
- {
- NERO_MPEG_ITEM,
- NERO_JPEG_ITEM,
- NERO_NONENCODED_VIDEO_ITEM,
- } NERO_VIDEO_ITEM_TYPE;
- typedef struct tag_NERO_VIDEO_ITEM
- {
- DWORD nviPauseAfterItem;
- char nviSourceFileName[250];
- const char *nviLongSourceFileName;
- NERO_VIDEO_ITEM_TYPE nviItemType;
- } NERO_VIDEO_ITEM;
- typedef enum
- {
- NERO_ISO_AUDIO_MEDIA =0,
- NERO_VIDEO_CD =1,
- NERO_BURN_IMAGE_MEDIA =2,
- NERO_FREESTYLE_CD =3,
- NERO_FILE_SYSTEM_CONTAINER_MEDIA=4,
-
- NERO_ISO_AUDIO_CD =0,
- NERO_BURN_IMAGE_CD =2
- } NERO_CD_FORMAT;
- typedef struct tag_NERO_WRITE_CD
- {
-
- const char *nwcdArtist;
- const char *nwcdTitle;
- struct CNeroIsoTrack *nwcdIsoTrack;
- BOOL nwcdCDExtra;
- void *nwcdpCDStamp;
- DWORD nwcdNumTracks;
- NERO_MEDIA_TYPE nwcdMediaType;
- DWORD nwcdReserved[32];
- NERO_AUDIO_TRACK nwcdTracks[1];
- } NERO_WRITE_CD;
- #ifdef __cplusplus
- namespace VCDEngine
- {
- struct IVCDFSContentGenerator;
- struct IVCDMediaDescription;
- };
- #endif
- typedef enum
- {
- NERO_VIDEO_RESOLUTION_PAL = 0,
- NERO_VIDEO_RESOLUTION_NTSC = 1
- } NERO_VIDEO_RESOLUTION;
- typedef struct tag_NERO_WRITE_VIDEO_CD
- {
- BOOL nwvcdSVCD;
- DWORD nwvcdNumItems;
- struct CNeroIsoTrack *nwvcdIsoTrack;
- char nwvcdTempPath[252];
- const char *nwvcdLongTempPath;
- #ifdef __cplusplus
- VCDEngine::IVCDFSContentGenerator *(*nwvcdCustomVCDEngine)(VCDEngine::IVCDMediaDescription *desc,FileSystemContent::IFileSystemDescContainer *pFSDC);
- #else
- void *nwvcdCustomVCDEngine;
- #endif
- NERO_VIDEO_RESOLUTION nwvcdEncodingResolution;
- DWORD nwvcdReserved[31];
- NERO_VIDEO_ITEM nwvcdItems[1];
- } NERO_WRITE_VIDEO_CD;
- typedef struct tag_NERO_WRITE_IMAGE
- {
- char nwiImageFileName[252];
- const char *nwiLongImageFileName;
- NERO_MEDIA_TYPE nwiMediaType;
- DWORD nwiReserved[32];
- } NERO_WRITE_IMAGE;
- typedef struct tag_NERO_WRITE_FREESTYLE_CD
- {
- DWORD nwfcdStructureSize;
-
- const char *nwfcdArtist;
- const char *nwfcdTitle;
- struct CNeroIsoTrack *nwfcdIsoTrack;
- BOOL nwfcdCDExtra;
- void *nwfcdpCDStamp;
-
- DWORD nwfcdNumTracks;
- DWORD nwfcdBurnOptions;
- #ifdef __cplusplus
- FileSystemContent::
- #else
- struct
- #endif//__cplusplus
- IFileSystemDescContainer *nwfcdFSContainer;
- NERO_MEDIA_TYPE nwfcdMediaType;
- DWORD nwfcdReserved[32];
- NERO_FREESTYLE_TRACK nwfcdTracks[1];
- } NERO_WRITE_FREESTYLE_CD;
- typedef struct tag_NERO_WRITE_FILE_SYSTEM_CONTAINER
- {
- DWORD nwfscSize;
- #ifdef __cplusplus
- FileSystemContent::
- #else
- struct
- #endif//__cplusplus
- IFileSystemDescContainer *nwfscFSContainer;
- NERO_MEDIA_TYPE nwfscMediaType;
- DWORD nwfscBurnOptions;
- DWORD nwfscReserved[32];
- } NERO_WRITE_FILE_SYSTEM_CONTENT;
-
- typedef enum
- {
- NEROAPI_BURN_OK=0,
- NEROAPI_BURN_UNKNOWN_CD_FORMAT,
- NEROAPI_BURN_INVALID_DRIVE,
- NEROAPI_BURN_FAILED,
- NEROAPI_BURN_FUNCTION_NOT_ALLOWED,
- NEROAPI_BURN_DRIVE_NOT_ALLOWED,
- NEROAPI_BURN_USER_ABORT,
- NEROAPI_BURN_BAD_MESSAGE_FILE
- } NEROAPI_BURN_ERROR;
- NEROAPI_API
- NEROAPI_BURN_ERROR NADLL_ATTR NeroBurn(NERO_DEVICEHANDLE aDeviceHandle,
- NERO_CD_FORMAT CDFormat,
- const void* pWriteCD,
- DWORD dwFlags,
- DWORD dwSpeed,
- NERO_PROGRESS* pNeroProgress);
- #define NBF_SPEED_TEST (1<<0)
- #define NBF_SIMULATE (1<<1)
- #define NBF_WRITE (1<<2)
- #define NBF_DAO (1<<3)
- #define NBF_CLOSE_SESSION (1<<4)
- #define NBF_CD_TEXT (1<<5)
- #define NBF_BUF_UNDERRUN_PROT (1<<6)
- #define NBF_DISABLE_ABORT (1<<7)
- #define NBF_DETECT_NON_EMPTY_CDRW (1<<8)
- #define NBF_DISABLE_EJECT (1<<9)
- #define NBF_VERIFY (1<<10)
- #define NBF_SPEED_IN_KBS (1<<11) /* NeroAPI>=5.5.5.5: Interpret the dwSpeed as KB/s instead of multiple of 150 KB/s */
- #define NBF_DVDP_BURN_30MM_AT_LEAST (1<<12) /* NeroAPI>=5.5.8.0: DVD+R/RW high compability mode (at least 1GB will be written) */
- #define NBF_CD_TEXT_IS_JAPANESE (1<<13) /* NeroApi>=5.5.9.17: If NBF_CD_TEXT and NBF_CD_TEXT_IS_JAPANESE are set, then the CD Text is treated as japanese CD Text */
- #define NBF_BOOKTYPE_DVDROM (1<<14) /* NeroAPI>5.5.10.7: If NBF_BOOKTYPE_DVDROM the booktype of a burned DVD will be set to DVD-ROM */
- #define NBF_NO_BOOKTYPE_CHANGE (1<<15) /* NeroAPI>=6.0.0.24: Don't change the booktype of DVD, even if the default setting of NeroAPI is to change the booktype to DVD-ROM*/
- #define NBF_RESERVED2 (1<<30)
- #define NBF_RESERVED (1<<31)
- typedef struct tag_NERO_FILESYSTEMTRACK_OPTIONS
- {
- DWORD netsStructureSize;
-
- void * netspCDStamp;
- NERO_MEDIA_TYPE netsMediaType;
- NERO_DEVICEHANDLE netsDeviceHandle;
- DWORD netsFlags;
- #ifdef __cplusplus
- FileSystemContent::
- #else
- struct
- #endif//__cplusplus
- IFileSystemDescContainer *netsFSContainer;
- DWORD netsFSContainerFlags;
- DWORD netsReserved[32];
- } NERO_FILESYSTEMTRACK_OPTIONS;
- NEROAPI_API unsigned int NADLL_ATTR NeroEstimateTrackSize(struct CNeroIsoTrack *pIsoTrack
- , DWORD dwFlags
- , NERO_FILESYSTEMTRACK_OPTIONS *pOptions);
- #define NETS_FILESYSTEM_OVERHEAD (1<<0)
- #define NETS_DATA (1<<1)
- #define NETS_EXACT_SIZE (1<<2) /* Nero >= 6.0.0.21 calculate exactly.
- * If this option is specified, filesystem overhead as well as file data is taken into account
- * the optional fields of the NERO_ESTIMATETRACKSIZE_OPTIONS structure need to be filled out */
- NEROAPI_API
- int NADLL_ATTR NeroDAE(NERO_DEVICEHANDLE aDeviceHandle,
- DWORD dwTrackStartBlk,
- DWORD dwTrackLengthInBlks,
- const NERO_DATA_EXCHANGE *pDestDataExchg,
- DWORD iSpeedInX,
- NERO_CALLBACK* pNeroProgressCallback);
- NEROAPI_API int NADLL_ATTR NeroIsDeviceReady(NERO_DEVICEHANDLE aDeviceHandle);
- NEROAPI_API int NADLL_ATTR NeroEjectLoadCD(NERO_DEVICEHANDLE aDeviceHandle,BOOL eject);
- NEROAPI_API int NADLL_ATTR NeroInitImageRecorder(NERO_DEVICEHANDLE aDeviceHandle, const char *imageFilePath, DWORD dwFlags, NERO_MEDIA_TYPE mediaType, void *reserved);
- NEROAPI_API char * NADLL_ATTR NeroGetLocalizedWaitCDTexts (NERO_WAITCD_TYPE type);
-
- NEROAPI_API BOOL NADLL_ATTR NeroWaitForDisc(NERO_DEVICEHANDLE aDeviceHandle
- ,NERO_MEDIA_SET nmt
- ,DWORD dwBurnFlags
- ,void *pCDStamp
- ,DWORD dwFlags
- ,void *reserved);
- #define NWFD_REQUIRE_EMPTY_DISC (1<<0)
- typedef enum
- {
- NEROAPI_ERASE_ENTIRE =0,
- NEROAPI_ERASE_QUICK =1,
- } NEROAPI_CDRW_ERASE_MODE;
- NEROAPI_API int NADLL_ATTR NeroGetCDRWErasingTime(NERO_DEVICEHANDLE aDeviceHandle,NEROAPI_CDRW_ERASE_MODE mode);
-
-
-
-
- NEROAPI_API int NADLL_ATTR NeroEraseDisc(NERO_DEVICEHANDLE aDeviceHandle,NEROAPI_CDRW_ERASE_MODE mode
- ,DWORD dwFlags,void *reserved);
- #define NEDF_DISABLE_EJECT (1<<0) /* NeroAPI>=6.0.0.0: CD will not be ejected at the end of the
- erasing, even if this is recommanded for the selected recorder*/
- #define NEDF_EJECT_AFTER_ERASE (1<<1) /* NeroAPI > 6.0.0.0: eject disc after erasing, no matter if this is
- recommended for the recorder or not */
- typedef enum
- {
- NDR_DRIVE_IN_USE=0,
- NDR_DRIVE_NOT_IN_USE,
- NDR_DISC_REMOVED,
- NDR_DISC_INSERTED,
- NDR_DRIVE_REMOVED,
- NDR_DRIVE_ADDED
- } NERO_DRIVESTATUS_RESULT;
- typedef void (NERO_CALLBACK_ATTR *NERO_DRIVESTATUS_CALLBACK)(int hostID, int targetID, NERO_DRIVESTATUS_RESULT result, void *pUserData);
- typedef enum
- {
-
-
-
-
-
-
- NDT_DISC_CHANGE,
- NDT_IN_USE_CHANGE
- } NERO_DRIVESTATUS_TYPE;
- NEROAPI_API int NADLL_ATTR NeroRegisterDriveStatusCallback(NERO_DRIVESTATUS_TYPE status
- , const NERO_SCSI_DEVICE_INFO *pDeviceInfo
- , NERO_DRIVESTATUS_CALLBACK callback
- , void *pUserData);
- NEROAPI_API int NADLL_ATTR NeroUnregisterDriveStatusCallback(NERO_DRIVESTATUS_TYPE status
- , const NERO_SCSI_DEVICE_INFO *pDeviceInfo
- , NERO_DRIVESTATUS_CALLBACK callback
- , void *pUserData);
- NEROAPI_API int NADLL_ATTR NeroRegisterDriveChangeCallback( NERO_DRIVESTATUS_CALLBACK callback
- , void *pUserData);
- NEROAPI_API int NADLL_ATTR NeroUnregisterDriveChangeCallback(NERO_DRIVESTATUS_CALLBACK callback
- , void *pUserData);
- typedef enum
- {
- NCR_CANNOT_CONFIGURE,
- NCR_CHANGED,
- NCR_NOT_CHANGED
- } NERO_CONFIG_RESULT;
- typedef struct tagNERO_AUDIO_FORMAT_INFO
- {
-
- char nafiDescription[256],
-
- nafiExtList[256];
- BOOL nafiTgt,
- nafiConfigurable;
-
- }
- NERO_AUDIO_FORMAT_INFO;
- NEROAPI_API NERO_AUDIO_ITEM_HANDLE NeroAudioCreateTargetItem(int iFormatNumber);
- NEROAPI_API BOOL NeroAudioCloseItem(NERO_AUDIO_ITEM_HANDLE hItem);
- NEROAPI_API NERO_CONFIG_RESULT NeroAudioGUIConfigureItem \
- (NERO_AUDIO_ITEM_HANDLE *phItem, int iNum);
- NEROAPI_API BOOL NeroAudioGetFormatInfo \
- (int iNum, NERO_AUDIO_FORMAT_INFO *pFI);
- NEROAPI_API DWORD NADLL_ATTR NeroGetAPIVersion(void);
- NEROAPI_API BOOL NADLL_ATTR NeroSetExpectedAPIVersion(DWORD);
- NEROAPI_API NERO_ISO_ITEM *NeroImportIsoTrackEx(NERO_DEVICEHANDLE pRecorder,
- DWORD trackNumber,
- void **ppCDStamp,
- DWORD flags);
- NEROAPI_API int NADLL_ATTR NeroEraseCDRW(NERO_DEVICEHANDLE aDeviceHandle,NEROAPI_CDRW_ERASE_MODE mode);
- NEROAPI_API BOOL NADLL_ATTR NeroWaitForMedia(NERO_DEVICEHANDLE aDeviceHandle
- ,NERO_MEDIA_SET nms
- ,DWORD dwFlags
- ,void *pCDStamp);
- #ifdef __cplusplus
- }
- #endif
- #if defined(__BORLANDC__)
- #pragma pack(pop)
- #pragma option pop
- #endif
- #endif
|