Imports System.Runtime.InteropServices Imports System.Text Public Class NativeMethods Public Shared Function GetDC(ByVal hwnd As IntPtr) As IntPtr End Function Public Shared Function ReleaseDC(ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As IntPtr End Function Public Shared Function GetWindowRect(ByVal hWnd As HandleRef, ByRef lpRect As RectangleAPI) As Boolean End Function Public Shared Function AttachThreadInput(ByVal idAttach As IntPtr, ByVal idAttachTo As IntPtr, fAttach As Boolean) As Boolean End Function Public Shared Function GetFocus() As IntPtr End Function Public Shared Function WindowFromPoint(ByVal p As PointAPI) As IntPtr End Function Public Shared Function GetForegroundWindow() As IntPtr End Function Public Shared Function GetWindowText(ByVal hWnd As IntPtr, ByVal WinTitle As String, ByVal MaxLength As Integer) As Integer End Function Public Shared Function GetWindowTextLength(ByVal hwnd As Int32) As Integer End Function Public Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, ByRef lpdwProcessID As Integer) As Integer End Function Public Shared Function GetClassName(ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer End Function Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInteger, ByVal bInheritHandle As Boolean, ByVal dwProcessId As UInteger) As IntPtr End Function Public Shared Function VirtualAllocEx(ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As UIntPtr, ByVal flAllocationType As UInteger, ByVal flProtect As PageProtection) As IntPtr End Function Public Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As UInteger) As UInteger End Function Public Shared Function VirtualFreeEx(ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As UIntPtr, ByVal dwFreeType As UInteger) As Boolean End Function Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean End Function Public Shared Function MapViewOfFile(ByVal hFileMappingObject As IntPtr, ByVal dwDesiredAccess As UInteger, ByVal dwFileOffsetHigh As UInteger, ByVal dwFileOffsetLow As UInteger, ByVal dwNumberOfBytesToMap As UIntPtr) As IntPtr End Function Public Shared Function UnmapViewOfFile(ByVal lpBaseAddress As IntPtr) As Boolean End Function Public Shared Function CreateFileMapping(ByVal hFile As IntPtr, ByVal lpFileMappingAttributes As IntPtr, ByVal flProtect As PageProtection, ByVal dwMaximumSizeHigh As Integer, ByVal dwMaximumSizeLow As Integer, ByVal lpName As String) As IntPtr End Function Public Shared Function SendMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As UIntPtr, ByVal lpNumberOfBytesRead As IntPtr) As Boolean End Function Public Shared Sub MoveMemoryFromByte(ByVal dest As IntPtr, ByRef src As Byte, ByVal size As Integer) End Sub Public Shared Sub MoveMemoryToByte(ByRef dest As Byte, ByVal src As IntPtr, ByVal size As Integer) End Sub Public Shared Function RegisterWindowMessage(ByVal lpString As String) As Integer End Function Public Shared Function GetCursorPos(ByRef lpPoint As PointAPI) As Boolean End Function Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000 Public Const SECTION_QUERY As Short = &H1 Public Const SECTION_MAP_WRITE As Short = &H2 Public Const SECTION_MAP_READ As Short = &H4 Public Const SECTION_MAP_EXECUTE As Short = &H8 Public Const SECTION_EXTEND_SIZE As Short = &H10 Public Const SECTION_ALL_ACCESS As Integer = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE Public Const FILE_MAP_ALL_ACCESS As Integer = SECTION_ALL_ACCESS Public Const PROCESS_VM_OPERATION As Short = &H8 Public Const PROCESS_VM_READ As Short = &H10 Public Const PROCESS_VM_WRITE As Short = &H20 Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF Public Const MEM_COMMIT As Short = &H1000 Public Const MEM_RESERVE As Short = &H2000 Public Const MEM_DECOMMIT As Short = &H4000 Public Const MEM_RELEASE As Integer = &H8000 Public Const MEM_FREE As Integer = &H10000 Public Const MEM_PRIVATE As Integer = &H20000 Public Const MEM_MAPPED As Integer = &H40000 Public Const MEM_TOP_DOWN As Integer = &H100000 Public Const INVALID_HANDLE_VALUE As Integer = -1 Public Enum PageProtection As UInteger NoAccess = &H1 [Readonly] = &H2 ReadWrite = &H4 WriteCopy = &H8 Execute = &H10 ExecuteRead = &H20 ExecuteReadWrite = &H40 ExecuteWriteCopy = &H80 Guard = &H100 NoCache = &H200 WriteCombine = &H400 End Enum Public Enum ChildWindowFromPointFlags As UInteger CWP_ALL CWP_SKIPINVISIBLE CWP_SKIPDISABLED CWP_SKIPTRANSPARENT End Enum Public Structure RectangleAPI Public Left As Integer Public Top As Integer Public Right As Integer Public Bottom As Integer Public Overrides Function ToString() As String Return String.Format("Top: {0}, Bottom: {1}, Left: {2}, Right: {3}", Top, Bottom, Left, Right) End Function End Structure Public Structure PointAPI Public X As Integer Public Y As Integer Public Sub New(ByVal X As Integer, ByVal Y As Integer) Me.X = X Me.Y = Y End Sub End Structure End Class