Wrapping DLL Functions
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.