PBXA64 V23 include set
======================

Use one of these:

    #INCLUDE ONCE "win_types.pbi"      ' structures only, no imports
    #INCLUDE ONCE "win_consts.pbi"     ' constants only, no imports
    #INCLUDE ONCE "kernel32.pbi"       ' Kernel32 DECLAREs
    #INCLUDE ONCE "user32.pbi"         ' User32 DECLAREs
    #INCLUDE ONCE "gdi32.pbi"          ' GDI32 DECLAREs
    #INCLUDE ONCE "windows_core.pbi"   ' types + constants + kernel32/user32/gdi32
    #INCLUDE ONCE "windows_all.pbi"    ' all modules

Important PBXA64 V23 detail:

PBXA64 currently emits imports for every DECLARE present in the parsed program, not only the calls you use. Prefer the per-DLL include files for normal programs. Use windows_all.pbi only when broad import tables are acceptable.

Scalar WinAPI type mapping used by the DECLAREs:

    HANDLE, HWND, HINSTANCE, HMODULE, HDC, HMENU, HICON, HCURSOR, HBRUSH, HFONT, HKEY, SOCKET, LPVOID, pointers, WPARAM, LPARAM, LRESULT, SIZE_T -> QUAD
    BOOL, INT, UINT -> LONG
    GUID -> PBX_GUID, INPUT -> PBX_INPUT, MEMORY_BASIC_INFORMATION.Type -> dwType (reserved PBXA64 words)
    DWORD, COLORREF -> DWORD
    WORD/ATOM -> WORD
    ANSI input string pointer -> ASCIIZ PTR
    Unicode input string pointer -> WSTRING
    Output buffers and optional pointers -> QUAD, pass VARPTR(x), STRPTR(s), or 0

The files deliberately do not define macros named HWND, HANDLE, LPARAM, etc. PBXA64 macros are case-insensitive; a macro named HWND would also rewrite a parameter named hWnd.

Examples:

    LOCAL rc AS RECT
    CALL GetClientRect(hwnd, VARPTR(rc))

    LOCAL st AS SYSTEMTIME
    CALL GetLocalTime(VARPTR(st))

    CALL MessageBoxA(0, "Hello", "PBXA64", MB_OK)

Selected structure sizes generated for PBXA64 layout:

    RECT=16, POINT=8, MSG=48, WNDCLASSEXA=80, PAINTSTRUCT=72
    STARTUPINFOA=104, PROCESS_INFORMATION=24, WIN32_FIND_DATAA=332, WIN32_FIND_DATAW=604

V25 WinHTTP add-on pass:

- Added winhttp.pbi with common WinHTTP constants, structures, HTTP status codes, query flags, option flags, proxy helpers, and WebSocket declarations.

- Added network_all.pbi for Winsock + WinHTTP.

- Updated windows_all.pbi to include winhttp.pbi.

- Added api_smoke_winhttp.pb for parser/assembly validation.



WinHTTP Unicode note:

- WinHTTP is Unicode-oriented. String pointer parameters are declared as QUAD, so pass STRPTR(wstringVar) or 0 for NULL.



===============================================================================
Includes V2 - JSON/API Technology Pack
===============================================================================
Added protocol/runtime helper include files:
  json_core.pbi, json_dom.pbi, json_writer.pbi, json_path.pbi,
  json_rpc2.pbi, mcp_protocol.pbi, json_schema.pbi, openapi3.pbi,
  rest_http.pbi, sse.pbi, jwt_oauth2.pbi, base64url.pbi,
  multipart_formdata.pbi, uri.pbi, urlencode.pbi, problem_json.pbi, ndjson.pbi

Added Windows/native API include files:
  httpapi.pbi, dnsapi.pbi, ws2tcpip.pbi, mswsock.pbi,
  secur32.pbi, schannel.pbi, ncrypt.pbi, wincred.pbi, dpapi.pbi

Convenience bundle:
  api_tech_all.pbi

Smoke tests:
  api_smoke_json.pb
  api_smoke_apitech.pb

ABI policy:
  Handles, pointers, pointer-sized integers and callback addresses use QUAD.
  BOOL/INT use LONG. DWORD/WORD/BYTE keep their native sizes.
  Complex C unions and arrays are represented as fixed helper UDT blocks or
  conservative pointer fields to keep the includes parse-safe for PBXA64 V25.
