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 - 最終更新日: 2016/09/29 - リビジョン: 1

フィードバック