diff options
author | Constantin Kaplinsky <const@tightvnc.com> | 2004-10-08 09:43:57 +0000 |
---|---|---|
committer | Constantin Kaplinsky <const@tightvnc.com> | 2004-10-08 09:43:57 +0000 |
commit | 47ed8d321c32c6b741cff1f4ff686165c4f269f4 (patch) | |
tree | da413648adbff4ff10c8ee26124673f8e7cf238a /wm_hooks/wm_hooks.h | |
parent | 266bb36cd47555280fffd3aab1ed86683e26d748 (diff) | |
download | tigervnc-47ed8d321c32c6b741cff1f4ff686165c4f269f4.tar.gz tigervnc-47ed8d321c32c6b741cff1f4ff686165c4f269f4.zip |
Initial revision
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'wm_hooks/wm_hooks.h')
-rw-r--r-- | wm_hooks/wm_hooks.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/wm_hooks/wm_hooks.h b/wm_hooks/wm_hooks.h new file mode 100644 index 00000000..afff4be7 --- /dev/null +++ b/wm_hooks/wm_hooks.h @@ -0,0 +1,103 @@ +/* Copyright (C) 2002-2003 RealVNC Ltd. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +// -=- wm_hooks.h +// +// Window Message Hooks Dynamic Link library +// +// This interface is used by the WMHooks class in rfb_win32 to hook the +// windows on the desktop and receive notifications of changes in their +// state. + +#ifndef __WM_HOOKS_H__ +#define __WM_HOOKS_H__ + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +#define DLLEXPORT __declspec(dllexport) + +extern "C" +{ + // + // -=- Display hook message types + // + + DLLEXPORT UINT WM_Hooks_WindowChanged(); + DLLEXPORT UINT WM_Hooks_WindowBorderChanged(); + DLLEXPORT UINT WM_Hooks_WindowClientAreaChanged(); + DLLEXPORT UINT WM_Hooks_RectangleChanged(); + DLLEXPORT UINT WM_Hooks_CursorChanged(); + + // + // -=- Display update hooks + // + + // - WM_Hooks_Install + // Add the current thread to the list of threads that will receive + // notifications of changes to the display. + // If thread is NULL then the entire display will be hooked. + // If thread is !NULL and then the specified + // thread will be hooked. + // Each thread may only register one hook at a time. + // The call will fail (return FALSE) if the thread already has hooks + // set, or if the hooks cannot be set, or some other error occurs. + + DLLEXPORT BOOL WM_Hooks_Install(DWORD owner, DWORD thread); + + // - WM_Hooks_Remove + // Removes any hook set by the current thread. + // The return indicates whether anything went wrong removing the hooks, + // that might cause problems later. + + DLLEXPORT BOOL WM_Hooks_Remove(DWORD owner); + + // + // -=- User input hooks + // + + // - WM_Hooks_EnableRealInputs + // If TRUE is passed, then "real" input is enabled, otherwise it is disabled. + + DLLEXPORT BOOL WM_Hooks_EnableRealInputs(BOOL pointer, BOOL keyboard); + + // - WM_Hooks_EnableSynthInputs + // If TRUE is passed, then synthetic inputs are enabled, otherwise disabled. + + DLLEXPORT BOOL WM_Hooks_EnableSynthInputs(BOOL pointer, BOOL keyboard); + + // + // -=- Cursor shape hooking + // + + // - WM_Hooks_EnableCursorShape + // If TRUE is passed, then hooks will produce notifications when cursor shape + // changes. + + DLLEXPORT BOOL WM_Hooks_EnableCursorShape(BOOL enable); + +#ifdef _DEBUG + // - WM_Hooks_SetDiagnosticRange + // Select a range of messages that will be reported while hooks are active + DLLEXPORT void WM_Hooks_SetDiagnosticRange(UINT min, UINT max); + DLLEXPORT UINT WM_Hooks_Diagnostic(); +#endif + +} + +#endif // __WM_HOOKS_H__ |