atribut out
Atribut [out] mengidentifikasi parameter penunjuk yang dikembalikan dari prosedur yang dipanggil ke prosedur panggilan (dari server ke klien).
[ [function-attribute-list] ] type-specifier [pointer-declarator] function-name(
[ out [ , parameter-attribute-list ] ] type-specifier [declarator]
, ...
);
Parameter
-
function-attribute-list
-
Menentukan atribut nol atau lebih yang berlaku untuk fungsi. Atribut fungsi yang valid adalah [callback], [local]; atribut pointer [ref], [unique], atau [ptr]; dan atribut penggunaan [string], [abaikan], dan [context_handle].
-
type-specifier
-
Menentukan pengidentifikasi jenis atau jenis base_type, struct, union, atau enum . Spesifikasi penyimpanan opsional dapat mendahului penentu jenis.
-
deklarator penunjuk
-
Menentukan nol atau lebih deklarator penunjuk. Deklarator pointer sama dengan deklarator penunjuk yang digunakan dalam C; ini dibangun dari penunjuk * , pengubah seperti jauh, dan konsekuensi kualifikasi.
-
nama fungsi
-
Menentukan nama prosedur jarak jauh.
-
parameter-attribute-list
-
Menentukan atribut nol atau lebih yang sesuai untuk jenis parameter tertentu. Atribut parameter dengan atribut [out] juga dapat mengambil atribut directional [out]; atribut bidang [first_is], [last_is], [length_is], [max_is], [size_is], dan [switch_type]; atribut pointer [ref], [unique], atau [ptr]; dan atribut penggunaan [context_handle] dan [string]. Atribut penggunaan [abaikan] tidak dapat digunakan sebagai atribut parameter. Pisahkan beberapa atribut dengan koma.
-
declarator
-
Menentukan deklarator standar, seperti pengidentifikasi, deklarator penunjuk, dan deklarator array. Untuk informasi selengkapnya, lihat Array dan Sized-Pointer Atribut, array, dan Array dan Pointer. Deklarator parameter dalam deklarator fungsi, seperti nama parameter, bersifat opsional.
Keterangan
Atribut [out] menunjukkan bahwa parameter yang bertindak sebagai penunjuk dan data terkait dalam memori akan diteruskan kembali dari prosedur yang disebut ke prosedur panggilan.
Atribut [out] harus berupa pointer. Pengompilasi IDL DCE memerlukan kehadiran * eksplisit sebagai deklarasi penunjuk dalam deklarasi parameter. Microsoft IDL menawarkan ekstensi yang menghilangkan persyaratan ini dan memungkinkan array atau jenis penunjuk yang ditentukan sebelumnya.
Atribut terkait, [in], menunjukkan bahwa parameter diteruskan dari prosedur panggilan ke prosedur yang dipanggil. Atribut [in] dan [out] menentukan arah di mana parameter dilewatkan. Parameter dapat didefinisikan sebagai [in]-only, [out]-only, atau [in, out].
Parameter [out]-only diasumsikan tidak terdefinisi ketika prosedur jarak jauh dipanggil dan memori untuk objek dialokasikan oleh server. Karena pointer/parameter tingkat atas harus selalu menunjuk ke penyimpanan yang valid, dan karenanya tidak boleh NULL, [out] tidak dapat diterapkan ke pointer [unik] atau [ptr] tingkat atas. Parameter yang merupakan parameter [unik] atau [ptr] harus berupa parameter [in] atau [in, out].
Contoh
HRESULT MyFunction([out] short * pcount);
Lihat juga