Page 1 of 1

API Modules

Posted: Thu Feb 12, 2026 1:20 pm
by SMaag
Finding and using PureBaisc integrated API functions for Windows, Linux, Mac is not very comfortable.
I'd like to use the IDE's intellisense to list all that functions.

like Win::Sendmessage()

One time I saw the List of integerated API's anywhere in the PB folder. But I could not find it again.
So I had the idea to try ChatGPT to generate me an WinAPI Module. Seems to be ChatCPT learnd a lot.

Can anyone tell me where to find this list for all OS!
I'd like to integegrate all PB included API's for all OS

Here the WinAPI Module.

Code: Select all

; created with the help of ChatGPT

; V0.1
; 2026/02/12

DeclareModule WIN

  ; ======================================================
  ; KERNEL32 – Core / Memory / Process / File
  ; ======================================================

  ; Retrieves calling thread's last-error code.
  ; Returns: DWORD error code
  Macro GetLastError()
    GetLastError_()
  EndMacro
  
  ; Sets calling thread's last-error code.
  ; code = DWORD error value
  Macro SetLastError(code)
    SetLastError_(code)
  EndMacro
  
  ; Retrieves module handle.
  ; name = Module name (NULL for current process)
  ; Returns: HMODULE
  Macro GetModuleHandle(name)
    GetModuleHandle_(name)
  EndMacro
  
  ; Loads a DLL into process.
  ; name = DLL filename
  ; Returns: HMODULE
  Macro LoadLibrary(name)
    LoadLibrary_(name)
  EndMacro
  
  ; Frees loaded DLL.
  ; hLib = module handle
  ; Returns: BOOL
  Macro FreeLibrary(hLib)
    FreeLibrary_(hLib)
  EndMacro
  
  ; Creates new process.
  ; app        = executable path
  ; cmd        = command line
  ; pattr      = process security attributes
  ; tattr      = thread security attributes
  ; inherit    = inherit handles (BOOL)
  ; flags      = creation flags
  ; env        = environment block
  ; dir        = working directory
  ; startup    = pointer to STARTUPINFO
  ; procinfo   = pointer to PROCESS_INFORMATION
  ; Returns: BOOL
  Macro CreateProcess(app, cmd, pattr, tattr, inherit, flags, env, dir, startup, procinfo)
    CreateProcess_(app, cmd, pattr, tattr, inherit, flags, env, dir, startup, procinfo)
  EndMacro
  
  ; Terminates current process.
  ; code = exit code
  Macro ExitProcess(code)
    ExitProcess_(code)
  EndMacro
  
  ; Returns current process ID.
  Macro GetCurrentProcessId()
    GetCurrentProcessId_()
  EndMacro
  
  ; Creates thread.
  ; attr   = security attributes
  ; stack  = stack size
  ; start  = thread function pointer
  ; param  = parameter pointer
  ; flags  = creation flags
  ; tid    = receives thread ID
  ; Returns: thread handle
  Macro CreateThread(attr, stack, start, param, flags, tid)
    CreateThread_(attr, stack, start, param, flags, tid)
  EndMacro
  
  ; Waits for object signal.
  ; handle  = object handle
  ; timeout = milliseconds
  ; Returns: wait result code
  Macro WaitForSingleObject(handle, timeout)
    WaitForSingleObject_(handle, timeout)
  EndMacro
  
  ; Closes open handle.
  ; handle = object handle
  ; Returns: BOOL
  Macro CloseHandle(handle)
    CloseHandle_(handle)
  EndMacro
  
  ; Allocates global memory.
  ; flags = GMEM flags
  ; size  = bytes to allocate
  ; Returns: HGLOBAL
  Macro GlobalAlloc(flags, size)
    GlobalAlloc_(flags, size)
  EndMacro
  
  ; Frees global memory.
  ; mem = HGLOBAL
  Macro GlobalFree(mem)
    GlobalFree_(mem)
  EndMacro
  
  ; Allocates virtual memory.
  ; addr    = desired address (or NULL)
  ; size    = size in bytes
  ; type    = MEM_COMMIT/MEM_RESERVE
  ; protect = memory protection flags
  ; Returns: pointer
  Macro VirtualAlloc(addr, size, type, protect)
    VirtualAlloc_(addr, size, type, protect)
  EndMacro
  
  ; Frees virtual memory.
  ; addr = base address
  ; size = size
  ; type = MEM_RELEASE/MEM_DECOMMIT
  Macro VirtualFree(addr, size, type)
    VirtualFree_(addr, size, type)
  EndMacro
  
  ; Copies memory block.
  ; dest = destination pointer
  ; src  = source pointer
  ; size = number of bytes
  Macro CopyMemory(dest, src, size)
    CopyMemory_(src, dest, size)
  EndMacro
  
  ; Creates or opens file.
  ; name     = filename
  ; access   = GENERIC_READ/WRITE
  ; share    = share mode
  ; sec      = security attributes
  ; creation = creation disposition
  ; flags    = attributes/flags
  ; template = template file handle
  ; Returns: file handle
  Macro CreateFile(name, access, share, sec, creation, flags, template)
    CreateFile_(name, access, share, sec, creation, flags, template)
  EndMacro
  
  ; Reads file.
  ; file   = file handle
  ; buffer = pointer to buffer
  ; toread = bytes to read
  ; read   = receives bytes read
  ; overlapped = overlapped struct
  Macro ReadFile(file, buffer, toread, Read, overlapped)
    ReadFile_(file, buffer, toread, Read, overlapped)
  EndMacro
  
  ; Writes file.
  ; file     = file handle
  ; buffer   = data pointer
  ; towrite  = bytes to write
  ; written  = receives bytes written
  ; overlapped = overlapped struct
  Macro WriteFile(file, buffer, towrite, written, overlapped)
    WriteFile_(file, buffer, towrite, written, overlapped)
  EndMacro
  
  ; Deletes file.
  ; name = filename
  Macro DeleteFile(name)
    DeleteFile_(name)
  EndMacro
  
  ; Suspends execution.
  ; ms = milliseconds
  Macro Sleep(ms)
    Sleep_(ms)
  EndMacro
  
  ; Returns system uptime in ms.
  Macro GetTickCount()
    GetTickCount_()
  EndMacro


  ; ======================================================
  ; USER32 – Windows / Messaging
  ; ======================================================

  ; Sends message (blocking).
  ; hWnd   = target window handle
  ; Msg    = message ID
  ; wParam = WPARAM
  ; lParam = LPARAM
  Macro SendMessage(hWnd, Msg, wParam, lParam)
    SendMessage_(hWnd, Msg, wParam, lParam)
  EndMacro
  
  ; Posts message (non-blocking).
  Macro PostMessage(hWnd, Msg, wParam, lParam)
    PostMessage_(hWnd, Msg, wParam, lParam)
  EndMacro
  
  ; Shows/hides window.
  ; cmd = SW_SHOW, SW_HIDE, etc.
  Macro ShowWindow(hWnd, cmd)
    ShowWindow_(hWnd, cmd)
  EndMacro
  
  ; Sets window text.
  ; txt = new caption
  Macro SetWindowText(hWnd, txt)
    SetWindowText_(hWnd, txt)
  EndMacro
  
  ; Displays message box.
  ; text    = message
  ; caption = title
  ; type    = MB_* flags
  Macro MessageBox(hWnd, text, caption, type)
    MessageBox_(hWnd, text, caption, type)
  EndMacro
  
  ; Loads system cursor.
  ; inst = instance (NULL for system)
  ; name = IDC_* identifier
  Macro LoadCursor(inst, name)
    LoadCursor_(inst, name)
  EndMacro
  
  ; Retrieves async key state.
  ; key = virtual key code
  Macro GetAsyncKeyState(key)
    GetAsyncKeyState_(key)
  EndMacro


  ; ======================================================
  ; GDI32 – Graphics
  ; ======================================================

  ; Retrieves device context.
  ; hWnd = window handle
  Macro GetDC(hWnd)
    GetDC_(hWnd)
  EndMacro
  
  ; Releases device context.
  Macro ReleaseDC(hWnd, hDC)
    ReleaseDC_(hWnd, hDC)
  EndMacro
  
  ; Performs bit-block transfer.
  ; destDC = destination DC
  ; x,y    = dest position
  ; w,h    = size
  ; srcDC  = source DC
  ; sx,sy  = source position
  ; rop    = raster operation
  Macro BitBlt(destDC, x, y, w, h, srcDC, sx, sy, rop)
    BitBlt_(destDC, x, y, w, h, srcDC, sx, sy, rop)
  EndMacro


  ; ======================================================
  ; ADVAPI32 – Registry
  ; ======================================================

  ; Opens registry key.
  ; hKey   = root key
  ; subkey = subkey string
  ; sam    = security access mask
  ; result = receives key handle
  Macro RegOpenKeyEx(hKey, subkey, opt, sam, result)
    RegOpenKeyEx_(hKey, subkey, opt, sam, result)
  EndMacro
  
  ; Sets registry value.
  ; name = value name
  ; type = REG_* type
  ; data = pointer to data
  ; size = data size
  Macro RegSetValueEx(hKey, name, res, type, Data, size)
    RegSetValueEx_(hKey, name, res, type, Data, size)
  EndMacro
  
  ; Closes registry key.
  Macro RegCloseKey(hKey)
    RegCloseKey_(hKey)
  EndMacro


  ; ======================================================
  ; SHELL32
  ; ======================================================

  ; Executes file/application.
  ; op     = operation ("open")
  ; file   = filename
  ; params = parameters
  ; dir    = working directory
  ; show   = SW_* flag
  Macro ShellExecute(hWnd, op, file, params, dir, show)
    ShellExecute_(hWnd, op, file, params, dir, show)
  EndMacro

EndDeclareModule

Module Win
  EnableExplicit  
EndModule

Re: API Modules

Posted: Thu Feb 12, 2026 1:57 pm
by Fred

Re: API Modules

Posted: Thu Feb 12, 2026 2:17 pm
by SMaag
I found the API List now.
\PureBasic\Compilers\APIFunctionListing.txt

But if anyone use the paid version of ChatGpt. Try to give the full list to ChatGPT and generate the Module. You have to tell ChatGPT to add a comment for each parameter.

Re: API Modules

Posted: Thu Feb 12, 2026 2:23 pm
by SMaag
Fred wrote: Thu Feb 12, 2026 1:57 pm All should be here: https://github.com/fantaisie-software/p ... ts/Windows
ok! all is to much! I have to reduce to the most common used!

Re: API Modules

Posted: Thu Feb 12, 2026 2:31 pm
by Fred
Well Win32 API is no small thing