概要
New-Class.ps1 を使い、PowerShell から Win32API を呼び出します。
用例
Beep 関数を使って音を鳴らします。
PS> New-Class Class11 {
>> PInvokeMethod public, static stdcall bool kernel32.dll Beep([UInt32], [UInt32])
>> }
>>
PS> [Class11]::Beep(262, 500)
方法
PInvokeMethod は次のように指定します。
PInvokeMethod <属性> <呼び出し規約> <戻り値の型> <ライブラリ名> <メソッド名> <パラメータ型リスト> <キャラクタセット> <エントリ名>
<属性> には、static を含める必要があります。Win32API はオブジェクトインスタンスを受け取らないからです。
<呼び出し規約> は、ほとんどの場合 stdcall で構いません。特に指定のある場合は変更してください。
<ライブラリ名> には、その API 関数が収められているダイナミックリンクライブラリを指定します。
<メソッド名> は、通常、その API 関数と同じものを使ってください。もし別の名前を使いたい場合には、<エントリ名> に API 関数の名前を指定してください。
<キャラクタセット> は、auto, ansi, unicode から選択してください。デフォルトは auto です。