table top left corner

CapeSoft OddJob Advanced API Reference

table top right corner
table left side

 

table top left corner   table top right corner
table left side

 

OddJob header linked to CapeSoft home page
Version: version number
CapeSoft Software copyright

 

table right side
table bottom left corner table bottom table bottom right corner


table top left corner API Functions table top right corner
table left side
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>, <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('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
table right side
table bottom left corner table bottom table bottom right corner

Advanced API Reference

OddJob encapsulates and exposes the following API functions. In most cases direct access to the API is not neccessary, 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

 

 

 

table right side
table bottom left corner table bottom table bottom right corner



All content © Copyright CapeSoft Software