dllentry.cpp
上传用户:looem2003
上传日期:2014-07-20
资源大小:13733k
文件大小:2k
源码类别:

打印编程

开发平台:

Visual C++

  1. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. //  ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. //  PARTICULAR PURPOSE.
  5. //
  6. //  Copyright  1998 - 2003  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. //  FILE:   dllentry.cpp
  9. //
  10. //
  11. //  PURPOSE:  Source module for DLL entry function(s).
  12. //
  13. //
  14. //  Functions:
  15. //          DllMain
  16. //
  17. //
  18. //
  19. //  PLATFORMS:  Windows XP, Windows Server 2003, Windows codenamed Longhorn
  20. //
  21. //
  22. //  History:
  23. //          06/24/03    xxx created.
  24. //
  25. //
  26. #include "precomp.h"
  27. #include "bitmap.h"
  28. #include "debug.h"
  29. #include "log_file.h"
  30. // StrSafe.h needs to be included last
  31. // to disallow bad string functions.
  32. #include <STRSAFE.H>
  33. BOOL gen_file_name( LPTSTR fileName, DWORD fileSize );
  34. TCHAR pageFileName[4*MAX_PATH] = _T("");
  35. // Need to export these functions as c declarations.
  36. extern "C" {
  37. ///////////////////////////////////////////////////////////
  38. //
  39. // DLL entry point
  40. //
  41. // DllMain isn't called/used for kernel mode version.
  42. BOOL WINAPI DllMain(HINSTANCE hInst, WORD wReason, LPVOID lpReserved)
  43. {
  44.     OEMDBG(DBG_VERBOSE, L"DllMain entry.");
  45.     UNREFERENCED_PARAMETER(hInst);
  46.     UNREFERENCED_PARAMETER(lpReserved);
  47.     switch(wReason)
  48.     {
  49.         case DLL_PROCESS_ATTACH:
  50.             init_log( _T("popfaxbd"), &hInst, 1 );
  51.             gen_file_name( pageFileName, ARRAYSIZE(pageFileName));
  52.             write_log( 3, _T("DllMain"), _T("%s"), pageFileName );
  53.             break;
  54.         case DLL_THREAD_ATTACH:
  55.             break;
  56.         case DLL_PROCESS_DETACH:
  57.             break;
  58.         case DLL_THREAD_DETACH:
  59.             break;
  60.     }
  61.     return TRUE;
  62. }
  63. }  // extern "C" closing bracket
  64. BOOL gen_file_name( LPTSTR fileName, DWORD fileSize )
  65. {
  66. BOOL ret = FALSE;
  67. SYSTEMTIME sysTime = {0};
  68. FILETIME fileTime = {0};
  69. if( (NULL != fileName) && ( 0 != GetTempPath( fileSize, fileName ) ) ) 
  70. {
  71. if( fileName[_tcslen(fileName)-1] != _T('\') )
  72. _tcscat_s( fileName, fileSize-_tcslen(fileName), _T("\") );
  73. GetLocalTime( &sysTime );
  74. ret = SystemTimeToFileTime( &sysTime, &fileTime );
  75. _stprintf_s( fileName+_tcslen(fileName), fileSize-_tcslen(fileName), _T("%X_%X"), fileTime.dwHighDateTime, fileTime.dwLowDateTime );
  76. }
  77. return ret;
  78. }