这是一本学习 window编程的很好的参考教材

源代码在线查看: shellhook.cpp

软件大小: 5535 K
上传用户: ok34090512
关键词: window 编程 教材
下载地址: 免注册下载 普通下载 VIP

相关代码

				// ShellHook.cpp : Implementation of DLL Exports.
				
				
				// Note: Proxy/Stub Information
				//      To build a separate proxy/stub DLL, 
				//      run nmake -f ShellHookps.mk in the project directory.
				
				#include "stdafx.h"
				#include "resource.h"
				#include 
				#include "ShellHook.h"
				
				#include "ShellHook_i.c"
				#include "Intercept.h"
				
				
				CComModule _Module;
				
				BEGIN_OBJECT_MAP(ObjectMap)
				OBJECT_ENTRY(CLSID_Intercept, CIntercept)
				END_OBJECT_MAP()
				
				/////////////////////////////////////////////////////////////////////////////
				// DLL Entry Point
				
				extern "C"
				BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
				{
				    if (dwReason == DLL_PROCESS_ATTACH)
				    {
				        _Module.Init(ObjectMap, hInstance, &LIBID_SHELLHOOKLib);
				        DisableThreadLibraryCalls(hInstance);
				    }
				    else if (dwReason == DLL_PROCESS_DETACH)
				        _Module.Term();
				    return TRUE;    // ok
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// Used to determine whether the DLL can be unloaded by OLE
				
				STDAPI DllCanUnloadNow(void)
				{
				    return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// Returns a class factory to create an object of the requested type
				
				STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
				{
				    return _Module.GetClassObject(rclsid, riid, ppv);
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// DllRegisterServer - Adds entries to the system registry
				
				STDAPI DllRegisterServer(void)
				{
				    // registers object, typelib and all interfaces in typelib
				    return _Module.RegisterServer(TRUE);
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// DllUnregisterServer - Removes entries from the system registry
				
				STDAPI DllUnregisterServer(void)
				{
				    return _Module.UnregisterServer(TRUE);
				}
				
				
							

相关资源