• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルに関連付けられているアイコンについて)

ファイルに関連付けられているアイコンの取得についての質問

このQ&Aのポイント
  • ファイルに関連付けられているアイコン取得について質問です。開発環境は、OS:XP、Visual Studio 2005、言語:C、C++です。
  • SHGetFileInfo()を使ってアイコンを取得する方法を調べましたが、取得したアイコンが期待したものではないようです。架空のファイル名を使用しても同じアイコンが表示されます。
  • 質問者は、SHGetFileInfo()の戻り値が1であることに気付きました。間違っている部分があるのかどうかを知りたいとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SHFILEINFO Fis; SHGetFileInfo("C:\\WINDOWS\\notepad.exe",0,&Fis,sizeof(SHFILEINFO),SHGFI_ICON | SHGFI_SMALLICON); DrawIcon(hdc, 10, 10, Fis.hIcon); SHGetFileInfoの第一引数のファイル名でパス区切りに/を用いた場合の動作は未定義。 (システムにインストールされているshell32.dllのバージョンに依存する)

noname#154655
質問者

お礼

出来ました。 「/」ではなく、「\\」じゃないといけなかったんですね。 ありがとうございます。

その他の回答 (1)

回答No.2

追記。 >SHGetFileInfo()の戻り値は、「1」でした。 >間違っている所があるのでしょうか? uFlagsにSHGFI_PIDLを付けた場合、SHGetFileInfoの第一引数は「ファイル名のアドレスではなく、ITEMIDLIST構造体のアドレスを指定する」事になっているので、質問文にある呼び出しでは何が起きるか判らない。(与えたファイル名をITEMIDLIST構造体と思い込んで処理するので、何が起きるか判らない)

関連するQ&A