Megosztás a következőn keresztül:


Mutatók (RPC)

Gyakori mutatók

A gyakori mutató az interfészmutatókon és a bájtszámmutatókon kívül minden másként van definiálva.

A leírásnak két lehetséges elrendezése van:

pointer_type<1> pointer_attributes<1>
simple_type<1> FC_PAD

–vagy–

pointer_type<1> pointer_attributes<1>
offset_to_complex_description<2>

Az első formátumot akkor használja a rendszer, ha a mutató egy egyszerű típusra vagy egy nem formázott sztringmutatóra mutató mutató. A második formátum az összes többi típusra mutató mutatókhoz használható. A mutatóattribútumok azt jelzik, hogy melyik leíráselrendezést tartalmazza a FC_SIMPLE_POINTER jelzővel.

pointer_type<1> az alábbiak egyike.

Karakter formázása Leírás
FC_RP Referenciamutató.
FC_UP Egyedi mutató.
FC_FP Teljes mutató.
FC_OP Egyedi mutató egy objektumfelületen.

 

A FC_OP megkülönböztetésének oka a szemantikus: az objektumfelületeken az [in,out] mutatót fel kell szabadítani, mielőtt leválasztanak egy új objektumot, és új mutatóértéket rendelnek hozzá.

Pointer_attributes<1> az alábbi táblázatban bármelyik jelölőt megjelenítheti.

Attribútum Zászló Leírás
01 FC_ALLOCATE_ALL_NODES A mutató egy foglalási(all_nodes) foglalási séma része.
02 FC_DONT_FREE Egy lefoglalási(dont_free) mutató.
04 FC_ALLOCED_ON_STACK Egy mutató, amelynek hivatkozása a csonk veremén van lefoglalva.
08 FC_SIMPLE_POINTER Mutató egy egyszerű típusra vagy nem konformáló sztringre. Ez a beállított jelző a mutató leírásának elrendezését jelzi a fent ismertetett egyszerű mutatóelrendezésként, ellenkező esetben az eltolással ellátott leíró formátum jelenik meg.
10 FC_POINTER_DEREF Olyan mutató, amelyet a mutató hivatkozásának kezelése előtt el kell halasztani.

 

A size_is(), max_is(), length_is(), last_is() és/vagy first_is() alkalmazott mutatók formázási sztringleírásai megegyeznek a megfelelő típusú tömbre mutató mutatóval (például egy megfelelő tömb, ha size_is() van alkalmazva, egy megfelelő, változó tömb, ha size_is() és length_is alkalmazva van).

Illesztőmutatók

Az objektumfelület mutatóformátum-sztringje két formátum egyikével rendelkezik, attól függően, hogy a megfelelő IID ismert-e a fordító számára.

Az állandó IID azonosítójú illesztőmutató leírása a következő:

FC_IP FC_CONSTANT_IID 
iid<16>

Az iid<16> része a felületmutató tényleges IID azonosítója. Az iid a GUID-adatstruktúrával azonos formátumban íródott a formátumsztringre: hosszú, rövid, rövid, karakter [8].

A iid_is() alkalmazott felületmutató leírása a következő:

FC_IP FC_PAD 
iid_description<> 

A iid_description<> korrelációs leíró, és 4 vagy 6 bájtos attól függően, hogy /robusztus van-e használva. Az NdrComputeConformance függvény által kiszámított érték az IID-mutató.

Bájtszám mutatói

A bájtszámmutatók egy [byte_count] nevű speciális optimalizálási attribútumhoz kapcsolódnak. A rendszer a következő formátumokat használja:

FC_BYTE_COUNT_POINTER 
simple_type<1>
byte_count_description<> 

–és–

FC_BYTE_COUNT_POINTER 
FC_PAD
byte_count_description<> 
pointee_description<>

A byte_count_description<> korrelációs leíró, és 4 vagy 6 bájtos attól függően, hogy /robusztus van-e használva.

A pointee_description<> a pointee típusának leírása.