Partager via


Méthode ISyncMgrSyncItem ::GetItemID (syncmgr.h)

Obtient l’ID unique d’un élément de synchronisation.

Syntaxe

HRESULT GetItemID(
  [out] LPWSTR *ppszItemID
);

Paramètres

[out] ppszItemID

Type : LPWSTR*

Lorsque cette méthode est retournée, contient un pointeur vers une mémoire tampon contenant l’ID de l’élément. Cette chaîne a une longueur maximale MAX_SYNCMGR_ID y compris le caractère null de fin.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

L’ID récupéré par cette méthode ne peut pas changer. En règle générale, l’ID se présente sous la forme d’une chaîne GUID. Toutefois, il ne s'agit pas d'une exigence. L’ID peut être n’importe quelle chaîne unique dans le contexte du gestionnaire.

Si GetItemID échoue ou si une chaîne vide est retournée dans ppszItemID, l’élément de synchronisation n’est pas affiché dans le dossier du gestionnaire et le Centre de synchronisation ne tente pas de le synchroniser.

L’ID récupéré par cette méthode est disponible dans l’interface utilisateur du dossier en tant que propriété System.Sync.ItemID (PKEY_Sync_HandlerID).

L’élément est chargé d’allouer la mémoire tampon de chaîne pointée par ppszComment via CoTaskMemAlloc. Le Centre de synchronisation libère la mémoire tampon de chaîne via CoTaskMemFree.

Dans les anciennes implémentations de Sync Manager, ces données ont été récupérées via la structure SYNCMGRITEM .

Exemples

L’exemple suivant montre une implémentation de cette méthode.

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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête syncmgr.h