Skip to main content

Legacy Update News

Learn more about what we’re doing at the Legacy Update project.

  • Published:

Hi everyone! I’m working on Legacy Update 1.12, where I’ve made a pretty major under-the-hood change. Now seems like a good time to release this for beta testing.

I’ve refactored the ActiveX control code to be built with the open-source MinGW compiler, rather than Microsoft’s Visual Studio 2008 (and a bit of 2010, and 2017, and 2022… you can see why I wanted to get rid of this).

Windows is heavily built around the Component Object Model. It’s a neat system where components of the OS can easily talk to each other, and third-party apps can extend the OS with new features. ActiveX is one of systems built on top of COM. With the great power of COM comes great amounts of code to interface with it. Microsoft “simplified” this for developers with Active Template Library, which generates most of the code for you through copious amounts of compiler magic. This relies on non-standard features of the Visual C++ compiler, and at any rate I was feeling paranoid about whether all the code it generates is even necessary.

So I started removing the ATL magic, and started writing that code by hand. It worked really well, and it reduced the combined size of the 32-bit and 64-bit ActiveX control dlls by 18%. Thanks to the wonders of file compression, the setup exe download is also now 24% smaller. Visual C++ 2008 (for 32-bit) and 2017 (for 64-bit) produce fairly different code, while our new streamlined MinGW toolchain is identical between both 32-bit and 64-bit (aside from the machine instructions of course), so they compress together really well.

This allowed me to better understand how ActiveX works, which made me realise there was a fair amount of dead code - a single line of ATL template magic could end up compiling thousands of lines of code that weren’t even being used. I also got the impression that a lot of what I needed to implement simply hasn’t been done with MinGW before. Perhaps the only project that does so is Wine. Hopefully I’m wrong?

Read more →

  • Published:

Hopefully most of you won’t need to worry about this, but if you’re seeing Legacy Update say it’s been blocked by your firewall, there’s some explanation of why here. We’re doing our best to get this fixed, but it’s been ongoing for 2 months now.

  • Published:

Windows Update on Windows 7 says “Windows could not search for new updates: An error occurred while checking for new updates for your computer. Error(s) found: Code 80248015.”

Earlier this week, users of Legacy Update started reporting errors when checking for updates on Windows 7. The most common variant of this is error 80728015.

Rather than an error code, some users instead got a very misleading error dialog:

Windows Update cannot currently check for updates, because the service is not running. You may need to restart your computer.

We determined the cause to be a configuration file on Microsoft’s servers that reached its specified expiry date. The issue only affects installations of Windows that are enrolled in Microsoft Update, which enables Windows Update to receive updates for products such as Microsoft Office, Visual Studio, and SQL Server.

Microsoft corrected the issue two days later by bumping the expiry date from 2025-07-01 to 2033-07-01.

For more details about what happened, see my blog post:

  • Published:

A fair few people asked me what is going on with Microsoft’s recent announcement that drivers will be deleted from Windows Update, so I wrote up some notes about it: