PageThird.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /******************************************************************************
  2. |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. |* PARTICULAR PURPOSE.
  6. |*
  7. |* Copyright 1995-2005 Nero AG. All Rights Reserved.
  8. |*-----------------------------------------------------------------------------
  9. |* NeroSDK / NVAPIExample
  10. |*
  11. |* PROGRAM: PageThird.h
  12. |*
  13. |* PURPOSE: Implementation of the third page.
  14. ******************************************************************************/
  15. #ifndef _NVAPIEXAMPLE_PAGE_THIRD_H_
  16. #define _NVAPIEXAMPLE_PAGE_THIRD_H_
  17. #if _MSC_VER > 1000
  18. #pragma once
  19. #endif // _MSC_VER > 1000
  20. #include "Page.h"
  21. #include "PageData.h"
  22. class CPageThird
  23. : public CPage
  24. , public IProgressCallback
  25. , CNVAPIExamplePage<CPageThird>
  26. {
  27. protected:
  28. bool m_bActiveState;
  29. ProgressAction m_LastAction;
  30. CString m_sLastItemname;
  31. bool m_bAbort;
  32. DWORD m_dwStartTickCount;
  33. // Construction
  34. public:
  35. CPageThird(CSheet * pParent);
  36. // Dialog Data
  37. //{{AFX_DATA(CPageThird)
  38. enum { IDD = IDD_THIRD_PAGE };
  39. CStatic c_TotalTime;
  40. CStatic c_Percent;
  41. CProgressCtrl c_Progress;
  42. CListCtrl c_Messages;
  43. //}}AFX_DATA
  44. // Overrides
  45. // ClassWizard generated virtual function overrides
  46. //{{AFX_VIRTUAL(CPageThird)
  47. protected:
  48. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  49. //}}AFX_VIRTUAL
  50. // Implementation
  51. protected:
  52. // Generated message map functions
  53. //{{AFX_MSG(CPageThird)
  54. virtual BOOL OnInitDialog();
  55. afx_msg void OnTimer(UINT nIDEvent);
  56. //}}AFX_MSG
  57. DECLARE_MESSAGE_MAP()
  58. afx_msg LRESULT OnStartProcess (WPARAM wParam, LPARAM lParam);
  59. afx_msg LRESULT OnNeroUserDialog (WPARAM wParam, LPARAM lParam);
  60. afx_msg LRESULT OnNeroIdleCallback (WPARAM wParam, LPARAM lParam);
  61. NeroUserDlgInOut NeroUserDialog (NeroUserDlgInOut type, void *data);
  62. void RestoreButtons (void);
  63. void InsertMessage (LPCSTR psMessage);
  64. void InsertMessage (UINT uMessageID);
  65. void SetPercent (int iPercent);
  66. static BOOL NERO_CALLBACK_ATTR NeroAbortedCallback (void *pUserData);
  67. static void NERO_CALLBACK_ATTR NeroAddLogLineCallback (void *pUserData, NERO_TEXT_TYPE type, const char *text);
  68. static BOOL NERO_CALLBACK_ATTR NeroProgressCallback (void *pUserData, DWORD dwProgressInPercent);
  69. // CPage implementation
  70. public:
  71. bool Create (void);
  72. bool OnNext (void);
  73. void OnChangeState (bool bActivate, bool bForward);
  74. // IProgressCallback
  75. public:
  76. STDMETHOD (QueryInterface) (/* [in] */ REFIID riid, /* [iid_is][out] */ void ** ppvObject)
  77. {
  78. if (riid == IID_IUnknown ||
  79. riid == __uuidof (IProgressCallback))
  80. {
  81. *ppvObject = this;
  82. return S_OK;
  83. }
  84. else
  85. {
  86. *ppvObject = NULL;
  87. return E_NOINTERFACE;
  88. }
  89. }
  90. STDMETHOD_(ULONG, AddRef) (void)
  91. {
  92. return 0;
  93. }
  94. STDMETHOD_(ULONG, Release) (void)
  95. {
  96. return 0;
  97. }
  98. STDMETHOD (raw_OnProgress) (
  99. enum ProgressAction action,
  100. BSTR itemname,
  101. double currentRemain,
  102. double currentTotal,
  103. float currentFraction,
  104. double totalRemain,
  105. double totalTotal,
  106. float totalFraction);
  107. STDMETHOD (raw_ShouldCancel) (
  108. VARIANT_BOOL * pbCancel);
  109. };
  110. //{{AFX_INSERT_LOCATION}}
  111. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  112. #endif