/* * MainWindowHandleWMCommand * * Purpose: * * Main window WM_COMMAND handler. * */ LRESULT MainWindowHandleWMCommand( _In_ HWND hwnd, _In_ WPARAM wParam, _In_ LPARAM lParam ) { LPWSTR lpItemText; HWND hwndFocus; UNREFERENCED_PARAMETER(lParam); switch (LOWORD(wParam)) { case ID_FILE_RUNASADMIN: supRunAsAdmin(); break; case ID_FILE_EXIT: PostQuitMessage(0); break; case ID_OBJECT_PROPERTIES: hwndFocus = GetFocus(); if (hwndFocus == g_hwndObjectList) { MainWindowHandleObjectListProp(hwnd); } if (hwndFocus == g_hwndObjectTree) { MainWindowHandleObjectTreeProp(hwnd); } break; case ID_OBJECT_GOTOLINKTARGET: lpItemText = supGetItemText(g_hwndObjectList, ListView_GetSelectionMark(g_hwndObjectList), 2, NULL); if (lpItemText) { if (_strcmpi(lpItemText, L"\\??") == 0) { ListToObject(L"\\GLOBAL??"); } else { ListToObject(lpItemText); } supHeapFree(lpItemText); } else { lpItemText = supGetItemText(g_hwndObjectList, ListView_GetSelectionMark(g_hwndObjectList), 0, NULL); if (lpItemText) { if ((_strcmpi(lpItemText, L"GLOBALROOT") == 0) && (_strcmpi(g_WinObj.CurrentObjectPath, L"\\GLOBAL??") == 0)) { ListToObject(L"\\"); } supHeapFree(lpItemText); } } break; case ID_FIND_FINDOBJECT: FindDlgCreate(hwnd); break; case ID_VIEW_REFRESH: MainWindowOnRefresh(hwnd); break; //Extras -> Pipes case ID_EXTRAS_PIPES: extrasShowPipeDialog(hwnd); break; //Extras -> Mailslots case ID_EXTRAS_MAILSLOTS: extrasShowMailslotsDialog(hwnd); break; //Extras -> UserSharedData case ID_EXTRAS_USERSHAREDDATA: extrasShowUserSharedDataDialog(hwnd); break; //Extras -> Private Namespaces case ID_EXTRAS_PRIVATENAMESPACES: if (g_WinObj.osver.dwBuildNumber <= 10240) { //feature require driver usage if (g_kdctx.hDevice != NULL) { extrasShowPrivateNamespacesDialog(hwnd); } } break; //Extras -> KiServiceTable case ID_EXTRAS_SSDT: //feature require driver usage #ifndef _DEBUG if (g_kdctx.hDevice != NULL) { #endif extrasShowSSDTDialog(hwnd); #ifndef _DEBUG } #endif break; //Extras -> Drivers case ID_EXTRAS_DRIVERS: extrasShowDriversDialog(hwnd); break; case ID_HELP_ABOUT: DialogBoxParam(g_WinObj.hInstance, MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hwnd, (DLGPROC)&AboutDialogProc, 0); break; case ID_HELP_HELP: supShowHelp(); break; default: break; } return FALSE; }
/* * MainWindowHandleWMCommand * * Purpose: * * Main window WM_COMMAND handler. * */ LRESULT MainWindowHandleWMCommand( _In_ HWND hwnd, _In_ WPARAM wParam, _In_ LPARAM lParam ) { LPWSTR lpItemText; HWND hwndFocus; UNREFERENCED_PARAMETER(lParam); switch (LOWORD(wParam)) { case ID_FILE_RUNASADMIN: supRunAsAdmin(); break; case ID_FILE_EXIT: PostQuitMessage(0); break; case ID_OBJECT_PROPERTIES: hwndFocus = GetFocus(); if (hwndFocus == ObjectList) { MainWindowHandleObjectListProp(hwnd); } if (hwndFocus == ObjectTree) { MainWindowHandleObjectTreeProp(hwnd); } break; case ID_OBJECT_GOTOLINKTARGET: lpItemText = supGetItemText(ObjectList, ListView_GetSelectionMark(ObjectList), 2, NULL); if (lpItemText) { if (_strcmpi(lpItemText, L"\\??") == 0) { ListToObject(L"\\GLOBAL??"); } else { ListToObject(lpItemText); } HeapFree(GetProcessHeap(), 0, lpItemText); } else { lpItemText = supGetItemText(ObjectList, ListView_GetSelectionMark(ObjectList), 0, NULL); if (lpItemText) { if ( (_strcmpi(lpItemText, L"GLOBALROOT") == 0) && (_strcmpi(CurrentObjectPath, L"\\GLOBAL??") == 0) ) { ListToObject(L"\\"); } HeapFree(GetProcessHeap(), 0, lpItemText); } } break; case ID_FIND_FINDOBJECT: FindDlgCreate(hwnd); break; case ID_VIEW_REFRESH: MainWindowOnRefresh(hwnd); break; case ID_EXTRAS_PIPES: extrasShowPipeDialog(hwnd); break; case ID_EXTRAS_USERSHAREDDATA: extrasShowUserSharedDataDialog(hwnd); break; case ID_EXTRAS_PRIVATENAMESPACES: extrasShowPrivateNamespacesDialog(hwnd); break; case ID_HELP_ABOUT: DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_DIALOG_ABOUT), hwnd, (DLGPROC)&AboutDialogProc, 0); break; case ID_HELP_HELP: supShowHelp(); break; default: break; } return FALSE; }