{"id":26210012,"url":"https://github.com/crossbowerbt/newlispwin32api","last_synced_at":"2026-04-26T08:36:57.192Z","repository":{"id":281711396,"uuid":"946171108","full_name":"crossbowerbt/NewlispWin32Api","owner":"crossbowerbt","description":"Direct use of Win32 API from Newlisp (to create native GUIs and more...)","archived":false,"fork":false,"pushed_at":"2025-03-10T18:37:13.000Z","size":648,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T19:28:53.561Z","etag":null,"topics":["gdi32","newlisp","newlisp-lang","newlisp-language","newlisp-library","user32","user32dll","win32","win32api","windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crossbowerbt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-10T18:11:10.000Z","updated_at":"2025-03-10T18:37:17.000Z","dependencies_parsed_at":"2025-03-10T19:28:58.966Z","dependency_job_id":"d6797bed-0665-4593-b735-05023e9b0308","html_url":"https://github.com/crossbowerbt/NewlispWin32Api","commit_stats":null,"previous_names":["crossbowerbt/newlispwin32api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crossbowerbt/NewlispWin32Api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossbowerbt%2FNewlispWin32Api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossbowerbt%2FNewlispWin32Api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossbowerbt%2FNewlispWin32Api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossbowerbt%2FNewlispWin32Api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crossbowerbt","download_url":"https://codeload.github.com/crossbowerbt/NewlispWin32Api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossbowerbt%2FNewlispWin32Api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259582986,"owners_count":22880125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gdi32","newlisp","newlisp-lang","newlisp-language","newlisp-library","user32","user32dll","win32","win32api","windows"],"created_at":"2025-03-12T07:18:47.537Z","updated_at":"2026-04-26T08:36:57.150Z","avatar_url":"https://github.com/crossbowerbt.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NewlispWin32Api\nDirect use of **Win32 API** from **newlisp** (to create native GUIs and more...)\n\n---\n\nThis project imports into the newlisp context `WIN32` the mappings for the Win32 native APIs, i.e. the functions and enumerations contained in the **gdi32.dll**, **user32.dll** and other DLLs of windows. You can find the bindings in the files under are cointained under [Win32HeadersNewlisp](Win32HeadersNewlisp).\n\nTo use the library is very simple, here is the example cointained in [MessageBox.nl](MessageBox.nl):\n```newlisp\n#!/bin/newlisp\n\n(change-dir \"Win32HeadersNewlisp\")\n(load \"builtin.nl\")\n(load \"main.nl\")\n\n(context 'WIN32)\n\n(setq result\n      (MessageBoxA 0\n\t\t   \"This is the text of the message box\\non multiple lines.\"\n\t\t   \"Title of Message Box\"\n\t\t   (| MB_YESNOCANCEL MB_ICONQUESTION)))\n\n(print \"Result: \" result)\n\n(exit)\n```\n\nYou just need to import the main library files, change context and call the native windows APIs.\n\n## Examples\n\nI've included some example inspired from the book **Programming Windows** by **Charles Petzold** (1998) in the main project directory.\n\nThe examples can be simple executed with:\n```\nnewlisp.exe Example.nl\n```\n\nSimple **CreateWindow** example [CreateWindow.nl](CreateWindow.nl):\n\n![Create Window!](images/CreateWindow.png \"Create Window\")\n\nA **MessageBox** example [MessageBox.nl](MessageBox.nl):\n\n![Message Box!](images/MessageBox.png \"Message Box\")\n\nA window that displays all the **SystemMetrics** [DisplayAllSystemMetrics.nl](DisplayAllSystemMetrics.nl):\n\n![Display All System Metrics!](images/DisplayAllSystemMetrics.png \"Display All System Metrics\")\n\n## TODO\n\n* Finish to import the multimedia APIs and the 3D ones\n* Add more examples\n* Test more\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossbowerbt%2Fnewlispwin32api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrossbowerbt%2Fnewlispwin32api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossbowerbt%2Fnewlispwin32api/lists"}