diff options
Diffstat (limited to 'src/test/WixToolsetTest.MbaHost/EngineForTest.h')
| -rw-r--r-- | src/test/WixToolsetTest.MbaHost/EngineForTest.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.MbaHost/EngineForTest.h b/src/test/WixToolsetTest.MbaHost/EngineForTest.h new file mode 100644 index 00000000..6058e67c --- /dev/null +++ b/src/test/WixToolsetTest.MbaHost/EngineForTest.h | |||
| @@ -0,0 +1,63 @@ | |||
| 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 | HRESULT WINAPI EngineForTestProc( | ||
| 5 | __in BOOTSTRAPPER_ENGINE_MESSAGE message, | ||
| 6 | __in const LPVOID pvArgs, | ||
| 7 | __inout LPVOID pvResults, | ||
| 8 | __in_opt LPVOID pvContext | ||
| 9 | ); | ||
| 10 | |||
| 11 | typedef void(WINAPI *PFN_TEST_LOG_PROC)( | ||
| 12 | __in LPCWSTR sczMessage | ||
| 13 | ); | ||
| 14 | |||
| 15 | struct BOOTSTRAPPER_ENGINE_CONTEXT | ||
| 16 | { | ||
| 17 | PFN_TEST_LOG_PROC pfnLog; | ||
| 18 | }; | ||
| 19 | |||
| 20 | namespace WixToolsetTest | ||
| 21 | { | ||
| 22 | namespace MbaHost | ||
| 23 | { | ||
| 24 | namespace Native | ||
| 25 | { | ||
| 26 | using namespace System; | ||
| 27 | using namespace System::Collections::Generic; | ||
| 28 | using namespace System::Runtime::InteropServices; | ||
| 29 | |||
| 30 | public ref class EngineForTest | ||
| 31 | { | ||
| 32 | private: | ||
| 33 | delegate void LogDelegate(LPCWSTR); | ||
| 34 | LogDelegate^ _logDelegate; | ||
| 35 | List<String^>^ _messages; | ||
| 36 | |||
| 37 | void Log(LPCWSTR sczMessage) | ||
| 38 | { | ||
| 39 | String^ message = gcnew String(sczMessage); | ||
| 40 | System::Diagnostics::Debug::WriteLine(message); | ||
| 41 | _messages->Add(message); | ||
| 42 | } | ||
| 43 | public: | ||
| 44 | EngineForTest() | ||
| 45 | { | ||
| 46 | _logDelegate = gcnew LogDelegate(this, &EngineForTest::Log); | ||
| 47 | _messages = gcnew List<String^>(); | ||
| 48 | } | ||
| 49 | |||
| 50 | List<String^>^ GetLogMessages() | ||
| 51 | { | ||
| 52 | return _messages; | ||
| 53 | } | ||
| 54 | |||
| 55 | PFN_TEST_LOG_PROC GetTestLogProc() | ||
| 56 | { | ||
| 57 | IntPtr functionPointer = Marshal::GetFunctionPointerForDelegate(_logDelegate); | ||
| 58 | return static_cast<PFN_TEST_LOG_PROC>(functionPointer.ToPointer()); | ||
| 59 | } | ||
| 60 | }; | ||
| 61 | } | ||
| 62 | } | ||
| 63 | } \ No newline at end of file | ||
