diff options
Diffstat (limited to 'win/tkWin32Dll.c')
-rw-r--r-- | win/tkWin32Dll.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/win/tkWin32Dll.c b/win/tkWin32Dll.c new file mode 100644 index 0000000..969e687 --- /dev/null +++ b/win/tkWin32Dll.c @@ -0,0 +1,85 @@ +/* + * tkWin32Dll.c -- + * + * This file contains a stub dll entry point. + * + * Copyright (c) 1995 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) tkWin32Dll.c 1.9 96/08/06 15:59:08 + */ + +#include "tkPort.h" +#include "tkWinInt.h" + +/* + * The following declaration is for the VC++ DLL entry point. + */ + +BOOL APIENTRY DllMain _ANSI_ARGS_((HINSTANCE hInst, + DWORD reason, LPVOID reserved)); + +/* + *---------------------------------------------------------------------- + * + * DllEntryPoint -- + * + * This wrapper function is used by Borland to invoke the + * initialization code for Tk. It simply calls the DllMain + * routine. + * + * Results: + * See DllMain. + * + * Side effects: + * See DllMain. + * + *---------------------------------------------------------------------- + */ + +BOOL APIENTRY +DllEntryPoint(hInst, reason, reserved) + HINSTANCE hInst; /* Library instance handle. */ + DWORD reason; /* Reason this function is being called. */ + LPVOID reserved; /* Not used. */ +{ + return DllMain(hInst, reason, reserved); +} + +/* + *---------------------------------------------------------------------- + * + * DllMain -- + * + * DLL entry point. + * + * Results: + * TRUE on sucess, FALSE on failure. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +BOOL APIENTRY +DllMain(hInstance, reason, reserved) + HINSTANCE hInstance; + DWORD reason; + LPVOID reserved; +{ + /* + * If we are attaching to the DLL from a new process, tell Tk about + * the hInstance to use. If we are detaching then clean up any + * data structures related to this DLL. + */ + + if (reason == DLL_PROCESS_ATTACH) { + TkWinXInit(hInstance); + } else if (reason == DLL_PROCESS_DETACH) { + TkWinXCleanup(hInstance); + } + return(TRUE); +} |