(syncmgr.h) ISyncMgrSyncItem::GetObject 方法
建立與專案相關的特定物件類型。
語法
HRESULT GetObject(
[in] REFGUID rguidObjectID,
[in] REFIID riid,
[out] void **ppv
);
參數
[in] rguidObjectID
類型: REFGUID
GUID,識別要建立的物件類型。 shlguid.h 中定義的下列其中一個值。
SYNCMGR_OBJECTID_BrowseContent
實作 ISyncMgrUIOperation 介面的物件,顯示允許使用者瀏覽項目內容的 UI。
如果 getCapabilities 所擷取的遮罩中已設定SYNCMGR_ICM_CAN_BROWSE_CONTENT功能旗標,則同步中心只會要求此物件。
SYNCMGR_OBJECTID_ConflictStore
實作 ISyncMgrConflictStore 介面的物件,可讓專案提供衝突。 這些衝突會顯示在 [同步中心衝突] 資料夾中。 衝突存放區應該只包含項目的衝突。 若要包含處理程式所有項目的衝突,同步中心會呼叫 GetObject。
如果 getCapabilities 所擷取的遮罩中已設定SYNCMGR_ICM_CONFLICT_STORE功能旗標,則同步中心只會要求此物件。
SYNCMGR_OBJECTID_EventStore
實作 ISyncMgrEventStore 介面的物件,可讓專案提供自己的事件來源。 這些事件會顯示在 [同步結果] 資料夾中。 事件存放區應該只包含專案的事件。 若要包含所有處理程序專案的事件,同步中心會呼叫 GetObject。
如果 getCapabilities 所擷取的遮罩中已設定SYNCMGR_ICM_EVENT_STORE功能旗標,則同步中心只會要求此物件。
專案不需要提供事件存放區。 如果同步中心提供的預設事件存放區符合專案的需求,則可以使用它。
SYNCMGR_OBJECTID_Icon
圖示擷取對象,實作用來顯示項目圖示的 IExtractIcon 介面。 只有當專案在運行時間動態取得其圖示時,才應該提供這個物件。 提供圖示的慣用機制是將圖示註冊為登錄中的DefaultIcon。
如果 getCapabilities 所擷取的遮罩中已設定SYNCMGR_ICM_PROVIDES_ICON功能旗標,則同步中心只會要求此物件。
SYNCMGR_OBJECTID_QueryBeforeDelete
實作 ISyncMgrUIOperation 介面的物件,當使用者選取處理程式資料夾中的專案,然後選取 [刪除 ] 工作時,會顯示 UI。 在要求此物件之前,同步中心會為這項作業和專案的新實例建立個別線程。
如果 getCapabilities 所擷取的遮罩中設定了SYNCMGR_ICM_CAN_DELETE和SYNCMGR_ICM_QUERY_BEFORE_DELETE功能旗標,則同步中心只會要求此物件。
SYNCMGR_OBJECTID_QueryBeforeEnable
實作 ISyncMgrUIOperation 介面的物件,會在用戶選取 [同步中心] 資料夾中的項目時顯示 UI,然後選取 [ 啟用 ] 工作。 在要求此物件之前,同步中心會為這項作業和專案的新實例建立個別線程。
如果 已設定SYNCMGR_ICM_QUERY_BEFORE_ENABLE 功能旗標,且 SYNCMGR_IPM_PREVENT_ENABLE 原則旗標未設定,則同步中心只會要求此物件。
SYNCMGR_OBJECTID_QueryBeforeDisable
實作 ISyncMgrUIOperation 介面的物件,當使用者選取處理程式資料夾中的專案,然後選取 [停用 ] 工作時,會顯示 UI。 在要求此物件之前,同步中心會為這項作業和專案的新實例建立個別線程。
如果設定 SYNCMGR_ICM_QUERY_BEFORE_DELETE 功能旗標,且 未設定SYNCMGR_IPM_PREVENT_DISABLE 原則旗標,則同步中心只會要求此物件。
[in] riid
類型: REFIID
所要求介面的 IID。 這取決於 rguidObjectID 中名為 的物件類型。
[out] ppv
類型: void**
當這個方法傳回時,會包含所要求介面指標的位址。
傳回值
類型: HRESULT
如果成功,則傳回S_OK,否則傳回錯誤值。 如果專案不支援所要求的物件類型,則傳回E_INVALIDARG。
備註
專案可以在其處理程式上實作要求的介面,也可以在不同的 對象上實作它。
範例
下列範例示範這個方法的實作。
STDMETHODIMP CMyDeviceSyncItem::GetObject(__in REFGUID rguidObjectID,
__in REFIID riid,
__out void **ppv)
{
HRESULT hr = E_INVALIDARG;
*ppv = NULL;
if (rguidObjectID == SYNCMGR_OBJECTID_QueryBeforeDelete)
{
hr = _CreateQueryBeforeDeleteObject(riid, ppv);
}
else if (rguidObjectID == SYNCMGR_OBJECTID_EventStore)
{
hr = _CreateEventStore(_pszItemID, riid, ppv);
}
return hr;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | syncmgr.h |