From c31e5dfc55ce6f6f2761076881c90d57c4b99b70 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@digia.com> Date: Fri, 18 Jan 2013 12:10:16 +0100 Subject: [PATCH] Check return values of CoInitialize(). Change-Id: I97e94517e1fb1af89d992db9c1a8c15aba5f8425 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> --- src/activeqt/control/qaxservermain.cpp | 28 ++++++++++++++------------ tools/dumpcpp/main.cpp | 5 ++++- tools/dumpdoc/main.cpp | 5 ++++- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/activeqt/control/qaxservermain.cpp b/src/activeqt/control/qaxservermain.cpp index c79a9e17..f6f75024 100644 --- a/src/activeqt/control/qaxservermain.cpp +++ b/src/activeqt/control/qaxservermain.cpp @@ -252,19 +252,21 @@ EXTERN_C int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR, } if (run) { - HRESULT hRes = CoInitialize(0); - - int argc; - QVector<char*> argv(8); - qWinMain(hInstance, hPrevInstance, unprocessed.data(), nShowCmd, argc, argv); - qAxInit(); - if (runServer) - QAxFactory::startServer(); - nRet = ::main(argc, argv.data()); - QAxFactory::stopServer(); - qAxCleanup(); - CoUninitialize(); - + if (SUCCEEDED(CoInitialize(0))) { + int argc; + QVector<char*> argv(8); + qWinMain(hInstance, hPrevInstance, unprocessed.data(), nShowCmd, argc, argv); + qAxInit(); + if (runServer) + QAxFactory::startServer(); + nRet = ::main(argc, argv.data()); + QAxFactory::stopServer(); + qAxCleanup(); + CoUninitialize(); + } else { + qErrnoWarning("CoInitialize() failed."); + nRet = -1; + } } return nRet; diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp index a7a44b16..6d3dd54b 100644 --- a/tools/dumpcpp/main.cpp +++ b/tools/dumpcpp/main.cpp @@ -1494,7 +1494,10 @@ int main(int argc, char **argv) { qax_dispatchEqualsIDispatch = false; - CoInitialize(0); + if (FAILED(CoInitialize(0))) { + qErrnoWarning("CoInitialize() failed."); + return -1; + } uint category = DefaultObject; diff --git a/tools/dumpdoc/main.cpp b/tools/dumpdoc/main.cpp index bb3bcf17..6996e157 100644 --- a/tools/dumpdoc/main.cpp +++ b/tools/dumpdoc/main.cpp @@ -48,7 +48,10 @@ QT_USE_NAMESPACE int main(int argc, char **argv) { - CoInitialize(0); + if (FAILED(CoInitialize(0))) { + qErrnoWarning("CoInitialize() failed."); + return -1; + } enum State { Default = 0, -- GitLab