子类化桌面窗口,explorer进程就崩溃.内存访问错误。
case DLL_PROCESS_ATTACH: { GetModuleFileName(NULL, FileName, sizeof(FileName)); if (strstr(FileName, "explorer.exe")) { HWND hwnd = FindWindow("Progman", "Program Manager"); hwnd = FindWindowEx(hwnd, NULL, "SHELLDLL_DefView", NULL); hwnd = FindWindowEx(hwnd, NULL, "SysListView32", "FolderView"); OldMsgProc = (WNDPROC)SetWindowLongPtr(hwnd, GWL_WNDPROC, (LONG)newMsgProc); } }LRESULT CALLBACK newMsgProc(HWND hDeskTop, UINT message, WPARAM wParam, LPARAM lParam){ switch(message) { case LVM_SETITEMPOSITION32: case LVM_SETITEMPOSITION: return 0; default: break; } //注释掉swithc语句块一样会崩溃 return CallWindowProc(OldMsgProc, hDeskTop, message, wParam, lParam);}return CallWindowProc(OldMsgProc, hDeskTop, message, wParam, lParam);