Win32平臺:是採用32位碼編寫出的操作系統,比如windows98,windowsME,windowXP.
Win32 API即爲Microsoft 32位平臺的應用程序編程接口(Application Programming Interface)。所有在Win32平臺上運行的應用程序都可以調用這些函數。
使用Win32 API,應用程序可以充分挖掘Windows的32位操作系統的潛力。 Mircrosoft的所有32位平臺都支持統一的API,包括函數、結構、消息、宏及接口。使用 Win32 API不但可以開發出在各種平臺上都能成功運行的應用程序,而且也可以充分利用每個平臺特有的功能和屬性。
SDK,Software Development Kit 的縮寫,中文即“軟件開發工具包”。廣義上指輔助開發某一類軟件的相關文檔、範例和工具的集合。 SDK是一些被軟件工程師用於爲特定的軟件包、軟件框架、硬件平臺、操作系統等創建應用軟件的開發工具的集合,一般而言SDK即開發 Windows 平臺下的應用程序所使用的SDK。它可以簡單的爲某個程序設計語言提供應用程序接口 API的一些文件,但也可能包括能與某種嵌入式系統通訊的複雜的硬件。一般的工具包括用於調試和其他用途的實用工具。SDK 還經常包括示例代碼、支持性的技術註解或者其他的爲基本參考資料澄清疑點的支持文檔。
SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做“SDK 編程”。而 API 和 SDK 是開發 Windows 應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如 VCL 和 MFC,雖然他們比起“SDK 編程”來有着更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函數 。
標準Win32 API函數可以分爲以下幾類:
窗口管理 窗口通用控制 Shell特性 圖形設備接口 系統服務 國際特性 網絡服務重要參考文檔(從百度文庫下載):第1章Win32API編程簡介.pdf;WIN32 API函數大全.pdf
指針是一個32位的無符號變量。
必須是32位,並且這個規則也適合各種句柄,在Win32API中存在各種各樣的句柄,這些句柄都是32位的,用戶可以用32位無符號整型變量聲明。
Win32提供的API接口的實現方式有兩種:基於動態鏈接庫和基於組件對象模型(COM)
API主要函數如下:
1、 API之網絡資源函數
WNetAddConnection//創建同一個網絡資源的永久性連接
WNetCancelConnection //結束一個網絡連接
2、 API之消息函數
GetMessagePos//取得消息隊列中上一條消息處理完畢時的鼠標指針的屏幕位置
PostMessage//將一條消息投遞到指定窗口的消息隊列
SendMessage//調用一個窗口的窗口函數,將一條消息發給那個窗口
3、 API之文件處理函數
CloseHandle()//關閉一個內核對象。其中包括文件、文件映射、進程、線程、安全和同步對象等
CopyFile//複製文件
CreateFile//打開和創建文件、管道、郵槽、通信服務、設備以及控制檯
DeleteFile//刪除指定文件
FindFirstFile//根據文件名查找文件
FindNextFile
lclose //關閉指定的文件
lcreat //創建一個文件
llseek //設置文件中進行讀寫的當前位置
LockFile //鎖定文件的某一部分,使其不與其他應用程序共享
lopen //以二進制模式打開指定的文件
lread //將文件中的數據讀入內存緩衝區
lwrite //將數據從內存緩衝區寫入一個文件
OpenFile //這個函數能執行大量不同的文件操作
ReadFile //從文件中讀出數據
WriteFile //將數據寫入一個文件
4、 API之打印函數
AbortDoc //取消一份文檔的打印
AddPrinter //在系統中添加一臺新打印機
EnumJobs //枚舉打印隊列中的作業
OpenPrinter //打開指定的打印機,並獲取打印機的句柄
5、 API之文本和字體函數
AddFontResource //在Windows系統中添加一種字體資源
CreateFont //用指定的屬性創建一種邏輯字體
GetTextColor //判斷當前字體顏色。通常也稱爲“前景色”
SetTextColor //設置當前文本顏色。
TextOut //文本繪圖函數
6、 API之菜單函數
AppendMenu //在指定的菜單裏添加一個菜單項
CreateMenu() //創建新菜單
GetMenu() //取得窗口中一個菜單的句柄
7、 API之位圖、圖標和光柵運算函數
BitBlt() //將一幅位圖從一個設備場景複製到另一個
CopyImage() //複製位圖、圖標或指針,同時在複製過程中進行一些轉換工作
CreateBitmap() //按照規定的格式創建一幅與設備有關的位圖
CreateCursor() //創建一個鼠標指針
CreateIcon //創建一個圖標
LoadBitmap //從指定的模塊或應用程序實例中載入一幅位圖
LoadIcon //從指定的模塊或應用程序實例中載入一個圖標
LoadImage //載入一個位圖、圖標或指針
SetDIBits() //將來自於設備無關位圖的二進制位複製到一幅與設備有關的位圖裏
SetDIBitsToDevice() //將一幅與設備無關位圖的全部或部分數據直接複製到一個設備
SetStretchBltMode() //指定StretchBlt和StretchDIBits函數的伸縮模式
StretchBlt() //將一幅位圖從一個設備場景複製到另一個
StretchDIBits() //將一幅與設備無關位圖的全部或部分數據直接複製到指定的設備場景
8、 API之繪圖函數
Arc //畫一個圓弧
CloseFigure //描繪到一個路徑時,關閉當前打開的圖形
CreateMetaFile //創建一個圖元文件設備場景
CreatePen //用指定的樣式、寬度和顏色創建一個畫筆
CreateSolidBrush() //用純色創建一個刷子
DeleteObject() //刪除GDI對象,對象使用的所有系統資源都會被釋放
Polyline() //用當前畫筆描繪一系列線段
Rectangle //用當前畫筆畫一個圓角矩形,並用當前選定的刷子在其中填充
SelectObject() //爲當前設備場景選擇圖形對象
SetBkColor() //爲指定的設備場景設置背景顏色
SetBkMode() //指定陰影刷子、虛線畫筆以及字符中的空隙的填充方式
SetPixel //在指定的設備場景中設置一個像素的RGB值
SetROP2 //設置指定設備場景的繪圖模式。與vb的DrawMode屬性完全一致
9、 API之設備場景函數
CreateDC //爲專門設備創建設備場景
CreatePolygonRgn() //創建一個由一系列點圍成的區域
CreateRectRgn() //創建一個矩形區域
DeleteDC() //刪除專用設備場景或信息場景,釋放所有相關窗口資源
DPtoLP //將點陣從設備座標轉換到專用設備場景邏輯座標
GetDC //獲取指定窗口的設備場景
OffsetRgn() //按指定偏移量平移指定區域
PaintRgn() //用當前刷子背景色填充指定區域
ReleaseDC() //釋放由調用GetDC或GetWindowDC函數獲取的指定設備場景
SaveDC //將指定設備場景狀態保存到Windows設備場景堆棧
10、API之硬件與系統函數
Beep //用於生產簡單的聲音
GetCursor() //獲取目前選擇的鼠標指針的句柄
GetCursorPos() //獲取鼠標指針的當前位置
11、API之進程和線程函數
CreateEvent //創建一個事件對象
CreateProcess //創建一個新進程(比如執行一個程序)
ExitProcess() //中止一個進程
12、API之控件與消息函數
AnyPopup() //判斷屏幕上是否存在任何彈出式窗口
CascadeWindows() //以層疊方式排列窗口
CloseWindow() //最小化指定的窗口
DestroyWindow() //清除指定的窗口以及它的所有子窗口
GetParent //判斷指定窗口的父窗口
GetWindow() //獲得一個窗口的句柄,該窗口與某源窗口有特定的關係
GetWindowRect() //獲得整個窗口的範圍矩形,窗口的邊框、標題欄、滾動條及菜單等都在這個矩形內
IsChild() //判斷一個窗口是否爲另一個窗口的子或隸屬窗口
IsWindowUnicode() //判斷一個窗口是否爲Unicode窗口。這意味着長款爲所有基於文本的消息都接受Unicode文字
SetActiveWindow() //激活指定窗口