atribut lokal
Atribut [lokal] menentukan ke pengkompilasi MIDL bahwa antarmuka atau fungsi tidak jarak jauh.
[
local
[, interface-attribute-list]
]
interface interface-name
{
}
[
object,
uuid(string-uuid),
local [, interface-attribute-list]
]
interface interface-name
{
}
[ local [, function-attribute-list] ] function-declarator ;
-
interface-attribute-list
-
Menentukan atribut lain yang berlaku untuk antarmuka secara keseluruhan. Atribut [titik akhir], [versi], dan [pointer_default] bersifat opsional. Ketika Anda mengkompilasi dengan sakelar /app_config, [implicit_handle] atau [auto_handle] juga dapat hadir. Pisahkan beberapa atribut dengan koma.
-
nama antarmuka
-
Menentukan nama di mana komponen perangkat lunak dapat menguraikan antarmuka.
-
string-uuid
-
Menentukan string UUID yang dihasilkan oleh utilitas Uuidgen. Jika Anda tidak menggunakan sakelar kompilator MIDL /osf, Anda dapat mengapit string UUID dalam tanda kutip.
-
function-attribute-list
-
Menentukan atribut nol atau lebih yang berlaku untuk fungsi. Atribut fungsi yang valid adalah [callback]; atribut pointer [ref], [unique], atau [ptr]; dan atribut penggunaan [string], [abaikan], dan [context_handle]. Pisahkan beberapa atribut dengan koma.
-
deklarator fungsi
-
Menentukan penentu jenis, nama fungsi, dan daftar parameter untuk fungsi tersebut.
Atribut [lokal] dapat diterapkan ke fungsi individual atau ke antarmuka secara keseluruhan.
Saat digunakan di header antarmuka, atribut [lokal] memungkinkan Anda menggunakan pengkompilasi MIDL sebagai generator header. Pengkompilasi tidak menghasilkan stub untuk fungsi apa pun dan tidak memastikan bahwa header dapat ditransmisikan.
Untuk antarmuka RPC, atribut [lokal] tidak dapat digunakan pada saat yang sama dengan atribut[uuid]. Baik [uuid] atau [lokal] harus ada di header antarmuka, dan yang Anda pilih harus terjadi tepat sekali.
Untuk antarmuka COM (diidentifikasi oleh atribut antarmuka [objek] ), daftar atribut antarmuka dapat menyertakan atribut [lokal] meskipun atribut [uuid] ada.
Saat digunakan dalam fungsi individual, atribut [lokal] menunjuk prosedur lokal yang tidak ada rangkap yang dihasilkan. Menggunakan [lokal] sebagai atribut fungsi adalah ekstensi Microsoft untuk DCE IDL. Oleh karena itu atribut ini tidak tersedia saat Anda mengkompilasi menggunakan sakelar MIDL /osf .
Perhatikan bahwa antarmuka tanpa atribut dapat diimpor ke dalam file IDL dasar. Namun, antarmuka hanya boleh berisi jenis data tanpa prosedur. Jika bahkan satu prosedur terkandung dalam antarmuka, atribut lokal atau UUID harus ditentukan.
/* IDL file #1 */
[
local
]
interface local_procs
{
void MyLocalProc(void);
}
/* IDL file #2 */
[
object,
uuid(12345678-1234-1234-123456789ABC),
local
]
interface local_object_procs : IUnknown
{
void MyLocalObjectProc(void);
}
/* IDL file #3 */
[
uuid(87654321-1234-1234-123456789ABC)
]
interface mixed_procs
{
[local] void MyLocalProc(void);
HRESULT MyRemoteProc([in] short sParam);
}