IFilterKeyMap::Serialize
Serializa los datos del mapa de claves de filtro en una matriz de bytes.
HRESULT Serialize(
BYTE * pbFilterKeyMap,
DWORD * pcbFilterKeyMap);
Parámetros
- pbFilterKeyMap
[in, out, unique, size_is(*pcbFilterKeyMap)] Matriz de bytes que recibe los datos serializados.
- pcbFilterKeyMap
[in, out] Especifica el número de bytes de pbFilterKeyMap. Devuelve el número de bytes necesarios para serializar los datos de mapa de claves de filtro si pbFilterKeyMap es demasiado pequeño, o devuelve el número de bytes escritos.
Valor devuelto
S_OK.
E_INVALIDARG si un filtro que se almacenó en el mapa notifica que se serializó correctamente, pero el número de bytes escrito no coincide con el tamaño del filtro.
E_POINTER.
E_OUTOFMEMORY.
HRESULT_FROM_WIN32(ERROR_MORE_DATA) si pbFilterKeyMap es demasiado pequeño. En esta situación, el número necesario de bytes se devuelve en pcbFilterKeyMap.
Notas
Para serializar los filtros contenidos en el mapa de claves del filtro, en primer lugar, este método obtiene los tamaños de los filtros, para lo cual llama a ISyncFilter::Serialize en cada filtro y especifica NULL para el parámetro de matriz de bytes. A continuación, los filtros se serializan llamando de nuevo a ISyncFilter::Serialize en cada filtro. Cuando el número de bytes escrito en la matriz de bytes para un filtro no coincide con el tamaño del filtro que ha notificado la primera llamada a ISyncFilter::Serialize, la serialización se cancela y se devuelve E_INVALIDARG.