c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews/*
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2013, 2016 Internet Systems Consortium, Inc. ("ISC")
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews/* $Id$ */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#include <windows.h>
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#include <signal.h>
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews/*
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews * Called when we enter the DLL
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews__declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL,
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews DWORD fdwReason, LPVOID lpvReserved)
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews{
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews switch (fdwReason) {
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews /*
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews * The DLL is loading due to process
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews * initialization or a call to LoadLibrary.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews case DLL_PROCESS_ATTACH:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews break;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews /* The attached process creates a new thread. */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews case DLL_THREAD_ATTACH:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews break;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews /* The thread of the attached process terminates. */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews case DLL_THREAD_DETACH:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews break;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews /*
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews * The DLL is unloading from a process due to
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews * process termination or a call to FreeLibrary.
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews */
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews case DLL_PROCESS_DETACH:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews break;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews default:
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews break;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews }
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews return (TRUE);
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews}
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews