Windows NT と Windows 95 以降のアーキテクチャは、32 ビットであるためには、16 ビット API の Windows 3.x からいくつかの違い、アプリケーション プログラミング インターフェイス (API) があります。 ここでは 32 ビット オペレーティング環境では、コードが正常に実行されるよう 32 ビット API 呼び出しを 16 ビット API 呼び出しを含むコードを変換する方法。 この記事では次の項目を取り扱います:
API を持つプロシージャを宣言するときに、プロシージャ名に別名を使用します。 エイリアスを関数名から一意になければなりません。 、ない場合、別名が自動的に削除されます。
関数によって返されるデータ型または関数に渡されたパラメーターのデータ型を宣言する場合は、型宣言文字 (%、$ という) ではなく As 句を使用します。
Microsoft Access 開発者用ツールキットの Windows 95、Microsoft Office 97 開発 Edition、および Visual Basic 4. 0 API の使用が簡単が含まれている便利なユーティリティもあります。 API ビューアーと呼ばれます。 宣言、定数、および任意のテキスト ファイルまたは API の情報が含まれている Microsoft Jet データベースに含まれている型を参照できます。 これらの項目をクリップボードにコピーでき、コードに貼り付けます。
Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, _
ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As _
Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, _
ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As _
Long) As Long
32-bit:
Declare Function apiBitBlt Lib "gdi32" Alias "BitBlt" (ByVal _
hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth _
As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal _
XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
Declare Function CheckMenuItem Lib "User" (ByVal hMenu As _
Integer, ByVal wIDCheckItem As Integer, ByVal wCheck As _
Integer) As Integer
32 ビット:
Declare Function apiCheckMenuItem Lib "user32" Alias _
"CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem _
As Long, ByVal wCheck As Long) As Long
注: で Microsoft Access の Windows 95 バージョン 7. 0 を使用して、"SetMenuItem/メニューの設定"マクロ アクション (有効または無効、オンまたはオフ) のメニュー項目の状態を設定、カスタム メニュー バーで、アクティブなウィンドウのグローバル メニュー バー。 "SetMenuItem/メニューの設定"アクションの詳細については「"SetMenuItem/メニューの設定"アクション」をヘルプを検索します。
Declare Function ChooseColor_API Lib "COMMDLG.DLL" Alias _
"ChooseColor" (pCHOOSECOLOR As ChooseColor) As Integer
32 ビット:
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
注: この API、Microsoft Access 開発者の演習用ツールキットの Windows 95 および Microsoft Office 97 開発エディションに含まれる共通ダイアログの ActiveX コントロールを使うの ChooseColor 機能を使用することができます。
Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" _
(ByVal lpExistingFileName As String, ByVal lpNewFileName As _
String, ByVal bFailIfExists As Long) As Long
Declare Sub hmemcpy Lib "kernel" (hpvDest As Any, hpvSrc As _
Any, ByVal cbBytes As Long)
32-bit:
Global Const GMEM_MOVEABLE = &H2
Global Const GMEM_ZEROINIT = &H40
Global Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Declare Function CreateCompatibleBitmap Lib "GDI" (ByVal _
hDC As Integer, ByVal nWidth As Integer, ByVal nHeight As _
Integer) As Integer
32-bit:
Declare Function apiCreateCompatibleBitmap Lib "gdi32" Alias _
"CreateCompatibleBitmap" (ByVal hdc As Long, ByVal nWidth As _
Long, ByVal nHeight As Long) As Long
Declare Function EnableMenuItem Lib "User" (ByVal hMenu As _
Integer, ByVal wIDEnableItem As Integer, ByVal wEnable _
As Integer) As Integer
32-bit:
Declare Function apiEnableMenuItem Lib "user32" Alias _
"EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem _
As Long, ByVal wEnable As Long) As Long
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
Declare Function GetClassName Lib "User" (ByVal hWnd _
As Integer, ByVal lpClassName As String, ByVal nMaxCount _
As Integer) As Integer
32-bit:
Declare Function apiGetClassName Lib "user32" Alias _
"GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName _
As String, ByVal nMaxCount As Long) As Long
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
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
Declare Function GetModuleFileName Lib "Kernel" (ByVal _
hModule As Integer, ByVal lpFilename As String, ByVal _
nSize As Integer) As Integer
32-bit:
Declare Function apiGetModuleFileName Lib "kernel32" Alias _
"GetModuleFileNameA" (ByVal hModule As Long, ByVal _
lpFileName As String, ByVal nSize As Long) As Long
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
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
Declare Function GetSaveFileName Lib "COMMDLG.DLL" _
(OPENFILENAME As tagOPENFILENAME) As Integer
32 ビット:
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
注: 共通ダイアログ OLE コントロールと、Microsoft Access 開発者の演習用ツールキットの Windows 95 および Microsoft Office 97 のプロフェッショナル エディションに含まれる、同じ機能を実現することができます。
Declare Sub GetWindowRect Lib "GDI" (ByVal hWnd As _
Integer, lpRect As RECT)
32-bit:
Type RECT_Type
left As Long
top As Long
right As Long
bottom As Long
End Type
Declare Function apiGetWindowRect Lib "user32" Alias _
"GetWindowRect" (ByVal hwnd As Long, lpRect As RECT_Type) _
As Long
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 ビット:
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
注: この関数は、Windows NT 環境でのみ使用できます。
注: Microsoft Access 7. 0 および 97 で使えます CurrentUser() 関数は、現在ログオンしているユーザーを取得します。
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
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
Declare Function WNetAddConnection Lib "User" (ByVal _
lpszNetPath As String, ByVal lpszPassword As String, _
ByVal lpszLocalName As String) As Integer
32-bit:
Declare Function apiWNetAddConnection Lib "mpr.dll" Alias _
"WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal _
lpszPassword As String, ByVal lpszLocalName As String) As Long
Declare Function WNetGetUser Lib "USER.EXE" (ByVal _
szUser As String, lpnBufferSize As Integer) As Integer
32-bit:
Declare Function apiWNetGetUser Lib "mpr.dll" Alias _
"WNetGetUserA" (ByVal lpName As String, ByVal _
lpUserName As String, lpnLength As Long) As _
Long
Declare Function WNetGetUser Lib "mpr" Alias _
"WNetGetUserA" (ByVal lpName As String, ByVal _
lpUserName As String, lpnLength As Long) As Long
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