Nasıl yapılır: İmzalanmamış Türler İsteyen Bir Windows İşlevi Çağırma (Visual Basic)
İmzasız tamsayı türlerinin üyelerine sahip bir sınıf, modül veya yapı kullanıyorsanız, Visual Basic ile bu üyelere erişebilirsiniz.
İmzasız bir tür alan bir Windows işlevini çağırmak için
deyiminde
Declare
, işaretsiz bir türe sahip her parametre için uygun olan ,ULong
,UShort
veyaByte
kullanınUInteger
.Kullandığı sabitlerin adlarını ve değerlerini bulmak için çağırdığınız Windows işlevinin belgelerine bakın. Bunların çoğu WinUser.h dosyasında tanımlanır.
Kodunuzda gerekli sabitleri bildirin. Birçok Windows sabiti 32 bit imzasız değerlerdir ve bunları
As UInteger
bildirmeniz gerekir.İşlevi normal şekilde çağırın. Aşağıdaki örnekte, işaretsiz bir tamsayı bağımsız değişkeni alan Windows işlevi
MessageBox
çağrılır.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
İşlevi
messageThroughWindows
aşağıdaki kodla test edebilirsiniz.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Dikkat
, , ve veri türleri Dil Bağımsızlığı ve Dilden Bağımsız Bileşenler'in (CLS) parçası değildir, bu nedenle CLS uyumlu kod bunları kullanan bir bileşeni kullanamaz.
SByte
UShort
ULong
UInteger
Önemli
Windows uygulama programlama arabirimi (API) gibi yönetilmeyen koda çağrı yapmak kodunuzu olası güvenlik risklerine maruz bırakır.
Önemli
Windows API'sini çağırmak, kısmi güven durumlarında yürütülmesini etkileyebilecek yönetilmeyen kod izni gerektirir. Daha fazla bilgi için bkz SecurityPermission . ve Kod Erişim İzinleri.