// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_BASE_WIN_ATL_MODULE_H_
#define UI_BASE_WIN_ATL_MODULE_H_

#include <atlbase.h>
#include <atlcom.h>

#include "base/basictypes.h"

namespace ui {
namespace win {

// Ensure that we have exactly one ATL module registered. It's safe to
// call this more than once. ATL functions will crash if there's no
// ATL module registered, or if you try to register two of them, so
// dynamically registering one if needed makes it much easier for us
// to support different build configurations like multi-dll without
// worrying about which side of a module boundary each ATL module object
// belongs on.
//
// This function must be implemented in this header file rather than a
// source file so that it's inlined into the module where it's included,
// rather than in the "ui" module.
static void CreateATLModuleIfNeeded() {
  if (_pAtlModule == NULL) {
    // This creates the module and automatically updates _pAtlModule.
    CR_DEFINE_STATIC_LOCAL(CComModule, module, ());
  }
}

}  // namespace win
}  // namespace ui

#endif  // UI_BASE_WIN_ATL_MODULE_H_
