다음을 통해 공유


ISyncMgrSyncItem::GetItemID 메서드(syncmgr.h)

동기화 항목의 고유 ID를 가져옵니다.

구문

HRESULT GetItemID(
  [out] LPWSTR *ppszItemID
);

매개 변수

[out] ppszItemID

형식: LPWSTR*

이 메서드가 반환되면 항목의 ID를 포함하는 버퍼에 대한 포인터가 포함됩니다. 이 문자열은 종료 null 문자를 포함하여 MAX_SYNCMGR_ID 최대 길이입니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 메서드에서 검색한 ID는 변경할 수 없습니다. 일반적으로 ID는 GUID 문자열 형식입니다. 그러나 이것은 요구 사항이 아닙니다. ID는 처리기의 컨텍스트에서 고유한 문자열일 수 있습니다.

GetItemID가 실패하거나 빈 문자열이 ppszItemID에 반환되면 동기화 항목이 처리기의 폴더에 표시되지 않으며 동기화 센터에서 동기화를 시도하지 않습니다.

이 메서드에서 검색한 ID는 폴더 UI에서 System.Sync.ItemID(PKEY_Sync_HandlerID) 속성으로 사용할 수 있습니다.

항목은 CoTaskMemAlloc을 통해 ppszComment에서 가리키는 문자열 버퍼를 할당합니다. 동기화 센터는 CoTaskMemFree를 통해 문자열 버퍼의 할당을 취소합니다.

이전 Sync Manager 구현에서 이 데이터는 SYNCMGRITEM 구조를 통해 검색되었습니다.

예제

다음 예제에서는 이 메서드의 구현을 보여줍니다.

STDMETHODIMP CMyDeviceSyncItem::GetItemID(__out LPWSTR *ppszItemID)
{
    HRESULT hr = S_OK;
    *ppszName = NULL;

    // Generate the string version of the ID.
    if (_pszItemID == NULL)
    {
        LPOLESTR pszItemID = NULL;
        hr = StringFromCLSID(_guidItemID, &_pszItemID);
    }

    if (SUCCEEDED(hr))
    {
        // Duplicate the item ID string for the caller.
        hr = SHCoAllocString(_pszItemID, ppszItemID);
    } 

    return hr;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 syncmgr.h