struct doesn't have a handle.

In your example:
typedef struct sZonePos{ var zPos[3]; var zPan;} sZonePos;
sZonePos z1s0Pos;
...//inside some entity's function
my.sZoneSlot = handle(z1s0Pos);...

Why do you do it in this way to set "my.sZoneSlot = handle(z1s0Pos);" ?
You can get sZoneSlot anywhere because it is declared by you in the global scope. And you can declare a local struct pointer to sZoneSlot if only the current entity need to access this struct.