Objectes App i Error (només projectes visuals)



En temps d'execució, podeu tenir accés a aquests dos útils i interressants objectes:


Objecte 
App

    L'objecte App conté informació sobre l'aplicació i disposa dels següents membres:

Accel El "handle" de la taula principal d'acceleradors, si n'hi ha algun, o NULL
CommandLine La línia de comandes de l'aplicació (exclöent-hi el nom y la ubicació del programa)
FileName El nom del fitxer executable
Header La capçalera o títol de l'aplicació (el text del camp Capçalera de les propietats del projecte)
Instance El "handle" de la instància de l'aplicació
Main El "handle" de la finestra principal (finestra d'inici) de l'aplicació
Major El número major de la versió
Minor El número menor de la versió
Path La ubicació de l'aplicació
Previous El "handle" de la finestra principal de la instància previa, si n'hi ha alguna, o NULL
ProcessID L'identificador del procés (no el handle del procés). Per obtenir el handle del procés, crideu la funció de l'API GetCurrentProcess.
Revision La revisió de la versió
ThreadID L'identificador del "thread" que ha creat la finestra principal.

Algunes aplicacions només poden tenir una instància en marxa al mateix temps (p. e. l'exemple EC Player que ve amb l'Easy Code). Per tal de saber si ja hi ha alguna altra instància corrent quan inicieu l'aplicació, comproveu la variable App.Previous en el missatge WM_CREATE. Si App.Previous no és NULL i no voleu iniciar una altra instància, retorneu -1. El valor d'App.Previous és el "handle" de la finestra principal de la instància que ja està en marxa (si n'hi ha alguna), o NULL.


AVÍS:
No haurieu de
CANVIAR MAI cap dels valors de l'objecte App o l'aplicació podría bloquejar-se.

OBSERVACIONS: El membre CommandLine apunta a una cadena de text acabada en zero que conté només la línia de comandes de l'aplicació (si n'hi ha alguna), és a dir, sense incloure ni el nom ni la ubicació del programa ("path"). Per tal d'obtenir la línia de comandes sencera, utiitzeu la funció de l'API GetCommandLine.


Objecte Error

    L'objecte Error sempre conté informació sobre l'última excepció produïda i disposa de dos membres:

Code
Description

Error.Code és una variable DWord que emmagatzema el codi de l'excepció, mentre que Error.Description és un punter a l'adreça efectiva d'una cadena acabada en zero que conté la descripció de l'excepció (aquest membre només està disponible en mode Debug). Els valors de l'objecte Error es posen a zero (membre Code) i a una cadena buïda (membre Description) en iniciar-se l'aplicació. Quan es produeix una excepció, el codi i la descripció s'emmagatzemen als membres corresponents de l'objecte Error, i romanen sense modificar fins que es produeix una altra excepció. Si voleu, podeu posar Error.Code a zero abans de portar a terme una operació, però no haurieu de CANVIAR MAI l'adreça d'Error.Description.

OBSERVACIONS: Tots dos objectes només estan disponibles en temps d'execució. Quan es treballa en mode Release només Error.Code és vàlid, atès que Error.Description existeix però no s'actualitza mai a les llibreries ECStcMsr.lib o ECDllMsr.lib.