Subscribed unsubscribe Subscribe Subscribe

WindowsMobileでC#からAPIを叩く

C#からWindows APIを利用したい。
ただし以下の制限で。

具体的に利用したいのはだいたいこんな関数。

  • CreateEvent
  • ResetEvent
  • SetEvent

どうすればいいか調べてみたらP/Invokeなる仕組みを使うらしい。
ざっくりと以下のようなこと使うためにはするようだ。

  • DllImportで対象となるdllを指定
  • 呼び出す関数の宣言を記述

例えばCreateEventだとこんな感じ。

    [DllImport("Coredll.dll", SetLastError = true)]
    private static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);

で、上記のような定義をどう書いたらいいか困ったときは、 http://pinvoke.net を参照するといいかもしれない。
ただ、Windows Mobileゆえか不明だけど、kernel32.dllではなく、Coredll.dllを指定する必要があった。