Implementación de canalización de Client-Side
La aplicación cliente debe implementar los procedimientos siguientes, a los que llamará el código auxiliar del cliente durante la transferencia de datos:
- Procedimiento de extracción (para una canalización de entrada)
- Procedimiento de inserción (para una canalización de salida)
- Procedimiento de asignación para asignar un búfer para los datos de transferencia
Todos estos procedimientos deben usar los argumentos especificados por el archivo de encabezado generado por MIDL. Además, la aplicación cliente debe tener una variable de estado para identificar dónde buscar o colocar los datos.
El procedimiento de asignación también puede ser tan simple o tan complejo como sea necesario. Por ejemplo, puede devolver un puntero al mismo búfer cada vez que el código auxiliar llama a la función o puede asignar una cantidad de memoria diferente cada vez. Si los datos ya están en el formato adecuado (una matriz de elementos de canalización, por ejemplo), puede coordinar el procedimiento de asignación con el procedimiento de extracción para asignar un búfer que ya contiene los datos. En ese caso, el procedimiento de extracción podría ser una rutina vacía.
La asignación del búfer debe estar en bytes. Los procedimientos de inserción y extracción, por otro lado, manipulan elementos, cuyo tamaño en bytes depende de cómo se definieron.
En esta sección se describe la implementación del cliente de canalizaciones de entrada y salida en las secciones siguientes:
- Implementación de canalizaciones de entrada en el cliente
- Implementación de canalizaciones de salida en el cliente