Home | History | Annotate | Download | only in gcapi
      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