{"_id":"@bun-win32/core","_rev":"9-ddc4f37d299c357e38dbafe4013e7c12","name":"@bun-win32/core","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.1":{"name":"@bun-win32/core","version":"1.0.1","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":{"name":"Stev Peifer","email":"stev@bell.net"},"license":"MIT","_id":"@bun-win32/core@1.0.1","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"7ca30b4af9d13fab5e2ca08d587ce3c942419e2e","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.0.1.tgz","fileCount":6,"integrity":"sha512-iGcISfXt9wyqQhX3cO8RaR69efBAWhb1u01C3sPWqOHbz0SCzBbieaUTbS0340Ol8t/xLSJVOL1ClG+nqRUalg==","signatures":[{"sig":"MEYCIQCaOquD1tMQ/FK04AqzR1RnTf32kndCGLCNUAnpHF0BzAIhAIbjTzS7fFN1VNpvz3MffcHyjCiSnIafOb9pKaU9YTpW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13158},"main":"./index.ts","type":"module","module":"index.ts","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"gitHead":"616281e023de927f9e608753af869b4a7276879e","private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.1.0","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"20.8.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.1_1775407636301_0.12666609648538762","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bun-win32/core","version":"1.0.0","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/core@1.0.0","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"f48cdcb35c0ba5ab92f750482da642d5335d88b5","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.0.0.tgz","fileCount":6,"integrity":"sha512-0Y7zMHuJvYQ/1L+tqt96iovx4Hi3RUkXTJJdeKBivzVtgKZJDqcPgq4EubDe1+8qePIRSSJYHo8+zxHQJtQ3fw==","signatures":[{"sig":"MEUCIEH16iTjhfneW1yRDkjdoDBZ4pJvnDVmNUUS3kvBNFgoAiEAl6HZf82IJKELj+7lePxp9IMJL5+ndjKCGLoUhP05IQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13158},"main":"./index.ts","type":"module","module":"index.ts","shasum":"f48cdcb35c0ba5ab92f750482da642d5335d88b5","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-0Y7zMHuJvYQ/1L+tqt96iovx4Hi3RUkXTJJdeKBivzVtgKZJDqcPgq4EubDe1+8qePIRSSJYHo8+zxHQJtQ3fw==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1775408003089_0.631281023992009","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bun-win32/core","version":"1.1.0","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/core@1.1.0","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"975092dc262a7ea6654fcb9b0790cd235f98e8a7","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.1.0.tgz","fileCount":6,"integrity":"sha512-ZNNdGRuPzZaqHETNOijA12KIgjkQ1+8GyZn0wfPsX7TD0sXiMSye3Jut9Q6Zsm1sz1Clv9vrPb4DsS6n/RbvLQ==","signatures":[{"sig":"MEYCIQDJ5x7QRcXxnniDeL0YvbkeAHo2bllzgHPpPHRhPCMg1wIhAJn0tgglR/42mqRt28nJMEq1qB8XPd3jMrCiNKT4sKEq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13286},"main":"./index.ts","type":"module","module":"index.ts","shasum":"975092dc262a7ea6654fcb9b0790cd235f98e8a7","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-ZNNdGRuPzZaqHETNOijA12KIgjkQ1+8GyZn0wfPsX7TD0sXiMSye3Jut9Q6Zsm1sz1Clv9vrPb4DsS6n/RbvLQ==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1775507745532_0.05653377730059894","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bun-win32/core","version":"1.1.1","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/core@1.1.1","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"d30ecdaee72db96c9a2559e35e704a85d8f7985a","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.1.1.tgz","fileCount":7,"integrity":"sha512-bsoV/iX+cBB3Ubf1JFeu8375vVrGZuext2nTav/uymD7M64qhGQcJqCY/nBwDYwhAJmXSRi6P4L8veZI2nSJyA==","signatures":[{"sig":"MEQCIDbLk1kLVUVqQSDekpBYex5SXWTXY5NQMWBIqJ9EZOT/AiBBMd9DrmR381y/44sq8Q4s2pXybCR4UzHFBqFrzo/Xmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15580},"main":"./index.ts","type":"module","module":"index.ts","shasum":"d30ecdaee72db96c9a2559e35e704a85d8f7985a","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-bsoV/iX+cBB3Ubf1JFeu8375vVrGZuext2nTav/uymD7M64qhGQcJqCY/nBwDYwhAJmXSRi6P4L8veZI2nSJyA==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.1_1775514730425_0.44281560638946127","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bun-win32/core","version":"1.1.2","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/core@1.1.2","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"632fc4acf207bf0e7fe3b9b4dda9eee038679238","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.1.2.tgz","fileCount":7,"integrity":"sha512-chLnrvvWCgKARdkZ7b89/GfNyjl6H7dsAvtccviiSdT6q+xxHxYQfJPsFYGbphQO5NU1UJhSS1UhELJDXHjiNA==","signatures":[{"sig":"MEUCICjughXXX6Mm/v8SEMIrJBw5WGE0wXIafA8U4EZUIwPGAiEAowCuBn6D48k/Ndxu1xsHxJBY18gf8+o/oL+qSuUVCnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15580},"main":"./index.ts","type":"module","module":"index.ts","shasum":"632fc4acf207bf0e7fe3b9b4dda9eee038679238","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-chLnrvvWCgKARdkZ7b89/GfNyjl6H7dsAvtccviiSdT6q+xxHxYQfJPsFYGbphQO5NU1UJhSS1UhELJDXHjiNA==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.2_1775687591875_0.7734041733425976","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@bun-win32/core","version":"1.1.3","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/core@1.1.3","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"6e600e79603762698c03a61c4547a7677b540667","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.1.3.tgz","fileCount":7,"integrity":"sha512-KSTigoQIbH1rM2BHoIlAuK/9SUmBWrjup7OepPYGaUPx0FMIbwiWNHu3J1PnRQKODBVPgDLuKAIIYTUGbe5gng==","signatures":[{"sig":"MEQCIBQC/jNEFcbr/MkTx5rzFbVk6u18H+hT3qpmuOCJnqr7AiBqc0M0ntJi//fGlsvETZ1mk5BfB9kxk6FGGYFkQOthmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15632},"main":"./index.ts","type":"module","module":"index.ts","shasum":"6e600e79603762698c03a61c4547a7677b540667","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-KSTigoQIbH1rM2BHoIlAuK/9SUmBWrjup7OepPYGaUPx0FMIbwiWNHu3J1PnRQKODBVPgDLuKAIIYTUGbe5gng==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.3_1781092668339_0.31722924050470636","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@bun-win32/core","version":"1.1.4","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","_id":"@bun-win32/core@1.1.4","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"1281007f8e0db13b5926f784228cd549be18d6a6","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-1.1.4.tgz","fileCount":7,"integrity":"sha512-7Jo87K1K3nCzkc0o7rbVJoyEbOZr0WJuB/MkrzX218q6Obbgi2UG40sFTf3W3ssxwHXnGDNo5DTH73LK27VoBw==","signatures":[{"sig":"MEYCIQC+dswEcy4cN1M4tl0mBJL3YAy3AnaTSm3JifEcAyRBeAIhANbI0x7AFPNnhHvW9LfrO4CReocP2kQL+GkV7I0BnCOx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15637},"main":"./index.ts","type":"module","module":"index.ts","shasum":"1281007f8e0db13b5926f784228cd549be18d6a6","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-7Jo87K1K3nCzkc0o7rbVJoyEbOZr0WJuB/MkrzX218q6Obbgi2UG40sFTf3W3ssxwHXnGDNo5DTH73LK27VoBw==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.4_1781130803748_0.7606899431267466","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bun-win32/core","version":"2.0.0","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","_id":"@bun-win32/core@2.0.0","maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"2ca01bf234734a5eae5dedf2c435613b1d1b969c","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-2.0.0.tgz","fileCount":7,"integrity":"sha512-m0dn0upMSb8NQjEeO2MrMDmTiOa/wS11jSDvMagv/ySQ22XLTeTFXuhrfSWKSbafIGDlXZoXD0gcdCchwNYpiw==","signatures":[{"sig":"MEUCIQCXcyCGcSNo0i8GNMyCSMrAPcCcwWn2itynqtlTSQZQwgIgY3NwrWJxh1acrY3BwYWtBCvnDiAZlc0Z7zzqeufo044=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16524},"main":"./index.ts","type":"module","module":"index.ts","shasum":"2ca01bf234734a5eae5dedf2c435613b1d1b969c","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"_npmUser":{"name":"obscuritysrl","email":"stev.p@outlook.com"},"_integrity":"sha512-m0dn0upMSb8NQjEeO2MrMDmTiOa/wS11jSDvMagv/ySQ22XLTeTFXuhrfSWKSbafIGDlXZoXD0gcdCchwNYpiw==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.3","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.0_1782435261609_0.03143342770089941","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"author":"Stev Peifer <stev.p@outlook.com>","description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","devDependencies":{"@types/bun":"latest"},"exports":{".":"./index.ts"},"license":"MIT","module":"index.ts","name":"@bun-win32/core","peerDependencies":{"typescript":"^5"},"private":false,"bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","repository":{"type":"git","url":"git://github.com/ObscuritySRL/bun-win32.git","directory":"packages/core"},"type":"module","version":"2.0.1","main":"./index.ts","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"sideEffects":false,"engines":{"bun":">=1.1.0"},"_id":"@bun-win32/core@2.0.1","_integrity":"sha512-3xqC3LKrQNOXvvBWFi/CPdS45JllJad6VpJqP/GWdFMhwEe2GlMTV7qnrTRC22fz6J2ycGzxyA/A7Qwf5gKBFw==","_nodeVersion":"26.3.0","_npmVersion":"10.8.3","shasum":"e17a47e63057aa00c44060394a8c78f2b1cde219","dist":{"integrity":"sha512-3xqC3LKrQNOXvvBWFi/CPdS45JllJad6VpJqP/GWdFMhwEe2GlMTV7qnrTRC22fz6J2ycGzxyA/A7Qwf5gKBFw==","shasum":"e17a47e63057aa00c44060394a8c78f2b1cde219","tarball":"https://registry.npmjs.org/@bun-win32/core/-/core-2.0.1.tgz","fileCount":7,"unpackedSize":16524,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDc/IlRclLzhhqit4khGUxs5Zi9m5/CvpsZIMF3mCiIDwIhAKTi6gJFOE0jGDSqpogUjU0JebVtky1Cn8jCjfBuPH40"}]},"_npmUser":{"name":"obscuritysrl","email":"stev.p@outlook.com"},"directories":{},"maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_2.0.1_1782437715341_0.7516106287593949"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-05T16:47:16.197Z","modified":"2026-06-26T01:35:15.647Z","1.0.1":"2026-04-05T16:47:16.450Z","1.0.0":"2026-04-05T16:53:23.258Z","1.1.0":"2026-04-06T20:35:45.688Z","1.1.1":"2026-04-06T22:32:10.574Z","1.1.2":"2026-04-08T22:33:12.035Z","1.1.3":"2026-06-10T11:57:48.467Z","1.1.4":"2026-06-10T22:33:23.881Z","2.0.0":"2026-06-26T00:54:21.740Z","2.0.1":"2026-06-26T01:35:15.515Z"},"bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","homepage":"https://github.com/ObscuritySRL/bun-win32#readme","keywords":["bun","ffi","win32","windows","bindings","typescript","dll","core"],"repository":{"type":"git","url":"git://github.com/ObscuritySRL/bun-win32.git","directory":"packages/core"},"description":"Shared base class, runtime extensions, and fundamental Win32 types for @bun-win32 packages.","maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"readme":"# @bun-win32/core\n\nShared base class, runtime extensions, and fundamental Win32 types for `@bun-win32` packages.\n\n## Overview\n\n`@bun-win32/core` provides the foundation that all `@bun-win32` DLL packages build on:\n\n- **`Win32` base class** — Abstract class that handles lazy `dlopen` loading and symbol memoization. Every DLL package (`kernel32`, `user32`, etc.) extends this class.\n- **Runtime extensions** — Installs a `.ptr` getter on all `ArrayBuffer`, `Buffer`, `DataView`, and typed array prototypes, giving direct access to native pointers for Bun FFI calls.\n- **Win32 type aliases** — Strongly-typed aliases (`HANDLE`, `DWORD`, `LPVOID`, `BOOL`, etc.) that map Win32 C types to their TypeScript equivalents.\n\n## Requirements\n\n- [Bun](https://bun.sh) runtime\n- Windows 10 or later\n\n## Installation\n\n```sh\nbun add @bun-win32/core\n```\n\n> You typically do not need to install this directly — it is pulled in as a dependency of each DLL package.\n\n> [!NOTE]\n> AI agents: see `AI.md` for the package contract and runtime behavior. It explains how `@bun-win32/core` differs from the DLL binding packages.\n\n## Usage\n\n### Extending `Win32` for a new DLL\n\n```ts\nimport { FFIType, type FFIFunction } from 'bun:ffi';\nimport { Win32 } from '@bun-win32/core';\n\nclass MyDll extends Win32 {\n  protected static override name = 'mydll.dll';\n  protected static override readonly Symbols = {\n    MyFunction: { args: [FFIType.u32], returns: FFIType.i32 },\n  } as const satisfies Record<string, FFIFunction>;\n\n  public static MyFunction(value: number): number {\n    return MyDll.Load('MyFunction')(value);\n  }\n}\n```\n\n### Runtime pointer extensions\n\n```ts\nimport '@bun-win32/core';\n\nconst buffer = new Uint8Array([1, 2, 3]);\nnativeFunction(buffer.ptr, buffer.length);\n```\n\n### Win32 type aliases\n\n```ts\nimport type { DWORD, HANDLE, BOOL } from '@bun-win32/core';\n```\n\n## Notes\n\n- This package is a dependency of all `@bun-win32` DLL packages.\n- Windows only. Bun runtime required.\n- **SAL types & naming:** nullability is in the **type** — `Optional<T>` (formally optional, SAL `_*opt_`) and `Nullable<T>` (plain `[in]`/`[out]` the docs say can be NULL), the null sentinel derived from `T` (`null` for pointers `LP*`/`P*`, `0n` for handles/by-value addresses); direction is in the **parameter name** — `_out` (`_Out_`), `_in_out` (`_Inout_`), `_In_` bare. See `AI.md` and the repo `AGENTS.md`.\n","readmeFilename":"README.md"}