Freigeben über


ISyncFilterInfo::Serialize

Serialisiert die Filterdaten in ein Bytearray.

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

Parameter

  • pbBuffer
    [in, out, size_is(*pcbBuffer)] Gibt die serialisierten Filterinformationen zurück. Legen Sie diesen Wert auf NULL fest, um die erforderliche Größe des Puffers anzufordern.
  • pcbBuffer
    [in, out] Gibt die Anzahl der Bytes in pbBuffer an. Gibt die Anzahl der zum Serialisieren des Filters erforderlichen Bytes zurück, wenn pcbBuffer zu klein ist, oder die Anzahl der geschriebenen Bytes.

Rückgabewert

  • S_OK.

  • E_INVALIDARG.

  • 0x800700EA (HRESULT_FROM_WIN32(ERROR_MORE_DATA)), wenn pbBuffer NULL ist oder wenn pcbBuffer zu klein ist. In diesem Fall wird in pcbBuffer die Anzahl der zum Serialisieren des Filters erforderlichen Bytes zurückgegeben.

Serialisierungsformat

Die in pbBuffer enthaltenen serialisierten Filterinformationen werden in kompakter Form ohne Leerstellen in Big-Endian-Bytereihenfolge gespeichert. Die serialisierten Filterinformationen enthalten die folgenden Elemente in der folgenden Reihenfolge.

  1. Einen Headerabschnitt. Der Headerabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONGLONG

    8

    Die Version des Serialisierungsformats der Filterinformationen. Dieser Wert ist 2, wenn der Filter ein Elementfilter oder ein Änderungseinheitsfilter ist. Dieser Wert ist 3, wenn der Filter ein benutzerdefinierter Filter oder ein kombinierter Filter ist.

    ULONG

    4

    Die den Filterinformationen zugeordneten Flags. Diese enthalten Werte aus dem Satz der SYNC_FILTER_INFO_FLAG-Flags.

  2. Wenn die Flags SYNC_FILTER_INFO_FLAG_ITEM_LIST oder SYNC_FILTER_INFO_FLAG_CHANGE_UNIT_LIST enthalten, werden folgende Filterdaten serialisiert.

    Datentyp Länge in Bytes Beschreibung

    BOOL

    1

    Gibt an, ob in den Filterinformationen enthaltene Änderungseinheit-IDs eine feste oder eine variable Länge haben. Dieser Wert beträgt 0, wenn die IDs eine feste Länge haben, oder 1, wenn sie eine variable Länge haben.

    USHORT

    2

    Die Länge von Änderungseinheit-IDs in Bytes bei IDs mit fester Länge oder die maximale Länge der ID bei IDs mit variabler Länge.

    ULONG

    4

    Die Anzahl der Änderungseinheit-IDs, die in den Filterinformationen enthalten sind.

    Die Filterinformationen enthalten eine Liste von Änderungseinheit-IDs mit derselben Listenlänge wie der im vorherigen ULONG enthaltene Wert.

    Jede Änderungseinheit-ID enthält die folgenden Elemente.

    Bei Änderungseinheit-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die im Format der Änderungseinheit-ID angegebene Länge.

    Die Änderungseinheit-ID mit fester Länge.

    Bei Änderungseinheit-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Änderungseinheit-ID mit variabler Länge.

  3. Wenn die Flags SYNC_FILTER_INFO_FLAG_CUSTOM enthalten, werden folgende Filterdaten serialisiert.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Wird durch den benutzerdefinierten Filter bestimmt.

    Die serialisierten Filterdaten, die von der ISyncFilter::Serialize-Methode in den Stream geschrieben wurden.

  4. Wenn die Flags SYNC_FILTER_INFO_FLAG_COMBINED enthalten, werden folgende Filterdaten serialisiert.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des ersten Filterinformationsobjekts in der Kombination in Bytes.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Die serialisierten Filterinformationen des ersten Filters in dem von diesem Dokument angegebenen Format.

    ULONG

    4

    Die Länge des zweiten Filterinformationsobjekts in der Kombination in Bytes.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Die serialisierten Filterinformationen des zweiten Filters in dem von diesem Dokument angegebenen Format.

Siehe auch

Verweis

ISyncFilterInfo-Schnittstelle