MsiGetComponentPathExA 函式 (msi.h)
MsiGetComponentPathEx 函式會傳回已安裝元件的完整路徑。 如果元件的機碼路徑是登錄機碼,則函式會傳回登錄機碼。
此函式會擴充現有的 MsiGetComponentPath 函式,以啟用跨使用者帳戶和安裝內容的元件搜尋。
語法
INSTALLSTATE MsiGetComponentPathExA(
[in] LPCSTR szProductCode,
[in] LPCSTR szComponentCode,
[in, optional] LPCSTR szUserSid,
[in, optional] MSIINSTALLCONTEXT dwContext,
[out, optional] LPSTR lpOutPathBuffer,
[in, out, optional] LPDWORD pcchOutPathBuffer
);
參數
[in] szProductCode
以 Null 結束的字串值,指定應用程式的原始碼 GUID。 函式會取得此應用程式所使用的已安裝元件路徑。
[in] szComponentCode
指定元件程式代碼 GUID 的 Null 終止字串值。 函式會取得具有此元件程式代碼之已安裝元件的路徑。
[in, optional] szUserSid
以 Null 結尾的字串值,指定系統中使用者的安全性識別碼 (SID)。 函式會取得此 SID 所識別之用戶帳戶下所安裝之應用程式的已安裝元件路徑。 特殊的 SID 字串 s-1-1-0 (Everyone) 會指定系統中的所有使用者。 如果此參數 NULL,則函式只會取得目前登入使用者的已安裝元件路徑。
SID 類型 | 意義 |
---|---|
|
指定目前登入的使用者。 |
|
指定系統中的特定使用者。 使用者 SID 的範例是 “S-1-3-64-2415071341-1358098788-3127455600-2561”。 |
|
指定系統中的所有使用者。 |
[in, optional] dwContext
指定安裝內容的旗標。 函式會取得指定安裝內容中所安裝應用程式之已安裝元件的路徑。 此參數可以是下列值的組合。
[out, optional] lpOutPathBuffer
接收元件路徑的字串值。 此參數可以是 NULL
根 | 意義 |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out, optional] pcchOutPathBuffer
接收緩衝區大小的位置指標,在 TCHAR中,szPathBuf 參數所指向。 此位置中的值應該設定為字串中包含終止 Null 字元的 TCHAR 計數。 如果緩衝區的大小太小,此參數會接收字串值的長度,而不包含計數中終止的 Null 字元。
傳回值
MsiGetComponentPathEx 函式會傳回下列值。
價值 | 意義 |
---|---|
|
計算機上已停用要求的元件。 |
|
組態數據已損毀。 |
|
未安裝元件。 |
|
其中一個函式參數無效。 |
|
元件會安裝在本機。 |
|
元件會安裝以從來源執行。 |
|
無法存取元件來源。 |
|
產品名稱或元件識別碼未知。 |
|
元件以某種方式損毀或部分遺失,需要修復。 |
言論
MsiGetComponentPathEx 函式可能會傳回 INSTALLSTATE_ABSENT 或 INSTALL_STATE_UNKNOWN,原因如下:
- INSTALLSTATE_ABSENT
應用程式未正確確保已藉由呼叫 MsiUseFeature 安裝此功能,並視需要 MsiConfigureFeature。
- INSTALLSTATE_UNKNOWN
此功能未發佈。 應用程式應該稍早呼叫 MsiQueryFeatureState 或 MsiEnumFeatures來判斷此情況。 應用程式會在初始化時進行這些呼叫。 應用程式應該只使用已知已發佈的功能。 由於INSTALLSTATE_UNKNOWN應該由 MsiUseFeature 傳回,因此未呼叫 MsiUseFeature,或未正確檢查其傳回值。
注意
msi.h 標頭會根據 UNICODE 預處理器常數的定義,將 MsiGetComponentPathEx 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關信息,請參閱 Windows Installer Run-Time 需求。 |
目標平臺 | 窗戶 |
標頭 | msi.h |
連結庫 | Msi.lib |
DLL | Msi.dll |