Files
mirror-processhacker/2.x/trunk/plugins/WindowExplorer/wndexp.h
T
wj32 36a4284b8d converted all annotations to SAL 2.0
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@5548 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2013-11-10 06:25:03 +00:00

132 lines
2.8 KiB
C

#ifndef WNDEXP_H
#define WNDEXP_H
#include <phdk.h>
#include "wndtree.h"
extern BOOLEAN IsHookClient;
extern PPH_PLUGIN PluginInstance;
#define SETTING_PREFIX L"ProcessHacker.WindowExplorer."
#define SETTING_NAME_SHOW_DESKTOP_WINDOWS (SETTING_PREFIX L"ShowDesktopWindows")
#define SETTING_NAME_WINDOW_TREE_LIST_COLUMNS (SETTING_PREFIX L"WindowTreeListColumns")
#define SETTING_NAME_WINDOWS_WINDOW_POSITION (SETTING_PREFIX L"WindowsWindowPosition")
#define SETTING_NAME_WINDOWS_WINDOW_SIZE (SETTING_PREFIX L"WindowsWindowSize")
// hook
#define WE_SERVER_MESSAGE_NAME L"WE_ServerMessage"
#define WE_SERVER_SHARED_SECTION_NAME L"\\BaseNamedObjects\\WeSharedSection"
#define WE_SERVER_SHARED_SECTION_LOCK_NAME L"\\BaseNamedObjects\\WeSharedSectionLock"
#define WE_SERVER_SHARED_SECTION_EVENT_NAME L"\\BaseNamedObjects\\WeSharedSectionEvent"
#define WE_CLIENT_MESSAGE_TIMEOUT 2000
typedef struct _WE_HOOK_SHARED_DATA
{
ULONG MessageId;
struct
{
ULONG_PTR WndProc;
ULONG_PTR DlgProc;
WNDCLASSEX ClassInfo;
} c;
} WE_HOOK_SHARED_DATA, *PWE_HOOK_SHARED_DATA;
VOID WeHookServerInitialization(
VOID
);
VOID WeHookServerUninitialization(
VOID
);
BOOLEAN WeIsServerActive(
VOID
);
BOOLEAN WeLockServerSharedData(
_Out_ PWE_HOOK_SHARED_DATA *Data
);
VOID WeUnlockServerSharedData(
VOID
);
BOOLEAN WeSendServerRequest(
_In_ HWND hWnd
);
VOID WeHookClientInitialization(
VOID
);
VOID WeHookClientUninitialization(
VOID
);
// wnddlg
typedef enum _WE_WINDOW_SELECTOR_TYPE
{
WeWindowSelectorAll,
WeWindowSelectorProcess,
WeWindowSelectorThread,
WeWindowSelectorDesktop
} WE_WINDOW_SELECTOR_TYPE;
typedef struct _WE_WINDOW_SELECTOR
{
WE_WINDOW_SELECTOR_TYPE Type;
union
{
struct
{
HANDLE ProcessId;
} Process;
struct
{
HANDLE ThreadId;
} Thread;
struct
{
PPH_STRING DesktopName;
} Desktop;
};
} WE_WINDOW_SELECTOR, *PWE_WINDOW_SELECTOR;
VOID WeShowWindowsDialog(
_In_ HWND ParentWindowHandle,
_In_ PWE_WINDOW_SELECTOR Selector
);
#define WM_WE_PLUSMINUS (WM_APP + 1)
// wndprp
VOID WeShowWindowProperties(
_In_ HWND ParentWindowHandle,
_In_ HWND WindowHandle
);
// utils
#define WE_PhMainWndHandle (*(HWND *)WeGetProcedureAddress("PhMainWndHandle"))
#define WE_WindowsVersion (*(ULONG *)WeGetProcedureAddress("WindowsVersion"))
PVOID WeGetProcedureAddress(
_In_ PSTR Name
);
VOID WeFormatLocalObjectName(
_In_ PWSTR OriginalName,
_Inout_updates_(256) PWCHAR Buffer,
_Out_ PUNICODE_STRING ObjectName
);
VOID WeInvertWindowBorder(
_In_ HWND hWnd
);
#endif