Sdílet prostřednictvím


Jak: volání funkce systému Windows, který převezme nepodepsané typy (Visual Basic)

Pokud zabírají třída, modulu nebo struktura, která má členy celé číslo bez znaménka typy přístup těchto členů s Visual Basic.

Volání funkce systému Windows, která má nepodepsaný typ.

  1. Použití Prohlásit prohlášení zjistit Visual Basic knihovna, která obsahuje funkci, její název je v této knihovně, je jeho volací posloupnost a převodu řetězce při volání je.

  2. V Declare prohlášení použití UInteger, ULong, UShort, nebo Byte pro každý parametr nepodepsané typu.

  3. Funkce systému Windows, který voláte najít názvy a hodnoty konstanty, které používá dokumentaci.Mnohé z těchto jsou definovány v souboru WinUser.h.

  4. Definovat nezbytné konstanty v kódu.Mnoho Windows konstanty jsou 32bitové hodnoty bez znaménka a by měla deklarovat tyto AsUInteger.

  5. Volání funkce normálním způsobem.Následující příklad volání funkce systému Windows MessageBox, který trvá argument číslo bez znaménka.

    Public Class windowsMessage
        Private Declare Auto Function mb Lib "user32.dll" Alias "MessageBox" (
            ByVal hWnd As Integer, 
            ByVal lpText As String, 
            ByVal lpCaption As String, 
            ByVal uType As UInteger) As Integer
        Private Const MB_OK As UInteger = 0
        Private Const MB_ICONEXCLAMATION As UInteger = &H30
        Private Const IDOK As UInteger = 1
        Private Const IDCLOSE As UInteger = 8
        Private Const c As UInteger = MB_OK Or MB_ICONEXCLAMATION
        Public Function messageThroughWindows() As String
            Dim r As Integer = mb(0, "Click OK if you see this!", 
                "Windows API call", c)
            Dim s As String = "Windows API MessageBox returned " &
                 CStr(r)& vbCrLf & "(IDOK = " & CStr(IDOK) &
                 ", IDCLOSE = " & CStr(IDCLOSE) & ")"
            Return s
        End Function
    End Class
    

    Můžete vyzkoušet funkce messageThroughWindows s následujícím kódem.

    Public Sub consumeWindowsMessage()
        Dim w As New windowsMessage
        w.messageThroughWindows()
    End Sub
    
    Poznámka k upozorněníUpozornění

    UInteger, ULong, UShort, A SByte datové typy nejsou součástí Specifikace CLS (Common Language Specification) (CLS), takže kód kompatibilní se specifikací CLS nesmí zabírat součást, která je používá.

    Poznámka k zabezpečeníPoznámka k zabezpečení

    Volání na nespravovaný kód, jako například Windows application programming interface (API) poskytuje kód potenciálním bezpečnostním rizikům.

    Poznámka k zabezpečeníPoznámka k zabezpečení

    Volání rozhraní API systému Windows vyžaduje oprávnění nespravovaný kód, které by mohly ovlivnit jeho spuštění v situacích částečné důvěryhodnosti.Další informace naleznete v tématu SecurityPermission a Oprávnění přístupu ke kódu.

Viz také

Úkoly

Názorný postup: Volání rozhraní API systému Windows (Visual Basic)

Referenční dokumentace

Souhrn typu dat (Visual Basic)

Typ dat Integer (Visual Basic)

Typ dat UInteger

Prohlásit prohlášení