Útmutató: Nem aláírt típusokat használó Windows-függvény meghívása (Visual Basic)

Ha olyan osztályt, modult vagy struktúrát használ, amely nem aláírt egész típusú tagokkal rendelkezik, ezeket a tagokat a Visual Basic használatával érheti el.

Nem aláírt típusú Windows-függvény meghívása

  1. Deklarált utasítással közölheti a Visual Basicgel, hogy melyik kódtár tartalmazza a függvényt, mi a neve az adott tárban, mi a hívássorozata, és hogyan konvertálhatja a sztringeket híváskor.

  2. Az utasításban használja UIntegera Declare , ULong, UShortvagy Byte a megfelelőt az aláíratlan típusú paraméterekhez.

  3. A meghívandó Windows-függvény dokumentációjában megtalálhatja a használt állandók nevét és értékeit. Ezek közül sok a WinUser.h fájlban van definiálva.

  4. Deklarálja a szükséges állandókat a kódban. Számos Windows-állandó 32 bites aláíratlan érték, ezért ezeket As UIntegerdeklarálnia kell.

  5. Hívja meg a függvényt a szokásos módon. Az alábbi példa meghívja a Windows függvényt MessageBox, amely egy aláíratlan egész szám argumentumot vesz igénybe.

    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
    

    A függvényt messageThroughWindows az alábbi kóddal tesztelheti.

    Public Sub consumeWindowsMessage()
        Dim w As New windowsMessage
        w.messageThroughWindows()
    End Sub
    

    Figyelemfelhívás

    A UInteger, ULong, UShortés SByte adattípusok nem részei a Language Independence and Language-Independent Components (CLS)-nek , így a CLS-kompatibilis kód nem tudja felhasználni azokat használó összetevőket.

    Fontos

    Ha nem felügyelt kódra , például a Windows alkalmazásprogramozási felületére (API) hív meg, a kód potenciális biztonsági kockázatoknak teszi ki.

    Fontos

    A Windows API meghívásához nem felügyelt kódengedély szükséges, ami befolyásolhatja a részleges megbízhatósági helyzetekben történő végrehajtását. További információkért lásd SecurityPermission és kódhozzáférés engedélyeit.

Lásd még