How to: Call Windows APIs (Visual Basic)

This example defines and calls the MessageBox function in user32.dll and then passes a string to it.

Example

This code example is also available as an IntelliSense code snippet. In the code snippet picker, it is located in Visual Basic Language. For more information, see How to: Insert Snippets Into Your Code (Visual Basic).

' Defines the MessageBox function. 
Public Class Win32
    Declare Auto Function MessageBox Lib "user32.dll" ( _
        ByVal hWnd As Integer, ByVal txt As String, _
        ByVal caption As String, ByVal Type As Integer) _
        As Integer 
End Class 

' Calls the MessageBox function. 
Public Class DemoMessageBox
    Public Shared Sub Main()
        Win32.MessageBox(0, "Here's a MessageBox", "Platform Invoke Sample", 0)
    End Sub 
End Class

Compiling the Code

This example requires:

  • A reference to the System namespace.

Robust Programming

The following conditions may cause an exception:

  • The method is not static, is abstract, or has been previously defined. The parent type is an interface, or the length of name or dllName is zero. (ArgumentException)

  • The name or dllName is Nothing. (ArgumentNullException)

  • The containing type has been previously created using CreateType. (InvalidOperationException)

See Also

Tasks

Walkthrough: Calling Windows APIs

Concepts

A Closer Look at Platform Invoke

Platform Invoke Examples

Consuming Unmanaged DLL Functions

Defining a Method with Reflection Emit

Other Resources

COM Interop