-
Feb 23rd, 2025, 07:15 AM
#1081
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by LorinM
Writing several app at the same time. That is why I am so confused all the time.
Party Cam Kiosk - takes a sequence of webcam photos, applies effects and prints out a photo strip, 2-up, 4-up and one-up pages color or B&W plus many fun options. 45K + code, more of comments. about 99% complete (runs but adding features)
DesignCAD - a user friendly CAD program that generates g-Code to operate a desktop CAD machine for cutting out and carving. 50K + lines of code + more of comments. About 80% complete. runs but adding features.
Story Teller - user programmable using bookmarks. reads text aloud selectable voices, plays music of many formats, open multiple picture windows with effects and/or movie screens. With many more options. 80K+ lines of code, more of comments. about 95% complete (runs but adding features)
Would like to see these, post a picture or two please!
Also, would like to use them when they become usable, please keep us posted.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Feb 23rd, 2025, 03:37 PM
#1082
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by yereverluvinuncleber
Fascinating UI.
UI screams Chillkat Controls and VBAccellerator
MicrosoftWindowsxp
Professional
was the peak Windows version not gonna lie
-
Feb 23rd, 2025, 03:37 PM
#1083
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by gaouser
EveryDiscord, A FOSS Discord client for Windows XP based on VB6.
Attachment 194082
Relies on Discord Tokens(Ok may sound shady. but how are you going to pass OAuth2? You need a modern browser[Supermium is excluded] to interpret the links that Discord emails you to vertificate)
I sent my first ever message from it, currently working on a way to fetch them, ComCtl32(CC 5) ListView is closest to a text-bubble view. It's visually smilar as Discord has no drawn-bubbles on the view.
Based on wqweto's TLS 1.3 AsyncSocket. Alot of thanks to him for making this project happen.
Made in a VM(XP Professional x86 SP3), Tiny11 24H2 as host. 27" Monitor, and a desktop with 32 GBs of RAM(though doesn't matter here due to x86)
Trying to use WSS in VB6 is whole another pain...
MicrosoftWindowsxp
Professional
was the peak Windows version not gonna lie
-
Feb 23rd, 2025, 05:44 PM
#1084
Re: Getting the ball rolling. Which VB6 projects are you working on?
Just added a new clapper on the alarm bell of the VB6 steampunk clock/calendar that controls or rather toggles, the quarterly chimes. the clapper on the right now solely toggles the alarms sounding.

I haven't added a new UI element to this particular design for more than ten years... of course, the UI design follows on from the old Yahoo widget/Konfabulator widget of the same name. I know I am just cloning and re-using an existing graphical element, so not even that new.
Last edited by yereverluvinuncleber; Feb 23rd, 2025 at 05:47 PM.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 7th, 2025, 06:05 AM
#1085
Re: Getting the ball rolling. Which VB6 projects are you working on?
Come on chaps, what are you working on? I'd like to know what JBPro, SDO, Olaf and Faf specifically are working on...
I have been becoming familiar with TwinBasic by keeping two parallel copies of my code in synch. I learnt about its few limitations and its amazing strengths by working with and finding workarounds for any issues. I stopped using TwinBasic for a while as I had some solid bugs to resolve, I didn't want to dilute my effort on two codebases and am still more familiar and productive in VB6.
This meant that I stopped keeping my code in synch. with TB and thus my TB version of my clock/cal is now out-of-date.
I aim to catch up by re-synching from scratch with a new and more recent version of TB to test TwinBasic and the bugs I have raised - as Wayne requests.
I am definitely settling into the concept that TwinBasic works and is a real future for VB6. The next step for me, is to figure out how to get RC5/RC6 working in 64bit mode as this provides a future for my apps. Looking for help from Olaf/JBPro in this respect as the requirement becomes more and more urgent as time progresses.
What are you working on chaps?
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 7th, 2025, 07:30 AM
#1086
Re: Getting the ball rolling. Which VB6 projects are you working on?
My latest project was direct access to sensors on tablets and laptops through ISensorManager/ISensor. The demo is an Ambient Light Monitor, watching the input from that sensor:

https://github.com/fafalone/AmbientLightMonitor
The repo also has binary builds because as the finished UI suggests I thought it might be useful, e.g. as a way to monitor whether someone turns the lights on while you're away.
For a successor, my hope was that I could, as documented, access GPS sensors through the same interface, but despite the fact my tablet definitely has GPS and other apps can access it, I'm getting an error indicating no GPS sensor was found. They might have entirely locked it up behind WinRT.
---
Then just a minute ago I posted an updated 64bit compatible port of Ordo PDF Reader with the changes from the latest VB6 version.
---
Finally a couple weeks ago I posted one I know you'll love, my long overdue Windows UI Ribbon Advanced Demo. Tons of new features, new controls, and bonus features implementing various RichEdit functionality and hijacking the MS Office RichEdit with Color Emoji support.
There's pics in the announcement post here on VBF, or you can go straight to the project repository. Still haven't changed my mind about not backporting it or the others beyond the Intro Demo to VB6.
---
In possibly upcoming project news; I also might release an OCX wrapper of Wayne's WebView2 control for twinBASIC, aimed at VB6. oleexp.tlb has the WebView2 interfaces but there's a lot more to a functional control than that, so I thought it easier to just make the existing one accessible. It would be an open source alternative to Olaf's closed source RC6 implementation, and also make it accessible to VBA64.
-
Mar 8th, 2025, 04:40 AM
#1087
Re: Getting the ball rolling. Which VB6 projects are you working on?
If anyone wants to test the WebView2 control I'm working on,
https://github.com/fafalone/ucWebView2
Initial test build is working in VB6:

Also in VBA 64bit.
-
Mar 8th, 2025, 07:51 AM
#1088
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
Dang it EveryDiscord may get delayed a little bit. The reason is the TLS library diffrence between the WSS lib and my code.
MicrosoftWindowsxp
Professional
was the peak Windows version not gonna lie
-
Mar 8th, 2025, 08:14 AM
#1089
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
Works perfectly in TB.
You can attach an example in vb6.
thanks to you and Wayne for the work.
-
Mar 8th, 2025, 09:28 AM
#1090
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by yokesee
Works perfectly in TB.
You can attach an example in vb6.
thanks to you and Wayne for the work.
If you're in tB you should just use the package directly... References->Available Packages->Import from file->WebView2WDLPackage.twinpack
The ActiveX ocx control from WebView2Control.twinproj is for VB6/VBA, where there's no option to avoid an ocx besides redesigning the base control to use oleexp and the normal UC framework. I guess you *can* use it in tB... But why add a dependency with registration required and/or an extra layer, when you don't need to.
Last edited by fafalone; Mar 8th, 2025 at 09:36 AM.
-
Mar 8th, 2025, 06:57 PM
#1091
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
I can't compile the control.
Problem with the Microsoft Visual Basic 5.2 Extensibility reference.
I added the Microsoft Visual Basic 6.0 Extensibility but I get a lot of errors.
Regards
-
Mar 8th, 2025, 07:20 PM
#1092
Re: Getting the ball rolling. Which VB6 projects are you working on?
I uploaded the wrong file, hold on.
Edit: Ok, I put up the right file for the OCX build version now. It doesn't have any outside dependencies, just tB packages and standard Windows files (and obviously WebView2 installed).
ucWebView2.zip (too big to upload uncompressed because tB is currently inefficiently including 2 copies of my WDL package).
Last edited by fafalone; Mar 8th, 2025 at 10:21 PM.
-
Mar 9th, 2025, 04:05 AM
#1093
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
My latest project was direct access to sensors on tablets and laptops through ISensorManager/ISensor. The demo is an Ambient Light Monitor.
Love this. I'd love to be able to incorporate this code to allow me to select a light/dark mode in some of my app.s according to ambient light available. Unfortunately, I presume that most desktops will not be equipped with such a sensor.
How else would you expect this application to be used?
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 9th, 2025, 04:09 AM
#1094
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by gaouser
EveryDiscord
Good name.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 10th, 2025, 06:20 AM
#1095
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
I uploaded the wrong file, hold on.
Edit: Ok, I put up the right file for the OCX build version now. It doesn't have any outside dependencies, just tB packages and standard Windows files (and obviously WebView2 installed).
ucWebView2.zip (too big to upload uncompressed because tB is currently inefficiently including 2 copies of my WDL package).
Hi faf... TwinBasic compiles OCX?
-
Mar 10th, 2025, 09:50 AM
#1096
Re: Getting the ball rolling. Which VB6 projects are you working on?
It does. Both 32bit and 64bit. You can import and existing VB6 control project or choose "ActiveX Control" from the New Project dialog.
What I like in particular is you have full control over all the details in tB... the project/typelib GUID, typelib version, and class/interface/events GUIDs from the controls/classes; it doesn't have preset options equivalent to VB6 on those, but VB6's 'no/project/binary compatibility' was always confusing; and you also have an option to compile but not register unlike VB6.
-
Mar 14th, 2025, 04:57 AM
#1097
Re: Getting the ball rolling. Which VB6 projects are you working on?
Working on full form resizing by dragging the bottom corner of the form so that all controls grow in proportion. This is my method of handling high DPI screens. I have this working on most of the preference screens for my gauges, I just do not have it on my older app.s, fixing that now.

I have it working on the prefs screens of most of my gauges but not in my older apps. Just fixing that now.
The form on the left is the standard default form generated by VB6 at 10,500 twips width, the one on the right has been expanded to 175% by dragging the bottom corner.
I am using subclassing to trap the WM_EXITSIZEMOVE message and triggering a custom resize event for resizing the controls only - when the drag is complete.
PS. Had to retype all this as the forum lost the textual updates.
Last edited by yereverluvinuncleber; Mar 14th, 2025 at 05:16 AM.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 15th, 2025, 10:27 PM
#1098
Fanatic Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
I uploaded the wrong file, hold on.
Edit: Ok, I put up the right file for the OCX build version now. It doesn't have any outside dependencies, just tB packages and standard Windows files (and obviously WebView2 installed).
ucWebView2.zip (too big to upload uncompressed because tB is currently inefficiently including 2 copies of my WDL package).
Attachment 194366
Last edited by xxdoc123; Mar 15th, 2025 at 11:33 PM.
-
Mar 16th, 2025, 03:27 AM
#1099
Re: Getting the ball rolling. Which VB6 projects are you working on?
Should create an issue in the project repo instead of here; please include whether other WebView2 things work, like the built in tB samples and RC6's WebView.
-
Mar 16th, 2025, 03:30 PM
#1100
Re: Getting the ball rolling. Which VB6 projects are you working on?
Finally did something with some visuals 

Project is here:
https://www.vbforums.com/showthread....e-Markup-Tools
-
Mar 16th, 2025, 03:33 PM
#1101
Re: Getting the ball rolling. Which VB6 projects are you working on?
That's good. I can see myself using that.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 26th, 2025, 11:29 AM
#1102
Re: Getting the ball rolling. Which VB6 projects are you working on?
Some progress on my icon settings tool for my VB6 dock program Steamydock.

It now resizes more or less how I want it to and every control behaves itself when resized, as far as it possible for VB6 controls to do so. The check boxes in particular don't resize well but - acceptable.
It is a straightforward VB6 form with no RC6 involvement, just reads the PNG, JPG, ICO files as displayed in the dock and allows you to edit a dock entry properties. Would make a good candidate for testing with TwinBasic, I'll try and do that soon.
Last edited by yereverluvinuncleber; Mar 26th, 2025 at 11:39 AM.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 26th, 2025, 04:16 PM
#1103
Re: Getting the ball rolling. Which VB6 projects are you working on?
Just a quick Animated GIF, bit of a delay caused by the screen capture.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Mar 27th, 2025, 06:18 PM
#1104
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by yereverluvinuncleber
Some progress on my icon settings tool for my VB6 dock program Steamydock.
It now resizes more or less how I want it to and every control behaves itself when resized, as far as it possible for VB6 controls to do so. The check boxes in particular don't resize well but - acceptable.
It is a straightforward VB6 form with no RC6 involvement, just reads the PNG, JPG, ICO files as displayed in the dock and allows you to edit a dock entry properties. Would make a good candidate for testing with TwinBasic, I'll try and do that soon.
I liked the desktop image...
-
Mar 29th, 2025, 05:15 PM
#1105
Re: Getting the ball rolling. Which VB6 projects are you working on?
Glad you do so. It is a nice image.

Just converting my two apps to DPI awareness using the 'old' SetProcessDpiAwareness API and enabling automatic resizing by dragging the bottom right corner.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 2nd, 2025, 05:50 PM
#1106
Re: Getting the ball rolling. Which VB6 projects are you working on?
Right, everyone, you must be working on interesting stuff, you always are... please let us see what you are working on. Progress in pictures is always a good thing.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 2nd, 2025, 10:31 PM
#1107
Hyperactive Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
Finalizing work on two commercial apps. Nothing spectacular and basically nothing visual. A lot of behind the scenes optimization of existing features to work in international environments. Things like:
- Dealing with non-western characters like Korean when populating treeviews and responding to treeview clicks filtering the detail listviews through queries to a SQL Server database
- Using PowerPoint templates to generate output decks
----- Replacing placeholders with specific keywords with the resulting graphics, dealing with scaling and alignment challenges
----- Speeding up populating text-placeholders (don't access the PowerPoint shape to check for every option, but get the value once into a variable, and check against the variable -> cut back processing time with 98%!)
- Cleaning up translations in 11 languages
----- Consitent translations within each app and across the apps
----- Short keystrokes for buttons and menu-options (e.g not having Show... and Select... in the same menu)
----- Properly indicating if menu-options show a new dialog or message with the three dots at the end
- Expanding data structure with additional fields on multiple objects, which impacts the underlying database, application dialogs, Excel reporting, file i/o, etc.
So, busy, but notihing fancy and visual to share here.
-
Apr 2nd, 2025, 11:58 PM
#1108
Re: Getting the ball rolling. Which VB6 projects are you working on?
No pictures yet as they're only at the debug strings phase or not GUI-based, but the couple things I'm working on:
-GPS monitoring with ILocation/ILatLongReport
-I figured out exactly what was wrong with my NullFilter driver, but rather than release that with no practical use, I'm going to try moving straight to a rudimentary A/V scanner demo by porting the 'scanner' example. Principal coding for the kernel side is done; now I need to write the user mode side and start testing. All modern AVs will want to scan from the kernel because it lets you scan something before Windows loads it...
Code:
Private Function ScannerpScanFileInUserMode(ByVal Instance As LongPtr, FileObject As FILE_OBJECT, SafeToOpen As Boolean) As NTSTATUS
Dim status As NTSTATUS
Dim buffer As LongPtr
Dim bytesRead As Long
Dim notification As LongPtr 'PSCANNER_NOTIFICATION
Dim volumeProps As FLT_VOLUME_PROPERTIES
Dim offset As LARGE_INTEGER
Dim replyLength As Long, length As Long
Dim volume As LongPtr 'PFLT_VOLUME
SafeToOpen = True
If (ScannerData.ClientPort = 0) Then
Return STATUS_SUCCESS
End If
status = FltGetVolumeFromInstance(Instance, volume)
If Not NT_SUCCESS(status) Then GoTo leave
status = FltGetVolumeProperties(volume, volumeProps, LenB(volumeProps), length)
If NT_ERROR(status) Then GoTo leave
length = max(SCANNER_READ_BUFFER_SIZE, volumeProps.SectorSize)
buffer = FltAllocatePoolAlignedWithTag(Instance, NonPagedPool, length, SCANNER_SCAN_TAG)
If buffer = 0 Then
status = STATUS_INSUFFICIENT_RESOURCES
GoTo leave
End If
notification = ExAllocatePoolWithTag(NonPagedPool, LenB(Of SCANNER_NOTIFICATION), SCANNER_SCAN_TAG)
If notification = 0 Then
status = STATUS_INSUFFICIENT_RESOURCES
GoTo leave
End If
status = FltReadFile(Instance, _
FileObject, _
offset, _
length, _
buffer, _
FLTFL_IO_OPERATION_NON_CACHED Or FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET, _
bytesRead, _
CType(Of FLT_COMPLETED_ASYNC_IO_CALLBACK)(vbNullPtr), _
0&)
If (NT_SUCCESS(status) And (0 <> bytesRead)) Then
CType(Of SCANNER_NOTIFICATION)(notification).BytesToScan = bytesRead
CopyMemory ByVal PointerAdd(notification, 8), ByVal buffer, min(CType(Of SCANNER_NOTIFICATION)(notification).BytesToScan, SCANNER_READ_BUFFER_SIZE)
replyLength = LenB(Of SCANNER_REPLY)
status = FltSendMessage(ScannerData.Filter, _
ScannerData.ClientPort, _
ByVal notification, _
LenB(Of SCANNER_NOTIFICATION), _
ByVal notification, _
replyLength, _
vbNullPtr)
If status = STATUS_SUCCESS Then
SafeToOpen = CType(Of SCANNER_REPLY)(notification).SafeToOpen
Else
DbgPrint dbgsUserSendFail
End If
End If
leave:
If buffer Then FltFreePoolAlignedWithTag(Instance, buffer, SCANNER_SCAN_TAG)
If notification Then ExFreePoolWithTag(notification, SCANNER_SCAN_TAG)
If volume Then FltObjectDereference(ByVal volume)
Return status
End Function
As painful as this is to do in tB instead of C, I can't even image the nightmare in VB6 of not having all those tB syntax enhancements.
-May or may not post the updates to my ucAniGif control... I did my first novel assembly level patching to fix an incorrect implementation of a bug workaround for *Netscape*, yes 1990s Netscape, that Microsoft never fixed, that only allows a 100ms or greater frame duration (plus I didn't account for variable frame delays). So I'm excited about that, but I need to make sure the instructions are the same in other Windows versions, and it's even more prone to breaking in the future than the "deprecated" shell interface itself. The issue is other workarounds are so complex I'd *entirely* lose the simplicity of the shell interface-- and then it wouldn't add any value beyond work by wqweto and VanGoghGaming.
-
Apr 3rd, 2025, 08:44 AM
#1109
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by Erwin69
----- Short keystrokes for buttons and menu-options (e.g not having Show... and Select... in the same menu)
Are you talking about ctrl+B for example?
 Originally Posted by Erwin69
----- Properly indicating if menu-options show a new dialog or message with the three dots at the end
What's that? Something I am not aware of?
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 3rd, 2025, 08:53 AM
#1110
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
-GPS monitoring with ILocation/ILatLongReport
So, you must be working with a bit of kit that has GPS built-in, are there any APIs for that? - or I expect an external device via some serial i/o?
 Originally Posted by fafalone
moving straight to a rudimentary A/V scanner demo by porting the 'scanner' example. Principal coding for the kernel side is done
Crikey, complex stuff, interested. Someone else here was working on a once-commercial a/v tool written in VB6 that identified potential trojans, forgotten - it is on the tip of my tongue... If I can remember I'll post it here.
 Originally Posted by fafalone
-May or may not post the updates to my ucAniGif control...
I'm keeping an eye on these ANI tools from yourself, Van and wqweto. I may use one or the other later on. I just need to finish what I am working on now.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 3rd, 2025, 08:56 AM
#1111
Re: Getting the ball rolling. Which VB6 projects are you working on?
> Are you talking about ctrl+B for example?
It's more like Alt+F then S
> What's that? Something I am not aware of?
This is hidden polish on professional apps. We always try to indicate if a menu option opens an interactive form/dialog of some sort with trailing ellipses on menu text.
Options without it mean the action is executed immediately i.e. Save vs Save As..., the latter opens a dialog to choose filename so it's cancellable (and more safe to try).
cheers,
</wqw>
-
Apr 3rd, 2025, 08:57 AM
#1112
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by fafalone
Code:
Private Function ScannerpScanFileInUserMode(ByVal Instance As LongPtr, FileObject As FILE_OBJECT, SafeToOpen As Boolean) As NTSTATUS
Dim status As NTSTATUS
Dim buffer As LongPtr
Dim bytesRead As Long
Dim notification As LongPtr 'PSCANNER_NOTIFICATION
Dim volumeProps As FLT_VOLUME_PROPERTIES
Dim offset As LARGE_INTEGER
Dim replyLength As Long, length As Long
Dim volume As LongPtr 'PFLT_VOLUME
SafeToOpen = True
If (ScannerData.ClientPort = 0) Then
Return STATUS_SUCCESS
End If
status = FltGetVolumeFromInstance(Instance, volume)
If Not NT_SUCCESS(status) Then GoTo leave
status = FltGetVolumeProperties(volume, volumeProps, LenB(volumeProps), length)
If NT_ERROR(status) Then GoTo leave
length = max(SCANNER_READ_BUFFER_SIZE, volumeProps.SectorSize)
buffer = FltAllocatePoolAlignedWithTag(Instance, NonPagedPool, length, SCANNER_SCAN_TAG)
If buffer = 0 Then
status = STATUS_INSUFFICIENT_RESOURCES
GoTo leave
End If
notification = ExAllocatePoolWithTag(NonPagedPool, LenB(Of SCANNER_NOTIFICATION), SCANNER_SCAN_TAG)
If notification = 0 Then
status = STATUS_INSUFFICIENT_RESOURCES
GoTo leave
End If
status = FltReadFile(Instance, _
FileObject, _
offset, _
length, _
buffer, _
FLTFL_IO_OPERATION_NON_CACHED Or FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET, _
bytesRead, _
CType(Of FLT_COMPLETED_ASYNC_IO_CALLBACK)(vbNullPtr), _
0&)
If (NT_SUCCESS(status) And (0 <> bytesRead)) Then
CType(Of SCANNER_NOTIFICATION)(notification).BytesToScan = bytesRead
CopyMemory ByVal PointerAdd(notification, 8), ByVal buffer, min(CType(Of SCANNER_NOTIFICATION)(notification).BytesToScan, SCANNER_READ_BUFFER_SIZE)
replyLength = LenB(Of SCANNER_REPLY)
status = FltSendMessage(ScannerData.Filter, _
ScannerData.ClientPort, _
ByVal notification, _
LenB(Of SCANNER_NOTIFICATION), _
ByVal notification, _
replyLength, _
vbNullPtr)
If status = STATUS_SUCCESS Then
SafeToOpen = CType(Of SCANNER_REPLY)(notification).SafeToOpen
Else
DbgPrint dbgsUserSendFail
End If
End If
leave:
If buffer Then FltFreePoolAlignedWithTag(Instance, buffer, SCANNER_SCAN_TAG)
If notification Then ExFreePoolWithTag(notification, SCANNER_SCAN_TAG)
If volume Then FltObjectDereference(ByVal volume)
Return status
End Function
As painful as this is to do in tB instead of C, I can't even image the nightmare in VB6 of not having all those tB syntax enhancements.
Still looks like VB6. That's a good thing.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 3rd, 2025, 09:00 AM
#1113
Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
Three dots at the end of the menutext indicate a dialog will appear.
No dots mean the action starts immediately after selecting the item.
This is part of the programmers guide to userinterface from MS or IBM, don't know, it was in the late 90s when I read it.
Greetings
-
Apr 3rd, 2025, 11:28 AM
#1114
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by yereverluvinuncleber
So, you must be working with a bit of kit that has GPS built-in, are there any APIs for that? - or I expect an external device via some serial i/o?
I've got a Surface Go2 tablet, the business edition with GPS and 4G. It's actually a very simple COM object/interface... it uses the more complex ISensor stuff from my AmbientLight Demo under the hood, but for some reason I couldn't access GPS that way myself.
Code:
Implements ILocationEvents
Public Event LocationChanged(ByVal dblLatitude As Double, ByVal dblLongitude As Double, ByVal dblErrorRadius As Double, ByVal dblAltitude As Double, ByVal dblAltitudeError As Double)
Public Event CivicAddressChanged(ByVal AddressLine1 As String, ByVal AddressLine2 As String, ByVal City As String, ByVal StateOrProvince As String, ByVal PostalCode As String, ByVal Country As String)
Private mLoc As Location
Private mRepLL As ILatLongReport
Private mRepCR As ICivicAddressReport
Private Sub Class_Initialize()
Set mLoc = New Location
End Sub
Public Sub StartMonitoring(Optional ByVal bMonitorCoords As Boolean = True, Optional ByVal bMonitorAddress As Boolean = True)
If (bMonitorCoords = False) And (bMonitorAddress = False) Then Exit Sub
If (mLoc Is Nothing) Then
Debug.Print "cLocationMon::Error: Couldn't create Location object."
Exit Sub
End If
Dim rp(1) As UUID
rp(0) = IID_ILatLongReport
rp(1) = IID_ICivicAddressReport
mLoc.RequestPermissions(0, rp(0), 2, 0)
mLoc.SetDesiredAccuracy(IID_ILatLongReport, LOCATION_DESIRED_ACCURACY_HIGH)
If bMonitorCoords Then
mMonGPS = True
mLoc.RegisterForReport Me, IID_ILatLongReport, mInterval
End If
...
End Sub
Private Sub ILocationEvents_OnLocationChanged(reportType As UUID, ByVal pLocationReport As ILocationReport) Implements ILocationEvents.OnLocationChanged
If (pLocationReport Is Nothing) = False Then
Debug.Print "Got ILocationReport"
If IsEqualGUID(reportType, IID_ILatLongReport) Then
Dim pLL As ILatLongReport
Set pLL = pLocationReport
If (pLL Is Nothing) = False Then
Debug.Print "Got ILatLongReport"
Dim dblLatitude As Double = pLL.GetLatitude()
Dim dblLongitude As Double = pLL.GetLongitude()
Dim dblErrorRadius As Double = pLL.GetErrorRadius()
...
oleexp has these interfaces/coclasses too, if you wanted to adjust to VB6.
Last edited by fafalone; Apr 3rd, 2025 at 11:36 AM.
-
Apr 4th, 2025, 10:28 AM
#1115
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by Seniorchef
Three dots at the end of the menutext indicate a dialog will appear.
No dots mean the action starts immediately after selecting the item.
This is part of the programmers guide to userinterface from MS or IBM, don't know, it was in the late 90s when I read it.
I didn't know that, absorbed, thankyou.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
-
Apr 4th, 2025, 11:15 AM
#1116
Hyperactive Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
As explained by wqweto and Seniorchef it was polishing up based on the Windows UI design guidelines. I'm not sure how important it still is, since Microsoft seems to disable this by default in the latest Windows version. You'll have to go to "Windows Settings - Ease of Access - Keyboard" and switch on the option "Change how keyboard shortcuts work".
I personally am not so much of a keyboard warrior and prefer using the mouse, but know that there are still many users that use shortcuts as much as possible, so we try to accommodate. With menus expanding over time, it becomes harder and harder to keep everything nice and tidy. As you can see in the before and after pictures of one of the popup menus, shortcut key <F> was used twice, and therefore unusable. Plus the “Quick Lists” are now easier accessible being numbered, instead of using non-intuitive characters.

The picture of the dialog shows shortcut keys for the two buttons, and the difference between a direct action and showing a new dialog in the popup menu.

It feels like a lot of work just for looking better, especially considering having to do that in English, Dutch, French, Spanish, Portuguese and Korean for this app, but I believe it adds to the level of professionalism and ease of use.
Last edited by Erwin69; Apr 4th, 2025 at 11:30 AM.
-
Apr 4th, 2025, 11:17 AM
#1117
Hyperactive Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
And now I've posted this, I see that there is some non-consistency in the texts for the "Quick Lists"...
-
Apr 4th, 2025, 06:51 PM
#1118
Addicted Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
Slightly off topic but I've always written my own user interfaces from scratch because it insures ultimate consistency & flexibility. And I also disagree with Microsoft regarding the look & feel of my applications .
-
Apr 4th, 2025, 08:16 PM
#1119
Hyperactive Member
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by SomeYguy
Slightly off topic but I've always written my own user interfaces from scratch because it insures ultimate consistency & flexibility. And I also disagree with Microsoft regarding the look & feel of my applications  .
Back in the days, I think the UI guidelines for "office apps" made sense, and I try to follow these guidelines for my business apps still today. However these days they seem to have forgotten "office workers" and think everything is done on tablets of smartphones... These are nice to look at things, but for the actual work, it's still better / more efficient to use PC's with large size screens!
It started with losing a large amount of valuable screen space on ever growing ribbon bars. And have you seen the ridiculously large color picker that they implemented in the latest versions of the Office apps? I'm getting older, so I do like good visibility but this is getting crazy!
-
Apr 4th, 2025, 08:29 PM
#1120
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by SomeYguy
Slightly off topic but I've always written my own user interfaces from scratch because it insures ultimate consistency & flexibility. And I also disagree with Microsoft regarding the look & feel of my applications  .
Not off topic at all. This thread is to showcase VB6 developer's different styles and you'll see a complete variety of designs here. Post your latest or older designs. You've seen mine and they aren't anyone's style but my own. I've seen Windows programs go from trad. forms through a Windows for Tele-Tubbies style onto the rather poor desktop experience in Win 8 and onto the increasingly bland style we have today. Oh well.
In Erwin's menus above, I realise the rule makes sense but all I see is too many ..., too many by far. That is not your fault but the fault of the style rule. I think we can safely ignore a rule at time if it leads to something that does not look 'right'.
That is of course, only my opinion.
https://github.com/yereverluvinunclebert
Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|