main
h 81 lines 1.67 KB
Raw
1 #pragma once
2 // 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.
3
4
5 enum WM_TESTENG
6 {
7 WM_TESTENG_FIRST = WM_APP + 0xFFF, // this enum value must always be first.
8
9 WM_TESTENG_DETECT,
10 WM_TESTENG_PLAN,
11 WM_TESTENG_ELEVATE,
12 WM_TESTENG_APPLY,
13 WM_TESTENG_LAUNCH_APPROVED_EXE,
14 WM_TESTENG_QUIT,
15
16 WM_TESTENG_LAST, // this enum value must always be last.
17 };
18
19 class TestEngine
20 {
21 public:
22 HRESULT Initialize(
23 __in LPCWSTR wzBundleFilePath
24 );
25
26 HRESULT LoadBA(
27 __in LPCWSTR wzBAFilePath
28 );
29
30 HRESULT Log(
31 __in BOOTSTRAPPER_LOG_LEVEL level,
32 __in LPCWSTR wzMessage
33 );
34
35 HRESULT RunApplication();
36
37 HRESULT SendShutdownEvent(
38 __in BOOTSTRAPPER_SHUTDOWN_ACTION defaultAction
39 );
40
41 HRESULT SendStartupEvent();
42
43 HRESULT SimulateQuit(
44 __in DWORD dwExitCode
45 );
46
47 void UnloadBA(
48 __in BOOL fReload
49 );
50
51 private:
52 HRESULT BAEngineLog(
53 __in BAENGINE_LOG_ARGS* pArgs,
54 __in BAENGINE_LOG_RESULTS* pResults
55 );
56
57 HRESULT BAEngineQuit(
58 __in BAENGINE_QUIT_ARGS* pArgs,
59 __in BAENGINE_QUIT_RESULTS* pResults
60 );
61
62 static HRESULT WINAPI EngineProc(
63 __in BOOTSTRAPPER_ENGINE_MESSAGE message,
64 __in const LPVOID pvArgs,
65 __inout LPVOID pvResults,
66 __in_opt LPVOID pvContext
67 );
68
69 HRESULT ProcessBAMessage(
70 __in const MSG* pmsg
71 );
72
73 public:
74 TestEngine();
75
76 ~TestEngine();
77
78 private:
79 HMODULE m_hBAModule;
80 DWORD m_dwThreadId;
81 };