Freigeben über


IFilterKeyMap::Serialize

Serialisiert die Filterschlüssel-Zuordnungsdaten in ein Bytearray.

HRESULT Serialize(
  BYTE * pbFilterKeyMap,
  DWORD * pcbFilterKeyMap);

Parameter

  • pbFilterKeyMap
    [in, out, unique, size_is(*pcbFilterKeyMap)] Das Bytearray, das die serialisierten Daten empfängt.
  • pcbFilterKeyMap
    [in, out] Gibt die Anzahl der Bytes in pbFilterKeyMap an. Gibt die Anzahl der zum Serialisieren der Filterschlüssel-Zuordnungsdaten erforderlichen Bytes zurück, wenn pbFilterKeyMap zu klein ist, oder gibt die Anzahl der geschriebenen Bytes zurück.

Rückgabewert

  • S_OK.

  • E_INVALIDARG, wenn von einem in der Zuordnung gespeicherten Filter gemeldet wird, dass er sich erfolgreich serialisiert hat, aber die Anzahl der geschriebenen Bytes nicht mit der Größe des Filters übereinstimmt.

  • E_POINTER.

  • E_OUTOFMEMORY.

  • HRESULT_FROM_WIN32(ERROR_MORE_DATA), wenn pbFilterKeyMap zu klein ist. In dieser Situation wird in pcbFilterKeyMap die erforderliche Anzahl der Bytes zurückgegeben.

Hinweise

Um die in der Filterschlüsselzuordnung enthaltenen Filter zu serialisieren, ruft diese Methode zuerst die Größen der Filter ab, indem sie ISyncFilter::Serialize für jeden Filter aufruft, wobei NULL für den Bytearrayparameter angegeben wird. Die Filter werden anschließend serialisiert, indem ISyncFilter::Serialize erneut für jeden Filter aufgerufen wird. Wenn die Anzahl der für einen Filter in das Bytearray geschriebenen Bytes nicht mit der Größe des Filters übereinstimmt, der beim ersten Aufruf von ISyncFilter::Serialize gemeldet wurde, wird die Serialisierung abgebrochen und E_INVALIDARG zurückgegeben.

Siehe auch

Verweis

IFilterKeyMap-Schnittstelle