VB6でプログラムを作っていました。インターネットのページで、右クリックした画像を自動的に指定したフォルダに保存するプログラムです。動作自体は、けっこう簡単にできたのですが、すでに同名ファイルが存在した場合に、既存の画像を表示して「どうする?上書きする?」と確認しようとしました。Imageコントロールや、PictureBoxコントロールを使って画像を表示させようと考えましたが、こいつらってpng形式を表示できないんですね。
APIを使って面倒くさいことしたり、Webブラウザ系のコントロールを使ったりすれば表示できるんですけど、なんか、そこまで凝ったことをする気もなくて。要するに画像を確認できればいいわけで。見せ方は何だっていいんです。最初はGVで表示させようかとも考えましたけど、ここはひとつ、Windows標準の「画像とFAXビューワ」を使ってみようと思いました。そういえば、あれを起動するにはどうしたらいいんだろう。
ググったらすぐ見つかりました。
Shell "Rundll32.exe" & " Shimgvw.dll,ImageView_Fullscreen C:\001.png"
みたいな感じです。
ちと悩んだのが ImageView_Fullscreen という指定。単語の意味をそのまま解釈すれば フルスクリーン(最大化) でプレビューを表示せよ、と。そういう指示なのかなぁ、と。最大化状態じゃなくて、ウィンドウ状態で表示するのなら、じゃぁ、何か別の指定方法があるのかなぁ、と。ImageView_Fullscreen って、もしかして定数?じゃぁ、0とか1とか、かたっぱしから指定してみて、どうなるか確認してみようかなぁ、と・・・
定数じゃありませんでした。レジストリに指定されている、ビュワーの動作を表していたんですね。ほかにも、印刷させる指示もありました。「それじゃ、ウィンドウ状態で起動するにはどうするんだろう?」と再び悩みましたが、何てことはありません。ウィンドウ状態で終了させれば、次回もウィンドウ状態で起動します。前回の状態を記憶しているんですね。
ということで、備忘録でした。