ACC2000: Error Message: There Are Calls to 16-Bit Dynamic-Link Libraries (224319)



The information in this article applies to:

  • Microsoft Access 2000

This article was previously published under Q224319
Advanced: Requires expert coding, interoperability, and multiuser skills.

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).

ERROR MESSAGE

When you try to convert a Microsoft Access version 2.0 database to version 2000, you may receive the following error message:
There are calls to 16-bit dynamic-link libraries (.dll) in modules in this database.
These won't work under Microsoft Windows 95 or Microsoft Windows NT.

Change your code to call equivalent 32-bit dynamic-link libraries (.dll).
NOTE: Microsoft Office 2000 has built-in functionality that allows you to get more information about difficult-to-troubleshoot alerts or error messages. If you want to enable this functionality for this and other error messages in Microsoft Office 2000, please download the Microsoft Office 2000 Customizable Alerts file from the Microsoft Office Update Web site at the following address: NOTE: If you reached this article by clicking the Web Info button in an error message, you already have Customizable Alerts enabled.

CAUSE

Because the architecture of Windows 95 and later and Windows NT is 32-bit, there are several differences in the application programming interface (API) from the 16-bit API of Windows 3.x.

THINGS TO TRY

Change your code to call equivalent 32-bit dynamic-link libraries (.dll).

Following is a listing of 16-bit and 32-bit Declare statements for common API calls that you can use as reference when you convert your code to 32-bit.

For additional information about converting API Calls for use in 32-bit applications, click the article number below to view the article in the Microsoft Knowledge Base:

210115 How to Convert API Calls from 16-bit to 32-bit

List of Converted Declaration Statements for Common API Functions

CloseClipboard

16-bit:
Declare Function CloseClipboard Lib "User" () As Integer
32-bit:
Declare Function apiCloseClipboard Lib "user32" Alias _
   "CloseClipboard" () As Long

ChooseColor

16-bit:
Declare Function ChooseColor_API Lib "COMMDLG.DLL" Alias _
   "ChooseColor" (pCHOOSECOLOR As ChooseColor) As Integer
32-bit:
Type CHOOSECOLOR
   lStructSize As Long
   hwndOwner As Long
   hInstance  As Long
   RgbResult As Long
   lpCustColors As Long
   Flags As Long
   lCustData As Long
   lpfnHook As Long
   lpTemplateName As Long
End Type
Declare Function apiChooseColor Lib "comdlg32.dll" Alias _
   "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long

NOTE: You can use the ChooseColor functionality of this API by using the Common Dialog ActiveX control included with the Microsoft Office Developer.

EmptyClipboard

16-bit:
Declare Function EmptyClipboard Lib "User" () As Integer
32-bit:
Declare Function apiEmptyClipboard Lib "user32" Alias _
   "EmptyClipboard" () As Long

ExitWindows

16-bit:
Declare Function ExitWindows Lib "User" (ByVal dwReturnCode _
   As Long, ByVal wReserved As Integer) As Integer
32-bit:
Declare Function apiExitWindows Lib "user32" Alias _
   "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode _
   As Long) As Long

FindExecutable

16-bit:
Declare Function FindExecutable Lib "Shell" (ByVal _
   lpszFile As String, ByVal lpszDir As String, ByVal _
   lpszResult As String) As Integer
32-bit:
Declare Function apiFindExecutable Lib "shell32.dll" Alias _
   "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory _
   As String, ByVal lpResult As String) As Long

FindWindow

16-bit:
Declare Function FindWindow Lib "user"(ByVal lpclassname As _
   Any, ByVal lpCaption As Any) As Integer
32-bit:
Declare Function apiFindWindow Lib "User32" Alias "FindWindowA" _
   (ByVal lpclassname As Any, ByVal lpCaption As Any) as Long

GetActiveWindow

16-bit:
Declare Function GetActiveWindow Lib "User" () As Integer
32-bit:
Declare Function apiGetActiveWindow Lib "user32" Alias _
   "GetActiveWindow" () As Long

GetClipboardData

16-bit:
Declare Function GetClipboardData Lib "User" (ByVal _
   wFormat As Integer) As Integer
32-bit:
Declare Function apiGetClipboardData Lib "user32" Alias _
   "GetClipboardDataA" (ByVal wFormat As Long) As Long

GetCursorPos

16-bit:
Declare Sub GetCursorPos Lib "User" (lpPoint As POINTAPI)
32-bit:
Type POINTAPI
   x as Long
   y as Long
End Type

Declare Sub apiGetCursorPos Lib "User32" (lpPoint _
   As POINTAPI)

GetDesktopWindow

16-bit:
Declare Function GetDesktopWindow Lib "User" () As Integer
32-bit:
Declare Function apiGetDesktopWindow Lib "user32" Alias _
   "GetDesktopWindow" () As Long

NOTE: You can also use GetWindow to perform the same function.

GetFileVersionInfo

16-bit:
Declare Function GetFileVersionInfo Lib "VER.DLL" _
   (ByVal lpszFileName As String, ByVal lpdwHandle As Long, _
   ByVal cbbuf As Long, ByVal lpvdata As String) As Integer
32-bit:
Declare Function apiGetFileVersionInfo Lib "version.dll" _
   Alias "GetFileVersionInfoA" (ByVal lptstrFilename As _
   String, ByVal dwHandle As Long, ByVal dwLen As Long, _
   lpData As Any) As Long

GetFileVersionInfoSize

16-bit:
Declare Function GetFileVersionInfoSize Lib "VER.DLL" _
   (ByVal lpszFileName As String, lpdwHandle As Long) As Long
32-bit:
Declare Function apiGetFileVersionInfoSize Lib _
   "version.dll" Alias "GetFileVersionInfoSizeA" _
   (ByVal lptstrFilename As String, lpdwHandle As Long) As Long

GetOpenFileName

16-bit:
Declare Function GetOpenFileName Lib "COMMDLG.DLL" _
   (OPENFILENAME As tagOPENFILENAME) As Integer
32-bit:
Type tagOPENFILENAME
   lStructSize As Long
   hwndOwner As Long
   hInstance As Long
   lpstrFilter As String
   lpstrCustomFilter As String
   nMaxCustFilter As Long
   nFilterIndex As Long
   lpstrFile As String
   nMaxFile As Long
   lpstrFileTitle As String
   nMaxFileTitle As Long
   lpstrInitialDir As String
   lpstrTitle As String
   flags As Long
   nFileOffset As Integer
   nFileExtension As Integer
   lpstrDefExt As String
   lCustData As Long
   lpfnHook As Long
   lpTemplateName As String
End Type

Declare Function apiGetOpenFileName Lib "comdlg32.dll" _
   Alias "GetOpenFileNameA" (OPENFILENAME as tagOPENFILENAME) _
   As Long

GetPrivateProfileString

16-bit:
Declare Function GetPrivateProfileString Lib "Kernel" _
   (ByVal lpApplicationName As String, ByVal lpKeyName As _
   Any, ByVal lpDefault As String, ByVal lpReturnedString As _
   String, ByVal nSize As Integer, ByVal lpFileName As String) _
   As Integer
32-bit:
Declare Function apiGetPrivateProfileString Lib "kernel32" _
   Alias "GetPrivateProfileStringA" (ByVal lpApplicationName _
   As String, ByVal lpKeyName As Any, ByVal lpDefault As _
   String, ByVal lpReturnedString As String, ByVal nSize As _
   Long, ByVal lpFileName As String) As Long

GetSaveFileName

16-bit:
Declare Function GetSaveFileName Lib "COMMDLG.DLL" _
   (OPENFILENAME As tagOPENFILENAME) As Integer
32-bit:
Type OPENFILENAME
   lStructSize As Long
   hwndOwner As Long
   hInstance As Long
   lpstrFilter As String
   lpstrCustomFilter As String
   nMaxCustFilter As Long
   nFilterIndex As Long
   lpstrFile As String
   nMaxFile As Long
   lpstrFileTitle As Long
   nMaxFileTitle As Long
   lpstrInitialDir As String
   lpstrTitle As String
   Flags As Long
   nFileOffset As Integer
   nFileExtension As Integer
   lpstrDefExt As String
   lCustData As Long
   lpfnHook As Long
   lpTemplateName As String
End Type

Declare Function apiGetSaveFileName Lib "comdlg32.dll" _
   Alias "GetSaveFileNameA" (pOpenfilename as OPENFILENAME) As Long
				

NOTE: You can achieve the same functionality with the Common Dialog OLE control included with the Microsoft Office Developer.

GetSystemDirectory

16-bit:
Declare Function GetSystemDirectory Lib "Kernel" _
   (ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
32-bit:
Declare Function apiGetSystemDirectory Lib "kernel32" _
   Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
   ByVal nSize As Long) As Long

GetVersion

16-bit:
Declare Function GetVersion Lib "Kernel" () As Long
32-bit:
Declare Function apiGetVersion Lib "kernel32" Alias _
   "GetVersion" () As Long

GetWindowsDirectory

16-bit:
Declare Function GetWindowsDirectory Lib "Kernel" _
   (ByVal lpbuffer As String, ByVal nsize As Integer) As Integer
32-bit:
Declare Function apiGetWindowsDirectory Lib _
   "Kernel32" Alias "GetWindowsDirectoryA" (ByVal _
   lpbuffer As String, ByVal nsize As Long) As Long

NetWkstaGetInfo

16-bit:
Declare Function NetWkstaGetInfo Lib "NetAPI.DLL" _
   (ByVal lServer As Long, ByVal sLevel As Integer, _
   ByVal pbBuffer As Long, ByVal cbBuffer As Integer, _
   pcbTotalAvail As Integer) As Integer
32-bit:
Declare Function apiNetWkstaGetInfo Lib "NetAPI32.dll"_
   Alias NetWkstaGetInfo (ByVal lServer as Integer, ByVal _
   sLevel as Integer, ByVal pbBuffer as Long, cbBuffer as _
   Integer, pcbTotalAvail as Integer) As Integer

NOTE: This function is available only in the Windows NT environment. You can use the CurrentUser() function to obtain the currently logged on user.

Playsound

16-bit:
Declare Function sndplaysound Lib "mmsystem" (ByVal _
   filename as String, ByVal snd_async as Integer) As Integer
32-bit:
Declare Function apisndPlaySound Lib "winmm" Alias _
   "sndPlaySoundA" (ByVal filename As String, ByVal snd_async _
   As Long) As Long

SetActiveWindow

16-bit:
Declare Function SetActiveWindow Lib "User" (ByVal _
   hWnd As Integer) As Integer
				
32-bit:
Declare Function apiSetActiveWindow Lib "user32" _
   Alias "SetActiveWindow" (ByVal hwnd As Long) As Long
				

SetSysModalWindow

16-bit:
Declare Function SetSysModalWindow Lib "User" _
   (ByVal hwnd As Integer) As Integer
32-bit:
This function has been deleted.

SetWindowPos

16-bit:
Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer,_
   ByVal hWndInsertAfter As Integer, ByVal X As Integer, _
   ByVal Y As Integer, ByVal cx As Integer, ByVal cy _
   As Integer, ByVal wFlags As Integer)
32-bit:
Declare Function apiSetWindowPos Lib "user32" Alias _
   "SetWindowPos" (ByVal hwnd As Long, ByVal _
   hWndInsertAfter As Long, ByVal x As Long, ByVal y _
   As Long, ByVal cx As Long, ByVal cy As Long, _
   ByVal wFlags As Long) As Long

ShellExecute

16-bit:
Declare Function ShellExecute Lib "SHELL" (ByVal _
   hwnd As Integer, ByVal lpszOp As String, ByVal lpszFile _
   As String, ByVal lpszParams As String, ByVal lpszDir As _
   String, ByVal fsShowCmd As Integer) As Integer
32-bit:
Declare Function apiShellExecute Lib "shell32.dll" Alias _
   "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As _
   String, ByVal lpFile As String, ByVal lpParameters As _
   String, ByVal lpDirectory As String, ByVal nShowCmd As _
   Long) As Long

ShowWindow

16-bit:
Declare Function ShowWindow Lib "User" (ByVal hWnd _
   As Integer, ByVal nCmdShow As Integer) As Integer
32-bit:
Declare Function apiShowWindow Lib "user32" Alias _
   "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As _
   Long) As Long

WritePrivateProfileString

16-bit:
Declare Function WritePrivateProfileString Lib _
   "Kernel" (ByVal lpApplicationName As String, ByVal _
   lpKeyName As Any, ByVal lpString As Any, ByVal _
   lplFileName As String) As Integer
32-bit:
Declare Function apiWritePrivateProfileString Lib _
   "kernel32" Alias "WritePrivateProfileStringA" _
   (ByVal lpApplicationName As String, ByVal lpKeyName _
   As Any, ByVal lpString As Any, ByVal lpFileName As _
   String) As Long

Modification Type:MinorLast Reviewed:12/2/2005
Keywords:kbdownload kbprb KB224319