|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Abstract:
@doc @module asyncdlg.cpp | Implementation of the CAsyncDlg dialog @end
Author:
Adi Oltean [aoltean] 10/10/1999
Revision History:
Name Date Comments
aoltean 10/10/1999 Created
--*/
/////////////////////////////////////////////////////////////////////////////
// Includes
#include "stdafx.hxx"
#include "resource.h"
#include "GenDlg.h"
#include "VssTest.h"
#include "AsyncDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CAsyncDlg dialog
CAsyncDlg::CAsyncDlg( IVssAsync *pIAsync, CWnd* pParent ) : CVssTestGenericDlg(CAsyncDlg::IDD, pParent), m_pIAsync(pIAsync) { //{{AFX_DATA_INIT(CAsyncDlg)
//}}AFX_DATA_INIT
m_strState.Empty(); m_strPercentCompleted.Empty(); }
CAsyncDlg::~CAsyncDlg() { }
void CAsyncDlg::DoDataExchange(CDataExchange* pDX) { CVssTestGenericDlg::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAsyncDlg)
DDX_Text(pDX, IDC_ASYNC_STATUS, m_strState); DDX_Text(pDX, IDC_ASYNC_PERF, m_strPercentCompleted); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAsyncDlg, CVssTestGenericDlg) //{{AFX_MSG_MAP(CAsyncDlg)
ON_BN_CLICKED(IDC_NEXT, OnNext) ON_BN_CLICKED(IDC_ASYNC_WAIT, OnWait) ON_BN_CLICKED(IDC_ASYNC_CANCEL, OnCancel) ON_BN_CLICKED(IDC_ASYNC_QUERY, OnQueryStatus) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAsyncDlg message handlers
BOOL CAsyncDlg::OnInitDialog() { CVssFunctionTracer ft( VSSDBG_VSSTEST, L"CAsyncDlg::OnInitDialog" ); USES_CONVERSION;
try { CVssTestGenericDlg::OnInitDialog();
UpdateData(FALSE); } VSS_STANDARD_CATCH(ft)
return TRUE; // return TRUE unless you set the focus to a control
}
void CAsyncDlg::OnNext() { CVssFunctionTracer ft( VSSDBG_VSSTEST, L"CAsyncDlg::OnNext" );
try { EndDialog(IDOK); } VSS_STANDARD_CATCH(ft) }
void CAsyncDlg::OnWait() { CVssFunctionTracer ft( VSSDBG_VSSTEST, L"CCoordDlg::OnWait" );
try { ft.hr = m_pIAsync->Wait(); if (ft.hr != S_OK) ft.MsgBox( L"Return value", L"Wait returned 0x%08lx", ft.hr ); } VSS_STANDARD_CATCH(ft) }
void CAsyncDlg::OnCancel() { CVssFunctionTracer ft( VSSDBG_VSSTEST, L"CCoordDlg::OnCancel" );
try { ft.hr = m_pIAsync->Cancel(); if (ft.hr != S_OK) ft.MsgBox( L"Return value", L"Cancel returned 0x%08lx", ft.hr ); } VSS_STANDARD_CATCH(ft) }
void CAsyncDlg::OnQueryStatus() { CVssFunctionTracer ft( VSSDBG_VSSTEST, L"CCoordDlg::OnQueryStatus" );
try { HRESULT hrResult = S_OK; INT nPercentDone = 0;
ft.hr = m_pIAsync->QueryStatus(&hrResult, &nPercentDone);
WCHAR wszBuffer[30];
wsprintfW(wszBuffer, L"0x%08lx", hrResult); m_strState = W2T(wszBuffer);
wsprintfW(wszBuffer, L"%3d.%02d %%", nPercentDone/100, nPercentDone%100 ); m_strPercentCompleted = W2T(wszBuffer);
if (ft.hr != S_OK) ft.MsgBox( L"Return value", L"Cancel returned 0x%08lx", ft.hr );
UpdateData(FALSE); } VSS_STANDARD_CATCH(ft) }
|