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 ;

Parameter

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.

Keterangan

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.

Contoh

/* 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); 
}

Lihat juga

/app_config

auto_handle

Callback

context_handle

Endpoint

File Definisi Antarmuka (IDL)

Mengabaikan

implicit_handle

/osf

Objek

pointer_default

Ptr

Ref

string

Unik

uuid

Versi