twinBASIC Update: September 22, 2026
Highlights include a sample twinBASIC project using touch gestures to manipulate images, a call for idea for improving Debug.Print, and a sneak peek at forthcoming DDE support.
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. (And I was oh so close...) With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.
Every Sunday Monday week, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, please leave a comment below.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide
- twinBASIC Discord Server (chat about the project)
- twinBASIC Documentation (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
Highlights
How Would You Improve Debug.Print?
Wayne posted the following in Discord on 20 Sep 2026:
We are currently discussing future syntax possibilities for enhancing the Debug object, such as allowing for color printing and severity (for filtering purposes). Everyone is welcome to join the discussion and post ideas; https://github.com/twinbasic/lang-design/issues/74
DDE Compatibility in twinBASIC
Dynamic Data Exchange (DDE) is a protocol for inter-process communication.
It was once a critical piece of technology that allowed applications to talk to each other programmatically, but it was largely superseded by the Component Object Model (COM). For those that don't know, COM is the technology that allows Access to talk to Excel and Word via VBA.
While no longer in fashion, DDE support is still a critical piece of the 100% backward compatibility promise from twinBASIC.
Over in Discord, fafalone shared a preview of forthcoming DDE support in twinBASIC:
I know usage isn't that common, but supporting DDE is important for full compatibility– thought I'd share a preview of DDE now working in the tB TextBox

I did actually come across some more recent VB6 apps using it while working on it.
Discord Chat Summary
* Auto-generated via Claude Sonnet 5
Overview
This week's discussion centered on new feature previews from fafalone—including DDE support in the tB TextBox and a Direct2D-powered touchscreen gesture demo—alongside several bug reports involving fixed-length strings, PictureBox controls, and DLL compilation. Community engagement dipped mid-week amid anticipation for the next release, but waynephillipsea confirmed strong progress is being made, with a release expected imminently. Members also shared side projects, including a 64-bit x86 emulator and a GPU-accelerated screen capture demo.
Feature Development & Compatibility
- fafalone previewed working DDE (Dynamic Data Exchange) support in the tB TextBox control, noting that despite its declining usage, some recent VB6 applications still rely on it for full compatibility.
- fafalone shared an in-progress demo leveraging touchscreen input (pinch-to-zoom, rotate gestures) built on Direct2D rendering, using
ID2D1Effectapplied to WIC-loaded images. - deletedewd shared a free-threaded, GPU-accelerated Graphics Capture demo project in a separate thread for community reference.
Bug Fixes & Known Issues
- A user reported that CommandButtons placed inside a PictureBox subtly resize when dragged in the designer, even with grid snapping enabled. waynephillipsea confirmed this is a known issue, typically occurring when the PictureBox has a border.
- fafalone flagged inconsistent behavior with
DeclareWideand fixed-length strings during a VB6-to-tB/WDL/x64 port—SHGetPathFromIDListWreturned an empty string, while a dynamicString$(MAX_PATH, 0)buffer worked correctly. - deletedewd explained that
DeclareWideis essentially syntactic sugar forStrPtr(String), and fixed-length strings don't behave as expected becauseStrPtrreturns a pointer to a temporary, disposable string. waynephillipsea clarified that fixed-length strings get wrapped in aCStr()forDeclareWidecalls, but the missing piece is that the wrapper isn't being "unwrapped" afterward to sync the fixed-length string data—unlike the ANSI-to-String conversion path. He noted VB6 has this same limitation. - fafalone encountered a
Build Error: Internal error, compressionon a minimal DLL project withDllExport. waynephillipsea walked through checking the compression feature flags before asking fafalone to file the issue in #bugs for further investigation.
Language Enhancements
- waynephillipsea opened community discussion on enhancing the
Debugobject with color printing and severity-based filtering, pointing members to GitHub issue #74 for input on future syntax.
Community Projects & Show-and-Tell
- camomille22003 shared a 64-bit x86 assembler/disassembler/reassembler/emulator project built on Keystone, Capstone, and Unicorn DLLs, created partly as a learning exercise for newer tB features; the project is roughly 80% complete after switching from a problematic 64-bit VBA implementation.
- yereverluvinunclebert requested that fafalone clarify which of his tB projects also have VB6 equivalents to help cross-post them to VB6 forums. fafalone confirmed that any project with a VB6 counterpart is already posted in the VB6 codebank, and noted he now rarely maintains VB6 versions of new work since most active development is tB-native.
- Community members touched on the challenges of side projects unexpectedly expanding in scope, with yereverluvinunclebert describing ongoing work obfuscating GDID handling in a testing tool.
Release Status & Community Engagement
- Following a quiet stretch in chat activity, waynephillipsea reassured the community that "things will heat up soon."
- In response to a question about a delayed September 4th release, waynephillipsea confirmed it was pushed back but "coming soon," later adding it was "nearly there" and, by week's end, that things were "looking very good for a release this week."
- A community member raised interest in a reported 1.27 million line-of-code VB6 project hitting 32-bit memory limitations, sparking discussion about large-scale legacy project migration challenges.
Conclusion
Despite a quieter week overall, meaningful progress continued on both the compiler/runtime side and community-driven projects, with fafalone's DDE and touchscreen demos highlighting ongoing compatibility and modernization efforts. Bug reports around fixed-length strings and DLL compilation surfaced useful technical detail from waynephillipsea on tB's internal string handling. With waynephillipsea signaling an imminent release, momentum is building heading into the next development cycle.
Around the Web
Using Touchscreen Gestures to manipulate images
Posted in show-and-tell by fafalone:
This project shows how to implement touchscreen gesture handling in order to manipulate an image that is rendered by Direct2D. It supports Pinch-to-zoom, Rotate, Pan (with two fingers), and 2-finger taps.
There's two versions:
TouchGesturesEffects.twinproj - UsesWM_GESTURE/GetGestureInfoto process gestures. Less advanced but suitable for Windows 7.
TouchGesturesManip.twinproj - UsesWM_POINTERUP/UPDATE/DOWNand the systemManipulationProcessorclass to process gestures. Offers a lot more advanced features (though only pinch-to-zoom/rotate/pan are implemented), as-is though requires Win8+.
Requires Windows Development Library for twinBASIC v9.4.730+ - Updated specifically for this project. References->Available packages. If you uncheck 'Embed', it will be available to all projects that link to it.
Project repo: https://github.com/fafalone/TouchGestures


fafalone has already released a couple of follow-on updates to the project:
Update - TouchGesturesManip v1.1: Added two-finger tap functionality like the other project. Also of interest, this shows how to track the number of touch points for advanced multitouch features.
Update - TouchGesturesManip v2.1: Added InertiaProcessor class so you can now flick the image and it will slowly decelerate and bounce off the sides.

WinRT Free-Threaded Windows Graphics Capture
Posted in show-and-tell by VanGoghGaming:
This project showcases the SwapChainPanel control as well as twinBASIC's free-threaded capabilities to demonstrate theWindows.Graphics.Capturefeatures, namely capturing either an individual window or the whole monitor.
Since the capturing is done entirely in a separate thread, it remains fluid even when the UI thread is busy doing other tasks. The SwapChainPanel control also acts as a container for other controls so it is possible to overlay an entire UI over the captured frames. For simplicity, this demo includes a Start/Stop button and a FPS TextBlock control.
In order to update the FPS counter control (which resides on the UI thread), the DispatcherQueue object is employed to asynchronously delegate the task from the capture thread to the UI thread. When clicking the Start button, the Graphics Capture Picker dialog is shown allowing you to choose an item to capture (either one of your already open windows or one of your monitors or all monitors combined).
Capturing the current monitor results in a cool cascading effect when moving the form around:

Download it from this vbForums thread:
https://www.vbforums.com/showthread.php?912272-twinBASIC-WinRT-Free-Threaded-Windows-Graphics-Capture
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
- Nothing new this week.
- Wayne asserts that "things are looking very good for a release this week"

[Editor's Note: I was going to hover my mouse over "Yesterday" in the above screenshot so that you could see the actual date that Wayne posted this comment, but in the interest of accuracy and efficiency, I decided it would be better to maintain the relative dates (e.g., "Yesterday", "this week") rather than put in absolute dates that I'll just have to fix in the next article. You're welcome.]
- In response, VanGoghGaming dropped a bit of friendly advice for Wayne by way of Ricky Gervais:

