AddressOf Operator

Named Arguments

No

Syntax

AddressOf procedurename

procedurename

Use: Required

The name of an API procedure.

Description

Passes the address of a procedure to an API function. There are some API functions that require the address of a callback function as a parameter. (A callback function is a routine in your code that is invoked by the routine that your program is calling: it calls back into your code.) These callback functions are passed to the API function as pointers to a memory address. In the past, calling functions that required callbacks posed a unique problem to VB, since, unlike C or C++, it lacks a concept of pointers. However, the AddressOf operator allows you to pass such a pointer in the form of a long integer to the API function, thereby allowing the API function to call back to the procedure.

Rules at a Glance

  • The callback function must be stored in a code module; attempting to store it in a class or a form module generates a compile-time error, "Invalid use of AddressOf operator."

  • The AddressOf operator must be followed by the name of a user-defined function, procedure, or property.

  • The data type of the corresponding argument in the API function's Declare statement must be As Any or As Long.

  • The AddressOf operator can't call one VB procedure from another.

Example

The following example uses the EnumWindows and GetWindowText API calls to return a list of currently open windows. EnumWindows requires the address of a callback function as its first ...

Get VB & VBA in a Nutshell: The Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.