Attributo module
L'istruzione module definisce un gruppo di funzioni, in genere un set di punti di ingresso DLL.
[
attributes
]
module modulename
{
elementlist
};
-
attributes
-
Gli attributi [uuid], [version], [helpstring], [helpcontext], [hidden]e [dllname] vengono accettati prima di un'istruzione module . Per altre informazioni sugli attributi accettati prima di una definizione di modulo, vedere Descrizioni degli attributi, nel libro di automazione OLE. L'attributo [dllname] è obbligatorio. Se l'attributo [uuid] viene omesso, il modulo non viene specificato in modo univoco nel sistema.
-
Modulename
-
Nome del modulo.
-
elementlist
-
Elenco di definizioni costanti e prototipi di funzioni per ogni funzione nella DLL. Qualsiasi numero di definizioni di funzione può essere visualizzato nell'elenco delle funzioni. Una funzione nell'elenco di funzioni ha il formato seguente:
[attributi] returntype [calling convention funcname](params);
[attributi] const constanttype constname = constval;
Solo gli attributi [helpstring] e [helpcontext] vengono accettati per un const.
Gli attributi seguenti vengono accettati in una funzione in un modulo: [helpstring], [helpcontext], [string], [entry], [propget], [propput], [propputref]e [vararg]. Se viene specificato [vararg], l'ultimo parametro deve essere una matrice sicura di tipo VARIANT .
La convenzione di chiamata facoltativa può essere una delle __pascal/_pascal/pascal, __cdecl/_cdecl/cdecl o __stdcall/_stdcall/stdcall. Il parametro paramname del tipo di convenzione chiamante può includere fino a due caratteri di sottolineatura iniziali.
L'elenco dei parametri è un elenco delimitato da virgole di:
[attributi]
Il tipo può essere qualsiasi tipo dichiarato in precedenza o predefinito, un puntatore a qualsiasi tipo o un puntatore a un tipo predefinito. Gli attributi sui parametri sono:
[in], [out], [facoltativo].
Se viene usato [facoltativo], i tipi di tali parametri devono essere VARIANT o VARIANT*.
L'output del file di intestazione (con estensione h) per i moduli è una serie di prototipi di funzioni. La parola chiave module e le parentesi quadre circostanti vengono rimosse dall'output del file di intestazione (con estensione h), ma un commento (// modulemodulename) viene inserito prima dei prototipi. La parola chiave extern viene inserita prima delle dichiarazioni.
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("This is not GDI.EXE"),
helpcontext(190),
dllname("MATH.DLL")
]
module somemodule
{
[helpstring("Color for the frame")]
unsigned long const COLOR_FRAME = 0xH80000006;
[helpstring("Not a rectangle but a square"),
entry(1)]
pascal double square([in] double x);
};