コード例 #1
0
ファイル: main.c プロジェクト: songbei6/WinObjEx64
/*
* 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;
}
コード例 #2
0
ファイル: main.c プロジェクト: killbug2004/WinObjEx64
/*
* 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;
}