Interfaz de objeto
Windows proporciona funciones que realizan las siguientes tareas:
- Creación de un objeto
- Obtener un identificador de objeto
- Obtener información sobre el objeto
- Establecer información sobre el objeto
- Cerrar el identificador de objeto
- Destruir el objeto
Algunas de estas tareas no son necesarias para cada objeto. Algunas de estas tareas se combinan para determinados objetos. Por ejemplo, una aplicación puede crear un objeto de evento. Otras aplicaciones pueden abrir el evento para obtener un identificador único para este objeto de evento. A medida que cada aplicación termina de usar el evento , cierra su identificador al objeto . Cuando no hay ningún identificador abierto restante en el objeto de evento, el sistema destruye el objeto de evento. Por el contrario, una aplicación puede obtener un identificador para un objeto de ventana existente. Cuando el objeto window ya no es necesario, la aplicación debe destruir el objeto , que invalida el identificador de la ventana.
En ocasiones, un objeto permanece en memoria después de que se hayan cerrado todos los identificadores de objeto. Por ejemplo, un subproceso podría crear un objeto de evento y esperar en el identificador de evento. Mientras el subproceso está esperando, otro subproceso podría cerrar el mismo identificador de objeto de evento. El objeto de evento permanece en memoria, sin ningún identificador de objeto de evento, hasta que el objeto de evento se establece en el estado señalado y se completa la operación de espera. En este momento, el sistema quita el objeto de la memoria.
Los identificadores y los objetos consumen memoria. Por lo tanto, para conservar el rendimiento del sistema, debe cerrar los identificadores y eliminar objetos en cuanto ya no sean necesarios. Si no lo hace, la aplicación puede dañar el rendimiento del sistema debido al uso excesivo del archivo de paginación.
Cuando finaliza un proceso, el sistema cierra automáticamente los identificadores y elimina los objetos creados por el proceso. Sin embargo, cuando finaliza un subproceso, el sistema normalmente no cierra los identificadores ni elimina objetos. Las únicas excepciones son objetos de conversación de intercambio de datos dinámicos (DDE) de ventana, enlace, posición de ventana; estos objetos se destruyen cuando finaliza el subproceso de creación.