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