API Functions
	Job Objects
joAssignProcessToJobObject(long hJob, long hProcess), long
joCreateJobObject(long lpJobAttributes, *cstring lpName), long
joIsProcessInJob(unsigned ProcessHandle, unsigned JobHandle, *long Result), long
joOpenJobObject(ulong dwDesiredAccess, long bInheritHandles, *cstring lpName), unsigned
joQueryInformationJobObject(long hJob, long JobObjectInfoClass, long lpJobObjectInfo, ulong cbJobObjectInfoLength, <*ulong lpReturnLength>), long
joSetInformationJobObject(long hJob, long JobObjectInfoClass, long lpJobObjectInfo, ulong bJobObjectInfoLength), long
joTerminateJobObject(long hJob, ulong uExitCode), long
	
	
Process enumeration and handling
	joCloseHandle(ulong hObject), long, proc
	joCreateToolhelp32Snapshot(ulong dwFlags, ulong th32ProcessID), ulong
	joProcess32First(ulong hSnapshot, ulong lpProcEntry32), long
	joProcess32Next(ulong hSnapshot, ulong lpProcessEntry32), long
	
	
Environment and Session Handling
joCreateEnvironmentBlock(*string lpEnvironment, unsigned hToken, long bInherit), long
joDestroyEnvironmentBlock(*string lpEnvironment), long, proc
joDuplicateTokenEx(unsigned hExistingToken, ulong dwDesiredAccess, <*joSECURITY_ATTRIBUTES lpTokenAttributes>, long ImpersonationLevel, long TokenType, *unsigned phNewToken), long
joGetEnvironment(*cstring), cstring
joWTSEnumerateSessions(unsigned hServer, ulong Reserved, ulong Version, *long ppSessionInfo, *ulong pCount), long
joWTSFreeMemory(long pMemory)
joWTSQueryUserToken(ulong SessionId, *unsigned phToken), long
	
	
Named Pipes
joCreatePipe(long hReadPipe,long hWritePipe, long lpPipeAttributes,long nSize), ulong, pascal
joSetHandleInformation(unsigned hObject, ulong dwMask, ulong dwFlags), long, proc
joSetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpMode, <*ulong lpMaxCollectionCount>, <*ulong lpCollectDataTimeout>), long, proc
joCallNamedPipe(*cstring lpNamedPipeName, *string lpInBuffer, ulong nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong lpBytesRead, ulong nTimeOut), long
joConnectNamedPipe(unsigned hNamedPipe, <*joOVERLAPPED lpOverlapped>), unsigned
joCreateFile(*cstring lpFileName, ulong dwDesiredAccess, ulong dwShareMode, *joSECURITY_ATTRIBUTES lpSecurityAttributes,ulong dwCreationDisposition, ulong dwFlagsAndAttributes, unsigned hTemplateFile   ), unsigned
joCreateNamedPipe(*cstring lpName, ulong dwOpenMode, ulong dwPipeMode, ulong nMaxInstances, ulong nOutBufferSize, ulong nInBufferSize, ulong nDefaultTimeOut, *joSECURITY_ATTRIBUTES lpSecurityAttributes), long
joDisconnectNamedPipe(unsigned hNamedPipe), long
joGetNamedPipeClientComputerName(unsigned Pipe, *cstring ClientComputerName, ulong ClientComputerNameLength ), long
joGetNamedPipeClientProcessId(unsigned Pipe, *ulong ClientProcessId), long
joGetNamedPipeClientSessionId(unsigned Pipe, *ulong ClientSessionId), long
joGetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpState, *ulong lpCurInstances, *ulong lpMaxCollectionCount, *ulong lpCollectDataTimeout, *cstring pUserName, ulong nMaxUserNameSize), long
joGetNamedPipeServerProcessId(unsigned Pipe, *ulong ServerProcessId), long
joGetNamedPipeServerSessionId(unsigned Pipe, *ulong ServerSessionId), long
joGetOverlappedResult(unsigned hFile, *joOVERLAPPED lpOverlapped, *ulong lpNumberOfBytesTransferred,long bWait), long
joPeekNamedPipe(unsigned hNamedPipe, *string lpBuffer, ulong nBufferSize, *ulong lpBytesRead, *ulong lpTotalBytesAvail, *ulong lpBytesLeftThisMessage), long
joSleepEx(ulong dwMilliseconds, long bAlertable), ulong
joTransactNamedPipe(unsigned hNamedPipe, *string lpInBuffer, ulong nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong lpBytesRead, <*joOVERLAPPED lpOverlapped>), long
joWaitNamedPipe(*cstring lpNamedPipeName, ulong nTimeOut), long
	
	
Memory Mapped Files
joCreateFileMapping(unsigned hFile, *joSECURITY_ATTRIBUTES lpAttributes, ulong flProtect,ulong dwMaximumSizeHigh,   ulong dwMaximumSizeLow, <*cstring lpName>), unsigned
joMapViewOfFile(unsigned hFileMappingObject, ulong dwDesiredAccess, ulong dwFileOffsetHigh, ulong dwFileOffsetLow, ulong dwNumberOfBytesToMap), long
	
	
Windows Synchronisation Functions
joCreateEvent(*joSECURITY_ATTRIBUTES lpEventAttributes, long bManualReset, long bInitialState, *cstring lpName), unsigned
joOpenEvent(ulong dwDesiredAccess, long bInheritHandle, *cstring lpName), unsigned
joPulseEvent(unsigned hEvent), long
joResetEvent(unsigned hEvent), long
joSetEvent(unsigned hEvent), long
joWaitForInputIdle(long hProcess, ulong dwMilliseconds), ulong
	
	
Windows Messaging Functions
joPostMessage(unsigned hWnd, ulong Msg, ulong wParam, ulong lParam), long
joRegisterWindowMessage(*cstring lpString), ulong
	
	
Process Creation and management
joCreateProcess(<*cstring lpApplicationName>, <*cstring lpCommandLine>, long lpProcessAttributes, long lpThreadAttributes, byte bInheritHandles, ulong dwCreationFlags, <*string lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long! Identical to CreateProcess, but params passed as addresses
joCreateProcess(ulong lpApplicationName, ulong lpCommandLine, ulong lpProcessAttributes, ulong lpThreadAttributes, long bInheritHandles, ulong dwCreationFlags, long lpEnvironment, ulong lpCurrentDirectory, ulong lpStartupInfo, ulong lpProcessInformation), long
joCreateProcessAsUser(unsigned hToken, <*cstring lpApplicationName>, <*cstring lpCommandLine>, <*joSECURITY_ATTRIBUTES lpProcessAttributes>,   <*joSECURITY_ATTRIBUTES lpThreadAttributes>, long bInheritHandles, ulong dwCreationFlags, <*string lpEnvironment>,   <*cstring lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long
joCreateProcessWithLogonW(*cstring lpUsername, <*cstring lpDomain>, *cstring lpPassword, ulong dwLogonFlags, <*cstring lpApplicationName>, <*cstring lpCommandLine>, ulong dwCreationFlags, <*string lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo, *jpPROCESS_INFORMATION lpProcessInfo), long
joCreateProcessWithTokenW(unsigned hToken, ulong dwLogonFlags, <*cstring lpApplicationName>, <*cstring lpCommandLine>, 
, <*string lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo, *joPROCESS_INFORMATION lpProcessInfo), long
joCreateThread(long lpThreadAttributes, ulong dwStackSize, long lpStartAddress, long lpParameter, ulong dwCreationFlags, *ulong lpThreadId), long
joExitProcess(ulong uExitCode)
joLogonUser(*cstring lpszUsername, <*cstring lpszDomain>, *cstring lpszPassword, ulong dwLogonType, ulong dwLogonProvider, *unsigned phToken), long
joShellExecute(long hwnd, *cstring lpOperation, *cstring lpFile, *cstring lpParameters, *cstring lpDirectory, long nShowCmd), long
joTerminateProcess(ulong hProcess, ulong uExitcode), long
	joWaitForSingleObject(ulong hHandle, ulong dwMilliseconds), long
	
	Process functions
joCreateRemoteThread(unsigned hProcess, *joSECURITY_ATTRIBUTES lpThreadAttributes, ulong dwStackSize,long lpStartAddress, long lpParameter, ulong dwCreationFlags, *ulong lpThreadId), unsigned
joGetCurrentProcess(), long, pascal
joGetCurrentProcessId(void), ulong
joGetModuleFileNameEx(unsigned hProcess, unsigned hModule, *cstring lpFilename, ulong nSize), ulong
joGetPriorityClass(unsigned hProcess), ulong
joOpenProcess(ulong dwDesiredAccess, long bInheritHandle, ulong dwProcessId), unsigned
joReadProcessMemory(unsigned hProcess, *string lpBaseAddress, *string lpBuffer, ulong nSize, *ulong lpNumberOfBytesRead), long
joSetPriorityClass(unsigned hProcess, ulong dwPriorityClass), long
joSetProcessWorkingSetSize(unsigned hProcess, ulong dwMinimumWorkingSetSize, ulong dwMaximumWorkingSetSize), long('SetProcessWorkingSetSize')
joWriteProcessMemory(unsigned hProcess, *string lpBaseAddress, *string lpBuffer, ulong nSize, *ulong lpNumberOfBytesWritten), long
	
	File IO
joReadFile(unsigned hFile, *string lpBuffer, ulong nNumberOfBytesToRead, *ulong lpNumberOfBytesRead, *joOVERLAPPED lpOverlapped), long, pascal
joReadFile(unsigned hFile, long lpBuffer, ulong nNumberOfBytesToRead, long lpNumberOfBytesRead, long lpOverlapped), long, pascal
joWriteFile(unsigned hFile, *string lpBuffer, ulong nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, *joOVERLAPPED lpOverlapped), long, pascal
joWriteFile(unsigned hFile, long lpBuffer, ulong nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, long lpOverlapped), long, pascal
	
	IO Completion port for asynchronous monitoring
joCreateIoCompletionPort(unsigned FileHandle, unsigned ExistingCompletionPort, ulong CompletionKey, ulong NumberOfConcurrentThreads), long
joGetOverlappedResult(unsigned hFile, *OVERLAPPED lpOverlapped, *ulong lpNumberOfBytesTransferred, long bWait), long
joGetQueuedCompletionStatus(unsigned CompletionPort, *ulong lpNumberOfBytes, *ulong lpCompletionKey, long lpOverlapped,   ulong dwMilliseconds), long
joPostQueuedCompletionStatus(unsigned CompletionPort, ulong dwNumberOfBytesTransferred, ulong dwCompletionKey,    *joOVERLAPPED lpOverlapped), long
	
	Extended File IO function
joReadFileEx(unsigned hFile, *string lpBuffer, ulong nNumberOfBytesToRead, *joOVERLAPPED lpOverlapped,long lpCompletionRoutine ), long
joWriteFileEx(unsigned hFile, *string lpBuffer, ulong nNumberOfBytesToWrite, *joOVERLAPPED lpOverlapped, long lpCompletionRoutine), long
	
	Runtime DLL loading
joFreeLibrary(ulong hLibModule), bool, proc, pascal
joGetProcAddress(ulong hModule, *cstring lpProcName), ulong, pascal
joLoadLibrary(*cstring lpLibFileName), long, pascal
joLoadLibrary(long lpLibFileName), long
	
	Error checking
joFormatMessage(ulong dwFlags, ulong lpSource, ulong dwMessageId, ulong dwLanguageId, *cstring lpBuffer, ulong nSize, ulong Arguments), ulong
joGetLastError(), ulong
joOutputDebugString(*cstring msg)
	
	
	Terminal Server Functions
joWTSCloseServer(unsigned hServer)
joWTSEnumerateProcesses(unsigned hServer, ulong Reserved, ulong Version, *joWTS_PROCESS_INFO ppProcessInfo,   *ulong pCount), long
joWTSGetActiveConsoleSessionId(), ulong
joWTSOpenServer(*cstring pServerName), unsigned
joWTSQuerySessionInformation(unsigned hServer, ulong SessionId, long WTSInfoClass, *cstring ppBuffer,   *ulong pBytesReturned), long
joWTSQueryUserConfig(*cstring pServerName, *cstring pUserName, long WTSConfigClass, *cstring ppBuffer,   *ulong pBytesReturned), long
	
	Other API Functions
joAccess(*cstring path,short mode), short
joAllocConsole(), long
joBringWindowToTop(unsigned hWnd), unsigned, pascal, name('BringWindowToTop')
joCallNextHookEx(long hhk, long nCode, long wParam, long lParam), long
joCopyFile(*cstring szFileName, *cstring szNewFileName, long bFailIfExists), long
joCreateDirectory(*cstring lpPathName, long ), long, pascal
joDeleteFile(*cstring szFileName), long, name('DeleteFileA')
joDuplicateHandle(unsigned hSourceProcessHandle, unsigned hSourceHandle, unsigned hTargetProcessHandle, *unsigned lpTargetHandle, ulong dwDesiredAccess, long bInheritHandle, ulong dwOptions), long, pascal
joEnumWindows(long lpEnumFunc, long lParam),proc,pascal,byte, name('EnumWindows')
joExitWindows(ulong dwReserves, signed uReserved), signed, pascal, name('ExitWindowsEx')
joFileTimeToLocalFileTime(*joFILETIME lpFileTime, *joFILETIME lpLocalFileTime), long, pascal
joFileTimeToSystemTime(*joFILETIME lpFileTime, *joSYSTEMTIME lpSystemTime), long, pascal
joFindClose(long hFindFile), long
joFindFirstFile(*cstring lpFileName, *joWIN32_FIND_DATA lpFindFileData), long
joFindResource(long hModule, *cstring lpName, *cstring lpType), long, pascal
joFNSplit(*cstring Path, *cstring Drv, *cstring Dir, *cstring Nme, *cstring Ext), signed, proc
joFreeConsole(), long
joFreeResource(long hglbResource), long, pascal, name('FreeResource')
joGetComputerName(*cstring pBuffer, *ulong lpnSize), long, proc, pascal
joGetDesktopWindow(), long, pascal
joGetDriveType(*cstring lpRootPathName), unsigned, pascal
joGetExitCodeProcess (unsigned hProcess, ulong lpExitCode), long, pascal, name('GetExitCodeProcess')
joGetFileTime(unsigned,*joFILETIME, *joFILETIME, *joFILETIME), long, pascal
joGetModuleFileName(unsigned, *cstring, long), long, pascal
joGetModuleHandle(long), long, pascal
joGetModuleUsage(unsigned), signed, pascal, name('GetModuleUsage')
joGetNextWindow(long, joWORD), long, pascal, name('GetNextWindow')
joGetNumTasks(), signed, pascal, name('GetNumTasks()')
joGetStdHandle(long), ulong,PROC, pascal
joGetVersion(), ulong, pascal, name('GetVersion()')
joGetVersionEx(ulong), long, pascal
joGetWindow(long, unsigned), long, pascal, name('GetWindow')
joGetWindowRect(long, *RECT), long, pascal
joGetWindowTask(long), long, pascal, name('GetWindowTask')
joGetWindowText(unsigned, long, signed), signed, pascal
joGetWindowThreadProcessId(unsigned,*ulong), ulong, pascal, name('GetWindowThreadProcessId')
joGlobalAlloc(unsigned, ulong), unsigned, pascal, name('GlobalAlloc')
joGlobalFree(unsigned), unsigned,pascal,proc, name('GlobalFree')
joGlobalLock(unsigned), long, pascal, name('GlobalLock')
joGlobalMemoryStatus(*joMEMORYSTATUS), pascal
joglobalsize(unsigned), ulong, pascal, name('GlobalSize')
joglobalunlock(unsigned), long, pascal,proc, name('GlobalUnlock')
joIncr(*long), long,pascal, proc, name('InterlockedIncrement')
joInvalidateRect(unsigned hWnd1, long lpRect, signed bErase), pascal, name('InvalidateRect')
joLoadResource(long, long), long, pascal, name('LoadResource')
joLocalFileTimeToFileTime(*joFILETIME, *joFILETIME), long, pascal
joLockResource(long), ulong, pascal, name('LockResource')
joLStrCpy(*cstring, long), long,pascal
joLtoA(long, *cstring, signed), ulong
jomemcpy(long, long, unsigned), name('_memcpy')
jomemset(long, long, unsigned), name('_memset')
joMkDir(*cstring), short
 
Advanced API Reference
OddJob encapsulates and exposes the following API functions. In most 
cases direct access to the API is not necessary, however these 
functions have been provided for those cases where it is needed, as 
well as to allow additional functionality outside of the scope of 
the classes.
Note that all functions are prefixed by "jo", which the original 
APIs do not have. So for example the API function for
joAssignProcessToJobObject is simply AssignProcessToJobObject.
Job Objects
joAssignProcessToJobObject(long hJob, long hProcess), long
joCreateJobObject(long lpJobAttributes, *cstring lpName), long
			
joIsProcessInJob(unsigned ProcessHandle, unsigned JobHandle, *long Result), long
joOpenJobObject(ulong dwDesiredAccess, long bInheritHandles, *cstring lpName), unsigned
joQueryInformationJobObject(long hJob, long JobObjectInfoClass, long lpJobObjectInfo, ulong cbJobObjectInfoLength, <*ulong 
lpReturnLength>), long
joSetInformationJobObject(long hJob, long JobObjectInfoClass, long  lpJobObjectInfo, ulong bJobObjectInfoLength), long
joTerminateJobObject(long hJob, ulong uExitCode), long
Process enumeration and handling
joCloseHandle(ulong hObject), long
joCreateToolhelp32Snapshot(ulong dwFlags, ulong th32ProcessID), ulong
joProcess32First(ulong hSnapshot, ulong lpProcEntry32), long
joProcess32Next(ulong hSnapshot, ulong lpProcessEntry32), long
Environment and Session Handling
joCreateEnvironmentBlock(*string lpEnvironment, unsigned hToken, 
			long bInherit), long
joDestroyEnvironmentBlock(*string lpEnvironment), long, proc
joGetEnvironment(*cstring), cstring
joDuplicateTokenEx(unsigned hExistingToken, ulong 
			dwDesiredAccess, <*joSECURITY_ATTRIBUTES lpTokenAttributes>, long 
			ImpersonationLevel, long TokenType, *unsigned phNewToken), long
joWTSEnumerateSessions(unsigned hServer, ulong Reserved, ulong 
			Version, *long ppSessionInfo, *ulong pCount), long
joWTSFreeMemory(long pMemory)
joWTSQueryUserToken(ulong SessionId, *unsigned phToken), long
Named Pipes
joCreatePipe(long hReadPipe,long hWritePipe, long 
			lpPipeAttributes,long nSize), ulong, pascal
joSetHandleInformation(unsigned hObject, ulong dwMask, ulong 
			dwFlags), long, proc
joSetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpMode, 
			<*ulong lpMaxCollectionCount>, <*ulong lpCollectDataTimeout>), long, 
			proc
joCallNamedPipe(*cstring lpNamedPipeName, *string lpInBuffer, ulong 
			nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong 
			lpBytesRead, ulong nTimeOut), long
	
joConnectNamedPipe(unsigned 
			hNamedPipe, <*joOVERLAPPED lpOverlapped>), unsigned
			
joCreateFile(*cstring lpFileName, ulong dwDesiredAccess, ulong 
			dwShareMode, *joSECURITY_ATTRIBUTES lpSecurityAttributes,ulong 
			dwCreationDisposition, ulong dwFlagsAndAttributes, unsigned 
			hTemplateFile ), unsigned
joCreateNamedPipe(*cstring lpName, ulong dwOpenMode, ulong 
			dwPipeMode, ulong nMaxInstances, ulong nOutBufferSize, ulong 
			nInBufferSize, ulong nDefaultTimeOut, *joSECURITY_ATTRIBUTES 
			lpSecurityAttributes), long
joDisconnectNamedPipe(unsigned hNamedPipe), long
joGetNamedPipeClientComputerName(unsigned Pipe, *cstring 
			ClientComputerName, ulong ClientComputerNameLength ), long
joGetNamedPipeClientProcessId(unsigned Pipe, *ulong 
			ClientProcessId), long
joGetNamedPipeClientSessionId(unsigned Pipe, *ulong 
			ClientSessionId), long
joGetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpState, 
			*ulong lpCurInstances, *ulong lpMaxCollectionCount, *ulong 
			lpCollectDataTimeout, *cstring pUserName, ulong nMaxUserNameSize), 
			long
joGetNamedPipeServerProcessId(unsigned Pipe, *ulong 
			ServerProcessId), long
joGetNamedPipeServerSessionId(unsigned Pipe, *ulong 
			ServerSessionId), long
joGetOverlappedResult(unsigned hFile, *joOVERLAPPED lpOverlapped, 
			*ulong lpNumberOfBytesTransferred,long bWait), long
joPeekNamedPipe(unsigned hNamedPipe, *string lpBuffer, ulong 
			nBufferSize, *ulong lpBytesRead, *ulong lpTotalBytesAvail, *ulong 
			lpBytesLeftThisMessage), long
joSleepEx(ulong dwMilliseconds, long bAlertable), ulong
joTransactNamedPipe(unsigned hNamedPipe, *string lpInBuffer, ulong 
			nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong 
			lpBytesRead, <*joOVERLAPPED lpOverlapped>), long
			
joWaitNamedPipe(*cstring lpNamedPipeName, ulong nTimeOut), long
Memory Mapped Files
joCreateFileMapping(unsigned hFile, *joSECURITY_ATTRIBUTES 
			lpAttributes, ulong flProtect,ulong dwMaximumSizeHigh, ulong 
			dwMaximumSizeLow, <*cstring lpName>), unsigned
joMapViewOfFile(unsigned hFileMappingObject, ulong 
			dwDesiredAccess, ulong dwFileOffsetHigh, ulong dwFileOffsetLow, 
			ulong dwNumberOfBytesToMap), long
Windows Synchronisation Functions
joCreateEvent(*joSECURITY_ATTRIBUTES lpEventAttributes, long 
			bManualReset, long bInitialState, *cstring lpName), unsigned
joOpenEvent(ulong dwDesiredAccess, long bInheritHandle, *cstring 
			lpName), unsigned
joPulseEvent(unsigned hEvent), long
joResetEvent(unsigned hEvent), long
joSetEvent(unsigned hEvent), long
joWaitForInputIdle(long hProcess, ulong dwMilliseconds), ulong
Windows Messaging Functions
joPostMessage(unsigned hWnd, ulong Msg, ulong wParam, ulong lParam), 
			long
		
joRegisterWindowMessage(*cstring lpString), ulong
Process Creation and management
joCreateProcess(<*cstring lpApplicationName>, <*cstring 
			lpCommandLine>, long lpProcessAttributes, long lpThreadAttributes, 
			byte bInheritHandles, ulong dwCreationFlags, <*string 
			lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO 
			lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long
joCreateProcess(ulong lpApplicationName, ulong lpCommandLine, ulong 
			lpProcessAttributes, ulong lpThreadAttributes, long bInheritHandles, 
			ulong dwCreationFlags, long lpEnvironment, ulong lpCurrentDirectory, 
			ulong lpStartupInfo, ulong lpProcessInformation), long
Identical to CreateProcess, but params passed as addresses
joCreateProcessAsUser(unsigned hToken, <*cstring lpApplicationName>, 
			<*cstring lpCommandLine>, <*joSECURITY_ATTRIBUTES 
			lpProcessAttributes>, <*joSECURITY_ATTRIBUTES lpThreadAttributes>, 
			long bInheritHandles, ulong dwCreationFlags, <*string 
			lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO 
			lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long
joCreateProcessWithLogonW(*cstring lpUsername, <*cstring lpDomain>, 
			*cstring lpPassword, ulong dwLogonFlags, <*cstring 
			lpApplicationName>, <*cstring lpCommandLine>, ulong dwCreationFlags, 
			<*string lpEnvironment>, <*cstring lpCurrentDirectory>, 
			*joSTARTUPINFO lpStartupInfo, *jpPROCESS_INFORMATION lpProcessInfo), 
			long
joCreateProcessWithTokenW(unsigned hToken, ulong dwLogonFlags, 
			<*cstring lpApplicationName>, <*cstring lpCommandLine>, <ulong 
			dwCreationFlags>, <*string lpEnvironment>, <*cstring 
			lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo, 
			*joPROCESS_INFORMATION lpProcessInfo), long
joCreateThread(long lpThreadAttributes, ulong dwStackSize, long 
			lpStartAddress, long lpParameter, ulong dwCreationFlags, *ulong 
			lpThreadId), long
joExitProcess(ulong uExitCode)
joLogonUser(*cstring lpszUsername, <*cstring lpszDomain>, *cstring 
			lpszPassword, ulong dwLogonType, ulong dwLogonProvider, *unsigned 
			phToken), long
joShellExecute(long hwnd, *cstring lpOperation, *cstring lpFile, 
			*cstring lpParameters, *cstring lpDirectory, long nShowCmd), long
joTerminateProcess(ulong hProcess, ulong uExitcode), long
joWaitForSingleObject(ulong hHandle, 
			ulong dwMilliseconds), long
Process functions
joCreateRemoteThread(unsigned hProcess, *joSECURITY_ATTRIBUTES 
			lpThreadAttributes, ulong dwStackSize,long lpStartAddress, long 
			lpParameter, ulong dwCreationFlags, *ulong lpThreadId), unsigned
			
joGetCurrentProcess(), long, pascal
joGetCurrentProcessId(void), ulong
joGetModuleFileNameEx(unsigned hProcess, unsigned hModule, *cstring 
			lpFilename, ulong nSize), ulong
			
joGetPriorityClass(unsigned hProcess), ulong
			
joOpenProcess(ulong dwDesiredAccess, long bInheritHandle, ulong 
			dwProcessId), unsigned
joReadProcessMemory(unsigned hProcess, *string lpBaseAddress, 
			*string lpBuffer, ulong nSize, *ulong lpNumberOfBytesRead), long
			
joSetPriorityClass(unsigned hProcess, ulong dwPriorityClass), long
joSetProcessWorkingSetSize(unsigned hProcess, ulong 
			dwMinimumWorkingSetSize, ulong dwMaximumWorkingSetSize), long
joWriteProcessMemory(unsigned hProcess, *string lpBaseAddress, 
			*string lpBuffer, ulong nSize, *ulong lpNumberOfBytesWritten), long
File IO
joReadFile(unsigned hFile, *string lpBuffer, ulong 
			nNumberOfBytesToRead, *ulong lpNumberOfBytesRead, *joOVERLAPPED 
			lpOverlapped), long, pascal
			
joReadFile(unsigned hFile, long lpBuffer, ulong 
			nNumberOfBytesToRead, long lpNumberOfBytesRead, long lpOverlapped), 
			long, pascal
joWriteFile(unsigned hFile, *string lpBuffer, ulong 
			nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, *joOVERLAPPED 
			lpOverlapped), long, pascal
			
joWriteFile(unsigned hFile, long lpBuffer, ulong 
			nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, long 
			lpOverlapped), long, pascal
Asynchronous IO
joCreateIoCompletionPort(unsigned FileHandle, unsigned 
			ExistingCompletionPort, ulong CompletionKey, ulong 
			NumberOfConcurrentThreads), long
			
joGetOverlappedResult(unsigned hFile, *OVERLAPPED lpOverlapped, 
			*ulong lpNumberOfBytesTransferred, long bWait), long
			
joGetQueuedCompletionStatus(unsigned CompletionPort, *ulong 
			lpNumberOfBytes, *ulong lpCompletionKey, long lpOverlapped, ulong 
			dwMilliseconds), long
joPostQueuedCompletionStatus(unsigned CompletionPort, ulong 
			dwNumberOfBytesTransferred, ulong dwCompletionKey, *joOVERLAPPED 
			lpOverlapped), long
Extended File IO function
joReadFileEx(unsigned hFile, *string lpBuffer, ulong 
			nNumberOfBytesToRead, *joOVERLAPPED lpOverlapped,long 
			lpCompletionRoutine ), long
joWriteFileEx(unsigned hFile, *string lpBuffer, ulong 
			nNumberOfBytesToWrite, *joOVERLAPPED lpOverlapped, long 
			lpCompletionRoutine), long
Runtime DLL loading
joFreeLibrary(ulong hLibModule), bool, proc, pascal
joGetProcAddress(ulong hModule, *cstring lpProcName), ulong, pascal
joLoadLibrary(*cstring lpLibFileName), long, pascal
joLoadLibrary(long lpLibFileName), long
Error checking
joFormatMessage(ulong dwFlags, ulong lpSource, ulong dwMessageId, 
			ulong dwLanguageId, *cstring lpBuffer, ulong nSize, ulong 
			Arguments), ulong
			
joGetLastError(), ulong
joOutputDebugString(*cstring msg)
Terminal Server Functions
joWTSCloseServer(unsigned hServer)
joWTSEnumerateProcesses(unsigned hServer, ulong Reserved, ulong 
			Version, *joWTS_PROCESS_INFO ppProcessInfo, *ulong pCount), long
			
joWTSGetActiveConsoleSessionId(), ulong
joWTSOpenServer(*cstring pServerName), unsigned
joWTSQuerySessionInformation(unsigned hServer, ulong SessionId, long 
			WTSInfoClass, *cstring ppBuffer, *ulong pBytesReturned), long
joWTSQueryUserConfig(*cstring pServerName, *cstring pUserName, 
			long WTSConfigClass, *cstring ppBuffer, *ulong pBytesReturned), long
Other API Functions
joAccess(*cstring path,short mode), short
joAllocConsole(), long
			
joBringWindowToTop(unsigned hWnd), unsigned, pascal, 
			name('BringWindowToTop')
joCallNextHookEx(long hhk, long nCode, long wParam, long lParam), 
			long
joCopyFile(*cstring szFileName, *cstring szNewFileName, long 
			bFailIfExists), long
joCreateDirectory(*cstring lpPathName, long ), long, pascal
joDeleteFile(*cstring szFileName), long, name('DeleteFileA')
joDuplicateHandle(unsigned hSourceProcessHandle, unsigned 
			hSourceHandle, unsigned hTargetProcessHandle, *unsigned 
			lpTargetHandle, ulong dwDesiredAccess, long bInheritHandle, ulong 
			dwOptions), long
joEnumWindows(long lpEnumFunc, long lParam),byte
joExitWindows(ulong dwReserves, signed uReserved), signed
joFileTimeToLocalFileTime(*joFILETIME lpFileTime, *joFILETIME 
			lpLocalFileTime), long
joFileTimeToSystemTime(*joFILETIME lpFileTime, *joSYSTEMTIME 
			lpSystemTime), long
joFindClose(long hFindFile), long
joFindFirstFile(*cstring lpFileName, *joWIN32_FIND_DATA 
			lpFindFileData), long
joFindResource(long hModule, *cstring lpName, *cstring lpType), 
			long
joFNSplit(*cstring Path, *cstring Drv, *cstring Dir, *cstring 
			Nme, *cstring Ext), signed
joFreeConsole(), long
joFreeResource(long hglbResource), long
joGetComputerName(*cstring pBuffer, *ulong lpnSize), long
joGetDesktopWindow(), long, pascal
joGetDriveType(*cstring lpRootPathName), unsigned, pascal
joGetExitCodeProcess 
			(unsigned hProcess, ulong lpExitCode), long
joGetFileTime(unsigned,*joFILETIME, *joFILETIME, *joFILETIME), long
joGetModuleFileName(unsigned, *cstring, long), long
joGetModuleHandle(long), long
joGetModuleUsage(unsigned), signed
joGetNextWindow(long, joWORD), long
joGetNumTasks(), signed
joGetStdHandle(long), ulong
joGetVersion(), ulong
joGetVersionEx(ulong), long
joGetWindow(long, unsigned), long
joGetWindowRect(long, *RECT), long
joGetWindowTask(long), long
joGetWindowText(unsigned, long, signed), signed
joGetWindowThreadProcessId(unsigned,*ulong), ulong
joGlobalAlloc(unsigned, ulong), unsigned
joGlobalFree(unsigned), unsigned
joGlobalLock(unsigned), long
			
joGlobalMemoryStatus(*joMEMORYSTATUS)
joglobalsize(unsigned), ulong
joglobalunlock(unsigned), long
joIncr(*long), long
joInvalidateRect(unsigned hWnd1, long lpRect, signed bErase)
joLoadResource(long, long), long
joLocalFileTimeToFileTime(*joFILETIME, *joFILETIME), long
joLockResource(long), ulong
joLStrCpy(*cstring, long), long
joLtoA(long, *cstring, signed), ulong
jomemcpy(long, long, unsigned)
jomemset(long, long, unsigned)
joMkDir(*cstring), short