共用方式為


自訂動作類型 17

此自訂動作會呼叫動態連結程式庫 (DLL) 以 C 或 C++ 撰寫。

來源

DLL 會在目前的會話期間與應用程式一起安裝。 CustomAction 資料表的 [來源] 欄位包含File 資料表的索引鍵。 自訂動作程式碼的位置取決於此檔案的目標路徑解析;因此,此自訂動作必須在安裝該檔案之後呼叫,並在移除檔案之前呼叫。

類型值

CustomAction 資料表 的 Type 資料行中包含下列值,以指定基本數數值型別。

常數 十六進位 Decimal
msidbCustomActionTypeDll + msidbCustomActionTypeSourceFile 0x011 17

 

目標

DLL 會透過 CustomAction 資料表之 Target 欄位中名為 的進入點呼叫,並傳遞單一引數,該引數是目前安裝會話的控制碼。 資料表中指定的進入點名稱必須符合從 DLL 匯出的進入點名稱。 請注意,如果未指定專案函式,則為 。DEF 檔案或 /EXPORT: 連結器規格,名稱可能有前置底線和 「@4」 尾碼。 呼叫的函式必須指定呼叫慣例__stdcall。

傳回處理選項

CustomAction 資料表 的 Type 資料行中包含選擇性旗標位,以指定傳回處理選項。 如需選項和值的描述,請參閱 自訂動作傳回處理選項

執行排程選項

CustomAction 資料表 的 Type 資料行中包含選擇性旗標位,以指定執行排程選項。 這些選項可控制自訂動作的多重執行。 如需選項的描述,請參閱 自訂動作執行排程選項

In-Script執行選項

CustomAction 資料表 的 Type 資料行中包含選擇性旗標位,以指定腳本內執行選項。 這些選項會將動作程式碼複製到執行、復原或認可腳本。 如需選項的描述,請參閱 自訂動作In-Script執行選項

傳回值

請參閱 自訂動作傳回值

備註

呼叫動態連結程式庫 (DLL) 的自訂動作需要安裝會話的控制碼。 如果這也是延後執行自訂動作,則會話在執行安裝腳本期間可能已不存在。 如需此類型之自訂動作如何取得內容資訊的資訊,請參閱 取得延後執行自訂動作的內容資訊

自訂動作會在個別執行緒中執行,而且可能只有有限的系統存取權。 在目前序列終止或安裝會話終止時,以非同步方式封鎖主執行緒的自訂動作,直到它們傳回為止。

參考已安裝檔案作為其來源的自訂動作,例如自訂動作類型 17 (DLL) ,必須遵循下列排序限制:

  • 自訂動作必須在 CostFinalize 動作之後排序。 如此一來,自訂動作就可以解析找到 DLL 所需的路徑。
  • 如果電腦上尚未安裝來源檔案,則延後 (腳本內) 此類型的自訂 動作必須在 InstallFiles 動作之後排序。
  • 如果電腦上尚未安裝來源檔案,則必須在 InstallFinalize 動作之後排序此類型的非延後自訂動作。

Custom_Actions

延後執行自訂動作

動態連結程式庫