ISyncMgrSyncItem::GetObject メソッド (syncmgr.h)

アイテムに関連する特定の種類のオブジェクトを作成します。

構文

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

パラメーター

[in] rguidObjectID

種類: REFGUID

作成するオブジェクトの種類を識別する GUID。 shlguid.h で定義されている次のいずれかの値。

SYNCMGR_OBJECTID_BrowseContent

ユーザーが項目の内容を参照できるようにする UI を示す ISyncMgrUIOperation インターフェイスを実装するオブジェクト。

Sync Center では、GetCapabilities によって取得されたマスクでSYNCMGR_ICM_CAN_BROWSE_CONTENT機能フラグが設定されている場合にのみ、このオブジェクトが要求されます。

SYNCMGR_OBJECTID_ConflictStore

アイテムが競合を提供できるようにする ISyncMgrConflictStore インターフェイスを実装するオブジェクト。 これらの競合は、[同期センターの競合] フォルダーに表示されます。 競合ストアには、アイテムの競合のみを含める必要があります。 すべてのハンドラーのアイテムの競合を含めるために、同期センターは GetObject を呼び出します。

Sync Center では、GetCapabilities によって取得されたマスクでSYNCMGR_ICM_CONFLICT_STORE機能フラグが設定されている場合にのみ、このオブジェクトが要求されます。

SYNCMGR_OBJECTID_EventStore

項目が独自のイベント ソースを提供できるようにする ISyncMgrEventStore インターフェイスを実装するオブジェクト。 これらのイベントは、[同期結果] フォルダーに表示されます。 イベント ストアには、アイテムのイベントのみを含める必要があります。 すべてのハンドラーのアイテムのイベントを含めるために、同期センターは GetObject を呼び出します。

Sync Center では、GetCapabilities によって取得されたマスクでSYNCMGR_ICM_EVENT_STORE機能フラグが設定されている場合にのみ、このオブジェクトが要求されます。

イベント ストアを提供するために項目は必要ありません。 Sync Center によって提供される既定のイベント ストアは、アイテムの要件を満たしている場合に使用できます。

SYNCMGR_OBJECTID_Icon

項目のアイコンを表示するために使用される IExtractIcon インターフェイスを実装するアイコン抽出オブジェクト。 このオブジェクトは、アイテムが実行時にアイコンを動的に取得する場合にのみ指定する必要があります。 アイコンを提供するための推奨されるメカニズムは、レジストリにアイコンを DefaultIcon として登録する方法です。

Sync Center は、getCapabilities によって取得されたマスクにSYNCMGR_ICM_PROVIDES_ICON機能フラグが設定されている場合にのみ、このオブジェクトを要求します。

SYNCMGR_OBJECTID_QueryBeforeDelete

ユーザーがハンドラーのフォルダー内の項目を選択し、削除タスクを選択したときに UI を表示する ISyncMgrUIOperation インターフェイスを実装するオブジェクト。 このオブジェクトを要求する前に、Sync Center によって、この操作用の個別のスレッドと項目の新しいインスタンスの両方が作成されます。

Sync Center では、GetCapabilities によって取得されたマスクにSYNCMGR_ICM_CAN_DELETEおよびSYNCMGR_ICM_QUERY_BEFORE_DELETE機能フラグが設定されている場合にのみ、このオブジェクトが要求されます。

SYNCMGR_OBJECTID_QueryBeforeEnable

ユーザーが Sync Center フォルダー内の項目を選択し、Enable タスクを選択したときに UI を表示する ISyncMgrUIOperation インターフェイスを実装するオブジェクト。 このオブジェクトを要求する前に、Sync Center によって、この操作用の個別のスレッドと項目の新しいインスタンスの両方が作成されます。

同期センターは、 SYNCMGR_ICM_QUERY_BEFORE_ENABLE 機能フラグが設定され、 SYNCMGR_IPM_PREVENT_ENABLE ポリシー フラグが設定されていない場合にのみ、このオブジェクトを要求します。

SYNCMGR_OBJECTID_QueryBeforeDisable

ユーザーがハンドラーのフォルダー内の項目を選択し、[無効化] タスクを選択したときに UI を表示する ISyncMgrUIOperation インターフェイスを実装するオブジェクト。 このオブジェクトを要求する前に、Sync Center によって、この操作用の個別のスレッドと項目の新しいインスタンスの両方が作成されます。

同期センターは、 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