Windows API (WinAPI) 是微軟提供的核心應用程式介面,供 C/C++ 直接呼叫,是應用程式與 Windows 核心互動的最直接管道。驅動程式則使用更底層的 Native API。SDK 提供文件、標頭檔、匯入庫與工具。
| 類別 | 核心功能 | 關鍵 DLL (32-bit) |
|---|---|---|
| 基礎服務 | 檔案系統、裝置、進程/執行緒、登錄表、錯誤處理 | kernel32.dll, advapi32.dll |
| 圖形裝置介面 (GDI) | 繪圖輸出至螢幕/印表機 | gdi32.dll |
| 使用者介面 (USER) | 視窗、基本控制項 (按鈕、捲軸)、鍵盤/滑鼠輸入 | user32.dll (XP 後基本控制項移至 comctl32.dll) |
| 通用對話方塊 | 開啟/儲存檔案、顏色、字型對話框 | comdlg32.dll |
| 通用控制項 | 狀態列、進度條、工具列、分頁籤 | comctl32.dll |
| Windows Shell | 殼層功能存取與擴充 | shell32.dll, shlwapi.dll |
| 網路服務 | NetBIOS、Winsock、NetDDE、RPC | ws2_32.dll 等 |
shdocvw.dll, mshtml.dll)、URL Moniker (urlmon.dll)、多語言支援 (mlang.dll)、DirectX Transforms、MSXML、通訊錄存取。DDE → OLE (Object Linking and Embedding) → COM (Component Object Model)。
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Any, ByVal lParam As Any) As Long
If Command1.MousePointer = 14 Then
Call ReleaseCapture
Call SendMessage(Command1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
讓命令按鈕可拖曳移動視窗。