Fájlok és típus könyvtárak importálása
A MIDL-kulcsszavak tartalmazzák a, import, és importlib, amelyek lehetővé teszik a kód újrafelhasználását meglévő fejléc-, IDL- és objektumdefiníciós nyelvű (ODL) fájlok, valamint lefordított típustárak hivatkozásával.
Az ACF irányelvvel megadhatja, hogy egy ACF-fájlban egy vagy több C-nyelvű fejlécfájl szerepeljen a MIDL által létrehozott csonkkódban. A létrehozott fájl egy #include C-előfeldolgozási direktívával és a megjelölt fejlécfájllal fog rendelkezni. Ezzel a irányelvvel olyan fejlécfájlokat hozhat létre, amelyek egy adott üzemeltetési környezetre vonatkoznak, és amelyek nem tartalmaznak az ügyfél és a kiszolgáló közötti interfészhez szükséges információkat. Ne használja a a olyan fejlécfájlokhoz, amelyek adattípusokat tartalmaznak, és amelyeket elérhetővé szeretne tenni az IDL-fájl számára; ehelyett használja az import utasítást.
[
auto_handle
]
interface X86PC
{
include "gendefs.h", "protos.h", "myfile.h";
//interface typdefs and function declarations here
}
Az IDL-importálási irányelv a típus- és felületdefiníciók más IDL- (vagy ODL-) fájlokból és fejlécfájlokból az IDL-fájlba történő beolvasására szolgáló szabványos módszer. Az importált fájl összes IDL-utasítása, például a typedefs, a const deklarációk és a felületdefiníciók elérhetővé válnak az importáló IDL-fájl számára.
A C nyelv előfeldolgozási irányelvéhez hasonlóan #include, az importálási irányelv arra utasítja a fordítót, hogy tartalmazza az importált IDL-fájlokban definiált adattípusokat. A #include irányelvvel ellentétben az import irányelv figyelmen kívül hagyja az eljárás prototípusait, mivel az importált fájlban nem generálódnak helyettesítők. Mivel az előfeldolgozót külön hívja meg az importált fájlhoz, az előfeldolgozási irányelvek (például **) nem kerülnek át az importáló IDL-fájlba.
További információért az import használatával kapcsolatban, amely a rendszerfejlécfájlok IDL-fájlba való belefoglalására szolgál, lásd a Rendszerfejlécfájlok importálásacímű témakört.
[
uuid(. . .), object
]
interface IKnown : IUnknown
{
import "base.idl", "unknwn.idl", "helper.idl";
//remainder of interface definition
}
Az ODL importlib irányelv lehetővé teszi, hogy hivatkozzon egy lefordított típustárra az IDL- vagy ODL-fájlban. Az importlib irányelvnek egy kódtár utasításban kell lennie, és meg kell előznie a tár egyéb típusleírásait. Az importált kódtárnak és a létrehozott kódtárnak futásidőben elérhetővé kell lennie az alkalmazás számára.
library NewBrowser
{
importlib("stdole32.tlb");
importlib("legacy.tlb");
//remainder of library definition
};
A C-preprocesszor #include direktívával fejléceket és más fájlokat is felvehet az IDL- vagy ODL-fájlba. Vegye figyelembe azonban, hogy ez az irányelv szó szerint tartalmazza a megadott fájl teljes tartalmát. Ha egy fejlécfájl olyan prototípusokat tartalmaz, amelyekre a MIDL által létrehozott csonkfájlokban nincs szüksége, vagy nem módosítható típusdefiníciókat tartalmaz, akkor a #include irányelv helyett a MIDL importálási direktívát kell használnia.