Como chamar uma função do Windows que use tipos não assinados (Visual Basic)
Se você está consumindo uma classe, um módulo ou uma estrutura que tenha membros de tipos inteiro sem sinal, você pode acessar esses membros com Visual Basic.
Para chamar uma função do Windows que leva um tipo não assinado
Use um Instrução Declare para informar ao Visual Basic que biblioteca mantém a função, qual é seu nome nessa biblioteca, o que é a sua seqüência de chamada e como converter seqüências de caracteres quando chamá-lo.
No Declare declaração, uso UInteger, ULong, UShort, ou Byte conforme apropriado para cada parâmetro com um tipo não assinado.
Consulte a documentação para a função do Windows que você está chamando para localizar os nomes e os valores das constantes que ele usa. Muitos deles são definidos no arquivo WinUser. H.
Declare constantes necessárias em seu código. As constantes de Windows muitas são valores não assinados de 32 bits, e você deve declarar essas AsUInteger.
Chame a função da forma normal. O exemplo a seguir chama a função do Windows MessageBox, que usa um argumento de inteiro não assinado.
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
Você pode testar a função messageThroughWindows com o código a seguir.
Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Aviso
O UInteger, ULong, UShort, e SByte tipos de dados não são parte do Independência da linguagem e componentes independentes da linguagem (CLS), para que o código compatível com CLS não pode consumir um componente que usa-los.
Observação de segurança Fazendo uma chamada para código não gerenciado, como, por exemplo, a interface de programação de aplicativo (API) do Windows expõe seu código para possíveis riscos de segurança.
Observação de segurança Chamar a API do Windows requer a permissão de código não gerenciado, que pode afetar sua execução em situações de confiança parcial.Para obter mais informações, consulte SecurityPermission e Permissões de acesso de código.
Consulte também
Tarefas
Instruções passo a passo: chamando APIs do Windows (Visual Basic)
Referência
Resumo do tipo de dados (Visual Basic)