다음을 통해 공유


ISyncMgrHandler::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 인터페이스를 구현하는 개체입니다.

동기화 센터는 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

사용자가 처리기를 구성할 수 있도록 하는 UI를 표시하는 ISyncMgrUIOperation 인터페이스를 구현하는 개체입니다. 이 UI는 사용자가 동기화 설정 폴더에서 처리기를 선택한 다음 설치 작업을 선택할 때 표시됩니다. 이 개체를 요청하기 전에 동기화 센터는 이 작업에 대한 별도의 스레드와 처리기의 새 instance 만듭니다.

동기화 센터는 GetCapabilities에서 검색한 마스크에 SYNCMGR_HCM_QUERY_BEFORE_ACTIVATE 기능 플래그가 설정되어 있고 GetPolicies에서 검색한 마스크에서 SYNCMGR_HPM_PREVENT_ACTIVATE 정책 플래그가 설정되지 않은 경우에만 이 개체를 요청합니다.

SYNCMGR_OBJECTID_QueryBeforeDeactivate

사용자가 동기화 센터 폴더에서 처리기를 선택한 다음 삭제 작업을 선택할 때 UI를 표시하는 ISyncMgrUIOperation 인터페이스를 구현하는 개체입니다. 이 개체를 요청하기 전에 동기화 센터는 이 작업에 대한 별도의 스레드와 처리기의 새 instance 만듭니다.

동기화 센터는 GetCapabilities에서 검색한 마스크에 SYNCMGR_HCM_QUERY_BEFORE_DEACTIVATE 기능 플래그가 설정되어 있고 GetPolicies에서 검색한 마스크에서 SYNCMGR_HPM_PREVENT_DEACTIVATE 정책 플래그가 설정되지 않은 경우에만 이 개체를 요청합니다.

SYNCMGR_OBJECTID_QueryBeforeEnable

사용자가 동기화 센터 폴더에서 처리기를 선택한 다음 사용 작업을 선택할 때 UI를 표시하는 ISyncMgrUIOperation 인터페이스를 구현하는 개체입니다. 이 개체를 요청하기 전에 동기화 센터는 이 작업에 대한 별도의 스레드와 처리기의 새 instance 만듭니다.

동기화 센터는 GetCapabilities에서 검색한 마스크에 SYNCMGR_HCM_CAN_ENABLE 및 SYNCMGR_HCM_QUERY_BEFORE_ENABLE 기능 플래그가 설정된 경우에만 이 개체를 요청합니다.

SYNCMGR_OBJECTID_QueryBeforeDisable

사용자가 동기화 센터 폴더에서 처리기를 선택한 다음 사용 안 함 작업을 선택할 때 UI를 표시하는 ISyncMgrUIOperation 인터페이스를 구현하는 개체입니다. 이 개체를 요청하기 전에 동기화 센터는 이 작업에 대한 별도의 스레드와 처리기의 새 instance 만듭니다.

동기화 센터는 GetCapabilities에서 검색한 마스크에 SYNCMGR_HCM_CAN_DISABLE 및 SYNCMGR_HCM_QUERY_BEFORE_DISABLE 기능 플래그가 설정된 경우에만 이 개체를 요청합니다.

SYNCMGR_OBJECTID_ShowSchedule

사용자가 처리기의 일정을 구성할 수 있도록 하는 UI를 표시하는 ISyncMgrUIOperation 인터페이스를 구현하는 개체입니다. 이 개체를 요청하기 전에 동기화 센터는 이 작업에 대한 별도의 스레드와 처리기의 새 instance 만듭니다.

동기화 센터는 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