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
15SkAutoCoInitialize::SkAutoCoInitialize() :
16    fHR(
17        CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
18    )
19{ }
20
21SkAutoCoInitialize::~SkAutoCoInitialize() {
22    if (SUCCEEDED(this->fHR)) {
23        CoUninitialize();
24    }
25}
26
27bool SkAutoCoInitialize::succeeded() {
28    return SUCCEEDED(this->fHR) || RPC_E_CHANGED_MODE == this->fHR;
29}
30