Objectos App y Error (sólo proyectos visuales)



En tiempo de ejecución, puede tener acceso a estos dos útiles e interesantes objetos:


Objeto
App

    El objeto App contiene información sobre la aplicación y se compone de los siguientes miembros:

Accel El "handle" de la tabla principal de aceleradores, si hay alguno, o NULL
CommandLine La linea de comandos de la aplicación (excluyendo el nombre y la ubicación del programa)
FileName El nombre del archivo ejecutable
Header La cabecera o título de la aplicación (el texto del campo Cabecera de las propiedades del proyecto)
Instance El "handle" de la instancia de la aplicación
Main El "handle" de la ventana principal (ventana de inicio) de la aplicación
Major El número mayor de la versión
Minor El número menor de la versión
Path La ubicación de la aplicación
Previous El "handle" de la ventana principal de la instancia previa, si hay alguna, o NULL
ProcessID El identificador del proceso (no el handle del proceso). Para obtener el handle del proceso, llame a la función de la API GetCurrentProcess.
Revision La revisión de la versión
ThreadID El identificador del "thread" que ha creado la ventana principal.

Algunas aplicaciones sólo pueden tener una instancia en marcha al mismo tiempo (p. e. el ejemplo EC Player que viene con Easy Code). Para saber si ya hay alguna otra instancia en marcha cuando inicie la aplicación, compruebe la variable App.Previous en el mensaje WM_CREATE. Si App.Previous no es NULL y no desea iniciar otra instancia, devuelva -1. El valor de App.Previous es el "handle" de la ventana principal de la instancia que ya está en marcha (si hay alguna), o NULL.


AVISO:
No debería 
CAMBIAR NUNCA ninguno de los valores del objeto App o la aplicación podría bloquearse.

OBSERVACIONES: El miembro CommandLine apunta a una cadena de texto acabada en cero que contiene sólo la linea de comandos de la aplicación (si hay alguna), es decir, sin incluir el nombre ni la ubicación del programa ("path"). Para obtener la linea de comandos entera, utiice la función de la API GetCommandLine.


Objeto Error

    El objeto Error siempre contiene información sobre la última excepción producida y se compone de dos miembros:

Code
Description

Error.Code es una variable DWord que almacena el código de la excepción, mientras que Error.Description es un puntero a la dirección efectiva de una cadena acabada en cero que contiene la descripción de la excepción (este miembro sólo está disponible en modo Debug). Los valores del objeto Error se ponen a cero (miembro Code) y a una cadena vacía (miembro Description) al iniciarse la aplicación. Cuando se produce una excepción, el código y la descripción se almacenan en los miembros correspondientes del objeto Error, y permanecen sin modificar hasta que se produce otra excepción. Si lo desea, puede poner Error.Code a cero antes de llevar a cabo una operación, pero no debería CAMBIAR NUNCA la dirección de Error.Description.

OBSERVACIONES: Ambos objetos sólamente se encuentran disponibles en tiempo de ejecución. Cuando se trabaja en modo Release sólamente Error.Code es válido, puesto que Error.Description existe pero no se actualiza nunca en las librerías ECStcMsr.lib o ECDllMsr.lib.