Postupy: Volání funkce systému Windows, která přebírá nepřiřazené typy (Visual Basic).
Pokud používáte třídu, modul nebo strukturu, která obsahuje členy bez znaménka, můžete k těmto členům přistupovat pomocí jazyka Visual Basic.
Volání funkce Systému Windows, která přebírá nepodepsaný typ
Příkaz Declare použijte k tomu, abyste sadě Visual Basic řekli, která knihovna obsahuje funkci, jaký je její název v této knihovně, jaká je její volající sekvence, a jak při volání převést řetězce.
Declare
V příkazu použijteUInteger
, ,ULong
UShort
neboByte
podle potřeby pro každý parametr s nepodepsaným typem.Projděte si dokumentaci k funkci Windows, kterou voláte, a vyhledejte názvy a hodnoty konstant, které používá. Mnohé z nich jsou definovány v souboru WinUser.h.
Deklarujte potřebné konstanty v kódu. Mnoho konstant Systému Windows je 32bitových nepodepsaných hodnot a měli byste je
As UInteger
deklarovat .Volejte funkci normálním způsobem. Následující příklad volá funkci
MessageBox
Systému Windows, která přebírá celočíselné argumenty 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
Funkci
messageThroughWindows
můžete otestovat pomocí následujícího kódu.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Upozornění
UInteger
Rozhraní CLS (Language Independence and Language-Independent Components) nejsou součástí datových typů ,ULong
UShort
SByte
takže kód kompatibilní se specifikací CLS nemůže využívat komponentu, která je používá.Důležité
Volání nespravovaného kódu, například rozhraní API (Application Programming Interface) pro Windows, zpřístupňuje kód potenciálním bezpečnostním rizikům.
Důležité
Volání rozhraní API systému Windows vyžaduje nespravované oprávnění ke kódu, které může ovlivnit jeho spuštění v situacích s částečnou důvěryhodností. Další informace najdete v tématu SecurityPermission a oprávnění pro přístup ke kódu.