此數據適用於撰寫自己的安裝程式的開發人員,以及想要深入瞭解安裝程式資料庫數據表的開發人員。 如需安裝程式的一般資訊,請參閱 關於 Windows Installer。
您可以使用安裝程式存取函式來存取資料庫和安裝程式。 這些函式只能由自訂安裝動作和撰寫工具使用。 某些安裝程式存取函式需要 SQL 查詢字串來查詢資料庫。 查詢必須遵循安裝程式 SQL 語法。
本主題依類別列出安裝程序數據庫存取函式。
一般數據庫存取函式
| 功能 | 描述 |
|---|---|
| MsiDatabaseCommit | 認可資料庫的變更。 |
| MsiDatabaseGetPrimaryKeys | 傳回所有主鍵數據行的名稱。 |
| MsiDatabaseIsTablePersistent | 傳回描述數據表狀態的列舉。 |
| MsiDatabaseOpenView | 準備資料庫查詢並建立檢視物件。 |
| MsiGetActiveDatabase | 傳回安裝的作用中資料庫。 |
| MsiViewGetColumnInfo | 傳回數據行名稱或定義。 |
| MsiOpenDatabase | 開啟資料庫檔案以供數據存取。 |
| MsiViewClose | 釋放已執行檢視的結果集。 |
| MsiViewExecute | 執行檢視查詢,並提供必要的參數。 |
| MsiViewFetch | 從檢視擷取下一個循序記錄。 |
| MsiViewGetError | 傳回 MsiViewModify 函式中發生的錯誤。 |
| MsiViewModify | 更新擷取的記錄。 |
資料庫管理功能
| 功能 | 描述 |
|---|---|
| MsiCreateTransformSummaryInfo | 建立現有轉換的摘要資訊。 |
| MsiDatabaseApplyTransform | 將轉換套用至資料庫。 |
| MsiDatabaseExport | 將數據表從開啟的資料庫匯出至文字檔。 |
| MsiDatabaseGenerateTransform | 產生兩個資料庫之間差異的轉換檔案。 |
| MsiDatabaseImport | 將安裝程式文字封存資料表匯入開啟的資料庫。 |
| MsiDatabaseMerge | 將兩個資料庫合併在一起。 |
| MsiGetDatabaseState | 傳回資料庫的狀態。 |
記錄處理函式
| 功能 | 描述 |
|---|---|
| MsiCreateRecord | 建立具有指定欄位數目的新記錄物件。 |
| MsiFormatRecord | 使用格式字串格式化記錄欄位資料和屬性。 |
| MsiRecordClearData | 將記錄中的所有欄位設定為 null。 |
| MsiRecordDataSize | 傳回記錄欄位的長度。 |
| MsiRecordGetFieldCount | 傳回記錄中的欄位數目。 |
| MsiRecordGetInteger | 從記錄欄位傳回整數值。 |
| MsiRecordGetString | 傳回記錄欄位的字串值。 |
| MsiRecordIsNull | 報告記錄欄位是否為 Null。 |
| MsiRecordReadStream | 將記錄數據流欄位的位元組讀取到緩衝區。 |
| MsiRecordSetInteger | 將記錄欄位設定為整數位段。 |
| MsiRecordSetStream | 從檔案設定記錄數據流欄位。 |
| MsiRecordSetString | 將字串複製到指定的欄位。 |
摘要資訊屬性函式
| 功能 | 描述 |
|---|---|
| MsiGetSummaryInformation | 取得安裝程式資料庫的摘要資訊數據流句柄。 |
| MsiSummaryInfoGetProperty | 從摘要資訊取得單一屬性。 |
| MsiSummaryInfoGetPropertyCount | 傳回摘要資訊數據流中的屬性數目。 |
| MsiSummaryInfoPersist | 將已變更的摘要資訊寫回摘要信息數據流。 |
| MsiSummaryInfoSetProperty | 設定單一摘要資訊屬性。 |
安裝程式狀態存取函式
| 功能 | 描述 |
|---|---|
| MsiGetLanguage | 傳回目前安裝的數值語言。 |
| MsiGetLastErrorRecord | 傳回上次針對呼叫行程傳回的錯誤記錄。 |
| MsiGetMode | 傳回其中一個布爾內部安裝狀態。 |
| MsiGetProperty | 取得安裝程序屬性的值。 |
| MsiSetProperty | 設定安裝屬性的值。 |
| MsiSetMode | 設定內部引擎布爾值狀態。 |
安裝程式動作函式
| 功能 | 描述 |
|---|---|
| MsiDoAction | 執行內建動作、自定義動作或使用者介面精靈動作。 |
| MsiEvaluateCondition | 評估包含屬性名稱和值的條件表達式。 |
| MsiProcessMessage | 將錯誤記錄傳送至安裝程序進行處理。 |
| MsiSequence | 執行動作順序。 |
安裝程式位置函式
| 功能 | 描述 |
|---|---|
| MsiGetSourcePath | 傳回 Directory 資料表中資料夾的完整來源路徑。 |
| MsiGetTargetPath | 傳回 Directory 資料表中資料夾的完整目標路徑。 |
| MsiSetTargetPath | 設定 Directory 資料表中資料夾的完整目標路徑。 |
安裝程式選取函式
| 功能 | 描述 |
|---|---|
| MsiEnumComponentCosts | 列舉安裝元件所需的每個磁碟驅動器的磁碟空間。 |
| MsiGetComponentState | 取得元件的狀態。 |
| MsiGetFeatureCost | 傳回功能所需的磁碟空間。 |
| MsiGetFeatureState | 取得功能的狀態。 |
| MsiGetFeatureValidStates | 傳回有效的安裝狀態。 |
| MsiSetComponentState | 將元件設定為指定的狀態。 |
| MsiSetFeatureAttributes | 在運行時間修改功能的預設屬性。 |
| MsiSetFeatureState | 將功能設定為指定的狀態。 |
| MsiSetInstallLevel | 設定完整產品安裝的安裝層級。 |
| MsiVerifyDiskSpace | 檢查是否有足夠的磁碟空間。 |
使用者介面函式
| 功能 | 描述 |
|---|---|
| MsiEnableUIPreview | 啟用使用者介面的預覽模式。 |
| MsiPreviewBillboard | 在顯示的對話框中顯示具有主控件的看板。 |
| MsiPreviewDialog | 將對話框顯示為無模式和非作用中。 |
所有函式都支援 ANSI 和 Unicode 呼叫。 若要使用這些函式,請包含 MsiQuery.h,並與 Msi.lib 連結。
安裝函式
除了上面所列的數據庫存取函式之外,您還可以使用 [Installer 函式參考] 區段中所列的安裝程式函式,為應用程式建立安裝套件。