Un identificador es una forma indirecta de hacer referencia a un objeto propiedad del SO o una biblioteca. Cuando el sistema operativo o una biblioteca posee un objeto pero quiere que un cliente se refiera a él, puede proporcionar una referencia a ese objeto llamado handle.
Los mangos se pueden implementar de diferentes maneras. Por lo general, no son referencias en el sentido C++ o C#. A menudo son punteros emitidos a algún tipo opaco, o pueden ser (o contener) un índice en una tabla de objetos que son propiedad del sistema operativo o la biblioteca.
Por ejemplo, en Windows, si crea una ventana, el sistema operativo crea un objeto que representa la ventana, pero no devuelve un puntero a ese objeto. En cambio, devuelve un identificador de ventana, que proporciona una capa adicional de direccionamiento indirecto. Cuando vuelve a pasar el identificador de ventana en otra llamada del sistema operativo, el sistema operativo sabe qué objeto de ventana usar en función del controlador. Esto evita que su código acceda directamente al objeto ventana.
La capa adicional de direccionamiento indirecto permite que el sistema operativo o la biblioteca hagan cosas como mover objetos, contar los objetos de referencia, y generalmente controlar lo que sucede con el objeto. Al igual que el modismo PIMPL, la implementación puede cambiar por completo sin perder la API original y, por lo tanto, no obliga a los clientes a recompilar. Es especialmente útil si está intentando ofrecer una API no orientada a objetos para clientes escritos en lenguajes de procedimiento como C.
¿Cuál es el contexto en el que ha escuchado el término? Es un término muy general y tiene múltiples significados. –
Posible duplicado de: http://stackoverflow.com/questions/1303123/what-is-a-handle-in-c –