2006年1月20日

[翻译]Win32中安全的子类化 (3)

摘要: Win32中安全的子类化 (1)实例子类化SetWindowLong函数用来子类化一个窗口的一个实例。应用程序必须知道子类化函数的地址,子类化函数是这样一个函数:它用来接收从Windows发来的消息,并把消息传递给原窗口过程。子类化函数必须在应用程序中或DLL的模块定义文件中导出。应用程序子类化窗口时,使用将要被子类化的窗口的句柄、GWL_WNDPROC标志(在WINDOWS.H中定义)以及新的子类化函数地址作为参数调用函数 SetWindowLong。函数SetWindowLong返回一个DWORD类型的值,它是窗口的原窗口过程地址,应用程序应该保存该地址以用于将截获的消息传递给原窗口过程, 阅读全文

posted @ 2006-01-20 15:15 I.AM.Wright 阅读(1775) 评论(3) 推荐(0) 编辑

[翻译]Win32中安全的子类化 (2)

摘要: Win32中安全的子类化 (1) Win32子类化规则有两条规则应用到Win32下的实例子类化和全局子类化。子类化仅被允许用在进程内,一个应用程序不能子类化属于另一个进程的窗口或窗口类。这条规则的起因很简单:Win32进程具有独立的进程地址空间。在一个特定的进程里,一个窗口过程有一个地址,而在另一个不同的进程里,这个地址值并未指向这个窗口过程,结果就是,在一个进程中,使用从另一个进程获得的地址替换后的地址并不能获得期望的结果,因此32位的Windows不允许这种地址替换发生。SetWindowLong和SetClassLong函数中防止了这种类型的子类化发生。你不能子类化属于另一个进程的窗口或 阅读全文

posted @ 2006-01-20 11:49 I.AM.Wright 阅读(1766) 评论(0) 推荐(0) 编辑

导航