Passare a una funzione esterna un Puntatore che successivamente deve essere passato anche ad altre funzioni esterne
Da Gambas-it.org - Wikipedia.
Se un parameto formale di una funzione esterna è definito come variabile di tipo Puntatore di Puntatore, affinché detta variabile deve essere mantenuta e passata ad altre funzioni esterne del codice, allora in Gambas tale parametro verrà dichiarato come Puntatore e poi nell'utilizzo concreto all'interno delle routine verrà passato preliminarmente alla funzione "VarPtr()".
Un esempio ne è la dichiarazione del primo parametro formale della funzione esterna di ALSA "snd_seq_open()":
int snd_seq_open (snd_seq_t **handle, const char *name, int streams, int mode)
che in un codice in linguaggio C sarebbe così utilizzata concretamente:
snd_seq_open(&ptr,...etc...);
in Gambas sarà così dichiarata:
Private Extern snd_seq_open(handle As Pointer, ...etc...) As Integer
e quindi così utilizzata:
Dim ptr As Pointer snd_seq_open(VarPtr(ptr), ...etc...)