burncontext.h

来自「把doc文档转成pdf后刻录成CD,用VC++开发,用了Nero的SDK和CXI」· C头文件 代码 · 共 119 行

H
119
字号
/******************************************************************************
|* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|* PARTICULAR PURPOSE.
|* 
|* Copyright 1995-2004 Ahead Software AG. All Rights Reserved.
|*-----------------------------------------------------------------------------
|* NeroSDK / NeroCmd
|*
|* PROGRAM: BurnContext.h
|*
|* PURPOSE: Central class for CD operations
******************************************************************************/


#ifndef _BURN_CONTEXT_H_
#define _BURN_CONTEXT_H_


#include "ExitCode.h"
#include "getopt.h"
#include "ErrorLog.h"
#include "parameters.h"	// Added by ClassView
#include "NeroProgress.h"

class CBurnContextProgress : public CNeroProgress
{
public:
	CBurnContextProgress ();
};


class CBurnContext
{
	friend CBurnContextProgress;

protected:
	static bool s_bAborted;
	NERO_DEVICEHANDLE m_NeroDeviceHandle;
	NERO_SCSI_DEVICE_INFOS * m_NeroDeviceInfos;
	NERO_CD_INFO * m_NeroCDInfo;
	void * m_pCDStamp;
	bool m_bNeroInitialized;
	CErrorLog m_ErrorLog;
	bool m_bPrintUserInteractionErrorMessage;
	
	static NERO_SETTINGS s_NeroSettings;

public:
	void PrintUserInteractionMessage (void);
	void PrintLogLine(LPCSTR s);
	EXITCODE Exit (CExitCode code);
	CBurnContext(PARAMETERS* params);
	~CBurnContext ();

	CExitCode WriteImage (const PARAMETERS & params);
	CExitCode OpenDevice (const PARAMETERS & params);
	CExitCode NeroLoad (void);
	CExitCode InitNeroAPI (void);
	CExitCode GetAvailableDrives (const PARAMETERS & params);
	void WriteNeroErrorLog (const PARAMETERS & params);
	bool OpenLogFile (LPCSTR psLogFilename);

	CExitCode WriteIsoAudio (const PARAMETERS & params);
	CExitCode WriteVideoCD (const PARAMETERS & params);
	CExitCode WriteFreestyle (const PARAMETERS & params);
	CExitCode CommandErase (const PARAMETERS & params);
	CExitCode CommandListDrives (const PARAMETERS & params);
	CExitCode CommandCDInfo (const PARAMETERS & params);
	CExitCode CommandImageInfo (const PARAMETERS & params);
	CExitCode CommandRead (const PARAMETERS & params);
	CExitCode CommandWrite (const PARAMETERS & params);
	CExitCode CommandEject (const PARAMETERS & params);
	CExitCode CommandDriveInfo (const PARAMETERS & params);
	CExitCode CommandInternal (const PARAMETERS & params);
	CExitCode CommandListFormats (const PARAMETERS & params);
	CExitCode CommandGetSpeeds (const PARAMETERS & params);
	CExitCode CommandEstimate (const PARAMETERS & params);
	void CommandVersion (void);

protected:
	void DebugPrintIsoTrack (const NERO_ISO_ITEM * pItem, int iLevel = 0);
	void TrimStringRight (LPSTR psString);
	void DecodeSpeeds (const NERO_SPEED_INFOS & nsi);
	void DecodeDeviceType (const NERO_SCSI_DEVICE_INFO * pNSDI) const;
	void DecodeCapabilities (const NERO_SCSI_DEVICE_INFO * pNSDI) const;
	std::string DecodeMediaSupport (NERO_MEDIA_SET nms);
	int LookForADrive (const PARAMETERS & params);
	CExitCode TranslateNeroToExitCode (NEROAPI_BURN_ERROR err);
	DWORD GetBurnFlags (const PARAMETERS & params);
	CExitCode GetIsoTrack (const PARAMETERS & params, CNeroIsoTrack ** ppIsoTrack, NERO_ISO_ITEM ** ppItem);
	bool MergeIsoTrack (const PARAMETERS & params, NERO_ISO_ITEM ** ppItemFirst, NERO_ISO_ITEM * pItemToAdd);
	void DeleteIsoItemTree (NERO_ISO_ITEM * pItem);
	void FreeOurOwnResources (NERO_ISO_ITEM * pItem);
	CExitCode CreateIsoTree (const PARAMETERS & params, LPCSTR psFilename, NERO_ISO_ITEM ** ppItem, int iLevel = 0);
	void StoreFileName (char (& shortFilename) [252], char * psLongFilename, LPCSTR psFilename);
	CExitCode DisplayCDInfo (void);

	static BOOL WINAPI CtrlHandler (DWORD dwCtrlType);
	static BOOL NERO_CALLBACK_ATTR IdleCallback (void *pUserData);
	static NeroUserDlgInOut NERO_CALLBACK_ATTR UserDialog (void * pUserData, NeroUserDlgInOut type, void *data);
	static BOOL NERO_CALLBACK_ATTR ProgressCallback (void *pUserData, DWORD dwProgressInPercent);
	static BOOL NERO_CALLBACK_ATTR AbortedCallback (void *pUserData);
	static void NERO_CALLBACK_ATTR AddLogLine (void *pUserData, NERO_TEXT_TYPE type, const char *text);
	static void NERO_CALLBACK_ATTR SetPhaseCallback (void *pUserData, const char *text);
	static void NERO_CALLBACK_ATTR SetMajorPhaseCallback (void *pUserData, NERO_MAJOR_PHASE phase, void * reserved);
	static void NERO_CALLBACK_ATTR DisableAbortCallback (void *pUserData, BOOL enableAbort);
	static DWORD NERO_CALLBACK_ATTR WriteIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen);
	static BOOL NERO_CALLBACK_ATTR EOFCallback (void *pUserData);
	static BOOL NERO_CALLBACK_ATTR ErrorCallback (void *pUserData);
	static DWORD NERO_CALLBACK_ATTR ReadIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen);
private:
	const PARAMETERS* m_params;
};


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?