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 
10 #define WIN32_LEAN_AND_MEAN
11 #include <windows.h>
12 #include <ole2.h>
13 #include "SkAutoCoInitialize.h"
14 
SkAutoCoInitialize()15 SkAutoCoInitialize::SkAutoCoInitialize() :
16     fHR(
17         CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
18     )
19 { }
20 
~SkAutoCoInitialize()21 SkAutoCoInitialize::~SkAutoCoInitialize() {
22     if (SUCCEEDED(this->fHR)) {
23         CoUninitialize();
24     }
25 }
26 
succeeded()27 bool SkAutoCoInitialize::succeeded() {
28     return SUCCEEDED(this->fHR) || RPC_E_CHANGED_MODE == this->fHR;
29 }
30