CALL <ressource> commande

Syntaxe :

CALLtypeRes”, resID

Description :

Cette commande prépare et effectue un saut à une routine qui réside dans une ressource de code spécifique. La routine appelée peut être constituée d’instructions 68K ou bien PPC. La routine appelée doit se conformer aux conventions d’appel du Macintosh, en retirant de la pile, dans le bon ordre, le nombre correct de paramètres, et en plaçant sur la pile la valeur retournée si cela est nécessaire. La ressource doit être disponible depuis un fichier de ressources ouvert (comme la partie ressource de votre application, par exemple).

Le véritable travail de la commande CALL <ressource> est d’attribuer à une variable globale de FB^3, nommée gFBCode, un pointeur sur la ressource. Si la ressource ne peut être trouvée ou chargée en mémoire, FB^3 génère un avertissement “Ressource code manquante…” avant de quitter.

Quand une commande CALL <ressource> est exécutée, FB^3 charge en mémoire la ressource de code (si elle n’est pas déjà chargée), place le handle en mémoire haute et le verrouille.

Vous spécifiez la ressource au moyen des deux premiers paramètres. Le paramètre typeRes est une chaîne littérale de 4 caractères représentant le type de ressource; et resID est le numéro identifiant de la ressource (qui doit être différent de zéro).

Une fois que la ressource est en mémoire, l’adresse peut être utilisée avec un appel à UNIVERSALFN.

Si vous souhaitez libérer la mémoire occupée par une ressource qui a été appelée et verrouillée, vous devez utiliser un appel tel que GetResource pour localiser le handle. Puis, utilisez HUnlock et HPurge pour permettre que la mémoire soit libérée.

CALL "DCOD",2000
aWord% = UNIVERSALFN(gFBCode&,_uFnParams,param1&,param2&&)
rHndl& = FN GetResource(_"DCOD",2000)
CALL HPurge(rHndl&)
CALL HUnlock(rHndl&)

Voir Aussi :