私のアプリケーションはかなり行儀の良い Windows 市民なので、それを Windows Vista/7 に移植するときに、カスタム ファイル形式の関連付けコードをDefault Programs API のサポートに置き換えました。ただし、アプリケーションのアンインストーラーを作成しようとしたときに問題が発生しました。既定のプログラムAPIを介してファイル形式の関連付けを削除する方法がないようです。
IApplicationAssociationRegistration::ClearUserAssociations を呼び出そうとしましたが、実際には他のアプリケーションの関連付けを含むすべての関連付けが削除され、OS のデフォルト状態が完全に復元されます (これはもちろん受け入れられません)。
IApplicationAssociationRegistration::SetAppAsDefaultを呼び出して、ファイル形式の関連付けを以前の「所有者」に戻そうとしましたが、OS がサポートしていない多くの固有のファイル形式をアプリケーションが処理し、以前の「所有者」が存在しないため、役に立ちません。Windows では、空の文字列を SetAppAsDefault に渡すことはできません...
それで、私は何をしますか?良い解決策はありますか?