/* ********************************************************************************* *
#ifndef __VCD_EXPORTS_H__#define __VCD_EXPORTS_H__#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#pragma pack( push, vcdExports, 1)// aligning at 1-bytetypedef struct _vcdxbuild_options_ {char xmlFile[MAX_PATH]; // full path to XML file that should be processedenum _image_type_ {IMG_BINCUE = 0,IMG_CDRDAO, IMG_NRG } img_type; // (-i, --image-type=TYPE)// specify image type for output (default : IMG_BINCUE)char cue[MAX_PATH]; // (-c, --cue-file=FILE) -- specify cue file for output (default: '.\videocd.cue')char bin[MAX_PATH]; // (-b, --bin-file=FILE) -- specify bin file for output (default: '.\videocd.bin')// (--cdrdao-file=FILE) -- specify cdrdao-style image filename base// used, when (img_type==IMG_CDRDAO) -->> TOC in 'cue', IMG_BASE in 'bin'// (--nrg-file=FILE) -- specify nrg-style image filename// used, when (img_type==IMG_NRG) -->> NRG in 'bin', 'cue' is ignoredBOOL sec2336; // (--sector-2336) -- use 2336 byte sectors for output (default : 'No'=FALSE)// NRG always uses 2336-aligned sectorsBOOL version; // (-V, --version) -- display version and copyright information and exitenum _verbosity_ {VERBOSE_INFO = 0,VERBOSE_DEBUG, VERBOSE_SILENT } verbose; // SILENT shows only PROGRESS, WARNINGS, ERRORS (and ASSERTIONs ifdef _DEBUG)BOOL progress; // (-p, --progress), TRUE if you want progess-output// Following are only valid for the 'lkVCDxBuild'-frontendBOOL gui_mode; // (--gui) -- enable GUI mode, ala hvr-style ('progress' must be set to TRUE)BOOL want_help; // [-?, -h, --help]BOOL show_usage; // [-u, --usage]unsigned unknown; // amount of invalid command-line parameters (currently not implemented)} vcdxbuild_options_t, *lp_vcdxbuild_options; // should be 'sizeof()=816', using packing to 1bytes alignmenttypedef struct _w32Msg_Progress_ {char reserved; // always should be '\0' ('zero') --> this to prevent a msg-handler would treate this struct as a string...enum _progress_type_ {PGS_INVALID = 0,PGS_SCAN, PGS_WRITE } type; // 0 = INVALID, 1 = SCAN, 2 = WRITEconst char* user_data; // something like which is being currently operated atunsigned percentage; // result of formula's (see below) (type is an unsigned integer)union _u_progress_ {struct _s_scan_ { // valid if 'type'==1 (scan)long length; // total lengthlong cur_pos; // current positionlong cur_pack; // (like current frame in the MPeG)} scan_s; // formula to get percentage : (cur_pos / length * 100)struct _s_write_ { // valid if 'type'==2 (write)long sectors_written;long total_sectors; // total sectors of the imageint in_track; // current track of the imageint total_tracks; // total tracks at the cd_image} write_s; // formula to get percentage : (sectors_written / total_sectors * 100)} progress_u; } progress_w32_t; // this struct will be send to the owner-application in case of 'LOG_PROGRESS' messagestypedef struct _w32Msg_Version_ {char reserved; // should be '\0', see as above -- if !0, we're dealing with a real stringconst char* full;const char* library; // 'lkVCDimager' or 'lkVCDxBuild'const char* major; // 'x.0'const char* minor; // '7'const char* micro; // '10'const char* platform; // 'win32'} version_w32_t; // this struct could be send to the owner-applic in case of 'LOG_VERSION' messages#pragma pack( pop, vcdExports)// back to 'normal' byte-alignement (which is usually 8bytes)#ifndef lkVCDimager_internal// 'lkVCDimager_internal' : you should _NOT_ define this value in your importing application, unless you don't want the following things// 'lkVCDimager_internal' : internal definition of the librarytypedef enum { // these are used as WPARAM parameter in case a message is sendLOG_DEBUG = 1,LOG_INFO, // 2LOG_WARN, // 3LOG_ERROR, // 4LOG_ASSERT, // 5LOG_PROGRESS, // 6LOG_VERSION // 7} log_level_t; // used to direct output, without using preceding type (e.g. 'info:' in case of informational logging)// Exported Function(s) :// ---------------------- // library versions <= 3.0.7.10 : // int lkVCDxBuild(HWND pOwner, const char* msgString, lp_vcdxbuild_options lpOptions);typedef int (*lp_lkVCDxBuild)(HWND, const char*, lp_vcdxbuild_options); // library versions >= 4.0.7.10 : // int lkVCDxBuild(HWND pOwner, const char* msgString, lp_vcdxbuild_options lpOptions, BOOL* lpWantCancel=NULL);typedef int (*lp_lkVCDxBuild_4)(HWND, const char*, lp_vcdxbuild_options, BOOL*);/* If you enter '0' (zero) for the HWND param, the functions will do a call to 'GetActiveWindow()'#endif // !defined(lkVCDimager_internal)#endif // __VCD_EXPORTS_H__
|