Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

132 lines
3.0 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
gdsmain.cxx
Abstract:
Defines the DLL initialization function ( entry point) for this module
Author:
Murali R. Krishnan (MuraliK) 24-Jan-1995
Project:
Gopher Space Admin DLL
Revisions:
--*/
/************************************************************
* Include Headers
************************************************************/
extern "C" {
# include <nt.h>
# include <ntrtl.h>
# include <nturtl.h>
# include <windows.h>
};
# include "dbgutil.h"
/************************************************************
* Globals for this module
************************************************************/
DECLARE_DEBUG_VARIABLE();
DECLARE_DEBUG_PRINTS_OBJECT();
/************************************************************
* Functions
************************************************************/
extern "C"
BOOL WINAPI
DllLibMain(
IN HINSTANCE hinstDll,
IN DWORD fdwReason,
IN LPVOID lpvContext OPTIONAL)
/*++
Routine Description:
This function AcLibMain() is the main initialization function for
Archie Client DLL. It initialises local variables and prepares the
interface for the process to use Archie Client APIs.
Messages Actions
ProcessAttach Initializes winsock and data structures.
It fails if winsock has not already been started.
ProcessDetach Cleans up local data structures and disconnects from
winsock.
Arguments:
hinstDll Instance Handle of the DLL
fdwReason Reason why NT called this DLL
lpvReserved Reserved parameter for future use.
Return Value:
Returns TRUE is successful; otherwise FALSE is returned.
--*/
{
BOOL fReturn = TRUE;
switch (fdwReason ) {
case DLL_PROCESS_ATTACH: {
//
// Initialize various modules
//
CREATE_DEBUG_PRINT_OBJECT( "gspace");
SET_DEBUG_FLAGS( 0);
DBGPRINTF( ( DBG_CONTEXT, "Initialized Gopher Space Module\n"));
break;
} /* case DLL_PROCESS_ATTACH */
case DLL_PROCESS_DETACH: {
//
// Only cleanup when we are called because of a FreeLibrary().
// i.e., when lpvContext == NULL
// If we are called because of a process termination, dont free anything
// the system will free resources and memory for us.
//
if ( lpvContext == NULL) {
//
// Code to be executed on successful termination
//
DELETE_DEBUG_PRINT_OBJECT();
}
break;
} /* case DLL_PROCESS_DETACH */
default:
break;
} /* switch */
return ( fReturn);
} /* DllLibMain() */
/**************************** End of File *************************/