Visual Studio でコンパイルされた C++ で GUI アプリへのショートカットを作成しようとしています。IShellLink::SetIconLocationメソッドを使用して、アイコン インデックスを取得するリンクを作成しています。しかし、問題は、.res ファイルからアイコン ID しか持っていない場合、どうすればこのインデックスを取得できるかということです。
#define IDR_ICON_CLEAR 130
Visual Studio でコンパイルされた C++ で GUI アプリへのショートカットを作成しようとしています。IShellLink::SetIconLocationメソッドを使用して、アイコン インデックスを取得するリンクを作成しています。しかし、問題は、.res ファイルからアイコン ID しか持っていない場合、どうすればこのインデックスを取得できるかということです。
#define IDR_ICON_CLEAR 130
リソース ID に負の値、つまり -130 を使用してみてください。リソース ID でアイコンを取得する方法を説明しているこの 記事をご覧ください。
Windows 95 では、ExtractIcon 関数が拡張され、アイコン インデックスとして負の値を渡すことにより、リソース ID でアイコンを指定することもできるようになりました。つまり、カンマの後に負の数を指定すると、その絶対値がリソース ID として解釈されます。