Partager via


ISyncFilterInfo::Serialize

Sérialise les données de filtre en un tableau d'octets.

Syntaxe

HRESULT Serialize( 
  BYTE *pbBuffer,
  DWORD *pcbBuffer);

Paramètres

  • pbBuffer
    [in, out, size_is(*pcbBuffer)] Retourne les informations de filtre sérialisées. Affectez NULL à cette valeur pour demander la taille requise de la mémoire tampon.

  • pcbBuffer
    [in, out] Spécifie le nombre d'octets contenus dans pbBuffer. Retourne le nombre d'octets requis pour sérialiser le filtre lorsque pcbBuffer est trop petit, ou le nombre d'octets écrits.

Valeur de retour

  • S_OK.

  • E_INVALIDARG.

  • 0x800700EA (HRESULT_FROM_WIN32(ERROR_MORE_DATA)) lorsque pbBuffer a la valeur NULL ou que pcbBuffer est trop petit. Dans ce cas, le nombre d'octets requis pour sérialiser le filtre est retourné dans pcbBuffer.

Format de sérialisation

Les informations de filtre sérialisées contenues dans pbBuffer sont stockées sous une forme compacte, sans remplissage, dans l'ordre d'octet avec primauté des octets de poids fort (big-endian). Les informations de filtre sérialisées contiennent les éléments suivants, dans l'ordre suivant.

  1. Une section d'en-tête. La section d'en-tête contient les éléments suivants.

    Type de données

    Longueur en octets

    Description

    ULONGLONG

    8

    Version du format de sérialisation des informations de filtre. Cette valeur est égale à 2 lorsque le filtre est un filtre d'élément ou un filtre d'unité de modification. Cette valeur est égale à 3 lorsque le filtre est un filtre personnalisé ou un filtre combiné.

    ULONG

    4

    Indicateurs associés aux informations de filtre. Contient des valeurs du jeu d'indicateurs SYNC_FILTER_INFO_FLAG.

  2. Lorsque les indicateurs incluent SYNC_FILTER_INFO_FLAG_ITEM_LIST ou SYNC_FILTER_INFO_FLAG_CHANGE_UNIT_LIST, les données de filtre suivantes sont sérialisées.

    Type de données

    Longueur en octets

    Description

    BOOL

    1

    Indique si les ID d'unité de modification contenus dans les informations de filtre sont de longueur fixe ou de longueur variable. Cette valeur est 0 si les ID sont de longueur fixe ou 1 si les ID sont de longueur variable.

    USHORT

    2

    Longueur, en octets, des ID d'unité de modification pour les ID de longueur fixe, ou la longueur maximale de l'ID pour les ID de longueur variable.

    ULONG

    4

    Nombre d'ID d'unité de modification contenus dans les informations de filtre.

    Les informations de filtre contiennent une liste d'ID d'unité de modification avec la longueur de la liste égale à la valeur contenue dans l'ULONG précédent.

    Chaque ID d'unité de modification contient les éléments suivants.

    Lorsque les ID d'unité de modification sont de longueur fixe.

    Type de données

    Longueur en octets

    Description

    Séquence d'octets

    Longueur spécifiée dans le format des ID d'unité de modification.

    ID d'unité de modification de longueur fixe.

    Ou, lorsque les ID d'unité de modification sont de longueur variable.

    Type de données

    Longueur en octets

    Description

    USHORT

    2

    Longueur, en octets, de l'ID de longueur variable. Cette longueur inclut les deux octets pour l'USHORT qui contient la longueur, plus les octets qui contiennent l'ID réel.

    Séquence d'octets

    Longueur spécifiée dans l'USHORT précédent.

    ID d'unité de modification de longueur variable.

  3. Lorsque les indicateurs incluent SYNC_FILTER_INFO_FLAG_CUSTOM, les données de filtre suivantes sont sérialisées.

    Type de données

    Longueur en octets

    Description

    Séquence d'octets

    Déterminée par le filtre personnalisé.

    Données de filtre sérialisées écrites dans le flux de données par la méthode ISyncFilter::Serialize.

  4. Lorsque les indicateurs incluent SYNC_FILTER_INFO_COMBINED, les données de filtre suivantes sont sérialisées.

    Type de données

    Longueur en octets

    Description

    ULONG

    4

    Longueur, en octets, du premier objet d'information de filtre de la combinaison.

    Séquence d'octets

    Longueur spécifiée dans l'ULONG précédent.

    Les informations de filtre sérialisées du premier filtre, dans le format spécifié par ce document.

    ULONG

    4

    Longueur, en octets, du deuxième objet d'information de filtre de la combinaison.

    Séquence d'octets

    Longueur spécifiée dans l'ULONG précédent.

    Les informations de filtre sérialisées du deuxième filtre, dans le format spécifié par ce document.

Voir aussi

Autres ressources

Interface ISyncFilterInfo