opnsense-src/contrib/llvm/lib/Support/Windows/COM.inc
Dimitry Andric ff0cc061ec Merge llvm trunk r238337 from ^/vendor/llvm/dist, resolve conflicts, and
preserve our customizations, where necessary.
2015-05-27 20:26:41 +00:00

37 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(); }
}
}