WizHook

Quiero agradecer a Skrol29, el hecho de que haya querido compartir el descubrimiento sobre cómo "activar" el objeto WizHook, ya que sin su ayuda y esfuerzo no hubiera ni siquiera comenzado mi investigación sobre este tema. Desde estas páginas quiero enviarle un cordial saludo.

A partir de la versión 2000 de Access aparece un nuevo objeto (oculto) en la librería de objetos de Access, llamado WizHook. Por que se puede deducir de su nombre - Wiz-Hook, Wi-zard-Hook, algo así como "mediador con los asistentes" - y también por los métodos que utiliza, es un objeto que sirve de enlace entre el código interno de Access y el código externo de los asistentes de Access, los cuales están ubicados en una serie de bases .mde, que se instalan junto con la aplicación de Access. Hasta la versión 97 los elementos de WizHook estaban ubicados dentro del ejecutable de Access como funciones API. Se declaraban de una forma parecida a ésta:

			
Declare Function fEjemplo _
                 Lib "msaccess.exe" _
                 Alias "#888" _
                 ByVal var1 As Long _
                 ByVal var2 As Long) As Long
pero, al parecer, algunas de estas funciones API de Access ya no están disponibles de esta manera en la versión 2000, y en cambio sí lo están como métodos del objeto WizHook (otras funciones, sin embargo, siguen funcionando como solían a través del API de Access).

Es posible que a más de uno de estos métodos y propiedades de WizHook no le encontremos mucho sentido como programadores de aplicaciones. Hay que recordar que, supuestamente, este objeto sirve como enlace con los asistentes, y seguramente está más orientado al diseño de los objetos de una base de datos y a interactuar con el programador, que al uso final de una aplicación *con* datos.

Como WizHook es un objeto oculto, para poder visualizarlo tenemos que ir a la ventana del editor de Visual Basic de Access, menú Ver, Examinador de objetos, y sobre la ventana donde aparecen los objetos, hacer click con el botón derecho del ratón, seleccionando seguidamente la opción "Mostrar miembros ocultos".

Encontraremos a WizHook como un objeto de la librería de Access o también como una propiedad del objeto Application (que a su vez hace referencia al objeto WizHook).

Si intentamos ejecutar algún método o acceder a alguna propiedad de WizHook, veremos que nunca parece funcionar (salvo el método SortStringArray). Esto es porque antes de utilizar algún método, debemos "activar" a WizHook asignando un valor determinado a su propiedad Key. A partir de aquí, WizHook funciona durante todo el tiempo en que la base de datos esté abierta.

Después de un tiempo de hacer pruebas e investigar, he podido preparar una serie de ejemplos y explicaciones de algunos de sus métodos y propiedades. Aquí los tenéis:
Nota: El objeto WizHook es un objeto indocumentado, y por tanto, esta información se proporciona "como está" sin garantías de ninguna clase, y sin otorgar ningún derecho, son únicamente fruto de una investigación personal.

La información que se expone aquí es independiente de Microsoft. Microsoft no da ninguna garantía ni implícita ni de ninguna otra clase, acerca de la fiabilidad y el rendimiento de esta documentación.
Contactar Última actualización 21/9/2003     © Juan M. Afán deRibera