共用方式為


Session.FeatureValidStates 屬性

Session物件的FeatureValidStates屬性會傳回代表位旗標的整數,每個相關位都代表指定功能的有效安裝狀態。

這個屬性是唯讀的。

Syntax

propVal = Session.FeatureValidStates

屬性值

要擷取有效安裝狀態之功能專案的必要字串名稱。

備註

傳回值是由位旗標所組成,如下所示。 位 0:如果設定,則 Local 為有效狀態。 位 1:如果設定,則來源為有效狀態。

FeatureValidStates屬性只有在安裝程式呼叫CostInitializeCostFinalize動作之後才會成功。

FeatureValidStates 會查詢連結至指定功能的所有元件,而不考慮任何元件的目前安裝狀態,以判斷狀態有效性。

功能可能的有效狀態會依下列方式決定:

  • 如果此功能不包含元件,則INSTALLSTATE_LOCAL和INSTALLSTATE_SOURCE都是功能的有效狀態。
  • 如果功能至少有一個元件具有 msidbComponentAttributesLocalOnly 或 msidbComponentAttributesOptional 的屬性,INSTALLSTATE_LOCAL是功能的有效狀態。
  • 如果功能至少有一個元件具有 msidbComponentAttributesSourceOnly 或 msidbComponentAttributesOptional 的屬性,INSTALLSTATE_SOURCE是功能的有效狀態。
  • 如果屬於此功能的元件檔案已修補或從壓縮的來源,則INSTALLSTATE_SOURCE不包含為功能的有效狀態。
  • INSTALLSTATE_ADVERTISE如果功能不允許 (msidbFeatureAttributesDisallowAdvertise) ,或此功能需要 (msidbFeatureAttributesNoUnsupportedAdvertise) ,而平臺不支援它,則INSTALLSTATE_ADVERTISE不是有效的狀態。
  • 如果功能的屬性不包含 msidbFeatureAttributesUIDisallowAbsent,則INSTALLSTATE_ABSENT是功能的有效狀態。
  • 標示為遵循父功能的有效狀態 (msidbFeatureAttributesFollowParent) 是以父功能的動作或安裝狀態為基礎。

如果屬性失敗,您可以使用 LastErrorRecord 方法來取得擴充錯誤資訊。

規格需求

需求
版本
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer
DLL
Msi.dll
IID
IID_ISession定義為 000C109E-0000-0000-C000-0000000000046