実行ファイル、DLL、アイコンファイルのいずれかから大きいアイコンまたは小さいアイコンを取得

ツールバーのイメージに使用
ToolStrip のボタンはデフォルトでイメージな為、
アイコン画像を用意する事が必要になります。

既存のシステムファイル( Shell32.dll 等 ) に含まれるアイコンを使用できます
	' ******************************************************
	' アイコンの取得
	' ******************************************************
	<DllImport("shell32.dll")> _
	Public Shared Function _
	ExtractIconEx( _
	 ByVal lpszExeFileName As String, _
	 ByVal nIconIndex As Integer, _
	 ByVal phiconLarge As System.IntPtr(), _
	 ByVal phiconSmall As System.IntPtr(), _
	 ByVal nIcons As UInt32) As UInt32
	End Function

	' ******************************************************
	' フォームの初期化
	' ******************************************************
	Private Sub Form1_Load(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles MyBase.Load

		Me.Text = "IME(Input Method Editor) API のチェック"

		Dim hL As System.IntPtr() = New System.IntPtr(1) {}
		Dim hS As System.IntPtr() = New System.IntPtr(1) {}

		ExtractIconEx("SHELL32.dll", 22, hL, hS, 1)
		Me.品詞の取得.Image = (System.Drawing.Icon.FromHandle(hS(0))).ToBitmap()

		ExtractIconEx("SHELL32.dll", 68, hL, hS, 1)
		Me.登録.Image = (System.Drawing.Icon.FromHandle(hS(0))).ToBitmap()

	End Sub
ExtractIconEx は、一度に複数のアイコンハンドルを取得する事ができます
( 大きいアイコンと小さいアイコンの両方 )。
もちろん、↑例のように一つのみ取得する場合も使い方は同じです。

但しこの API は一覧を取得する事を想定しているので、
nIconIndex パラメータで -1 を指定し、phiconLarge と phiconSmall 
の両方のパラメータでNULL を指定すると、指定されたファイル内の
アイコンの総数が返ります

取得された値は Windows API の「ハンドル」なので、スタティックな
System.Drawing.Icon.FromHandle メソッドで使用可能な Icon オブジェクト
に変換します。その後、ToBitmap メソッドで Image プロパティにセット
可能な Bitmap オブジェクトに変換します。