Using PowerShell, I can do:
$shell = new-object -com Shell.Application
$shell.GetSetting(0x2)
Which correctly returns whether the shell shows extensions for known file types.
Note: see http://msdn.microsoft.com/en-us/library/gg537739(v=VS.85).aspx for a list of flag values that can be passed to GetSetting.
Question: I can get the values, but how would I change them? I looked through the Shell object model, but I’m just not seeing it a matching method to do that.
Not exact answer, but you can edit registry?
For example: