Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

171 lines
3.3 KiB

/*++
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)
}