WinAPIをP/Invokeするときに正しく動作するコードを教えてくれるサイト

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

C#やVB.NETでWinAPIを使用する際にDllImportを呼び出す必要があるのですが、WinAPIの型とC#の型では違う所があったりと書くのは少々面倒なところがあります。
そんな悩みを解決してくれるのがPInvoke.netというサイト

P/Invoke.netとは?

WinAPIを使用するときに貼り付けるソースコードをずらずらっと並べられているサイトで、WinAPIを呼び出したいときにはとても役に立つサイトです。
PINVOKE.NET
http://www.pinvoke.net/index.aspx
pinvoke

使い方

使い方はとってもシンプル。ただやりたい事を実行してくれるメソッド名(GetWindowLong)は予め知っておく必要があります。
その辺りについては調べておきましょう
例えばウィンドウの状態を取得するGetWindowsLongのソースコードを知りたい場合、まず検索ボックスにメソッド名を入力します
pinvoke1
そしたら関連するメソッドとともに検索結果に出てきますので、メソッド名をクリック
pinvoke2
 
メソッドに関する情報とともにソースコードが出てきました。これを開発環境にコピペするだけでいいです。
pinvoke3
ソースコードは正しく動作するように属性をつけてくれたり正しい型にしてくれていたりとかなり信頼性の高いものとなっています。

[DllImport("user32.dll", SetLastError=true)]
static extern System.UInt32 GetWindowLong(IntPtr  hWnd, int nIndex);
// or
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetWindowLong(IntPtr window, int index);

また、メソッドのほかにも構造体やデリゲートなど、WinAPIに関することは何でも出てきます。
Visual Studioに組み込めるアドオンもアルようなのでこれで開発が一弾と捗るようになるかもしれません。