main
cpp 41 lines 1.29 KB
Raw
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 #include "precomp.h"
4 #include "BextBaseBootstrapperExtensionProc.h"
5
6 static IBootstrapperExtension* vpBootstrapperExtension = NULL;
7
8 // function definitions
9
10 extern "C" HRESULT WINAPI BootstrapperExtensionCreate(
11 __in const BOOTSTRAPPER_EXTENSION_CREATE_ARGS* pArgs,
12 __inout BOOTSTRAPPER_EXTENSION_CREATE_RESULTS* pResults
13 )
14 {
15 HRESULT hr = S_OK;
16 IBootstrapperExtensionEngine* pEngine = NULL;
17
18 hr = XmlInitialize();
19 ExitOnFailure(hr, "Failed to initialize XML.");
20
21 hr = BextInitializeFromCreateArgs(pArgs, &pEngine);
22 ExitOnFailure(hr, "Failed to initialize bext");
23
24 hr = UtilBootstrapperExtensionCreate(pEngine, pArgs, &vpBootstrapperExtension);
25 BextExitOnFailure(hr, "Failed to create WixUtilBootstrapperExtension");
26
27 pResults->pfnBootstrapperExtensionProc = BextBaseBootstrapperExtensionProc;
28 pResults->pvBootstrapperExtensionProcContext = vpBootstrapperExtension;
29
30 LExit:
31 ReleaseObject(pEngine);
32
33 return hr;
34 }
35
36 extern "C" void WINAPI BootstrapperExtensionDestroy()
37 {
38 BextUninitialize();
39 ReleaseNullObject(vpBootstrapperExtension);
40 XmlUninitialize();
41 }