dllmain.cpp
上传用户:sabrinaco
上传日期:2016-01-19
资源大小:3177k
文件大小:2k
开发平台:

Visual C++

  1. #include "pch.h"
  2. #pragma hdrstop
  3. #include "passthru.h"
  4. #include "initguid.h"
  5. #include "passthrn_i.c"
  6. // Global
  7. //#include "sfnetcfg_i.c"
  8. CComModule _Module;
  9. BEGIN_OBJECT_MAP(ObjectMap)
  10.     OBJECT_ENTRY(CLSID_CPassthru, CPassthru)
  11. END_OBJECT_MAP()
  12. /////////////////////////////////////////////////////////////////////////////
  13. // DLL Entry Point
  14. extern "C"
  15. BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
  16. {
  17.     if (dwReason == DLL_PROCESS_ATTACH)
  18.     {
  19.         _Module.Init(ObjectMap, hInstance);
  20.         DisableThreadLibraryCalls(hInstance);
  21.     }
  22.     else if (dwReason == DLL_PROCESS_DETACH)
  23.     {
  24.         _Module.Term();
  25.     }
  26.     return TRUE;
  27. }
  28. /////////////////////////////////////////////////////////////////////////////
  29. // Used to determine whether the DLL can be unloaded by OLE
  30. STDAPI DllCanUnloadNow(void)
  31. {
  32.     return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
  33. }
  34. /////////////////////////////////////////////////////////////////////////////
  35. // Returns a class factory to create an object of the requested type
  36. STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
  37. {
  38.     return _Module.GetClassObject(rclsid, riid, ppv);
  39. }
  40. /////////////////////////////////////////////////////////////////////////////
  41. // DllRegisterServer - Adds entries to the system registry
  42. STDAPI DllRegisterServer(void)
  43. {
  44.     // registers object, typelib and all interfaces in typelib
  45.     return _Module.RegisterServer(TRUE);
  46. }
  47. /////////////////////////////////////////////////////////////////////////////
  48. // DllUnregisterServer - Removes entries from the system registry
  49. STDAPI DllUnregisterServer(void)
  50. {
  51.     _Module.UnregisterServer();
  52.     return S_OK;
  53. }