* updated func.inc(unidef.inc) : memory, thread, heap

* updated defines.inc required consts (from kfuncs.h)

git-svn-id: trunk@932 -
This commit is contained in:
oro06 2005-08-23 16:23:23 +00:00
parent eaf75955e8
commit 91cb984db0
3 changed files with 196 additions and 101 deletions

View File

@ -2239,7 +2239,8 @@ Const
LMEM_LOCKCOUNT = 255;
LMEM_DISCARDABLE = 3840;
LMEM_DISCARDED = 16384;
LMEM_INVALID_HANDLE = 32768;
LMEM_INVALID_HANDLE = 32768;
LMEM_VALID_FLAGS=$0F72; //+winbase
{ LockFileEx }
LOCKFILE_FAIL_IMMEDIATELY = 1;
LOCKFILE_EXCLUSIVE_LOCK = 2;
@ -2939,7 +2940,35 @@ Const
UNIVERSAL_NAME_INFO_LEVEL = 1;
REMOTE_NAME_INFO_LEVEL = 2;
{ GetExitCodeThread }
STILL_ACTIVE = $103;
STILL_ACTIVE = $103;
{ kfuncs consts } //+kfuncs
{$ifdef ARM}
PUserKData = $FFFFC800;
{$else}
PUserKData = $00005800;
{$endif ARM}
SYSHANDLE_OFFSET = $004;
NUM_SYS_HANDLES = 32;
SYS_HANDLE_BASE = 64;
SH_WIN32 = 0;
SH_CURTHREAD = 1;
SH_CURPROC = 2;
SH_LAST_NOTIFY = 16; // Last set notified on Thread/Process Termination
SH_GDI = 16;
SH_WMGR = 17;
SH_WNET = 18; // WNet APIs for network redirector
SH_COMM = 19; // Communications not "COM"
SH_FILESYS_APIS = 20; // File system APIS
SH_SHELL = 21;
SH_DEVMGR_APIS = 22; // File system device manager
SH_TAPI = 23;
SH_PATCHER = 24;
SH_SERVICES = 26;
SH_LASTRESERVED = 26;
{ COMMPROP structure }
SP_SERIALCOMM = $1;
BAUD_075 = $1;

View File

@ -50,20 +50,72 @@
{$ifdef read_interface}
//begin common win32 & wince
function DisableThreadLibraryCalls(hLibModule:HMODULE):WINBOOL; external KernelDLL name 'DisableThreadLibraryCalls';
procedure ExitThread(dwExitCode:DWORD); external KernelDLL name 'ExitThread';
function FlushInstructionCache(hProcess:HANDLE; lpBaseAddress:LPCVOID; dwSize:DWORD):WINBOOL; external KernelDLL name 'FlushInstructionCache';
function FreeLibrary(hLibModule:HMODULE):WINBOOL; external KernelDLL name 'FreeLibrary';
procedure FreeLibraryAndExitThread(hLibModule:HMODULE; dwExitCode:DWORD); external KernelDLL name 'FreeLibraryAndExitThread';
function GetDlgCtrlID(hWnd:HWND):longint; external UserDLL name 'GetDlgCtrlID';
function GetExitCodeProcess(hProcess:HANDLE; lpExitCode:LPDWORD):WINBOOL; external KernelDLL name 'GetExitCodeProcess';
function GetExitCodeThread(hThread:HANDLE; lpExitCode:LPDWORD):WINBOOL; external KernelDLL name 'GetExitCodeThread';
function GetLastError:DWORD; external KernelDLL name 'GetLastError';
function GetProcessHeap:HANDLE; external KernelDLL name 'GetProcessHeap';
function GetThreadPriority(hThread:HANDLE):Integer; external KernelDLL name 'GetThreadPriority';
function GetThreadTimes(hThread:HANDLE; lpCreationTime:LPFILETIME; lpExitTime:LPFILETIME; lpKernelTime:LPFILETIME; lpUserTime:LPFILETIME):WINBOOL; external KernelDLL name 'GetThreadTimes';
function GetWindow(hWnd:HWND; uCmd:UINT):HWND; external UserDLL name 'GetWindow';
function GlobalDiscard(hglbMem:HGLOBAL):HGLOBAL;
procedure GlobalMemoryStatus(lpBuffer:LPMEMORYSTATUS); external KernelDLL name 'GlobalMemoryStatus';
function HeapAlloc(hHeap:HANDLE; dwFlags:DWORD; dwBytes:DWORD):LPVOID; external KernelDLL name 'HeapAlloc';
function HeapAllocTrace(hHeap:HANDLE; dwFlags:DWORD; dwBytes:DWORD; dwLineNum:DWORD; szFileName:PCHAR):LPVOID; external KernelDLL name 'HeapAllocTrace'; //+winbase
function HeapCreate(flOptions:DWORD; dwInitialSize:DWORD; dwMaximumSize:DWORD):HANDLE; external KernelDLL name 'HeapCreate';
function HeapDestroy(hHeap:HANDLE):WINBOOL; external KernelDLL name 'HeapDestroy';
function HeapFree(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPVOID):WINBOOL; external KernelDLL name 'HeapFree';
function HeapReAlloc(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPVOID; dwBytes:DWORD):LPVOID; external KernelDLL name 'HeapReAlloc';
function HeapSize(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPCVOID):DWORD; external KernelDLL name 'HeapSize';
function HeapValidate(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPCVOID):WINBOOL; external KernelDLL name 'HeapValidate';
function InterlockedIncrement(lpAddend:LPLONG):LONG; external KernelDLL name 'InterlockedIncrement';
function InterlockedDecrement(lpAddend:LPLONG):LONG; external KernelDLL name 'InterlockedDecrement';
function InterlockedCompareExchange( var Destination:LPLONG; Exchange:LONG; Comperand:LONG):LONG; external KernelDLL name 'InterlockedCompareExchange';
function InterlockedExchange(Target:LPLONG; Value:LONG):LONG; external KernelDLL name 'InterlockedExchange';
function InterlockedExchangeAdd( Addend:LPLONG; Value:LONG):LONG; external KernelDLL name 'InterlockedExchangeAdd';
function InterlockedTestExchange( Target:LPLONG; oldValue:LONG; newValue:LONG):LONG; external KernelDLL name 'InterlockedTestExchange';
function LocalAlloc(uFlags:UINT; uBytes:UINT):HLOCAL; external KernelDLL name 'LocalAlloc';
function LocalDiscard(hlocMem:HLOCAL):HLOCAL;
function LocalFree(hMem:HLOCAL):HLOCAL; external KernelDLL name 'LocalFree';
function LocalReAlloc(hMem:HLOCAL; uBytes:UINT; uFlags:UINT):HLOCAL; external KernelDLL name 'LocalReAlloc';
function LocalSize(hMem:HLOCAL):UINT; external KernelDLL name 'LocalSize';
function OpenProcess(dwDesiredAccess:DWORD; bInheritHandle:WINBOOL; dwProcessId:DWORD):HANDLE; external KernelDLL name 'OpenProcess';
procedure RaiseException(dwExceptionCode:DWORD; dwExceptionFlags:DWORD; nNumberOfArguments:DWORD; lpArguments:LPDWORD); external KernelDLL name 'RaiseException';
procedure SetLastError(dwErrCode:DWORD); external KernelDLL name 'SetLastError';
function SetThreadPriority(hThread:HANDLE; nPriority:Integer):WINBOOL; external KernelDLL name 'SetThreadPriority';
function TerminateProcess(hProcess:HANDLE; uExitCode:UINT):WINBOOL; external KernelDLL name 'TerminateProcess';
function TerminateThread(hThread:HANDLE; dwExitCode:DWORD):WINBOOL; external KernelDLL name 'TerminateThread';
function VirtualAlloc(lpAddress:LPVOID; dwSize:DWORD; flAllocationType:DWORD; flProtect:DWORD):LPVOID; external KernelDLL name 'VirtualAlloc';
function VirtualProtect(lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; lpflOldProtect:PDWORD):WINBOOL; external KernelDLL name 'VirtualProtect';
function VirtualQuery(lpAddress:LPCVOID; lpBuffer:PMEMORY_BASIC_INFORMATION; dwLength:DWORD):DWORD; external KernelDLL name 'VirtualQuery';
function VirtualFree(lpAddress:LPVOID; dwSize:DWORD; dwFreeType:DWORD):WINBOOL; external KernelDLL name 'VirtualFree';
//end common win32 & wince
{$ifdef WINCE}
//begin wince only
//calculated value
function GetCurrentProcess:HANDLE;
//calculated value
function GetCurrentProcessId:DWORD;
//calculated value
function GetCurrentThread:HANDLE;
//calculated value
function GetCurrentThreadId:DWORD;
//redirected to LocalAlloc
function GlobalAlloc(uFlags:UINT; dwBytes:DWORD):HGLOBAL;
//redirected to LocalFree
function GlobalFree(hMem:HGLOBAL):HGLOBAL;
//redirected to LocalRealloc
function GlobalReAlloc(hMem:HGLOBAL; dwBytes:DWORD; uFlags:UINT):HGLOBAL;
//redirected to LocalSize
function GlobalSize(hMem:HGLOBAL):DWORD;
//redirected to TerminateProcess
procedure ExitProcess(uExitCode:UINT);
//end wince only
{$endif WINCE}
@ -72,96 +124,64 @@ function InterlockedTestExchange( Target:LPLONG; oldValue:LONG; newValue:LONG):L
//begin win32 only
function AccessCheck(pSecurityDescriptor:PSECURITY_DESCRIPTOR; ClientToken:HANDLE; DesiredAccess:DWORD; GenericMapping:PGENERIC_MAPPING; PrivilegeSet:PPRIVILEGE_SET;PrivilegeSetLength:LPDWORD;
GrantedAccess:LPDWORD; AccessStatus:LPBOOL):WINBOOL; external 'advapi32' name 'AccessCheck';
//end win32 only
//begin win32 or wince not checked
function LockResource(hResData:HGLOBAL):LPVOID; external 'kernel32' name 'LockResource';
function CreateIoCompletionPort(FileHandle:HANDLE; ExistingCompletionPort:HANDLE; CompletionKey:DWORD; NumberOfConcurrentThreads:DWORD):HANDLE; external 'kernel32' name 'CreateIoCompletionPort';
function CreateRemoteThread(hProcess:HANDLE; lpThreadAttributes:LPSECURITY_ATTRIBUTES; dwStackSize:DWORD; lpStartAddress:LPTHREAD_START_ROUTINE; lpParameter:LPVOID;
dwCreationFlags:DWORD; lpThreadId:LPDWORD):HANDLE; external 'kernel32' name 'CreateRemoteThread';
procedure ExitProcess(uExitCode:UINT);external 'kernel32' name 'ExitProcess';
procedure FatalExit(ExitCode:longint); external 'kernel32' name 'FatalExit';
function FreeResource(hResData:HGLOBAL):WINBOOL; external 'kernel32' name 'FreeResource';
function GetCurrentProcess:HANDLE; external 'kernel32' name 'GetCurrentProcess';
function GetCurrentProcessId:DWORD; external 'kernel32' name 'GetCurrentProcessId';
function GetCurrentThread:HANDLE; external 'kernel32' name 'GetCurrentThread';
function GetCurrentThreadId:DWORD; external 'kernel32' name 'GetCurrentThreadId';
function GetProcAddress(hModule:HINST; lpProcName:LPCSTR):FARPROC; external 'kernel32' name 'GetProcAddress';
function GetProcessAffinityMask(hProcess:HANDLE; lpProcessAffinityMask:LPDWORD; lpSystemAffinityMask:LPDWORD):WINBOOL; external 'kernel32' name 'GetProcessAffinityMask';
function GetProcessHeaps(NumberOfHeaps:DWORD; ProcessHeaps:PHANDLE):DWORD; external 'kernel32' name 'GetProcessHeaps';
function GetProcessTimes(hProcess:HANDLE; lpCreationTime:LPFILETIME; lpExitTime:LPFILETIME; lpKernelTime:LPFILETIME; lpUserTime:LPFILETIME):WINBOOL; external 'kernel32' name 'GetProcessTimes';
function GetProcessWorkingSetSize(hProcess:HANDLE; lpMinimumWorkingSetSize:LPDWORD; lpMaximumWorkingSetSize:LPDWORD):WINBOOL; external 'kernel32' name 'GetProcessWorkingSetSize';
{$ifdef LPLDT_ENTRY}
function GetThreadSelectorEntry(hThread:HANDLE; dwSelector:DWORD; lpSelectorEntry:LPLDT_ENTRY):WINBOOL; external 'kernel32' name 'GetThreadSelectorEntry';
{$endif LPLDT_ENTRY}
function GetVersion:DWORD; external 'kernel32' name 'GetVersion';
function GlobalAlloc(uFlags:UINT; dwBytes:DWORD):HGLOBAL; external 'kernel32' name 'GlobalAlloc';
function GlobalCompact(dwMinFree:DWORD):UINT; external 'kernel32' name 'GlobalCompact';
procedure GlobalFix(hMem:HGLOBAL); external 'kernel32' name 'GlobalFix';
function GlobalFlags(hMem:HGLOBAL):UINT; external 'kernel32' name 'GlobalFlags';
function GlobalFree(hMem:HGLOBAL):HGLOBAL; external 'kernel32' name 'GlobalFree';
function GlobalHandle(pMem:LPCVOID):HGLOBAL; external 'kernel32' name 'GlobalHandle';
function GlobalLock(hMem:HGLOBAL):LPVOID; external 'kernel32' name 'GlobalLock';
function GlobalReAlloc(hMem:HGLOBAL; dwBytes:DWORD; uFlags:UINT):HGLOBAL; external 'kernel32' name 'GlobalReAlloc';
function GlobalSize(hMem:HGLOBAL):DWORD; external 'kernel32' name 'GlobalSize';
procedure GlobalUnfix(hMem:HGLOBAL); external 'kernel32' name 'GlobalUnfix';
function GlobalUnlock(hMem:HGLOBAL):WINBOOL; external 'kernel32' name 'GlobalUnlock';
function GlobalUnWire(hMem:HGLOBAL):WINBOOL; external 'kernel32' name 'GlobalUnWire';
function GlobalWire(hMem:HGLOBAL):LPVOID; external 'kernel32' name 'GlobalWire';
function HeapCompact(hHeap:HANDLE; dwFlags:DWORD):UINT; external 'kernel32' name 'HeapCompact';
function HeapLock(hHeap:HANDLE):WINBOOL; external 'kernel32' name 'HeapLock';
function HeapUnlock(hHeap:HANDLE):WINBOOL; external 'kernel32' name 'HeapUnlock';
function HeapWalk(hHeap:HANDLE; lpEntry:LPPROCESS_HEAP_ENTRY):WINBOOL; external 'kernel32' name 'HeapWalk';
function LocalCompact(uMinFree:UINT):UINT; external 'kernel32' name 'LocalCompact';
function LocalFlags(hMem:HLOCAL):UINT; external 'kernel32' name 'LocalFlags';
function LocalHandle(pMem:LPCVOID):HLOCAL; external 'kernel32' name 'LocalHandle';
function LocalLock(hMem:HLOCAL):LPVOID; external 'kernel32' name 'LocalLock';
function LocalShrink(hMem:HLOCAL; cbNewSize:UINT):UINT; external 'kernel32' name 'LocalShrink';
function LocalUnlock(hMem:HLOCAL):WINBOOL; external 'kernel32' name 'LocalUnlock';
function LockResource(hResData:HGLOBAL):LPVOID; external 'kernel32' name 'LockResource';
function SetErrorMode(uMode:UINT):UINT; external 'kernel32' name 'SetErrorMode';
function SetProcessWorkingSetSize(hProcess:HANDLE; dwMinimumWorkingSetSize:DWORD; dwMaximumWorkingSetSize:DWORD):WINBOOL; external 'kernel32' name 'SetProcessWorkingSetSize';
function SetThreadAffinityMask(hThread:HANDLE; dwThreadAffinityMask:DWORD):DWORD; external 'kernel32' name 'SetThreadAffinityMask';
function UnhandledExceptionFilter(ExceptionInfo:lpemptyrecord):LONG; external 'kernel32' name 'UnhandledExceptionFilter';
function VirtualProtectEx(hProcess:HANDLE; lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; lpflOldProtect:PDWORD):WINBOOL; external 'kernel32' name 'VirtualProtectEx';
function VirtualQueryEx(hProcess:HANDLE; lpAddress:LPCVOID; lpBuffer:PMEMORY_BASIC_INFORMATION; dwLength:DWORD):DWORD; external 'kernel32' name 'VirtualQueryEx';
{$ifdef Unknown_functions}
{ WARNING: function not found !!}
function WinMain(hInstance:HINST; hPrevInstance:HINST; lpCmdLine:LPSTR; nShowCmd:longint):longint; external External_library name 'WinMain';
{$endif Unknown_functions}
function DisableThreadLibraryCalls(hLibModule:HMODULE):WINBOOL; external 'kernel32' name 'DisableThreadLibraryCalls';
function GetProcAddress(hModule:HINST; lpProcName:LPCSTR):FARPROC; external 'kernel32' name 'GetProcAddress';
function GetVersion:DWORD; external 'kernel32' name 'GetVersion';
function GlobalAlloc(uFlags:UINT; dwBytes:DWORD):HGLOBAL; external 'kernel32' name 'GlobalAlloc';
function GlobalDiscard(hglbMem:HGLOBAL):HGLOBAL;
function GlobalReAlloc(hMem:HGLOBAL; dwBytes:DWORD; uFlags:UINT):HGLOBAL; external 'kernel32' name 'GlobalReAlloc';
function GlobalSize(hMem:HGLOBAL):DWORD; external 'kernel32' name 'GlobalSize';
function GlobalFlags(hMem:HGLOBAL):UINT; external 'kernel32' name 'GlobalFlags';
function GlobalLock(hMem:HGLOBAL):LPVOID; external 'kernel32' name 'GlobalLock';
function GlobalHandle(pMem:LPCVOID):HGLOBAL; external 'kernel32' name 'GlobalHandle';
function GlobalUnlock(hMem:HGLOBAL):WINBOOL; external 'kernel32' name 'GlobalUnlock';
function GlobalFree(hMem:HGLOBAL):HGLOBAL; external 'kernel32' name 'GlobalFree';
function GlobalCompact(dwMinFree:DWORD):UINT; external 'kernel32' name 'GlobalCompact';
procedure GlobalFix(hMem:HGLOBAL); external 'kernel32' name 'GlobalFix';
procedure GlobalUnfix(hMem:HGLOBAL); external 'kernel32' name 'GlobalUnfix';
function GlobalWire(hMem:HGLOBAL):LPVOID; external 'kernel32' name 'GlobalWire';
function GlobalUnWire(hMem:HGLOBAL):WINBOOL; external 'kernel32' name 'GlobalUnWire';
procedure GlobalMemoryStatus(lpBuffer:LPMEMORYSTATUS); external 'kernel32' name 'GlobalMemoryStatus';
function LocalAlloc(uFlags:UINT; uBytes:UINT):HLOCAL; external 'kernel32' name 'LocalAlloc';
function LocalDiscard(hlocMem:HLOCAL):HLOCAL;
function LocalReAlloc(hMem:HLOCAL; uBytes:UINT; uFlags:UINT):HLOCAL; external 'kernel32' name 'LocalReAlloc';
function LocalLock(hMem:HLOCAL):LPVOID; external 'kernel32' name 'LocalLock';
function LocalHandle(pMem:LPCVOID):HLOCAL; external 'kernel32' name 'LocalHandle';
function LocalUnlock(hMem:HLOCAL):WINBOOL; external 'kernel32' name 'LocalUnlock';
function LocalSize(hMem:HLOCAL):UINT; external 'kernel32' name 'LocalSize';
function LocalFlags(hMem:HLOCAL):UINT; external 'kernel32' name 'LocalFlags';
function LocalFree(hMem:HLOCAL):HLOCAL; external 'kernel32' name 'LocalFree';
function LocalShrink(hMem:HLOCAL; cbNewSize:UINT):UINT; external 'kernel32' name 'LocalShrink';
function LocalCompact(uMinFree:UINT):UINT; external 'kernel32' name 'LocalCompact';
function FlushInstructionCache(hProcess:HANDLE; lpBaseAddress:LPCVOID; dwSize:DWORD):WINBOOL; external 'kernel32' name 'FlushInstructionCache';
function VirtualAlloc(lpAddress:LPVOID; dwSize:DWORD; flAllocationType:DWORD; flProtect:DWORD):LPVOID; external 'kernel32' name 'VirtualAlloc';
function VirtualFree(lpAddress:LPVOID; dwSize:DWORD; dwFreeType:DWORD):WINBOOL; external 'kernel32' name 'VirtualFree';
function VirtualProtect(lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; lpflOldProtect:PDWORD):WINBOOL; external 'kernel32' name 'VirtualProtect';
function VirtualQuery(lpAddress:LPCVOID; lpBuffer:PMEMORY_BASIC_INFORMATION; dwLength:DWORD):DWORD; external 'kernel32' name 'VirtualQuery';
function VirtualProtectEx(hProcess:HANDLE; lpAddress:LPVOID; dwSize:DWORD; flNewProtect:DWORD; lpflOldProtect:PDWORD):WINBOOL; external 'kernel32' name 'VirtualProtectEx';
function VirtualQueryEx(hProcess:HANDLE; lpAddress:LPCVOID; lpBuffer:PMEMORY_BASIC_INFORMATION; dwLength:DWORD):DWORD; external 'kernel32' name 'VirtualQueryEx';
function HeapCreate(flOptions:DWORD; dwInitialSize:DWORD; dwMaximumSize:DWORD):HANDLE; external 'kernel32' name 'HeapCreate';
function HeapDestroy(hHeap:HANDLE):WINBOOL; external 'kernel32' name 'HeapDestroy';
function HeapAlloc(hHeap:HANDLE; dwFlags:DWORD; dwBytes:DWORD):LPVOID; external 'kernel32' name 'HeapAlloc';
function HeapReAlloc(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPVOID; dwBytes:DWORD):LPVOID; external 'kernel32' name 'HeapReAlloc';
function HeapFree(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPVOID):WINBOOL; external 'kernel32' name 'HeapFree';
function HeapSize(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPCVOID):DWORD; external 'kernel32' name 'HeapSize';
function HeapValidate(hHeap:HANDLE; dwFlags:DWORD; lpMem:LPCVOID):WINBOOL; external 'kernel32' name 'HeapValidate';
function HeapCompact(hHeap:HANDLE; dwFlags:DWORD):UINT; external 'kernel32' name 'HeapCompact';
function GetProcessHeap:HANDLE; external 'kernel32' name 'GetProcessHeap';
function GetProcessHeaps(NumberOfHeaps:DWORD; ProcessHeaps:PHANDLE):DWORD; external 'kernel32' name 'GetProcessHeaps';
function HeapLock(hHeap:HANDLE):WINBOOL; external 'kernel32' name 'HeapLock';
function HeapUnlock(hHeap:HANDLE):WINBOOL; external 'kernel32' name 'HeapUnlock';
function HeapWalk(hHeap:HANDLE; lpEntry:LPPROCESS_HEAP_ENTRY):WINBOOL; external 'kernel32' name 'HeapWalk';
function GetProcessAffinityMask(hProcess:HANDLE; lpProcessAffinityMask:LPDWORD; lpSystemAffinityMask:LPDWORD):WINBOOL; external 'kernel32' name 'GetProcessAffinityMask';
function GetProcessTimes(hProcess:HANDLE; lpCreationTime:LPFILETIME; lpExitTime:LPFILETIME; lpKernelTime:LPFILETIME; lpUserTime:LPFILETIME):WINBOOL; external 'kernel32' name 'GetProcessTimes';
function GetProcessWorkingSetSize(hProcess:HANDLE; lpMinimumWorkingSetSize:LPDWORD; lpMaximumWorkingSetSize:LPDWORD):WINBOOL; external 'kernel32' name 'GetProcessWorkingSetSize';
function SetProcessWorkingSetSize(hProcess:HANDLE; dwMinimumWorkingSetSize:DWORD; dwMaximumWorkingSetSize:DWORD):WINBOOL; external 'kernel32' name 'SetProcessWorkingSetSize';
function OpenProcess(dwDesiredAccess:DWORD; bInheritHandle:WINBOOL; dwProcessId:DWORD):HANDLE; external 'kernel32' name 'OpenProcess';
function GetCurrentProcess:HANDLE; external 'kernel32' name 'GetCurrentProcess';
function GetCurrentProcessId:DWORD; external 'kernel32' name 'GetCurrentProcessId';
procedure ExitProcess(uExitCode:UINT);external 'kernel32' name 'ExitProcess';
function TerminateProcess(hProcess:HANDLE; uExitCode:UINT):WINBOOL; external 'kernel32' name 'TerminateProcess';
function GetExitCodeProcess(hProcess:HANDLE; lpExitCode:LPDWORD):WINBOOL; external 'kernel32' name 'GetExitCodeProcess';
procedure FatalExit(ExitCode:longint); external 'kernel32' name 'FatalExit';
procedure RaiseException(dwExceptionCode:DWORD; dwExceptionFlags:DWORD; nNumberOfArguments:DWORD; lpArguments:LPDWORD); external 'kernel32' name 'RaiseException';
function UnhandledExceptionFilter(ExceptionInfo:lpemptyrecord):LONG; external 'kernel32' name 'UnhandledExceptionFilter';
function CreateRemoteThread(hProcess:HANDLE; lpThreadAttributes:LPSECURITY_ATTRIBUTES; dwStackSize:DWORD; lpStartAddress:LPTHREAD_START_ROUTINE; lpParameter:LPVOID;
dwCreationFlags:DWORD; lpThreadId:LPDWORD):HANDLE; external 'kernel32' name 'CreateRemoteThread';
function GetCurrentThread:HANDLE; external 'kernel32' name 'GetCurrentThread';
function GetCurrentThreadId:DWORD; external 'kernel32' name 'GetCurrentThreadId';
function SetThreadAffinityMask(hThread:HANDLE; dwThreadAffinityMask:DWORD):DWORD; external 'kernel32' name 'SetThreadAffinityMask';
function SetThreadPriority(hThread:HANDLE; nPriority:longint):WINBOOL; external 'kernel32' name 'SetThreadPriority';
function GetThreadPriority(hThread:HANDLE):longint; external 'kernel32' name 'GetThreadPriority';
function GetThreadTimes(hThread:HANDLE; lpCreationTime:LPFILETIME; lpExitTime:LPFILETIME; lpKernelTime:LPFILETIME; lpUserTime:LPFILETIME):WINBOOL; external 'kernel32' name 'GetThreadTimes';
procedure ExitThread(dwExitCode:DWORD); external 'kernel32' name 'ExitThread';
function TerminateThread(hThread:HANDLE; dwExitCode:DWORD):WINBOOL; external 'kernel32' name 'TerminateThread';
function GetExitCodeThread(hThread:HANDLE; lpExitCode:LPDWORD):WINBOOL; external 'kernel32' name 'GetExitCodeThread';
{$ifdef LPLDT_ENTRY}
function GetThreadSelectorEntry(hThread:HANDLE; dwSelector:DWORD; lpSelectorEntry:LPLDT_ENTRY):WINBOOL; external 'kernel32' name 'GetThreadSelectorEntry';
{$endif LPLDT_ENTRY}
function GetLastError:DWORD; external 'kernel32' name 'GetLastError';
procedure SetLastError(dwErrCode:DWORD); external 'kernel32' name 'SetLastError';
function CreateIoCompletionPort(FileHandle:HANDLE; ExistingCompletionPort:HANDLE; CompletionKey:DWORD; NumberOfConcurrentThreads:DWORD):HANDLE; external 'kernel32' name 'CreateIoCompletionPort';
function SetErrorMode(uMode:UINT):UINT; external 'kernel32' name 'SetErrorMode';
//end win32 only
//begin win32 or wince not checked
function ReadProcessMemory(hProcess:HANDLE; lpBaseAddress:LPCVOID; lpBuffer:LPVOID; nSize:DWORD; lpNumberOfBytesRead:LPDWORD):WINBOOL; external 'kernel32' name 'ReadProcessMemory';
function WriteProcessMemory(hProcess:HANDLE; lpBaseAddress:LPVOID; lpBuffer:LPVOID; nSize:DWORD; lpNumberOfBytesWritten:LPDWORD):WINBOOL; external 'kernel32' name 'WriteProcessMemory';
function GetThreadContext(hThread:HANDLE; lpContext:LPCONTEXT):WINBOOL; external 'kernel32' name 'GetThreadContext';
@ -1286,17 +1306,73 @@ function SetLayeredWindowAttributes(HWND:hwnd;crKey :COLORREF;bAlpha : byte;dwFl
//begin common win32 & wince
function GlobalDiscard(hglbMem:HGLOBAL):HGLOBAL;
begin
GlobalDiscard:=GlobalReAlloc(hglbMem,0,GMEM_MOVEABLE);
end;
function LocalDiscard(hlocMem:HLOCAL):HLOCAL;
begin
LocalDiscard := LocalReAlloc(hlocMem,0,LMEM_MOVEABLE);
end;
//end common win32 & wince
{$ifdef WINCE}
//begin wince only
function GetCurrentThread:HANDLE;
begin
GetCurrentThread:=SH_CURTHREAD+SYS_HANDLE_BASE;
end;
function GetCurrentThreadId:DWORD;
begin
GetCurrentThreadId:=Phandle(PUserKData+SYSHANDLE_OFFSET+SH_CURTHREAD*SizeOf(THandle))^;
end;
function GetCurrentProcess:HANDLE;
begin
GetCurrentProcess:=SH_CURPROC+SYS_HANDLE_BASE;
end;
function GetCurrentProcessId:DWORD;
begin
GetCurrentProcessId:=Phandle(PUserKData+SYSHANDLE_OFFSET+SH_CURPROC*SizeOf(THandle))^;
end;
function GlobalAlloc(uFlags:UINT; dwBytes:DWORD):HGLOBAL;
begin
GlobalAlloc:=LocalAlloc(uFlags,dwBytes);
end;
function GlobalFree(hMem:HGLOBAL):HGLOBAL;
begin
GlobalFree:=LocalFree(hMem);
end;
function GlobalReAlloc(hMem:HGLOBAL; dwBytes:DWORD; uFlags:UINT):HGLOBAL;
begin
GlobalReAlloc:=LocalReAlloc(hMem, dwBytes, LMEM_MOVEABLE);
end;
function GlobalSize(hMem:HGLOBAL):DWORD;
begin
GlobalSize:=LocalSize(hMem);
end;
procedure ExitProcess(uExitCode:UINT);
begin
TerminateProcess (GetCurrentProcess, uExitCode);
end;
//end wince only
{$endif WINCE}
{$ifdef WIN32}
//begin win32 only
//end win32 only
//begin win32 or wince not checked
@ -1356,18 +1432,6 @@ end;
{ End of bug fixes for bug report 1807. PM }
function GlobalDiscard(hglbMem:HGLOBAL):HGLOBAL;
begin
GlobalDiscard:=GlobalReAlloc(hglbMem,0,GMEM_MOVEABLE);
end;
function LocalDiscard(hlocMem:HLOCAL):HLOCAL;
begin
LocalDiscard := LocalReAlloc(hlocMem,0,LMEM_MOVEABLE);
end;
procedure MoveMemory(Destination:PVOID; Source:pointer; Length:DWORD);
begin
Move(Source^,Destination^,Length);

View File

@ -193,7 +193,6 @@ function SendDlgItemMessage(hDlg:HWND; nIDDlgItem:Integer; Msg:UINT; wParam:WPAR
function SendMessage(hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT; external UserDLL name 'SendMessageW';
function SendNotifyMessage(hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):WINBOOL; external UserDLL name 'SendNotifyMessageW';
function SetClassLong(hWnd:HWND; nIndex:Integer; dwNewLong:LONG):DWORD; external UserDLL name 'SetClassLongW';
function SetDlgItemText(hDlg:HWND; nIDDlgItem:Integer; lpString:LPCWSTR):WINBOOL; external UserDLL name 'SetDlgItemTextW';
function SetFileAttributes(lpFileName:LPCWSTR; dwFileAttributes:DWORD):WINBOOL; external KernelDLL name 'SetFileAttributesW';
function SetLocaleInfo(Locale:LCID; LCType:LCTYPE; lpLCData:LPCWSTR):WINBOOL; external KernelDLL name 'SetLocaleInfoW';
@ -201,7 +200,6 @@ function SetMenuItemInfo(_para1:HMENU; _para2:UINT; _para3:WINBOOL; _para4:LPCME
function SetWindowsHookEx(idHook:longint; lpfn:HOOKPROC; hmod:HINST; dwThreadId:DWORD):HHOOK; external UserDLL name 'SetWindowsHookExW';
function SetWindowText(hWnd:HWND; lpString:LPCWSTR):WINBOOL; external UserDLL name 'SetWindowTextW';
function SetWindowLong(hWnd:HWND; nIndex:Integer; dwNewLong:LONG):LONG; external UserDLL name 'SetWindowLongW'; //~winuser nIndex is int
function ShellExecuteEx(lpExecInfo:LPSHELLEXECUTEINFO):WINBOOL; external ShellDLLCore name 'ShellExecuteEx'; //+shellapi
function SystemParametersInfo(uiAction:UINT; uiParam:UINT; pvParam:PVOID; fWinIni:UINT):WINBOOL; external UserDLL name 'SystemParametersInfoW';
function StartDoc(_para1:HDC; _para2:PDOCINFOW):Integer; external GdiDLL name 'StartDocW';
@ -235,6 +233,8 @@ function EnumPropsEx(hWnd:HWND; lpEnumFunc:PROPENUMPROCEX; lParam:LPARAM):Intege
//'...W' not exported but '...' is
function GetCharABCWidths(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABC):WINBOOL; external GdiDLL name 'GetCharABCWidths';
function GetCharWidth32(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external GdiDLL name 'GetCharWidth32';
//wince has W
function GetProcAddress(hModule:HINST; lpProcName:LPCWSTR):FARPROC; external KernelDLL name 'GetProcAddressW';
//'GetPropW', not exported but 'GetProp' with widechar header are
function GetProp(hWnd:HWND; lpString:LPCWSTR):HANDLE; external UserDLL name 'GetProp';
//!header specific to CE, not in comctl32(win32)/commctl(wince) but in coredll
@ -377,6 +377,8 @@ function GetOutlineTextMetrics(_para1:HDC; _para2:UINT; _para3:LPOUTLINETEXTMETR
function GetProfileInt(lpAppName:LPCWSTR; lpKeyName:LPCWSTR; nDefault:WINT):UINT; external 'kernel32' name 'GetProfileIntW';
function GetProfileString(lpAppName:LPCWSTR; lpKeyName:LPCWSTR; lpDefault:LPCWSTR; lpReturnedString:LPWSTR; nSize:DWORD):DWORD; external 'kernel32' name 'GetProfileStringW';
function GetProfileSection(lpAppName:LPCWSTR; lpReturnedString:LPWSTR; nSize:DWORD):DWORD; external 'kernel32' name 'GetProfileSectionW';
//was in func.inc, wince has W
function GetProcAddress(hModule:HINST; lpProcName:LPCSTR):FARPROC; external 'kernel32' name 'GetProcAddress';
function GetProp(hWnd:HWND; lpString:LPCWSTR):HANDLE; external 'user32' name 'GetPropW';
function GetPrivateProfileInt(lpAppName:LPCWSTR; lpKeyName:LPCWSTR; nDefault:WINT; lpFileName:LPCWSTR):UINT; external 'kernel32' name 'GetPrivateProfileIntW';
function GetPrivateProfileString(lpAppName:LPCWSTR; lpKeyName:LPCWSTR; lpDefault:LPCWSTR; lpReturnedString:LPWSTR; nSize:DWORD;lpFileName:LPCWSTR):DWORD; external 'kernel32' name 'GetPrivateProfileStringW';