1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <windows.h>
6
7#include "base/at_exit.h"
8#include "base/command_line.h"
9#include "base/logging.h"
10
11// Visual Studio needs at least one C++ file in project http://goo.gl/roro9
12
13namespace {
14base::AtExitManager* g_exit_manager = NULL;
15}
16
17// DLL Entry Point - This is necessary to initialize basic things like the
18// CommandLine and Logging components needed by functions in the DLL.
19extern "C" BOOL WINAPI DllMain(HINSTANCE instance,
20                               DWORD reason,
21                               LPVOID reserved) {
22  if (reason == DLL_PROCESS_ATTACH) {
23    g_exit_manager = new base::AtExitManager();
24    CommandLine::Init(0, NULL);
25    logging::LoggingSettings settings;
26    settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
27    logging::InitLogging(settings);
28  } else if (reason == DLL_PROCESS_DETACH) {
29    CommandLine::Reset();
30    delete g_exit_manager;
31    g_exit_manager = NULL;
32  }
33
34  return TRUE;
35}
36