Wrapping DLL Functions

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

If you call DLL functions frequently, you might want to simplify the process by encapsulating those functions within class modules. By creating a property or method that calls one or more DLL functions, you can work with DLL functions in an object-oriented manner more typical of Microsoft® Visual Basic® for Application (VBA). In addition, because declaring and calling DLL functions can be a difficult and error-prone experience, packaging calls to DLL functions in reusable objects can save you from having to repeat this experience every time you must call the API.

In This Section

  • Encapsulating the DLL
    When you encapsulate DLL function calls in a class module, you are defining a VBA interface for those functions.
  • What Is a Callback Function?
    To call a function that requires a callback function, you write a VBA function that calls the DLL function, and then the DLL function calls another VBA function, the callback function, that you have defined in your project.
  • Creating a Callback Function
    You can determine whether a DLL function requires a callback function by looking at its arguments and reading the documentation for the function.
  • Calling a Callback Function
    To call a callback function, a DLL function must have a pointer to the callback function's address in memory.
  • The Windows API and Other Dynamic-Link Libraries
    One of the most powerful features of Visual Basic for Applications (VBA) is its extensibility. You can extend your applications by calling functions in the Microsoft® Windows® application programming interface (API) and other dynamic-link libraries (DLLs).
  • API Basics
    The purpose of the Microsoft® Windows® API is to make it possible for you to develop programs consistent with the Windows operating system and user interface.
  • Calling DLL Functions
    Although calling DLL functions is in many ways similar to calling VBA functions, there are differences that might make DLL functions confusing at first.