1 2 /* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #include "SkTypes.h" 10 #if defined(SK_BUILD_FOR_WIN32) 11 12 13 #define WIN32_LEAN_AND_MEAN 14 #include <windows.h> 15 #include <ole2.h> 16 #include "SkAutoCoInitialize.h" 17 18 SkAutoCoInitialize::SkAutoCoInitialize() : 19 fHR( 20 CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE) 21 ) 22 { } 23 24 SkAutoCoInitialize::~SkAutoCoInitialize() { 25 if (SUCCEEDED(this->fHR)) { 26 CoUninitialize(); 27 } 28 } 29 30 bool SkAutoCoInitialize::succeeded() { 31 return SUCCEEDED(this->fHR) || RPC_E_CHANGED_MODE == this->fHR; 32 } 33 34 #endif//defined(SK_BUILD_FOR_WIN32) 35