![]()
図のようなバージョン情報画面を表示するためのAPIとしてShellAboutが用意されている。
このAPIは自分が開発したアプリケーションで利用できるように作られている。図の例であれば「aaaaのバージョン情報」やCopyrightの下に「bbbbb」というような表示があったり、レジストリエディタのアイコンが使われている。これらを自由に指定できる。
![]()
このShellAboutはWindows 95以降でサポートされているのでOS依存性もなく使いやすい。しかしながら、OSによって見た目が大きく変わるのが難点。
図はWindows VistaでのShellAbout。
#include "shellapi.h"
bool Test(void)
{
BOOL ret;
HICON hIcon;
SHFILEINFO sShFileInfo;
//アイコンの読み込み
::ZeroMemory(&sShFileInfo,sizeof(SHFILEINFO));
::SHGetFileInfo(_T("c:\\windows\\regedit.exe"),0,&sShFileInfo,sizeof(SHFILEINFO),SHGFI_ICON | SHGFI_LARGEICON);
hIcon = sShFileInfo.hIcon;
if(hIcon == NULL)
return false;
ret = ::ShellAbout(NULL,_T("aaaa"),_T("bbbbbb"),hIcon);
//アイコンの破棄
::DestroyIcon(hIcon);
return ret ? true : false;
}
