diff options
Diffstat (limited to 'src/test/examples/TestEngine/ExampleTestEngine.cpp')
-rw-r--r-- | src/test/examples/TestEngine/ExampleTestEngine.cpp | 21 |
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 | ||
5 | int __cdecl wmain(int argc, LPWSTR argv[]) | 5 | int __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 | |||
46 | LExit: | ||
47 | if (fComInitialized) | ||
48 | { | ||
49 | ::CoUninitialize(); | ||
50 | } | ||
51 | |||
35 | return hr; | 52 | return hr; |
36 | } | 53 | } |