CapeSoft.Com
Clarion Accessories
OddJob
Documentation
JobAPI Documentation
CapeSoft Logo

CapeSoft OddJob Advanced API Reference
Documentation

Download Latest Version
Installed Version Latest Version

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