La tabella metodi OB (OBMETHODS) è composta da un numero di definizioni (OBMETHOD) contigue, ognuna delle quali contiene tutte le informazioni su una specifico metodo OB relativo alla classe OB di appartenenza..
La posizione (relativa al file) e il numero di elementi della tabella sono specificate rispettivamente dai campi OBCLASS.METHODSOFF e OBCLASS.METHODSCNT.
Definizione metodo OB
Una metodo OB (OBMETHOD) è composto dalle seguenti informazioni:
Nome |
Offset |
Tipo |
Descrizione |
---|---|---|---|
ID |
+0 |
U32 |
ID metodo OB. Nota: i valori 0 e 0xFFFFFFFF sono ID a significato speciale. |
|
+4 |
U8[2] |
(riservati) |
FLAGS |
+6 |
U16 |
Impostazioni del metodo OB: 0x0001 Campo TEXT non compresso (NCF0). 0x0002 Campo MODIFIER non compresso (NCF1). |
NAME |
+8 |
U32 |
Offset nome del metodo OB (relativo a stringhe). |
KNAME |
+12 |
U32 |
Offset nome chiave del metodo OB (relativo a stringhe). |
TEXT |
+16 |
U32 |
Offset descrizione del metodo OB (relativo a stringhe compresse, o stringhe se NCF0). |
CALLID |
+20 |
U32 |
ID metodo in chiamata (#1) |
PARAMSOFF |
+24 |
U32 |
Offset della tabella parametri per metodo OB (relativo al file). |
PARAMSCNT |
+28 |
U32 |
Dimensione della tabella parametri per metodo OB. |
RETTYPEID |
+32 |
U32 |
ID tipo variabile di ritorno. Nota: può essere un tipo predefinito oppure definito dall'utente. |
ATTRIB |
+36 |
U32 |
Attributi metodo. |
MODIFIER |
+40 |
U32 |
Offset modificatori del metodo OB (relativo a stringhe compresse, o stringhe se NCF1). |
|
+44 |
U8[16] |
(riservati) |
(#1) Il valore del campo CALLID deriva dal valore del campo METHOD.ID, nel file .OBB di origine.
Tabella parametri per metodo OB
La tabella parametri per metodo OB (OBMETHODPS) è composta da un numero di definizioni (OBMETHODP) contigue, ognuna delle quali contiene tutte le informazioni su uno specifico parametro relativo al metodo OB di appartenenza.
La posizione (relativa al file) e il numero di elementi della tabella sono specificate rispettivamente dai campi OBMETHOD.PARAMSOFF e OBMETHOD.PARAMSCNT.
Definizione parametro per metodo OB
Un parametro per metodo OB (OBMETHODP) è composto dalle seguenti informazioni:
Nome |
Offset |
Tipo |
Descrizione |
---|---|---|---|
TYPEID |
+0 |
U32 |
ID tipo variabile Nota: può essere un tipo predefinito oppure definito dall'utente. |
ATTRIB |
+4 |
U16 |
Attributi parametro: 0x0001 Parametro passato per riferimento (ABYREF) 0x0002 Parametro passato per puntatore (ABYPTR) |
FLAGS |
+6 |
U16 |
Impostazioni del parametro: 0x0001 Campo TEXT non compresso (NCF0). |
NAME |
+8 |
U32 |
Offset nome del parametro (relativo a stringhe). |
TEXT |
+12 |
U32 |
Offset descrizione del parametro (relativo a stringhe compresse, o stringhe se NCF0). |
DIM0 |
+16 |
U32 |
1a dimensione array (0=non specificata)(#1). |
DIM1 |
+20 |
U32 |
2a dimensione array (0=non specificata)(#1). |
DIM2 |
+24 |
U32 |
3a dimensione array (0=non specificata)(#1). |
|
+28 |
B[16] |
(riservati) |
(#1) Sebbene i campi ARRAYn siano a 32bit, nella versione attuale di SW la dimensione massima va comunque considerata solo a 16bit (ovvero massimo indice 0xFFFF).