Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

85 lines
1.9 KiB

//=======================================================================
//
// Copyright (c) 1999 Microsoft Corporation. All Rights Reserved.
//
// File: callback.h
//
// Purpose: INSENG callback implementation
//
// History: 19-jan-99 YAsmi Created
//
//=======================================================================
#ifndef _CALLBACK_H
#define _CALLBACK_H
#include "stdafx.h"
#include "inseng.h"
#include "cwudload.h"
class CInstallEngineCallback : public IInstallEngineCallback
{
public:
CInstallEngineCallback();
// IUnknown
STDMETHOD_(ULONG, AddRef)();
STDMETHOD_(ULONG, Release)();
STDMETHOD(QueryInterface)(REFIID, void**);
// IInstallEngineCallback
STDMETHOD(OnEngineStatusChange)(THIS_ DWORD dwEngStatus, DWORD substatus);
STDMETHOD(OnStartInstall)(THIS_ DWORD dwDLSize, DWORD dwInstallSize);
STDMETHOD(OnStartComponent)(THIS_ LPCSTR pszID, DWORD dwDLSize,
DWORD dwInstallSize, LPCSTR pszString);
STDMETHOD(OnComponentProgress)(THIS_ LPCSTR pszID, DWORD dwPhase,
LPCSTR pszString, LPCSTR pszMsgString, ULONG progress, ULONG themax);
STDMETHOD(OnStopComponent)(THIS_ LPCSTR pszID, HRESULT hError,
DWORD dwPhase, LPCSTR pszString, DWORD dwStatus);
STDMETHOD(OnStopInstall)(THIS_ HRESULT hrError, LPCSTR szError,
DWORD dwStatus);
STDMETHOD(OnEngineProblem)(THIS_ DWORD dwProblem, LPDWORD dwAction);
void Reset();
DWORD GetStatus()
{
return m_dwInstallStatus;
}
DWORD GetPhase()
{
return m_dwPhase;
}
DWORD LastError()
{
return m_hResult;
}
void SetProgressPtr(IWUProgress* pProgress)
{
m_pProgress = pProgress;
}
void SetEnginePtr(IInstallEngine2* pEngine)
{
m_pEngine = pEngine;
}
private:
ULONG m_cRef;
DWORD m_dwPhase;
HRESULT m_hResult;
DWORD m_dwInstallStatus;
IWUProgress* m_pProgress;
IInstallEngine2* m_pEngine;
BOOL m_bAborted;
};
#endif //_CALLBACK_H