Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si está utilizando una clase, un módulo o una estructura que tiene miembros de tipos enteros sin signo, puede acceder a estos miembros con Visual Basic.
Para llamar a una función de Windows que adopta tipos sin signo
Use una instrucción Declare para indicar a Visual Basic qué biblioteca contiene la función, cuál es su nombre en esa biblioteca, cuál es su secuencia de llamadas y cómo convertir cadenas al llamarla.
En la
Declare
declaración, useUInteger
,ULong
,UShort
oByte
según corresponda para cada parámetro con un tipo sin signo.Consulte la documentación de la función de Windows que está llamando para buscar los nombres y valores de las constantes que usa. Muchos de estos se definen en el archivo WinUser.h.
Declare las constantes necesarias en el código. Muchas constantes de Windows son valores sin signo de 32 bits y debe declarar estos
As UInteger
.Llame a la función de la manera normal. En el ejemplo siguiente se llama a la función
MessageBox
de Windows , que toma un argumento entero sin signo.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
Puede probar la función
messageThroughWindows
con el código siguiente.Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
Precaución
Los
UInteger
,ULong
,UShort
ySByte
tipos de datos no forman parte de la Language Independence and Language-Independent Components (CLS), por lo que el código compatible con CLS no puede consumir un componente que los use.Importante
Realizar una llamada a código no administrado, como la interfaz de programación de aplicaciones (API) de Windows, expone el código a posibles riesgos de seguridad.
Importante
Llamar a la API de Windows requiere permiso de código no administrado, lo que puede afectar a su ejecución en situaciones de confianza parcial. Para obtener más información, consulte SecurityPermission y Permisos de acceso de código.