modelo de Data-Pull y modelo de Data-Push
Un cliente de un moniker asincrónico puede elegir entre un modelo de extracción de datos y inserción de datos para impulsar una IMoniker::BindToStorage operación y recibir notificaciones asincrónicas. En el modelo de extracción de datos, el cliente controla la operación de enlace y el moniker proporciona datos al cliente solo mientras se lee. Es decir, después de la primera llamada a IBindStatusCallback::OnDataAvailable, el moniker no proporciona ningún dato al cliente a menos que el cliente haya consumido todos los datos que ya están disponibles.
Dado que los datos solo se descargan como se solicita, los clientes que eligen el modelo de extracción de datos deben asegurarse de leer estos datos de forma oportuna. En el caso de las descargas de Internet con url monikers , la operación de enlace puede producir un error si un cliente espera demasiado tiempo antes de solicitar más datos.
En el modelo de inserción de datos, el moniker controla la operación de enlace asincrónica y notifica continuamente al cliente cada vez que haya nuevos datos disponibles. El cliente puede elegir si se van a leer los datos en cualquier momento durante la operación de enlace, pero el moniker impulsará la operación de enlace a la finalización independientemente.
Además, debe recordar seguir las reglas COM para la asignación de memoria al usar monikers asincrónicos, específicamente lo siguiente:
- Siempre que una interfaz COM o una llamada de función devuelve un búfer (cadena u otro) a su cliente, el cliente es responsable de liberar la memoria llamando a CoTaskMemFree.
- Siempre que una interfaz o función COM requiera un búfer de su cliente, el cliente debe asignar ese búfer mediante CoTaskMemAlloc y el destinatario debe liberarlo.
Asegúrese de seguir estas reglas al asignar cadenas o búferes que se pasan a monikers asincrónicos y recuerde liberar memoria devuelta por monikers asincrónicos. Consulte Administración de de asignación de memoria y temas relacionados para obtener detalles completos.
Temas relacionados