home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / BOCOLE.PAK / OLEDLL.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  1.3 KB  |  60 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectComponents
  3. // Copyright (c) 1991, 1996 by Borland International, All Rights Reserved
  4. //
  5. // $Revision:   2.3  $
  6. //
  7. // OleDLL.cpp -- DLL entry/exit points for BOLE.DLL
  8. //----------------------------------------------------------------------------
  9. #include <BOle32.h>
  10. #include <Windows.h>
  11. #include "OLE2UI.h"
  12.  
  13. HINSTANCE boleInst;
  14.  
  15. // This works around an RTL bug which leaves Win87EM.DLL locked
  16. //
  17. #if defined(__BORLANDC__) && !defined(WIN32)
  18.     extern unsigned _LockWIN87EM;
  19.     void WhackRTL ()    { _LockWIN87EM = FALSE; }
  20.     #pragma startup WhackRTL 0
  21. #endif
  22.  
  23. OLEDBGDATA_MAIN ("BOLE")
  24.  
  25. extern "C" int FAR PASCAL LibMain( HINSTANCE hInst, WORD, WORD, LPSTR )
  26. {
  27.     boleInst = hInst;
  28.     OleUIInitialize (boleInst, NULL);
  29.     return 1;
  30. }
  31.  
  32. extern "C" int FAR PASCAL WEP(int /*systemExit*/)
  33. {
  34.     OleUIUninitialize ();
  35.     return 1;
  36. }
  37.  
  38. #ifdef WIN32
  39.  
  40. extern "C" BOOL WINAPI DllEntryPoint( HINSTANCE hInst, DWORD dwReason, LPVOID )
  41. {
  42.     switch  (dwReason) {
  43.         case DLL_PROCESS_ATTACH:
  44.             LibMain(hInst, NULL, NULL, NULL);
  45.             break;
  46.         case DLL_PROCESS_DETACH:
  47.             WEP(NULL);
  48.             break;
  49.         case DLL_THREAD_ATTACH:
  50.         case DLL_THREAD_DETACH:
  51.             break;
  52.     }
  53.  
  54.     return 1;
  55. }
  56.  
  57. #endif
  58.  
  59.  
  60.