I am working on a software product that goes waaaay back. Part of our source code is a project that builds baseclasses. This is supposedly a project that ships with the Windows SDK and is used for developing apps that reference DirectShow.
Unfortunately the version we have checked in to our repository is out of date and issues many warnings when we build (all related to warning C4996: 'GetVersionExW': was declared deprecated
).
Personally, I cannot find any information about how to find the newest (or indeed any) version of this little nugget of Windows goodness. As recently as a few days ago Microsoft Learn published a tutorial about this very topic (https://learn.microsoft.com/en-us/windows/win32/directshow/directshow-base-classes). But, it is essentially useless.
For example, if I click here: https://learn.microsoft.com/en-us/windows/win32/directshow/using-the-directshow-base-classes it tells me:
The base class library is provided as a SDK sample in the Microsoft
Windows Software Development Kit (SDK)
(https://go.microsoft.com/fwlink/p/?linkid=62332). The exact location
depends on the version of the SDK that you have installed, but the
relative path is:
(SDK samples root)DirectShowBaseClasses
I have Visual Studio 2022 installed and there is no such path in its directory tree, nor in C:Program Files (x86)Windows Kits. However, if I click on the link quoted, it sends me to a page that basically tells me that all I need to do to get the Windows SDK is download Visual Studio. Hmmmm….
Does anyone know how to get a contemporary version of the DirectShow base classes? Microsoft is not being very helpful on this point.
2
Answers
This is a classic Microsoft: Moving things around but failing to update references.
If you navigate to DirectShow sample apps, you’ll find the link to the new GitHub home under Windows-classic-samples/Samples/Win7Samples/multimedia/directshow/, including the baseclasses directory.
Since you are explicitly asking for a "contemporary" version of the DirectShow base classes, that’s what the GitHub repository contains. They haven’t been (to my knowledge) updated since. DirectShow is in maintenance mode, and Microsoft encourage clients to use more recent technologies instead (such as Microsoft Media Foundation or the Windows Runtime types under the
Windows.Media.Capture
namespace).For this reason I copied the directshow baseclasses and included them in the project, when I implemented GraphStudioNext. I didn’t touch the project in a while but maybe this helps: https://github.com/cplussharp/graph-studio-next/tree/master/baseclasses
PS: I just saw, Roman has a more updated version of the base classes: https://alax.info/blog/2157