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