monster commit for zoo flow, prepare migration of cw
This commit is contained in:
102
Windows/NativeMethods.vb
Normal file
102
Windows/NativeMethods.vb
Normal file
@@ -0,0 +1,102 @@
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Text
|
||||
|
||||
Public Class NativeMethods
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function AttachThreadInput(ByVal idAttach As IntPtr, ByVal idAttachTo As IntPtr, fAttach As Boolean) As Boolean
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetFocus() As IntPtr
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetForegroundWindow() As IntPtr
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetWindowText(ByVal hWnd As IntPtr, ByVal WinTitle As String, ByVal MaxLength As Integer) As Integer
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetWindowTextLength(ByVal hwnd As Int32) As Integer
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, ByRef lpdwProcessID As Integer) As Integer
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function GetClassName(ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInteger, ByVal bInheritHandle As Boolean, ByVal dwProcessId As UInteger) As IntPtr
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
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
|
||||
<DllImport("user32.dll", SetLastError:=True)>
|
||||
Public Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, <Out> ByRef lpdwProcessId As UInteger) As UInteger
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
Public Shared Function VirtualFreeEx(ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As UIntPtr, ByVal dwFreeType As UInteger) As Boolean
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
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
|
||||
<DllImport("kernel32.dll")>
|
||||
Public Shared Function UnmapViewOfFile(ByVal lpBaseAddress As IntPtr) As Boolean
|
||||
End Function
|
||||
<DllImport("kernel32.dll", SetLastError:=True)>
|
||||
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
|
||||
<DllImport("user32.dll")>
|
||||
Public Shared Function SendMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
|
||||
End Function
|
||||
<DllImport("kernel32.dll")>
|
||||
Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr,
|
||||
<Out> ByVal lpBuffer As Byte(), ByVal nSize As UIntPtr, ByVal lpNumberOfBytesRead As IntPtr) As Boolean
|
||||
End Function
|
||||
<DllImport("Kernel32.dll", EntryPoint:="RtlMoveMemory", SetLastError:=False)>
|
||||
Public Shared Sub MoveMemoryFromByte(ByVal dest As IntPtr, ByRef src As Byte, ByVal size As Integer)
|
||||
End Sub
|
||||
<DllImport("Kernel32.dll", EntryPoint:="RtlMoveMemory", SetLastError:=False)>
|
||||
Public Shared Sub MoveMemoryToByte(ByRef dest As Byte, ByVal src As IntPtr, ByVal size As Integer)
|
||||
End Sub
|
||||
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
|
||||
Public Shared Function RegisterWindowMessage(ByVal lpString As String) As Integer
|
||||
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
|
||||
End Class
|
||||
Reference in New Issue
Block a user