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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: M S C L I D L G . C P P
//
// Contents: Dialog box handling for the MSCLient object.
//
// Notes:
//
// Author: danielwe 28 Feb 1997
//
//----------------------------------------------------------------------------
#include "pch.h"
#pragma hdrstop
#include "msclidlg.h"
//+---------------------------------------------------------------------------
//
// Member: CMSClient::HrSetupPropSheets
//
// Purpose: Inits the prop sheet page objects and creates the pages to be
// returned to the installer object.
//
// Arguments:
// pahpsp [out] Array of handles to property sheet pages.
// cPages [in] Number of pages to create.
//
// Returns: HRESULT, Error code.
//
// Author: danielwe 28 Feb 1997
//
// Notes:
//
HRESULT CMSClient::HrSetupPropSheets(HPROPSHEETPAGE **pahpsp, INT cPages) { HRESULT hr = S_OK; HPROPSHEETPAGE *ahpsp = NULL;
Assert(pahpsp);
*pahpsp = NULL;
// Allocate a buffer large enough to hold the handles to all of our
// property pages.
ahpsp = (HPROPSHEETPAGE *)CoTaskMemAlloc(sizeof(HPROPSHEETPAGE) * cPages); if (!ahpsp) { hr = E_OUTOFMEMORY; goto err; }
if (!m_apspObj[0]) { // Allocate each of the CPropSheetPage objects
m_apspObj[0] = new CRPCConfigDlg(this); } #ifdef DBG
else { // Don't bother creating new classes if they already exist.
AssertSz(m_apspObj[0], "Not all prop page objects are non-NULL!");
} #endif
// Create the actual PROPSHEETPAGE for each object.
// This needs to be done regardless of whether the classes existed before.
ahpsp[0] = m_apspObj[0]->CreatePage(DLG_RPCConfig, 0);
Assert(SUCCEEDED(hr));
*pahpsp = ahpsp;
cleanup: TraceError("HrSetupPropSheets", hr); return hr;
err: CoTaskMemFree(ahpsp); goto cleanup; }
//+---------------------------------------------------------------------------
//
// Member: CMSClient::CleanupPropPages
//
// Purpose: Loop thru each of the pages and free the objects associated
// with them.
//
// Arguments:
// (none)
//
// Returns: Nothing.
//
// Author: danielwe 28 Feb 1997
//
// Notes:
//
VOID CMSClient::CleanupPropPages() { INT ipage;
for (ipage = 0; ipage < c_cPages; ipage++) { delete m_apspObj[ipage]; m_apspObj[ipage] = NULL; } }
|