我的应用程序是一个行为良好的 Windows 公民,因此当我将其移植到 Windows Vista/7 时,我将自定义文件格式关联代码替换为对默认程序API 的支持。但是,我在尝试为我的应用程序制作卸载程序时遇到了一个问题——似乎无法通过默认程序API删除文件格式关联。
我试图调用 IApplicationAssociationRegistration::ClearUserAssociations 但它实际上删除了所有关联,包括其他应用程序的关联 - 完全恢复操作系统的默认状态(这当然是不可接受的)。
我尝试调用IApplicationAssociationRegistration::SetAppAsDefault将文件格式关联返回给以前的“所有者”——但这没有帮助,因为我的应用程序处理了许多操作系统不支持的独特文件格式,并且没有以前的“所有者”。并且 Windows 不允许将空字符串传递给 SetAppAsDefault...
那我该怎么办?有什么好的解决办法吗?