aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp')
-rw-r--r--src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp b/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
index 35949eb9..c93f9d3f 100644
--- a/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
+++ b/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
@@ -9,6 +9,22 @@ class CPrereqBaf : public CBalBaseBAFunctions
9public: // IBAFunctions 9public: // IBAFunctions
10 10
11public: //IBootstrapperApplication 11public: //IBootstrapperApplication
12 STDMETHODIMP OnCreate(
13 __in IBootstrapperEngine* pEngine,
14 __in BOOTSTRAPPER_COMMAND* pCommand
15 )
16 {
17 HRESULT hr = S_OK;
18
19 hr = __super::OnCreate(pEngine, pCommand);
20 ExitOnFailure(hr, "CBalBaseBootstrapperApplication initialization failed.");
21
22 hr = StrAllocString(&m_sczBARuntimeDirectory, pCommand->wzBootstrapperWorkingFolder, 0);
23 ExitOnFailure(hr, "Failed to copy working folder");
24
25 LExit:
26 return hr;
27 }
12 28
13 virtual STDMETHODIMP OnDetectBegin( 29 virtual STDMETHODIMP OnDetectBegin(
14 __in BOOL /*fCached*/, 30 __in BOOL /*fCached*/,
@@ -19,7 +35,7 @@ public: //IBootstrapperApplication
19 { 35 {
20 HRESULT hr = S_OK; 36 HRESULT hr = S_OK;
21 37
22 hr = m_pEngine->SetVariableString(L"BARuntimeDirectory", m_command.wzBootstrapperWorkingFolder, FALSE); 38 hr = m_pEngine->SetVariableString(L"BARuntimeDirectory", m_sczBARuntimeDirectory, FALSE);
23 ExitOnFailure(hr, "Failed to set BARuntimeDirectory"); 39 ExitOnFailure(hr, "Failed to set BARuntimeDirectory");
24 40
25 LExit: 41 LExit:
@@ -33,11 +49,10 @@ public:
33 // Constructor - initialize member variables. 49 // Constructor - initialize member variables.
34 // 50 //
35 CPrereqBaf( 51 CPrereqBaf(
36 __in HMODULE hModule, 52 __in HMODULE hModule
37 __in IBootstrapperEngine* pEngine, 53 ) : CBalBaseBAFunctions(hModule)
38 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs
39 ) : CBalBaseBAFunctions(hModule, pEngine, pArgs)
40 { 54 {
55 m_sczBARuntimeDirectory = NULL;
41 } 56 }
42 57
43 // 58 //
@@ -45,9 +60,11 @@ public:
45 // 60 //
46 ~CPrereqBaf() 61 ~CPrereqBaf()
47 { 62 {
63 ReleaseNullStr(m_sczBARuntimeDirectory);
48 } 64 }
49 65
50private: 66private:
67 LPWSTR m_sczBARuntimeDirectory;
51}; 68};
52 69
53 70
@@ -59,21 +76,21 @@ HRESULT WINAPI CreateBAFunctions(
59{ 76{
60 HRESULT hr = S_OK; 77 HRESULT hr = S_OK;
61 CPrereqBaf* pBAFunctions = NULL; 78 CPrereqBaf* pBAFunctions = NULL;
62 IBootstrapperEngine* pEngine = NULL;
63 79
64 hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); 80 BalInitialize(pArgs->pEngine);
65 ExitOnFailure(hr, "Failed to initialize Bal.");
66 81
67 pBAFunctions = new CPrereqBaf(hModule, pEngine, pArgs); 82 pBAFunctions = new CPrereqBaf(hModule);
68 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CPrereqBaf object."); 83 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CPrereqBaf object.");
69 84
85 hr = pBAFunctions->OnCreate(pArgs->pEngine, pArgs->pCommand);
86 ExitOnFailure(hr, "Failed to call OnCreate CPrereqBaf.");
87
70 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; 88 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc;
71 pResults->pvBAFunctionsProcContext = pBAFunctions; 89 pResults->pvBAFunctionsProcContext = pBAFunctions;
72 pBAFunctions = NULL; 90 pBAFunctions = NULL;
73 91
74LExit: 92LExit:
75 ReleaseObject(pBAFunctions); 93 ReleaseObject(pBAFunctions);
76 ReleaseObject(pEngine);
77 94
78 return hr; 95 return hr;
79} 96}