by Deepanjan Datta (3 Submissions)
Category: Windows API Call/Explanation
Compatability: Visual Basic 5.0
Difficulty: Intermediate
Date Added: Wed 3rd February 2021
Rating: (8 Votes)
An introduction to Windows API and DLLs!!! Part II on VBC!!! Part III coming soon
Windows
API
Full form : API --- Application Programming
Interface
DLL --- Dynamic Link Library
The Windows API is a collection of routines available to you,
the Visual Basic programmer. In a way, these API routines are like internal
functions of Visual Basic.
So many Windows API routines exist that just about
anything you can do from Windows, you can do from a Visual Basic application by
calling the appropriate Windows API routine.
All Windows API routines are stored in files called DLLs.
Several thousand API routines are available for use.
Note : Most DLL files have '.DLL' extension.
Any program you write has access to the Windows DLLs.
Following are the three most common DLLs :
USER32.DLL --- Contains functions that control the
Windows environment and the user's interface, such as cursors, menus,
windows etc.
GDI32.DLL --- Contains functions that control output
to the screen and other devices.
KERNEL32.DLL --- Contains functions that control the
internal Windows hardware and software interface.
There are other DLLs such as COMDLG.DLL, MAPI32.DLL,
NETAPI32.DLL, WINMM.DLL etc.
Using the 'Declare'
statement
Calling Windows API routines requires a statement called
'Declare'.
The 'Declare' statement performs the following tasks :
Specifies where the API function is located
Identifies arguments needed by the API function by number
and data type
Specifies whether or not the API function returns a value
The following format describes the subroutine procedure version
of the 'Declare' statement :
Declare Sub procName Lib
"libName" [Alias "alias"] [([ByVal] var1 [As dataType]
[, [ByVal] var2 [As dataType]] ... [, [ByVal] varN [As dataType])]
Here are two examples :
Declare Function GetWindowsDirectory Lib
"kernel32" Alias "GetWindowsDirectoryA"_
(ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Declare Sub GetSystemInfo Lib
"kernel32" (lpSystemInfo As SystemInfo)
Here is an example for calling a simple API routine:
This example sounds the speaker
Private Declare Function MessageBeep Lib "user32"
(ByVal wType As Long) As Long
Private Sub cmdBeep_Click() 'You need to have a command button named
cmdBeep for this example to work
Dim Beeper As Variant
Beeper=MessageBeep(1)
End Sub