Declare Definition
Syntax
[ | Private
| Public ] _
Declare Sub name Lib "dll name"
_
[Alias "module name"] [([param[,
...]])]
-or-
[ | Private | Public ] _
Declare
Function name[type] Lib "dll name" _
[Alias "module name"] [([param[, ...]])] [As type[()]]
Group Declaration
Description
Interface to a DLL defined subroutine or function. The values of the calling
arglist are assigned to the params.
WARNING!
Be very careful when declaring DLL subroutines or functions. If you make a
mistake and declare the parementers or result incorrectly then Windows might
halt. Save any open documents before testing new DLL declarations.
Err.LastDLLError returns the error code for that last DLL call.
Access If no access is specified then Public is assumed.
Pocket PC Not supported.
Parameter Description
name This is the name of the subroutine or function being defined. If Alias "module name" is omitted then this is the module name, too.
"dll name" This is the DLL file where the module's code is.
"module name" This is the name of the module
in the DLL file. If this is #number then it is the ordinal number of the module.
If it is omitted then name is the module name.
The DLL is searched
for the specified module name. If this module exists, it is used. All As String
parameters are converted from Unicode to ASCII prior to calling the DLL and from
ASCII to Unicode afterwards. (Use "Unicode:module name" to prevent ASCII to
Unicode conversion.)
If the module does not exist, one or two other module
names are tried:
1) For Windows NT only: The module name with a "W" appended
is tried. All As String parameters are passed as Unicode to calling the DLL.
2) For Windows NT and Windows 95: The module name with an "A" appended is
tried. All As String parameters are converted from Unicode to ASCII prior to
calling the DLL and from ASCII to Unicode afterwards.
If none of these
module names is found a run-time error occurs.
params A list of zero or more params that are used by the DLL subroutine or function. (Note: A ByVal string's value may be modified by the DLL.)
See Also Function, Sub, Call.
Example
'#Language
"WWB-COM"
Declare Function GetActiveWindow& Lib "user32"
()
Declare Function GetWindowTextLengthA& Lib "user32"
_
(ByVal hwnd&)
Declare Sub GetWindowTextA
Lib "user32" _
(ByVal hwnd&, ByVal lpsz$, ByVal
cbMax&)
Function ActiveWindowTitle$()
ActiveWindow = GetActiveWindow()
TitleLen =
GetWindowTextLengthA(ActiveWindow)
Title$ =
Space$(TitleLen)
GetWindowTextA
ActiveWindow,Title$,TitleLen+1
ActiveWindowTitle$ =
Title$
End Function
SubMain
Debug.Print
ActiveWindowTitle$()
End Sub