CPersistStream (clase)
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
CPersistStream
es la clase base para propiedades persistentes de filtros (es decir, propiedades de filtro en gráficos guardados).
La manera más sencilla de usar CPersistStream
es:
Organice el filtro para heredar esta clase.
Implemente WriteToStream y ReadFromStream en la clase . Estas invalidarán las funciones aquí, que no hacen nada, sino que actúan como marcadores de posición.
Cambie nonDelegatingQueryInterface para controlar IPersistStream.
Implemente SizeMax para devolver un límite superior en el número de bytes de datos que guarde.
Si guarda datos Unicode™, recuerde que WCHAR es de 2 bytes.
Cuando cambien los datos, llame a SetDirty.
Números de versión
En algún momento, puede decidir modificar o ampliar el formato de los datos. A continuación, le gustaría tener un número de versión en todas las secuencias guardadas antiguas para que pueda saber, cuando las lea, si representan el formulario antiguo o nuevo. Para ayudarle, esta clase escribe y lee un número de versión. Cuando escribe, llama a GetSoftwareVersion para consultar la versión del software que se usa en este momento. (En efecto, se trata de un número de versión del diseño de datos en el archivo). Escribe esto como lo primero en los datos. Si desea cambiar la versión, implemente (invalidar) GetSoftwareVersion. Lee el número de versión del archivo en mPS_dwFileVersion antes de llamar a ReadFromStream, por lo que en ReadFromStream puede comprobar mPS_dwFileVersion para ver si está leyendo un archivo de versión anterior. Normalmente, debe aceptar archivos cuya versión no sea más reciente que la versión de software que las lea.
CPersistStream implementa IPersistStream. Para obtener más información de implementación, consulte la referencia COM en Microsoft Platform SDK.
Miembros de datos protegidos | Descripción |
---|---|
mPS_dwFileVersion | Número de versión del archivo. |
mPS_fDirty | Los datos de esta secuencia deben guardarse. |
Funciones de miembro | Descripción |
CPersistStream | Construye un objeto CPersistStream . |
SetDirty | Indica que el objeto debe guardarse en la secuencia. |
Funciones miembro reemplazables | Descripción |
GetClassID | Recupera el identificador de clase de esta secuencia. |
GetSoftwareVersion | Recupera el número de versión de este formato de archivo. |
ReadFromStream | Lee los datos del filtro de la secuencia. |
SizeMax | Recupera el número de bytes necesarios para los datos (sin incluir el número de versión). |
WriteToStream | Escribe los datos del filtro en la secuencia. |
Métodos IPersistStream | Descripción |
GetSizeMax | Recupera el número de bytes necesarios para los datos (incluido el número de versión). |
IsDirty | Comprueba si el objeto se debe guardar. |
Carga | Carga los datos del flujo en la memoria. |
Guardar | Guarda los datos de la memoria en la secuencia. |