§ ¶Odd requirement for the Set Program Associations UI in Windows 8
Okay, this is another one of those frustrating bugs that took me hours to track down and had a cause so unbelievable I had to check it six times: why the Set Program Associations UI dialog refused to come up for a program in Windows 8, but worked fine on Windows 7 x64.
From what I've been able to tell, the LaunchAdvancedAssociationUI() call in the IApplicationAssociationRegistrationUI interface has a new requirement in Windows 8 that is strange and undocumented. Specifically, the shell verb commands in the ProgIDs that are specified in the program's FileAssocations registration key must point to an executable with a valid CompanyName field in its version block in order to be considered valid. If this executable doesn't exist or the CompanyName field is missing, the ProgID is skipped, and if no valid associations are detected, the call will fail with the HRESULT 80070490. Even more confusing, if there was previously an executable at that location which had CompanyName, the call will succeed and show the cached name instead, so to double-check this you need to rename executables to different names. Basically, if you are having trouble bringing up the Set Program Associations UI dialog, throw something into that version field for it to display.
It'd be interesting if you could outline how you actually track down the root cause of such problems. Do you just trace into the assembly code of the library until you find something, then test hypotheses as they come up?
Might even be an interesting blog post on its own, if you have the time to write something up.
Chris - 21 05 13 - 07:53
They probably just want to continue to do their level best at preventing non-commercial developers
from making anything that works. If you don't have a "company" then you're obviously up to
something no good (i.e. free) which goes against their corporatized philosophy.
Marcus - 24 05 13 - 16:35
As much as I love a good conspiracy theory, I'm pretty sure it's just a bug. Besides, it'd be a pretty lame barrier to entry as you can probably just add a space.
What would be much nastier is if they required a _signed_ executable. That IS a major barrier to entry and IMO it's getting required in a lot of places where it shouldn't. That was what I was afraid of when I first started looking into this, but thankfully it turned out to be a much more easily worked around issue.
Phaeron - 24 05 13 - 16:56
At least for open-source projects you can get a free codesigning certificate from Certum (it's not the simplest, though the main problem is that their site randomly switches from English to Polish while signing up).
ender - 01 06 13 - 03:21
Talking of requiring signed executables... Can you please release an ARM version of VirtualDub that will work on jailbroken Windows RT devices (http://forum.xda-developers.com/showthre..
Dave - 08 06 13 - 12:15
Sorry, too awkward of a target and the lack of codecs wouldn't make VirtualDub that useful anyway.
Phaeron - 24 06 13 - 16:15
Just wanted to say THANKS Avery for providing the world with the fastest and most powerful video editor. Let us know when you can handle Mp4s and WMV1's and this will completely cover many people's needs. :)
dw817 (link) - 17 10 13 - 15:34
... or is it Phaeron ? Anyways, you rock. :D
dw817 (link) - 17 10 13 - 15:37