17db96d56Sopenharmony_ci//-------------------------------------------------------------------------------------------------
27db96d56Sopenharmony_ci// <copyright file="wixstdba.cpp" company="Outercurve Foundation">
37db96d56Sopenharmony_ci//   Copyright (c) 2004, Outercurve Foundation.
47db96d56Sopenharmony_ci//   This software is released under Microsoft Reciprocal License (MS-RL).
57db96d56Sopenharmony_ci//   The license and further copyright text can be found in the file
67db96d56Sopenharmony_ci//   LICENSE.TXT at the root directory of the distribution.
77db96d56Sopenharmony_ci// </copyright>
87db96d56Sopenharmony_ci//
97db96d56Sopenharmony_ci// <summary>
107db96d56Sopenharmony_ci// Setup chainer/bootstrapper standard UI for WiX toolset.
117db96d56Sopenharmony_ci// </summary>
127db96d56Sopenharmony_ci//-------------------------------------------------------------------------------------------------
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci#include "pch.h"
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_cistatic HINSTANCE vhInstance = NULL;
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ciextern "C" BOOL WINAPI DllMain(
197db96d56Sopenharmony_ci    IN HINSTANCE hInstance,
207db96d56Sopenharmony_ci    IN DWORD dwReason,
217db96d56Sopenharmony_ci    IN LPVOID /* pvReserved */
227db96d56Sopenharmony_ci    )
237db96d56Sopenharmony_ci{
247db96d56Sopenharmony_ci    switch(dwReason)
257db96d56Sopenharmony_ci    {
267db96d56Sopenharmony_ci    case DLL_PROCESS_ATTACH:
277db96d56Sopenharmony_ci        ::DisableThreadLibraryCalls(hInstance);
287db96d56Sopenharmony_ci        vhInstance = hInstance;
297db96d56Sopenharmony_ci        break;
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ci    case DLL_PROCESS_DETACH:
327db96d56Sopenharmony_ci        vhInstance = NULL;
337db96d56Sopenharmony_ci        break;
347db96d56Sopenharmony_ci    }
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ci    return TRUE;
377db96d56Sopenharmony_ci}
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ciextern "C" HRESULT WINAPI BootstrapperApplicationCreate(
417db96d56Sopenharmony_ci    __in IBootstrapperEngine* pEngine,
427db96d56Sopenharmony_ci    __in const BOOTSTRAPPER_COMMAND* pCommand,
437db96d56Sopenharmony_ci    __out IBootstrapperApplication** ppApplication
447db96d56Sopenharmony_ci    )
457db96d56Sopenharmony_ci{
467db96d56Sopenharmony_ci    HRESULT hr = S_OK;
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci    BalInitialize(pEngine);
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci    hr = CreateBootstrapperApplication(vhInstance, FALSE, S_OK, pEngine, pCommand, ppApplication);
517db96d56Sopenharmony_ci    BalExitOnFailure(hr, "Failed to create bootstrapper application interface.");
527db96d56Sopenharmony_ci
537db96d56Sopenharmony_ciLExit:
547db96d56Sopenharmony_ci    return hr;
557db96d56Sopenharmony_ci}
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci
587db96d56Sopenharmony_ciextern "C" void WINAPI BootstrapperApplicationDestroy()
597db96d56Sopenharmony_ci{
607db96d56Sopenharmony_ci    BalUninitialize();
617db96d56Sopenharmony_ci}
627db96d56Sopenharmony_ci
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ciextern "C" HRESULT WINAPI MbaPrereqBootstrapperApplicationCreate(
657db96d56Sopenharmony_ci    __in HRESULT hrHostInitialization,
667db96d56Sopenharmony_ci    __in IBootstrapperEngine* pEngine,
677db96d56Sopenharmony_ci    __in const BOOTSTRAPPER_COMMAND* pCommand,
687db96d56Sopenharmony_ci    __out IBootstrapperApplication** ppApplication
697db96d56Sopenharmony_ci    )
707db96d56Sopenharmony_ci{
717db96d56Sopenharmony_ci    return E_NOTIMPL;
727db96d56Sopenharmony_ci}
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ciextern "C" void WINAPI MbaPrereqBootstrapperApplicationDestroy()
767db96d56Sopenharmony_ci{ }
77