Como: Chamar uma função do Windows que obtém tipos sem-sinal (Visual Basic)
Se você está consumindo uma classe, um móduloou uma estrutura que tenha membros de tipos sem sinal inteiro , 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 a biblioteca mantém a função, qual é seu nome nessa biblioteca, o que é sua sequência de chamada e como converter seqüências de caracteres ao chamar o proprietário.
No Declare demonstrativo, use 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. Muitos constantes do Windows são de 32 bits de-unsigned valores e você deve declarar essas As UInteger.
Chame a função da maneira normal. O exemplo a seguir chama a funçãodo WindowsMessageBox, que leva umargumentode inteironão assinado de.
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 teste 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 CLS (Common Language Specification) (CLS), caso CLS-código compatível com não pode consumir um componente que os utiliza.
Observação sobre segurança Fazendo uma chamada para o código não gerenciado, como o Windows aplicativo programming interface (API) expõe o seu código para possíveis riscos de segurança .
Observação sobre segurança Chamar a API do Windows requer o código não gerenciado permissão, que pode afetar sua execução no parcial-situações de confiança. For more information, see SecurityPermission and Permissões de acesso de código.
Consulte também
Tarefas
Como: otimizar o armazenamento de inteiros positivos com tipos sem-sinal (Visual Basic)
Passo a passo: Chamando APIs do Windows (Visual Basic)
Referência
Resumo de tipo de dados (Visual Basic)