Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u een klasse, module of structuur gebruikt met leden van niet-ondertekende gehele getallen, hebt u toegang tot deze leden met Visual Basic.
Een Windows-functie aanroepen die een niet-ondertekend type gebruikt
Gebruik een Declare-instructie om Visual Basic te vertellen welke bibliotheek de functie bevat, wat de naam ervan in die bibliotheek is, wat de aanroepvolgorde is en hoe u tekenreeksen converteert wanneer u deze aanroept.
Gebruik in de
Declare
instructieUInteger
,ULong
,UShort
ofByte
indien van toepassing voor elke parameter met een unsigned type.Raadpleeg de documentatie voor de Windows-functie die u aanroept om de namen en waarden te vinden van de constanten die worden gebruikt. Veel van deze zijn gedefinieerd in het bestand WinUser.h.
Declareer de benodigde constanten in uw code. Veel Windows-constanten zijn 32-bits niet-ondertekende waarden en u moet deze
As UInteger
declareren.Roep de functie op de normale manier aan. In het volgende voorbeeld wordt de Windows-functie
MessageBox
aangeroepen, waarbij een niet-ondertekend geheel getal wordt gebruikt.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
U kunt de functie
messageThroughWindows
testen met de volgende code.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Waarschuwing
De
UInteger
,ULong
,UShort
enSByte
gegevenstypen maken geen deel uit van de Language Independence and Language-Independent Components (CLS), zodat CLS-compatibele code geen component kan gebruiken die ze gebruikt.Belangrijk
Als u een aanroep maakt naar onbeheerde code, zoals de Api (Windows Application Programming Interface), wordt uw code blootgesteld aan mogelijke beveiligingsrisico's.
Belangrijk
Voor het aanroepen van de Windows-API is een niet-beheerde codemachtiging vereist, wat van invloed kan zijn op de uitvoering ervan in situaties met gedeeltelijke vertrouwensrelaties. Zie en SecurityPermission voor meer informatie.