aboutsummaryrefslogtreecommitdiff
path: root/src/test/examples/TestEngine/ExampleTestEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/examples/TestEngine/ExampleTestEngine.cpp')
-rw-r--r--src/test/examples/TestEngine/ExampleTestEngine.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/test/examples/TestEngine/ExampleTestEngine.cpp b/src/test/examples/TestEngine/ExampleTestEngine.cpp
index a378c9a3..fc1938fe 100644
--- a/src/test/examples/TestEngine/ExampleTestEngine.cpp
+++ b/src/test/examples/TestEngine/ExampleTestEngine.cpp
@@ -4,9 +4,15 @@
4 4
5int __cdecl wmain(int argc, LPWSTR argv[]) 5int __cdecl wmain(int argc, LPWSTR argv[])
6{ 6{
7 HRESULT hr = E_INVALIDARG; 7 HRESULT hr = S_OK;
8 BOOL fComInitialized = FALSE;
8 BOOL fShowUsage = FALSE; 9 BOOL fShowUsage = FALSE;
9 10
11 // initialize COM
12 hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
13 ExitOnFailure(hr, "Failed to initialize COM.");
14 fComInitialized = TRUE;
15
10 ConsoleInitialize(); 16 ConsoleInitialize();
11 17
12 if (argc != 4) 18 if (argc != 4)
@@ -21,6 +27,10 @@ int __cdecl wmain(int argc, LPWSTR argv[])
21 { 27 {
22 hr = RunShutdownEngine(argv[2], argv[3]); 28 hr = RunShutdownEngine(argv[2], argv[3]);
23 } 29 }
30 else if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, NORM_IGNORECASE, argv[1], -1, L"waitforquit", -1))
31 {
32 hr = RunWaitForQuitEngine(argv[2], argv[3]);
33 }
24 else 34 else
25 { 35 {
26 fShowUsage = TRUE; 36 fShowUsage = TRUE;
@@ -28,9 +38,16 @@ int __cdecl wmain(int argc, LPWSTR argv[])
28 38
29 if (fShowUsage) 39 if (fShowUsage)
30 { 40 {
31 ConsoleWriteError(hr, CONSOLE_COLOR_RED, "Usage: {reload|shutdown} Example.TestEngine.exe Bundle.exe BA.dll"); 41 ConsoleWriteError(hr = E_INVALIDARG, CONSOLE_COLOR_RED, "Usage: Example.TestEngine.exe {reload|shutdown|waitforquit} Bundle.exe BA.dll");
32 } 42 }
33 43
34 ConsoleUninitialize(); 44 ConsoleUninitialize();
45
46LExit:
47 if (fComInitialized)
48 {
49 ::CoUninitialize();
50 }
51
35 return hr; 52 return hr;
36} 53}