I don’t have an XP machine handy. If I use the Windows API Codepack to do something new to Vista/Win7 (e.g. “TaskDialog”) in C#, how does it cope with running on Windows XP machines?
If I use the Codepack, have I effectively made my application only support Vista and later versions of Windows?
If you look into “TaskDialog.cs”, you will find that TastDialog’s constructor includes the following lines:
If you only include a reference to the Windows API Code Pack assembly, you will be fine. But using a feature which is not present on the OS currently running your application will throw an exception. To check if a feature is safe to call (i.e. supported on the current OS) most classes include a static
IsPlatformSupportedproperty.So you could check
TaskDialog.IsPlatformSupportedfirst and callMessageBox.Show()instead if your OS doesn’t support TaskDialogs.