Поделиться через


Метод ISyncMgrSyncItem::GetItemID (syncmgr.h)

Возвращает уникальный идентификатор элемента синхронизации.

Синтаксис

HRESULT GetItemID(
  [out] LPWSTR *ppszItemID
);

Параметры

[out] ppszItemID

Тип: LPWSTR*

При возврате этого метода содержит указатель на буфер, содержащий идентификатор элемента. Эта строка имеет максимальную длину MAX_SYNCMGR_ID включая завершающий символ NULL .

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Идентификатор, полученный этим методом, не может измениться. Как правило, идентификатор имеет вид строки GUID. Однако это не является обязательным требованием. Идентификатор может быть любой строкой, уникальной в контексте обработчика.

Если GetItemID завершается сбоем или в ppszItemID возвращается пустая строка, элемент синхронизации не отображается в папке обработчика и центр синхронизации не будет пытаться синхронизировать его.

Идентификатор, полученный этим методом, доступен в пользовательском интерфейсе папки как свойство System.Sync.ItemID (PKEY_Sync_HandlerID).

Элемент отвечает за выделение буфера строки, на который указывает ppszComment через CoTaskMemAlloc. Центр синхронизации освобождает буфер строк через CoTaskMemFree.

В более ранних реализациях Диспетчера синхронизации эти данные были получены с помощью структуры 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
Header syncmgr.h