共用方式為


(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_DELETESYNCMGR_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