Results 1 to 10 of 10

Thread: [RESOLVED] List/DB with WinAPI functions and supported Windows versions?

  1. #1

    Thread Starter
    Junior Member
    Join Date
    Nov 2021
    Posts
    18

    Resolved [RESOLVED] List/DB with WinAPI functions and supported Windows versions?

    (Not specifically VB6 related, but that's what I'm using so..)

    I've noticed that the "Minimum supported Client/Server" info in the official Microsoft docs has become more and more inaccurate over the years. The oldest OS they ever mention is Windows 2000 even if the function existed before, but to add insult to injury, sometimes they state something even newer like Vista, when it has been supported in XP or 2000, for example MulDiv says XP when it was already in NT3.1, GetAddrInfoExW says Vista even though the page has several remarks about XP.

    Is there any up-to-date database/text file or similar that has a simple compatibility matrix? It's a pain to look this up currently, you have to try to google old code examples and see which OS is mentioned or whatnot.

    Unless I'm missing something important, shouldn't it be relatively easy to build something like this?
    Get a bunch of Windows VMs going, run dumpbin /exports on all the DLLs -> PROFIT! Actually, just getting the DLLs from those installs should be enough...
    But before I get ahead of myself here I thought I make sure nobody else has done the work before, or whether there's some obvious mistake with my idea. The only pitfall I can think of right now is that a function might actually be present on an earlier version than officially announced/supported and be buggy/different there. Anything else I'm missing?

  2. #2
    Fanatic Member
    Join Date
    Feb 2017
    Posts
    858

    Re: List/DB with WinAPI functions and supported Windows versions?

    AFAIK No matrix. Appleman and AllAPI might be a good reference source for
    old OS compatibility. The bigger question is why bother. MS has always owned the OS even though most think NOT until Win10. I doubt a lot of old OSes are still
    being used enough to make it worth the effort.

  3. #3
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,598

    Re: List/DB with WinAPI functions and supported Windows versions?

    Yea, I don't think it's worth the effort to catalog this accurately. The Windows API surface is massive. What is important is that it's accurate enough for most use cases.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  4. #4
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    5,120

    Re: List/DB with WinAPI functions and supported Windows versions?

    https://www.vbforums.com/showthread....ctions-for-VB6

    There is Platform field in the JSON where minimum OS version is encoded. Not sure if these are correct though.

    cheers,
    </wqw>

  5. #5
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: List/DB with WinAPI functions and supported Windows versions?

    I have a "minimum" windows 7 requirement. I abandoned XP compatibility when windows 7 ended its support. that was my "cue" to move up requirement.

    windows xp is 20 years old and a desktop/laptop should not normally last more than 20 years.
    but sure, visual basic 6 and windows 2000/nt/xp where at the same period. so most API information are about that.
    but logically, nobody want to use an old OS with a new computer. you can go back 1-2 OS versions but usually you take the latest when u install your OS.

    its actually harder to find API information for VB6 and windows 7/8/10, that is why we are a bit stuck if not for some members here that contributed with new stuff, like wia, directx, cairo etc.

  6. #6

    Thread Starter
    Junior Member
    Join Date
    Nov 2021
    Posts
    18

    Re: List/DB with WinAPI functions and supported Windows versions?

    Quote Originally Posted by baka View Post
    windows xp is 20 years old and a desktop/laptop should not normally last more than 20 years.
    but sure, visual basic 6 and windows 2000/nt/xp where at the same period.
    heh yeah, asking "why bother about old Windows" in a forum about a programming language that has been superseded 19 years ago seems a little ironic

    But to clarify, I'm aware I'm not targeting an actual user base with this. In fact my program barely has a handful of actual users, and none of them run < Win10. This is a hobby project for shits and giggles, or more precisely, I suddenly felt nostalgic and decided to dig up VB6 and a chat program I wrote as a teenager and give it a little facelift. So I want to target Win2k+ just because. The idea with the compatibility database sprung out of this when looking stuff up. I might start a prototype this evening.

    I guess the only other other reason anyone still uses VB6 aside from hobby today is maintaining mission critical software in some company that keeps everything together. And then you probably want to target modern Windows only.

    VB6 is the COBOL of the 90s.

  7. #7
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: List/DB with WinAPI functions and supported Windows versions?

    its not exactly the same thing.
    VB6 can work in all the windows versions.
    while all windows can not work with the latest hardware.

    but sure. they are equally old and vb6 was created for that era.
    but, with the new api and now with much more powerful cpu, vb6 is actually quite fast compared to todays languages.

    that is true with the old OS as well. but other limitations will make the OS crappy compared to newer ones.

    most API still works. the problem is mostly OCX that are outdated.

  8. #8

    Thread Starter
    Junior Member
    Join Date
    Nov 2021
    Posts
    18

    Re: List/DB with WinAPI functions and supported Windows versions?

    Here's a first attempt. Grabbed some ISOs I had at hand. So the selection is a bit funny. But hey, wanna make sure your app runs on the cancelled Windows Neptune? Got you covered!

    Filter by typing 4+ chars. Self-contained html file, can be saved and used offline. Tested with Firefox only, so if nothing shows up, my Javascript sucks.

    Now the question is, how accurate this is. Does my tooling have bugs and misses functions? How many functions appear earlier than they were announced? Do they work properly? Skimming the data, at least when I tried functions where I know when they appeared, it seemed ok.

    A few random and peculiar finds:
    ReadDirectoryChangesExW first appears in the Longhorn beta (which is pre-reset) and then disappears until Windows 10. It's not surprising that functions were removed from Longhorn, as they had a big reset during development. But it's interesting that the function reappeared in Win10. Is it a naming coincidence, or does it actually work the same way in Longhorn?
    NtGetTickCount apparently disappeared in XP and came back in Longhorn.
    SHAllocShared and friends only existed in XP SP3. The Microsoft docs hint at this by stating "It may be altered or unavailable in subsequent versions."
    A couple i18n/IME related functions like GetConsoleCharType appeared in the Chinese version of NT4.0 but not the German or US one, not even in SP6a, but finally arrived in Win2k.
    Longhorn's console could apparently play sounds via ConsolePlaySound

  9. #9
    PowerPoster
    Join Date
    Feb 2006
    Posts
    24,482

    Re: List/DB with WinAPI functions and supported Windows versions?

    Lots of entrypoints have been around for a long time but only exported by ordinal and not by name at various times.

  10. #10

    Thread Starter
    Junior Member
    Join Date
    Nov 2021
    Posts
    18

    Re: List/DB with WinAPI functions and supported Windows versions?

    I thought about that too but didn't want to open that can of worms. Not relevant to my original goals anyways luckily, it was just interesting to poke around that data once I had it... Might add more versions to it over the next couple weeks.... Maybe also take a stab at 9x.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width