setmajorphasecallback.cpp
来自「把doc文档转成pdf后刻录成CD,用VC++开发,用了Nero的SDK和CXI」· C++ 代码 · 共 107 行
CPP
107 行
/******************************************************************************
|* 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: SetMajorPhaseCallback.cpp
|*
|* PURPOSE: Callback for reporting major phase changes
******************************************************************************/
#include "stdafx.h"
#include "BurnContext.h"
#include "../Scan2PDFDefs.h"
struct PHASE_MAPPING
{
NERO_MAJOR_PHASE m_phase;
LPCSTR m_psDescription;
};
static PHASE_MAPPING s_PhaseMapping[] = {
{NERO_PHASE_UNSPECIFIED , "Unspecified"},
{NERO_PHASE_START_CACHE , "Start cache"},
{NERO_PHASE_DONE_CACHE , "Done cache"},
{NERO_PHASE_FAIL_CACHE , "Fail cache"},
{NERO_PHASE_ABORT_CACHE , "Abort cache"},
{NERO_PHASE_START_TEST , "Start test"},
{NERO_PHASE_DONE_TEST , "Done test"},
{NERO_PHASE_FAIL_TEST , "Fail test"},
{NERO_PHASE_ABORT_TEST , "Abort test"},
{NERO_PHASE_START_SIMULATE , "Start simulate"},
{NERO_PHASE_DONE_SIMULATE , "Done simulate"},
{NERO_PHASE_FAIL_SIMULATE , "Fail simulate"},
{NERO_PHASE_ABORT_SIMULATE , "Abort simulate"},
{NERO_PHASE_START_WRITE , "Start write"},
{NERO_PHASE_DONE_WRITE , "Done write"},
{NERO_PHASE_FAIL_WRITE , "Fail write"},
{NERO_PHASE_ABORT_WRITE , "Abort write"},
{NERO_PHASE_START_SIMULATE_NOSPD , "Start simulate nospd"},
{NERO_PHASE_DONE_SIMULATE_NOSPD , "Done simulate nospd"},
{NERO_PHASE_FAIL_SIMULATE_NOSPD , "Fail simulate nospd"},
{NERO_PHASE_ABORT_SIMULATE_NOSPD , "Abort simulate nospd"},
{NERO_PHASE_START_WRITE_NOSPD , "Start write nospd"},
{NERO_PHASE_DONE_WRITE_NOSPD , "Done write nospd"},
{NERO_PHASE_FAIL_WRITE_NOSPD , "Fail write nospd"},
{NERO_PHASE_ABORT_WRITE_NOSPD , "Abort write nospd"},
{NERO_PHASE_PREPARE_ITEMS , "Prepare items"},
{NERO_PHASE_VERIFY_COMPILATION , "Verify compilation"},
{NERO_PHASE_VERIFY_ABORTED , "Verify aborted"},
{NERO_PHASE_VERIFY_END_OK , "Verify end ok"},
{NERO_PHASE_VERIFY_END_FAIL , "Verify end fail"},
{NERO_PHASE_ENCODE_VIDEO , "Encode video"},
{NERO_PHASE_SEAMLESSLINK_ACTIVATED , "Seamlesslink activated"},
{NERO_PHASE_BUP_ACTIVATED , "BUP activated"},
{NERO_PHASE_START_FORMATTING , "Start formatting"},
{NERO_PHASE_CONTINUE_FORMATTING , "Continue formatting"},
{NERO_PHASE_FORMATTING_SUCCESSFUL , "Formatting successful"},
{NERO_PHASE_FORMATTING_FAILED , "Formatting failed"},
{NERO_PHASE_PREPARE_CD , "Prepare CD"},
{NERO_PHASE_DONE_PREPARE_CD , "Done prepare CD"},
{NERO_PHASE_FAIL_PREPARE_CD , "Fail prepare CD"},
{NERO_PHASE_ABORT_PREPARE_CD , "Abort prepare CD"},
{NERO_PHASE_DVDVIDEO_DETECTED , "Dvdvideo detected"},
{NERO_PHASE_DVDVIDEO_REALLOC_STARTED , "Dvdvideo realloc started"},
{NERO_PHASE_DVDVIDEO_REALLOC_COMPLETED , "Dvdvideo realloc completed"},
{NERO_PHASE_DVDVIDEO_REALLOC_NOTNEEDED , "Dvdvideo realloc not needed"},
{NERO_PHASE_DVDVIDEO_REALLOC_FAILED , "Dvdvideo realloc failed"},
{NERO_PHASE_DRM_CHECK_FAILURE , "DRM check failure"},
};
// This is a Nero callback that prints the change of major phase.
void NERO_CALLBACK_ATTR CBurnContext::SetMajorPhaseCallback (void *pUserData, NERO_MAJOR_PHASE phase, void * reserved)
{
// Declare the buffer variable and set it to a default message.
//
char sBuffer[100] = "PHASE: unknown";
// Search for the appropriate phase mapping description string.
//
for (int i = 0; i < sizeof (s_PhaseMapping)/sizeof (s_PhaseMapping[0]); i ++)
{
if (phase == s_PhaseMapping[i].m_phase)
{
// If the phase was found in the phase mapping table then
// use it and break the for loop. We don't need to check
// for buffer overflow as we "know" all our messages are short
// enough to fit in the buffer.
//
sprintf (sBuffer, "PHASE: %s", s_PhaseMapping[i].m_psDescription);
theConf.m_Feedback=sBuffer;
::SendMessage(theConf.m_BurnWindow, WM_BURN_PROGRESS, 2, 0);
break;
}
}
printf (" %-76s\n", sBuffer);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?