00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "resource.h"
00008 #include <initguid.h>
00009 #include "iefdmdm.h"
00010
00011 #include "iefdmdm_i.c"
00012 #include "IEWGDM.h"
00013
00014 CComModule _Module;
00015
00016 BEGIN_OBJECT_MAP(ObjectMap)
00017 OBJECT_ENTRY(CLSID_IEWGDM, CIEWGDM)
00018 END_OBJECT_MAP()
00019
00020 extern "C"
00021 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID )
00022 {
00023 if (dwReason == DLL_PROCESS_ATTACH)
00024 {
00025 _Module.Init(ObjectMap, hInstance, &LIBID_IEFDMDMLib);
00026 DisableThreadLibraryCalls(hInstance);
00027 }
00028 else if (dwReason == DLL_PROCESS_DETACH)
00029 _Module.Term();
00030 return TRUE;
00031 }
00032
00033 STDAPI DllCanUnloadNow(void)
00034 {
00035 return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
00036 }
00037
00038 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
00039 {
00040 return _Module.GetClassObject(rclsid, riid, ppv);
00041 }
00042
00043 STDAPI DllRegisterServer(void)
00044 {
00045
00046 return _Module.RegisterServer(TRUE);
00047 }
00048
00049 STDAPI DllUnregisterServer(void)
00050 {
00051 CRegKey key;
00052
00053 key.Open (HKEY_CURRENT_USER, "Software\\Microsoft\\Internet EXplorer");
00054 key.DeleteValue ("DownloadUI");
00055
00056 return _Module.UnregisterServer(TRUE);
00057 }
00058