diff options
Diffstat (limited to 'gfx/skia/skia/src/utils/win/SkAutoCoInitialize.cpp')
-rw-r--r-- | gfx/skia/skia/src/utils/win/SkAutoCoInitialize.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/utils/win/SkAutoCoInitialize.cpp b/gfx/skia/skia/src/utils/win/SkAutoCoInitialize.cpp new file mode 100644 index 0000000000..5b0f3f9745 --- /dev/null +++ b/gfx/skia/skia/src/utils/win/SkAutoCoInitialize.cpp @@ -0,0 +1,32 @@ +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/core/SkTypes.h" +#if defined(SK_BUILD_FOR_WIN) + +#include "src/utils/win/SkAutoCoInitialize.h" + +#include <objbase.h> +#include <winerror.h> + +SkAutoCoInitialize::SkAutoCoInitialize() : + fHR( + CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE) + ) +{ } + +SkAutoCoInitialize::~SkAutoCoInitialize() { + if (SUCCEEDED(this->fHR)) { + CoUninitialize(); + } +} + +bool SkAutoCoInitialize::succeeded() { + return SUCCEEDED(this->fHR) || RPC_E_CHANGED_MODE == this->fHR; +} + +#endif//defined(SK_BUILD_FOR_WIN) |