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.
220 lines
6.1 KiB
220 lines
6.1 KiB
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 2000-2003 Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// CTaskCleanInstall.cpp
|
|
//
|
|
// Description:
|
|
// Implementation file for the CTaskCleanInstall class.
|
|
//
|
|
// Header File:
|
|
// CTaskCleanInstall.h
|
|
//
|
|
// Maintained By:
|
|
// David Potter (DavidP) 18-FEB-2003
|
|
// Vij Vasu (Vvasu) 18-APR-2000
|
|
// Created this file.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// Include Files
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Precompiled header for this DLL.
|
|
#include "pch.h"
|
|
|
|
// The header file for this module.
|
|
#include "CTaskCleanInstall.h"
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// Macro Definitions
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Needed for tracing.
|
|
DEFINE_THISCLASS( "CTaskCleanInstall" )
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CTaskCleanInstall::CTaskCleanInstall
|
|
//
|
|
// Description:
|
|
// Constructor of the CTaskCleanInstall class.
|
|
//
|
|
// Arguments:
|
|
// const CClusOCMApp & rAppIn
|
|
// Reference to the CClusOCMApp object that is hosting this task.
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CTaskCleanInstall::CTaskCleanInstall( const CClusOCMApp & rAppIn )
|
|
: BaseClass( rAppIn )
|
|
{
|
|
TraceFunc( "" );
|
|
|
|
//
|
|
// Make sure that this object is being instatiated only when required.
|
|
//
|
|
|
|
// Assert that we will install binaries only when none were installed
|
|
// previously.
|
|
Assert( ( rAppIn.CisGetClusterInstallState() == eClusterInstallStateUnknown )
|
|
|| ( rAppIn.CisGetClusterInstallState() == eClusterInstallStateFilesCopied )
|
|
);
|
|
|
|
|
|
TraceFuncExit();
|
|
|
|
} //*** CTaskCleanInstall::CTaskCleanInstall()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CTaskCleanInstall::~CTaskCleanInstall
|
|
//
|
|
// Description:
|
|
// Destructor of the CTaskCleanInstall class.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CTaskCleanInstall::~CTaskCleanInstall( void )
|
|
{
|
|
TraceFunc( "" );
|
|
TraceFuncExit();
|
|
|
|
} //*** CTaskCleanInstall::~CTaskCleanInstall()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// DWORD
|
|
// CTaskCleanInstall::DwOcQueueFileOps
|
|
//
|
|
// Description:
|
|
// This function handles the OC_QUEUE_FILE_OPS messages from the Optional
|
|
// Components Manager. It installs the files needed for a clean install.
|
|
//
|
|
// Arguments:
|
|
// HSPFILEQ hSetupFileQueueIn
|
|
// Handle to the file queue to operate upon.
|
|
//
|
|
// Return Value:
|
|
// NO_ERROR if all went well.
|
|
// Other Win32 error codes on failure.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
DWORD
|
|
CTaskCleanInstall::DwOcQueueFileOps( HSPFILEQ hSetupFileQueueIn )
|
|
{
|
|
TraceFunc( "" );
|
|
LogMsg( "Entering " __FUNCTION__ "()" );
|
|
|
|
// The base class helper function does everything that we need to do here.
|
|
// So, just call it.
|
|
DWORD dwReturnValue = TW32( BaseClass::DwOcQueueFileOps( hSetupFileQueueIn, INF_SECTION_CLEAN_INSTALL ) );
|
|
|
|
TraceFlow1( "Return Value is %#x.", dwReturnValue );
|
|
LogMsg( "Return Value is %#x.", dwReturnValue );
|
|
|
|
RETURN( dwReturnValue );
|
|
|
|
} //*** CTaskCleanInstall::DwOcQueueFileOps()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// DWORD
|
|
// CTaskCleanInstall::DwOcCompleteInstallation
|
|
//
|
|
// Description:
|
|
// This function handles the OC_COMPLETE_INSTALLATION messages from the
|
|
// Optional Components Manager during a clean install.
|
|
//
|
|
// Registry operations, COM component registrations, creation of servies
|
|
// etc. are performed in this function.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// NO_ERROR if all went well.
|
|
// Other Win32 error codes on failure.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
DWORD
|
|
CTaskCleanInstall::DwOcCompleteInstallation( void )
|
|
{
|
|
TraceFunc( "" );
|
|
LogMsg( "Entering " __FUNCTION__ "()" );
|
|
|
|
// The base class helper function does everything that we need to do here.
|
|
// So, just call it.
|
|
DWORD dwReturnValue = TW32( BaseClass::DwOcCompleteInstallation( INF_SECTION_CLEAN_INSTALL ) );
|
|
|
|
TraceFlow1( "Return Value is %#x.", dwReturnValue );
|
|
LogMsg( "Return Value is %#x.", dwReturnValue );
|
|
|
|
RETURN( dwReturnValue );
|
|
|
|
} //*** CTaskCleanInstall::DwOcCompleteInstallation()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// DWORD
|
|
// CTaskCleanInstall::DwOcCleanup
|
|
//
|
|
// Description:
|
|
// This function handles the OC_CLEANUP messages from the
|
|
// Optional Components Manager during a clean install.
|
|
//
|
|
// If an error has previously occurred during this task, cleanup operations
|
|
// are performed. Otherwise nothing is done by this function.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// NO_ERROR if all went well.
|
|
// Other Win32 error codes on failure.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
DWORD
|
|
CTaskCleanInstall::DwOcCleanup( void )
|
|
{
|
|
TraceFunc( "" );
|
|
LogMsg( "Entering " __FUNCTION__ "()" );
|
|
|
|
// The base class helper function does everything that we need to do here.
|
|
// So, just call it.
|
|
DWORD dwReturnValue = TW32( BaseClass::DwOcCleanup( INF_SECTION_CLEAN_INSTALL_CLEANUP ) );
|
|
|
|
TraceFlow1( "Return Value is %#x.", dwReturnValue );
|
|
LogMsg( "Return Value is %#x.", dwReturnValue );
|
|
|
|
RETURN( dwReturnValue );
|
|
|
|
} //*** CTaskCleanInstall::DwOcCleanup()
|
|
|