共用方式為


ISyncMgrHandler::GetObject 方法 (syncmgr.h)

建立與處理常式相關的特定物件類型。

語法

HRESULT GetObject(
  [in]  REFGUID rguidObjectID,
  [in]  REFIID  riid,
  [out] void    **ppv
);

參數

[in] rguidObjectID

類型: REFGUID

GUID,識別要建立的物件類型。 shlguid.h 中定義的下列其中一個值。

SYNCMGR_OBJECTID_BrowseContent

實作 ISyncMgrUIOperation 介面的物件,顯示 UI,可讓使用者流覽處理常式所管理之專案的內容,例如資料夾、裝置、網路上的電腦或應用程式。

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_CAN_BROWSE_CONTENT功能旗標,同步處理中心只會要求此物件。

SYNCMGR_OBJECTID_ConflictStore

實作 ISyncMgrConflictStore 介面的物件,可讓處理常式提供衝突。 這些衝突會顯示在 [同步中心衝突] 資料夾中。 衝突存放區應該包含處理常式的衝突,以及其所有專案的衝突。 若要只包含特定專案的衝突,同步中心會呼叫 GetObject

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_CONFLICT_STORE功能旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_EventLinkClick

實作 ISyncMgrEventLinkUIOperation 介面的物件,該介面會針對同步結果資料夾中所顯示事件上提供的連結實作按一下動作。

SYNCMGR_OBJECTID_EventStore

實作 ISyncMgrEventStore 介面的物件,可讓處理常式提供自己的事件來源。 這些事件會顯示在 [同步結果] 資料夾中。 事件存放區應該包含處理常式的事件,以及其所有專案的事件。 若要只包含特定專案的事件,同步中心會呼叫 GetObject。 下次同步處理常式時,系統會要求事件存放區刪除處理常式的事件。 當使用者登出時,預設事件存放區會清除其事件。

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_EVENT_STORE功能旗標,則同步中心只會要求此物件。

不需要處理常式才能提供事件存放區。 如果同步中心符合處理常式的需求,則可以使用同步中心所提供的預設事件存放區。

SYNCMGR_OBJECTID_Icon

圖示擷取物件,實作用來顯示處理常式圖示的 IExtractIcon 介面。 只有當處理常式在執行時間動態取得其圖示時,才應該提供這個物件。 提供圖示的慣用機制是將圖示註冊為登錄中的 DefaultIcon。

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_PROVIDES_ICON功能旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_QueryBeforeActivate

實作 ISyncMgrUIOperation 介面的物件,顯示可讓使用者設定處理常式的 UI。 當使用者在 [同步設定] 資料夾中選取處理常式時,會顯示此 UI,然後選取 安裝程式 工作。 在要求這個物件之前,同步中心會為此作業和處理常式的新實例建立個別的執行緒。

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_QUERY_BEFORE_ACTI加值稅E功能旗標,而且未在GetPolicies所擷取的遮罩中設定SYNCMGR_HPM_PREVENT_ACTI加值稅E原則旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_QueryBeforeDeactivate

實作 ISyncMgrUIOperation 介面的物件,會在使用者選取同步中心資料夾中的處理常式時顯示 UI,然後選取 [刪除 ] 工作。 在要求這個物件之前,同步中心會為此作業和處理常式的新實例建立個別的執行緒。

如果getCapabilities所擷取的遮罩中設定了SYNCMGR_HCM_QUERY_BEFORE_DEACTI加值稅E功能旗標,而且未在GetPolicies所擷取的遮罩中設定SYNCMGR_HPM_PREVENT_DEACTI加值稅E原則旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_QueryBeforeEnable

實作 ISyncMgrUIOperation 介面的物件,當使用者在 [同步中心] 資料夾中選取處理常式,然後選取 [ 啟用 ] 工作時,會顯示 UI。 在要求這個物件之前,同步中心會為此作業和處理常式的新實例建立個別的執行緒。

如果GetCapabilities所擷取的遮罩中設定了SYNCMGR_HCM_CAN_ENABLESYNCMGR_HCM_QUERY_BEFORE_ENABLE功能旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_QueryBeforeDisable

實作 ISyncMgrUIOperation 介面的物件,當使用者在 [同步中心] 資料夾中選取處理常式,然後選取 [ 停用 ] 工作時,會顯示 UI。 在要求此物件之前,同步中心會為這個作業和處理常式的新實例建立個別的執行緒。

如果GetCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_CAN_DISABLESYNCMGR_HCM_QUERY_BEFORE_DISABLE功能旗標,則同步中心只會要求此物件。

SYNCMGR_OBJECTID_ShowSchedule

實作 ISyncMgrUIOperation 介面的物件,顯示可讓使用者設定處理常式排程的 UI。 在要求這個物件之前,同步中心會為此作業和處理常式的新實例建立個別的執行緒。

如果getCapabilities所擷取的遮罩中已設定SYNCMGR_HCM_CAN_SHOW_SCHEDULE功能旗標,則同步中心只會要求此物件。

[in] riid

類型: REFIID

所要求介面的 IID。 這取決於 rguidObjectID中名為 的物件類型。

[out] ppv

類型: void**

當這個方法傳回時,會包含所要求介面指標的位址。

傳回值

類型: HRESULT

如果成功,則傳回S_OK,否則傳回錯誤值。 如果處理常式不支援所要求的物件類型,則傳回E_NOTIMPL。

備註

處理常式可以在本身實作要求的介面,也可以在不同的 物件上實作它。

範例

下列範例示範這個方法的實作。

STDMETHODIMP CMyDeviceHandler::GetObject( __in REFGUID   rguidObjectID, 
                                          __in REFIID    riid,
                                          __out void   **ppv)
{
    HRESULT hr = E_NOTIMPL;
    *ppv = NULL;

    if (rguidObjectID == SYNCMGR_OBJECTID_QueryBeforeActivate)
    {
        hr = _CreateSetupObject(riid, ppv);
    }
    else if (rguidObjectID == SYNCMGR_OBJECTID_EventStore)
    {
        hr = _CreateEventStore(NULL, riid, ppv);
    }

    return hr;
}

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 syncmgr.h