dllmain.c
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  *  --------------------------------------------------------------------------
  3.  * Copyright (C) 1997 Netscape Communications Corporation
  4.  *  --------------------------------------------------------------------------
  5.  *
  6.  *  dllmain.c
  7.  *
  8.  *  $Id: dllmain.c,v 1.3 2000/10/26 21:58:48 bostic Exp $
  9.  */
  10. #define WIN32_LEAN_AND_MEAN
  11. #include <windows.h>
  12. static int ProcessesAttached = 0;
  13. static HINSTANCE Instance; /* Global library instance handle. */
  14. /*
  15.  * The following declaration is for the VC++ DLL entry point.
  16.  */
  17. BOOL APIENTRY DllMain (HINSTANCE hInst,
  18.     DWORD reason, LPVOID reserved);
  19. /*
  20.  *----------------------------------------------------------------------
  21.  *
  22.  * DllEntryPoint --
  23.  *
  24.  * This wrapper function is used by Borland to invoke the
  25.  * initialization code for Tcl.  It simply calls the DllMain
  26.  * routine.
  27.  *
  28.  * Results:
  29.  * See DllMain.
  30.  *
  31.  * Side effects:
  32.  * See DllMain.
  33.  *
  34.  *----------------------------------------------------------------------
  35.  */
  36. BOOL APIENTRY
  37. DllEntryPoint(hInst, reason, reserved)
  38.     HINSTANCE hInst; /* Library instance handle. */
  39.     DWORD reason; /* Reason this function is being called. */
  40.     LPVOID reserved; /* Not used. */
  41. {
  42.     return DllMain(hInst, reason, reserved);
  43. }
  44. /*
  45.  *----------------------------------------------------------------------
  46.  *
  47.  * DllMain --
  48.  *
  49.  * This routine is called by the VC++ C run time library init
  50.  * code, or the DllEntryPoint routine.  It is responsible for
  51.  * initializing various dynamically loaded libraries.
  52.  *
  53.  * Results:
  54.  * TRUE on sucess, FALSE on failure.
  55.  *
  56.  * Side effects:
  57.  * Establishes 32-to-16 bit thunk and initializes sockets library.
  58.  *
  59.  *----------------------------------------------------------------------
  60.  */
  61. BOOL APIENTRY
  62. DllMain(hInst, reason, reserved)
  63.     HINSTANCE hInst; /* Library instance handle. */
  64.     DWORD reason; /* Reason this function is being called. */
  65.     LPVOID reserved; /* Not used. */
  66. {
  67.     switch (reason) {
  68.     case DLL_PROCESS_ATTACH:
  69. /*
  70.  * Registration of UT need to be done only once for first
  71.  * attaching process.  At that time set the tclWin32s flag
  72.  * to indicate if the DLL is executing under Win32s or not.
  73.  */
  74. if (ProcessesAttached++) {
  75.     return FALSE;         /* Not the first initialization. */
  76. }
  77. Instance = hInst;
  78. return TRUE;
  79.     case DLL_PROCESS_DETACH:
  80. ProcessesAttached--;
  81. break;
  82.     }
  83.     return TRUE;
  84. }