PSGetItemPropertyHandler 函式 (propsys.h)
擷取Shell專案的屬性處理程式。
語法
PSSTDAPI PSGetItemPropertyHandler(
[in] IUnknown *punkItem,
[in] BOOL fReadWrite,
[in] REFIID riid,
[out] void **ppv
);
參數
[in] punkItem
類型: IUnknown*
支援 IShellItem 之 Shell 專案的 IUnknown 介面指標。
Windowsxp: 使用 SHCreateShellItem 建立 Shell 專案。
Windows Vista: 使用 SHCreateItemFromIDList、 SHCreateItemFromParsingName、 SHCreateItemFromRelativeName、 SHCreateItemInKnownFolder 或 SHCreateItemWithParent 來建立 Shell 專案。
[in] fReadWrite
類型: BOOL
TRUE 可擷取讀取/寫入屬性處理程式。 FALSE 可擷取唯讀屬性處理程式。
[in] riid
類型: REFIID
處理程式對象應該傳回之介面的 IID 參考。 這應該是 IPropertyStore 或衍生自 IPropertyStore 的介面。
[out] ppv
類型: void**
當此函式傳回時,包含 riid中要求的介面指標。
傳回值
類型: PSSTDAPI
如果成功,則傳回 S_OK ,否則傳回錯誤值。
備註
Windows XP 和 Windows Vista 支援此函式。 針對僅在 Windows Vista 或更新版本上支援的應用程式,建議您使用 IShellItem2::GetPropertyStore ,而不是 PSGetItemPropertyHandler。 該方法會在傳回的屬性存放區中提供更豐富的屬性集。
此函式大致相當於將GPS_HANDLERPROPERTIESONLY旗標傳遞至 IShellItem2::GetPropertyStore。
您必須先使用 CoInitialize 或 OleInitialize 初始化元件物件模型 (COM) ,才能呼叫 PSGetItemPropertyHandler。 COM 必須在這個物件的存留期內保持初始化狀態。
範例
下列範例要包含在較大的程式中,示範如何使用 PSGetItemPropertyHandler 來取得專案的屬性處理程式。
// IShellItem *psi;
// Assume variable psi is valid and initialized.
IPropertyStore *pStore;
HRESULT hr = PSGetItemPropertyHandler(psi, FALSE, IID_PPV_ARGS(&pStore));
if (SUCCEEDED(hr))
{
// pStore is now valid and contains properties exposed through the
// property handler for the item.
pStore->Release();
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP 搭配 SP2、Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | propsys.h |
程式庫 | Propsys.lib |
Dll | Propsys.dll (6.0 版或更新版本) |
可轉散發套件 | Windows 桌面搜尋 (WDS) 3.0 |