src.com.sun.jna.platform.win32.User32 Maven / Gradle / Ivy
/* Copyright (c) 2007 Timothy Wall, All Rights Reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*/
package com.sun.jna.platform.win32;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.BaseTSD.LONG_PTR;
import com.sun.jna.platform.win32.WinDef.HDC;
import com.sun.jna.platform.win32.WinDef.HICON;
import com.sun.jna.platform.win32.WinDef.HINSTANCE;
import com.sun.jna.platform.win32.WinDef.HRGN;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinDef.LPARAM;
import com.sun.jna.platform.win32.WinDef.LRESULT;
import com.sun.jna.platform.win32.WinDef.RECT;
import com.sun.jna.platform.win32.WinDef.WPARAM;
import com.sun.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.platform.win32.WinUser.BLENDFUNCTION;
import com.sun.jna.platform.win32.WinUser.FLASHWINFO;
import com.sun.jna.platform.win32.WinUser.GUITHREADINFO;
import com.sun.jna.platform.win32.WinUser.HHOOK;
import com.sun.jna.platform.win32.WinUser.HOOKPROC;
import com.sun.jna.platform.win32.WinUser.MSG;
import com.sun.jna.platform.win32.WinUser.POINT;
import com.sun.jna.platform.win32.WinUser.SIZE;
import com.sun.jna.platform.win32.WinUser.WINDOWINFO;
import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.W32APIOptions;
/**
* Provides access to the w32 user32 library. Incomplete implementation to
* support demos.
*
* @author Todd Fast, [email protected]
* @author [email protected]
*/
public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class,
W32APIOptions.DEFAULT_OPTIONS);
/**
* This function retrieves a handle to a display device context (DC) for the
* client area of the specified window. The display device context can be
* used in subsequent graphics display interface (GDI) functions to draw in
* the client area of the window.
* @param hWnd
* Handle to the window whose device context is to be retrieved.
* If this value is NULL, GetDC retrieves the device context for
* the entire screen.
* @return
* The handle the device context for the specified window's client
* area indicates success. NULL indicates failure. To get extended
* error information, call GetLastError.
*/
HDC GetDC(HWND hWnd);
/**
* This function releases a device context (DC), freeing it for use by other
* applications. The effect of ReleaseDC depends on the type of device
* context.
*
* @param hWnd
* Handle to the window whose device context is to be released.
* @param hDC
* Handle to the device context to be released.
* @return
* The return value specifies whether the device context is
* released. 1 indicates that the device context is released. Zero
* indicates that the device context is not released.
*/
int ReleaseDC(HWND hWnd, HDC hDC);
/**
* This function retrieves the handle to the top-level window whose class name and
* window name match the specified strings. This function does not search child windows.
* @param lpClassName
* Long pointer to a null-terminated string that specifies the class name or is an atom
* that identifies the class-name string. If this parameter is an atom, it must be a
* global atom created by a previous call to the GlobalAddAtom function. The atom, a
* 16-bit value, must be placed in the low-order word of lpClassName; the high-order
* word must be zero.
* @param lpWindowName
* Long pointer to a null-terminated string that specifies the window name (the window's
* title). If this parameter is NULL, all window names match.
* @return
* A handle to the window that has the specified class name and window name indicates
* success. NULL indicates failure. To get extended error information, call GetLastError.
*/
HWND FindWindow(String lpClassName, String lpWindowName);
/**
* This function retrieves the name of the class to which the specified window belongs.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param lpClassName
* Long pointer to the buffer that is to receive the class name string.
* @param nMaxCount
* Specifies the length, in characters, of the buffer pointed to by the lpClassName
* parameter. The class name string is truncated if it is longer than the buffer.
* @return
* The number of characters copied to the specified buffer indicates success. Zero
* indicates failure. To get extended error information, call GetLastError.
*/
int GetClassName(HWND hWnd, char[] lpClassName, int nMaxCount);
/**
* Retrieves information about the active window or a specified graphical user
* interface (GUI) thread.
* @param idThread
* Identifies the thread for which information is to be retrieved. To retrieve
* this value, use the GetWindowThreadProcessId function. If this parameter is NULL,
* the function returns information for the foreground thread.
* @param lpgui
* Pointer to a GUITHREADINFO structure that receives information describing the thread.
* Note that you must set GUITHREADINFO.cbSize to sizeof(GUITHREADINFO) before calling this function.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean GetGUIThreadInfo(int idThread, GUITHREADINFO lpgui);
/**
* The GetWindowInfo function retrieves information about the specified window.
* @param hWnd
* Handle to the window whose information is to be retrieved.
* @param pwi
* Pointer to a WINDOWINFO structure to receive the information. Note that you must set WINDOWINFO.cbSize
* to sizeof(WINDOWINFO) before calling this function.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero.
*/
boolean GetWindowInfo(HWND hWnd, WINDOWINFO pwi);
/**
* This function retrieves the dimensions of the bounding rectangle of the specified window. The
* dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
* @param hWnd
* Handle to the window.
* @param rect
* Long pointer to a RECT structure that receives the screen coordinates of the upper-left and lower-right
* corners of the window.
* @return
* Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
*/
boolean GetWindowRect(HWND hWnd, RECT rect);
/**
* This function copies the text of the specified window's title bar - if it has one - into a buffer. If
* the specified window is a control, the text of the control is copied.
* @param hWnd
* Handle to the window or control containing the text.
* @param lpString
* Long pointer to the buffer that will receive the text.
* @param nMaxCount
* Specifies the maximum number of characters to copy to the buffer, including the NULL character.
* If the text exceeds this limit, it is truncated.
* @return
* The length, in characters, of the copied string, not including the terminating null character,
* indicates success. Zero indicates that the window has no title bar or text, if the title bar is
* empty, or if the window or control handle is invalid. To get extended error information, call
* GetLastError. This function cannot retrieve the text of an edit control in another application.
*/
int GetWindowText(HWND hWnd, char[] lpString, int nMaxCount);
/**
* This function retrieves the length, in characters, of the specified window's title bar text -
* if the window has a title bar. If the specified window is a control, the function retrieves the
* length of the text within the control.
* @param hWnd
* Handle to the window or control.
* @return
* The length, in characters, of the text indicates success. Under certain conditions, this value
* may actually be greater than the length of the text. Zero indicates that the window has no text.
* To get extended error information, call GetLastError.
*/
int GetWindowTextLength(HWND hWnd);
/**
* The GetWindowModuleFileName function retrieves the full path and file name of the module associated
* with the specified window handle.
* @param hWnd
* Handle to the window whose module file name will be retrieved.
* @param lpszFileName
* Pointer to a buffer that receives the path and file name.
* @param cchFileNameMax
* Specifies the maximum number of TCHARs that can be copied into the lpszFileName buffer.
* @return
* The return value is the total number of TCHARs copied into the buffer.
*/
int GetWindowModuleFileName(HWND hWnd, char[] lpszFileName,
int cchFileNameMax);
/**
* This function retrieves the identifier of the thread that created the specified window and, optionally,
* the identifier of the process that created the window.
* @param hWnd
* Handle to the window.
* @param lpdwProcessId
* Pointer to a 32-bit value that receives the process identifier. If this parameter is not NULL,
* GetWindowThreadProcessId copies the identifier of the process to the 32-bit value; otherwise,
* it does not.
* @return
* The return value is the identifier of the thread that created the window.
*/
int GetWindowThreadProcessId(HWND hWnd, IntByReference lpdwProcessId);
/**
* This function enumerates all top-level windows on the screen by passing the handle to each window,
* in turn, to an application-defined callback function. EnumWindows continues until the last top-level
* window is enumerated or the callback function returns FALSE.
* @param lpEnumFunc
* Long pointer to an application-defined callback function.
* @param data
* Specifies an application-defined value to be passed to the callback function.
* @return
* Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
*/
boolean EnumWindows(WNDENUMPROC lpEnumFunc, Pointer data);
/**
* The EnumChildWindows function enumerates the child windows that belong to the specified parent window
* by passing the handle to each child window, in turn, to an application-defined callback function.
* EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE.
* @param hWnd
* Handle to the parent window whose child windows are to be enumerated. If this parameter is NULL, this
* function is equivalent to EnumWindows.
* @param lpEnumFunc
* Pointer to an application-defined callback function.
* @param data
* Specifies an application-defined value to be passed to the callback function.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
* If EnumChildProc returns zero, the return value is also zero. In this case, the callback function
* should call SetLastError to obtain a meaningful error code to be returned to the caller of
* EnumChildWindows.
*/
boolean EnumChildWindows(HWND hWnd, WNDENUMPROC lpEnumFunc, Pointer data);
/**
* The EnumThreadWindows function enumerates all nonchild windows associated with a thread by passing
* the handle to each window, in turn, to an application-defined callback function. EnumThreadWindows
* continues until the last window is enumerated or the callback function returns FALSE. To enumerate
* child windows of a particular window, use the EnumChildWindows function.
* @param dwThreadId
* Identifies the thread whose windows are to be enumerated.
* @param lpEnumFunc
* Pointer to an application-defined callback function.
* @param data
* Specifies an application-defined value to be passed to the callback function.
* @return
* If the callback function returns TRUE for all windows in the thread specified by dwThreadId, the
* return value is TRUE. If the callback function returns FALSE on any enumerated window, or if there
* are no windows found in the thread specified by dwThreadId, the return value is FALSE.
*/
boolean EnumThreadWindows(int dwThreadId, WNDENUMPROC lpEnumFunc,
Pointer data);
/**
* The FlashWindowEx function flashes the specified window. It does not change the active state of the window.
* @param pfwi
* Pointer to the FLASHWINFO structure.
* @return
* The return value specifies the window's state before the call to the FlashWindowEx function. If the window
* caption was drawn as active before the call, the return value is nonzero. Otherwise, the return value is zero.
*/
boolean FlashWindowEx(FLASHWINFO pfwi);
/**
* This function loads the specified icon resource from the executable (.exe) file associated with an
* application instance.
* @param hInstance
* Handle to an instance of the module whose executable file contains the icon to be loaded.
* This parameter must be NULL when a standard icon is being loaded.
* @param iconName
* Long pointer to a null-terminated string that contains the name of the icon resource to be loaded.
* Alternatively, this parameter can contain the resource identifier in the low-order word and zero
* in the high-order word. Use the MAKEINTRESOURCE macro to create this value.
* @return
* A handle to the newly loaded icon indicates success. NULL indicates failure. To get extended
* error information, call GetLastError.
*/
HICON LoadIcon(HINSTANCE hInstance, String iconName);
/**
* This function loads an icon, cursor, or bitmap.
* @param hinst
* Handle to an instance of the module that contains the image to be loaded.
* @param name
* Pointer to a null-terminated string that contains the name of the image resource
* in the hinst module that identifies the image to load.
* @param type
* Specifies the type of image to be loaded.
* @param xDesired
* Specifies the width, in pixels, of the icon or cursor. If this parameter is zero, the function uses
* the SM_CXICON or SM_CXCURSOR system metric value to set the width. If uType is IMAGE_BITMAP, this
* parameter must be zero.
* @param yDesired
* Specifies the height, in pixels, of the icon or cursor. If this parameter is zero, the function uses
* the SM_CYICON or SM_CYCURSOR system metric value to set the height. If uType is IMAGE_BITMAP, this
* parameter must be zero.
* @param load
* Set to zero.
* @return
* The handle of the newly loaded image indicates success. NULL indicates failure. To get extended error information, call GetLastError.
*/
HANDLE LoadImage(HINSTANCE hinst, String name, int type, int xDesired,
int yDesired, int load);
/**
* This function destroys an icon and frees any memory the icon occupied.
* @param hicon
* Handle to the icon to be destroyed. The icon must not be in use.
* @return
* Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
*/
boolean DestroyIcon(HICON hicon);
/**
* This function retrieves information about the specified window. GetWindowLong also retrieves
* the 32-bit (long) value at the specified offset into the extra window memory of a window.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be retrieved.
* @return
* The requested 32-bit value indicates success. Zero indicates failure. To get extended error
* information, call GetLastError.
*/
int GetWindowLong(HWND hWnd, int nIndex);
/**
* This function changes an attribute of the specified window. SetWindowLong also sets a 32-bit (LONG)
* value at the specified offset into the extra window memory of a window.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be set.
* @param dwNewLong
* Specifies the replacement value.
* @return
* The previous value of the specified 32-bit integer indicates success. Zero indicates failure.
* To get extended error information, call GetLastError.
*/
int SetWindowLong(HWND hWnd, int nIndex, int dwNewLong);
/**
* This function changes an attribute of the specified window. SetWindowLong also sets a
* 32-bit (LONG) value at the specified offset into the extra window memory of a window.
* Do not use this version on Windows-64.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be set.
* @param dwNewLong
* Specifies the replacement value.
* @return
* The previous value of the specified 32-bit integer indicates success. Zero indicates failure.
* To get extended error information, call GetLastError.
*/
Pointer SetWindowLong(HWND hWnd, int nIndex, Pointer dwNewLong);
/**
* The GetWindowLongPtr function retrieves information about the specified window.
* The function also retrieves the value at a specified offset into the extra window memory.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be retrieved.
* @return
* If the function succeeds, the return value is the requested value.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
* If SetWindowLong or SetWindowLongPtr has not been called previously, GetWindowLongPtr returns zero for
* values in the extra window or class memory.
*/
LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex);
/**
* The SetWindowLongPtr function changes an attribute of the specified window. The function also
* sets a value at the specified offset in the extra window memory.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be set.
* @param dwNewLongPtr
* Specifies the replacement value.
* @return
* If the function succeeds, the return value is the previous value of the specified offset.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
* If the previous value is zero and the function succeeds, the return value is zero, but the function
* does not clear the last error information. To determine success or failure, clear the last error
* information by calling SetLastError(0), then call SetWindowLongPtr. Function failure will be indicated
* by a return value of zero and a GetLastError result that is nonzero.
*/
LONG_PTR SetWindowLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLongPtr);
/**
* The SetWindowLongPtr function changes an attribute of the specified window. The function also
* sets a value at the specified offset in the extra window memory.
* @param hWnd
* Handle to the window and, indirectly, the class to which the window belongs.
* @param nIndex
* Specifies the zero-based offset to the value to be set.
* @param dwNewLongPtr
* Specifies the replacement value.
* @return
* If the function succeeds, the return value is the previous value of the specified offset.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
* If the previous value is zero and the function succeeds, the return value is zero, but the function
* does not clear the last error information. To determine success or failure, clear the last error
* information by calling SetLastError(0), then call SetWindowLongPtr. Function failure will be indicated
* by a return value of zero and a GetLastError result that is nonzero.
*/
Pointer SetWindowLongPtr(HWND hWnd, int nIndex, Pointer dwNewLongPtr);
/**
* The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.
* @param hwnd
* Handle to the layered window.
* @param crKey
* COLORREF structure that specifies the transparency color key to be used when composing the layered window.
* @param bAlpha
* Alpha value used to describe the opacity of the layered window.
* @param dwFlags
* Specifies an action to take.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean SetLayeredWindowAttributes(HWND hwnd, int crKey, byte bAlpha,
int dwFlags);
/**
* The GetLayeredWindowAttributes function retrieves the opacity and transparency color
* key of a layered window.
* @param hwnd
* Handle to the layered window. A layered window is created by specifying WS_EX_LAYERED
* when creating the window with the CreateWindowEx function or by setting WS_EX_LAYERED
* via SetWindowLong after the window has been created.
* @param pcrKey
* Pointer to a COLORREF value that receives the transparency color key to be used when
* composing the layered window. All pixels painted by the window in this color will be
* transparent. This can be NULL if the argument is not needed.
* @param pbAlpha
* Pointer to a BYTE that receives the Alpha value used to describe the opacity of the
* layered window. Similar to the SourceConstantAlpha member of the BLENDFUNCTION structure.
* When the variable referred to by pbAlpha is 0, the window is completely transparent.
* When the variable referred to by pbAlpha is 255, the window is opaque. This can be NULL
* if the argument is not needed.
* @param pdwFlags
* Pointer to a DWORD that receives a layering flag. This can be NULL if the argument is not needed.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean GetLayeredWindowAttributes(HWND hwnd, IntByReference pcrKey,
ByteByReference pbAlpha, IntByReference pdwFlags);
/**
* The UpdateLayeredWindow function updates the position, size, shape, content, and
* translucency of a layered window.
* @param hwnd
* Handle to a layered window. A layered window is created by specifying WS_EX_LAYERED
* when creating the window with the CreateWindowEx function.
* @param hdcDst
* Handle to a device context (DC) for the screen. This handle is obtained by specifying NULL
* when calling the function. It is used for palette color matching when the window contents
* are updated. If hdcDst isNULL, the default palette will be used. If hdcSrc is NULL, hdcDst must be NULL.
* @param pptDst
* Pointer to a POINT structure that specifies the new screen position of the layered window.
* If the current position is not changing, pptDst can be NULL.
* @param psize
* Pointer to a SIZE structure that specifies the new size of the layered window. If the size of the window
* is not changing, psize can be NULL. If hdcSrc is NULL, psize must be NULL.
* @param hdcSrc
* Handle to a DC for the surface that defines the layered window. This handle can be obtained by calling
* the CreateCompatibleDC function. If the shape and visual context of the window are not changing, hdcSrc
* can be NULL.
* @param pptSrc
* Pointer to a POINT structure that specifies the location of the layer in the device context.
* If hdcSrc is NULL, pptSrc should be NULL.
* @param crKey
* Pointer to a COLORREF value that specifies the color key to be used when composing the layered window.
* To generate a COLORREF, use the RGB macro.
* @param pblend
* Pointer to a BLENDFUNCTION structure that specifies the transparency value to be used when composing
* the layered window.
* @param dwFlags
* ULW_* flags.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean UpdateLayeredWindow(HWND hwnd, HDC hdcDst, POINT pptDst,
SIZE psize, HDC hdcSrc, POINT pptSrc, int crKey,
BLENDFUNCTION pblend, int dwFlags);
/**
* This function sets the window region of a window. The window region determines the area within the
* window where the system permits drawing. The system does not display any portion of a window that lies
* outside of the window region.
* @param hWnd
* Handle to the window whose window region is to be set.
* @param hRgn
* Handle to a region. The function sets the window region of the window to this region.
* If hRgn is NULL, the function sets the window region to NULL.
* @param bRedraw
* Specifies whether the system redraws the window after setting the window region.
* If bRedraw is TRUE, the system does so; otherwise, it does not.
* Typically, you set bRedraw to TRUE if the window is visible.
* @return
* Nonzero indicates success.
* Zero indicates failure.
* To get extended error information, call GetLastError.
*/
int SetWindowRgn(HWND hWnd, HRGN hRgn, boolean bRedraw);
/**
* The GetKeyboardState function copies the status of the 256 virtual keys to the specified buffer.
* @param lpKeyState
* Pointer to the 256-byte array that receives the status data for each virtual key.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean GetKeyboardState(byte[] lpKeyState);
/**
* This function determines whether a key is up or down at the time the function is called,
* and whether the key was pressed after a previous call to GetAsyncKeyState.
* @param vKey
* Specifies one of 256 possible virtual-key codes.
* @return
* If the function succeeds, the return value specifies whether the key was pressed since the last
* call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant
* bit is set, the key is down.
*/
short GetAsyncKeyState(int vKey);
/**
* The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain.
* You would install a hook procedure to monitor the system for certain types of events. These
* events are associated either with a specific thread or with all threads in the same desktop
* as the calling thread.
* @param idHook
* Specifies the type of hook procedure to be installed.
* @param lpfn
* Pointer to the hook procedure.
* @param hMod
* Handle to the DLL containing the hook procedure pointed to by the lpfn parameter.
* @param dwThreadId
* Specifies the identifier of the thread with which the hook procedure is to be associated.
* @return
* If the function succeeds, the return value is the handle to the hook procedure.
* If the function fails, the return value is NULL. To get extended error information, call GetLastError.
*/
HHOOK SetWindowsHookEx(int idHook, HOOKPROC lpfn, HINSTANCE hMod,
int dwThreadId);
/**
* The CallNextHookEx function passes the hook information to the next hook procedure
* in the current hook chain. A hook procedure can call this function either before or
* after processing the hook information.
* @param hhk
* Ignored.
* @param nCode
* Specifies the hook code passed to the current hook procedure. The next hook procedure
* uses this code to determine how to process the hook information.
* @param wParam
* Specifies the wParam value passed to the current hook procedure. The meaning of this
* parameter depends on the type of hook associated with the current hook chain.
* @param lParam
* Specifies the lParam value passed to the current hook procedure. The meaning of this
* parameter depends on the type of hook associated with the current hook chain.
* @return
* This value is returned by the next hook procedure in the chain. The current hook procedure
* must also return this value. The meaning of the return value depends on the hook type.
*/
LRESULT CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam);
/**
* The CallNextHookEx function passes the hook information to the next hook procedure
* in the current hook chain. A hook procedure can call this function either before or
* after processing the hook information.
* @param hhk
* Ignored.
* @param nCode
* Specifies the hook code passed to the current hook procedure. The next hook procedure
* uses this code to determine how to process the hook information.
* @param wParam
* Specifies the wParam value passed to the current hook procedure. The meaning of this
* parameter depends on the type of hook associated with the current hook chain.
* @param lParam
* Specifies the lParam value passed to the current hook procedure. The meaning of this
* parameter depends on the type of hook associated with the current hook chain.
* @return
* This value is returned by the next hook procedure in the chain. The current hook procedure
* must also return this value. The meaning of the return value depends on the hook type.
*/
LRESULT CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam, Pointer lParam);
/**
* The UnhookWindowsHookEx function removes a hook procedure installed in
* a hook chain by the SetWindowsHookEx function.
* @param hhk
* Handle to the hook to be removed. This parameter is a hook handle obtained
* by a previous call to SetWindowsHookEx.
* @return
* If the function succeeds, the return value is nonzero.
* If the function fails, the return value is zero. To get extended error information, call GetLastError.
*/
boolean UnhookWindowsHookEx(HHOOK hhk);
/**
* This function retrieves a message from the calling thread's message queue
* and places it in the specified structure.
* @param lpMsg
* Pointer to an MSG structure that receives message information from the thread's message queue.
* @param hWnd
* Handle to the window whose messages are to be retrieved. One value has a special meaning.
* @param wMsgFilterMin
* Specifies the integer value of the lowest message value to be retrieved.
* @param wMsgFilterMax
* Specifies the integer value of the highest message value to be retrieved.
* @return
* Nonzero indicates that the function retrieves a message other than WM_QUIT. Zero indicates
* that the function retrieves the WM_QUIT message, or that lpMsg is an invalid pointer. To
* get extended error information, call GetLastError.
*/
int GetMessage(MSG lpMsg, HWND hWnd, int wMsgFilterMin, int wMsgFilterMax);
/**
* This function checks a thread message queue for a message and places the
* message (if any) in the specified structure.
* @param lpMsg
* Pointer to an MSG structure that receives message information.
* @param hWnd
* Handle to the window whose messages are to be examined.
* @param wMsgFilterMin
* Specifies the value of the first message in the range of messages to be examined.
* @param wMsgFilterMax
* Specifies the value of the last message in the range of messages to be examined.
* @param wRemoveMsg
* Specifies how messages are handled. This parameter can be one of the following values.
* @return
* Nonzero indicates success. Zero indicates failure.
*/
boolean PeekMessage(MSG lpMsg, HWND hWnd, int wMsgFilterMin,
int wMsgFilterMax, int wRemoveMsg);
/**
* This function translates virtual-key messages into character messages. The character messages
* are posted to the calling thread's message queue, to be read the next time the thread calls the
* GetMessage or PeekMessage function.
* @param lpMsg
* Pointer to an MSG structure that contains message information retrieved from the calling thread's
* message queue by using the GetMessage or PeekMessage function.
* @return
* Nonzero indicates that the message is translated, that is, a character message is posted to the
* thread's message queue. If the message is WM_KEYDOWN or WM_SYSKEYDOWN, the return value is nonzero,
* regardless of the translation. Zero indicates that the message is not translated, that is, a
* character message is not posted to the thread's message queue.
*/
boolean TranslateMessage(MSG lpMsg);
/**
* This function dispatches a message to a window procedure. It is typically used
* to dispatch a message retrieved by the GetMessage function.
* @param lpMsg
* Pointer to an MSG structure that contains the message.
* @return
* The return value specifies the value returned by the window procedure. Although its meaning
* depends on the message being dispatched, the return value generally is ignored.
*/
LRESULT DispatchMessage(MSG lpMsg);
/**
* This function places a message in the message queue associated with the thread that
* created the specified window and then returns without waiting for the thread to process
* the message. Messages in a message queue are retrieved by calls to the GetMessage
* or PeekMessage function.
* @param hWnd
* Handle to the window whose window procedure is to receive the message.
* @param msg
* Specifies the message to be posted.
* @param wParam
* Specifies additional message-specific information.
* @param lParam
* Specifies additional message-specific information.
*/
void PostMessage(HWND hWnd, int msg, WPARAM wParam, LPARAM lParam);
/**
* This function indicates to Windows that a thread has made a request to terminate (quit).
* It is typically used in response to a WM_DESTROY message.
* @param nExitCode
* Specifies an application exit code. This value is used as the wParam parameter of
* the WM_QUIT message.
*/
void PostQuitMessage(int nExitCode);
/**
* The GetSystemMetrics function retrieves various system metrics (widths
* and heights of display elements) and system configuration settings. All
* dimensions retrieved by GetSystemMetrics are in pixels.
* @param nIndex
* System metric or configuration setting to retrieve. This
* parameter can be one of the following values. Note that all
* SM_CX* values are widths and all SM_CY* values are heights.
* Also note that all settings designed to return Boolean data
* represent TRUE as any nonzero value, and FALSE as a zero
* value.
* @return
* If the function succeeds, the return value is the requested
* system metric or configuration setting. If the function fails,
* the return value is zero. GetLastError does not provide extended
* error information.
*/
public int GetSystemMetrics(int nIndex);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy