1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/Support/Windows/COM.inc
Zachary Turner 292db686b7 Make an RAII com initializer.
Differential Revision: http://reviews.llvm.org/D9267
Reviewed By: Aaron Ballman, David Majnemer

llvm-svn: 235898
2015-04-27 17:19:26 +00:00

38 lines
1.2 KiB
PHP

//===- llvm/Support/Windows/COM.inc - Windows COM Implementation *- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file implements the Windows portion of COM support.
//
//===----------------------------------------------------------------------===//
//===----------------------------------------------------------------------===//
//=== WARNING: Implementation here must contain only Windows code.
//===----------------------------------------------------------------------===//
#include <objbase.h>
namespace llvm {
namespace sys {
InitializeCOMRAII::InitializeCOMRAII(COMThreadingMode Threading,
bool SpeedOverMemory) {
DWORD Coinit = 0;
if (Threading == COMThreadingMode::SingleThreaded)
Coinit |= COINIT_APARTMENTTHREADED;
else
Coinit |= COINIT_MULTITHREADED;
if (SpeedOverMemory)
Coinit |= COINIT_SPEED_OVER_MEMORY;
::CoInitializeEx(nullptr, Coinit);
}
InitializeCOMRAII::~InitializeCOMRAII() { ::CoUninitialize(); }
}
}