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