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 13 namespace { 14 base::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. 19 extern "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