Mezőattribútumok
A mezőattribútumok olyan attribútumok, amelyek tömbök, szerkezetek, egyesítő vagy karaktertömbök mezőire alkalmazhatók:
- [figyelmen kívül hagyja], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [sztring]
- mutatóattribútumok
A mezőattribútumok például tömbdeklarációkkal együtt használhatók a tömb méretének vagy a tömb érvényes adatokat tartalmazó részének megadásához. Ez egy másik paraméter, struktúramező vagy állandó kifejezés tömbhöz való társításával történik.
Az [figyelmen kívül hagyja] attribútum kijelöli azokat a mutatómezőket, amelyeket figyelmen kívül kell hagyni a marshaling folyamat során. Egy ilyen figyelmen kívül hagyott mező a fogadó oldalán a NULL van beállítva.
A MIDL konformáló, változóés nyitott tömböket biztosít. A tömböket megfelelőnek nevezzük, ha a korlátok futásidőben vannak meghatározva. A [size_is] attribútum a tömb foglalási méretének felső határát jelöli meg, a [max_is] attribútum pedig egy érvényes tömbindex értékének felső határát jelöli meg. További információ: [tömbök].
A tömböket változónak nevezzük, ha a kötések a fordításkor vannak meghatározva, de az átvitt elemek tartománya futásidőben van meghatározva. A nyitott tömb (más néven megfelelő változó tömb) olyan tömb, amelynek felső határa és továbbított elemeinek tartománya futásidőben van meghatározva. A tömb továbbított elemeinek tartományának meghatározásához a tömbdeklarációnak tartalmaznia kell egy [length_is], [first_is]vagy [last_is] attribútumot.
Az [length_is] attribútum a továbbítandó tömbelemek számát jelöli meg, a [first_is] attribútum pedig az első továbbítandó tömbelem indexét jelöli. A [last_is] attribútum az utolsó továbbítandó tömbelem indexét jelöli.
A [switch_is] mezőattribútum uniós diszkriminatív megkülönböztetést jelöl ki. Ha az unió egy eljárásparaméter, az egyesítő diszkriminatívnak ugyanazon eljárás másik paraméterének kell lennie. Ha az egyesítő egy struktúra mezője, a diszkriminatívnak a struktúra egy másik mezőjének kell lennie az egyesítő mezővel azonos szinten. A diszkriminatívnak logikai, karakter, intvagy szám típusnak kell lennie, vagy olyan típusnak kell lennie, amely ezen típusok valamelyikét oldja fel. További információkért lásd: Nemcapsulated Unions és [switch_is].
Az [sztring] mezőattribútum azt jelöli, hogy egy egydimenziós karaktert vagy bájttömböt, illetve egy nulla végződésű karakterre vagy bájtfolyamra mutató mutatót sztringként kell kezelni. A sztringattribútum csak egydimenziós tömbökre és mutatókra vonatkozik. Az elemtípus csak karakteres, bájtos, wchar_t, vagy egy elnevezett típusra korlátozódik, amely az ilyen típusok egyikével oldható fel.
A mezőattribútumok környezetéről további információt MIDL-tömbök, MIDL-struktúrákés MIDL-egyesítőkcímű cikkben talál.