値が DLL 関数によって変更される引数は、ByRef キーワード を使用して宣言する必要があります。
この例では、現在のカーソル位置を取得するために、user32.dll の GetCursorPos 関数を使用しています。
<Dll( "user32.dll" )> Public Interface IUserDll32Functions Function GetCursorPos( ByRef point As Point) As Integer End Interface
Public Sub Main() Dim user32Functions As IUserDll32Functions = DllCall.CreateAgentDllCall( Of IUserDll32Functions)() Dim point As Point user32Functions.GetCursorPos(point) MsgBox( "cursor position = (" & point.X & ", " & point.Y & ")" ) End Sub