IShellLink::GetPath メソッドを使用してショートカット ファイルからリンク先のパスを取得できない場合がある

現象
64 ビット版 Windows 上で動作している 32 ビット アプリケーションから IShellLink インターフェイスの GetPath メソッドを使用して、ショートカット ファイルからリンク先のパスを取得することを想定します。
この時、ショートカット ファイルからリンクされた実行ファイルが C:\Program Files ディレクトリ以下にある 64 ビット アプリケーションの場合、取得されるリンク先のパスには C:\Program Files ではなく C:\Program Files (x86) が含まれます。
原因
32 ビット アプリケーションから、C:\Program Files ディレクトリ以下に配置される 64 ビット アプリケーションのリンク先のパスを取得することはできません。
解決方法
C:\Program Files 配下にある 64 ビット アプリケーションのリンク先のパスを取得する際は、64 ビット アプリケーションから IShellLink インターフェイスの GetPath メソッドを実行する必要があります。
状況
32 ビット アプリケーションから 64 ビット アプリケーションのリンク先のパスを取得できない現象は、OS の仕様に基づく動作です。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2909654 - 最終更新日: 09/29/2016 15:29:00 - リビジョン: 4.0

Windows 7 Enterprise, Windows 7 Service Pack 1, Windows 8, Windows 8.1

  • KB2909654
フィードバック