Importieren von Dateien und Typbibliotheken

Mit den MIDL-Schlüsselwörtern , importund importlib können Sie Code wiederverwenden, indem Sie auf vorhandene Header-, IDL- und ODL-Dateien (Object Definition Language) und kompilierte Typbibliotheken verweisen.

Mit der Include-Direktive von ACF können Sie in einer ACF-Datei eine oder mehrere Headerdateien der C-Sprache angeben, die in den MIDL-generierten Stubcode eingeschlossen werden sollen. Die generierte Datei enthält eine Zeile mit einer # Include-C-Präprozessordi direktive mit der angegebenen Headerdatei. Verwenden Sie diese include-Direktive, um Headerdateien zu verwenden, die für eine bestimmte Betriebsumgebung spezifisch sind und keine Informationen enthalten, die für die Schnittstelle zwischen Client und Server erforderlich sind. Verwenden Sie include nicht für Headerdateien, die Datentypen enthalten, die für die IDL-Datei verfügbar sein sollten. Verwenden Sie stattdessen die Import-Direktive.

Beispiel 1

[
  auto_handle
] 
interface X86PC
{ 
  include "gendefs.h", "protos.h", "myfile.h"; 
  //interface typdefs and function declarations here
}

Die IDL-Import-Direktive ist die Standardmethode zum Importieren von Typ- und Schnittstellendefinitionen aus anderen IDL-Dateien (oder ODL)-Dateien und Headerdateien in Ihre IDL-Datei. Alle IDL-Anweisungen in der importierten Datei, z. B. Typedefs, const-Deklarationen und Schnittstellendefinitionen, werden für die importierende IDL-Datei verfügbar.

Wie die C-Sprach-Präprozessordi direktive # enthält, weist die import-Direktive den Compiler an, Datentypen ein include, die in den importierten IDL-Dateien definiert wurden. Im Gegensatz # zur include-Direktive ignoriert die import-Direktive Prozedurprototypen, da keine Stubs für etwas in der importierten Datei generiert werden. Da der Präprozessor für die importierte Datei separat aufgerufen wird, werden Präprozessordirektiven (z.B. **) nicht an die importierende IDL-Datei überträgt.

Weitere Informationen zur Verwendung von Import zum Ein- und Hinzufügen von Systemheaderdateien in eine IDL-Datei finden Sie unter Importieren von Systemheaderdateien.

Beispiel 2

[
  uuid(. . .), object
] 
interface IKnown : IUnknown
{
  import "base.idl", "unknwn.idl", "helper.idl";
  //remainder of interface definition
}

Mit der ODL-Importlib-Direktive können Sie auf eine kompilierte Typbibliothek in Ihrer IDL- oder ODL-Datei verweisen. Die importlib-Direktive muss sich in einer Bibliotheks-Anweisung und vor anderen Typbeschreibungen in der Bibliothek befindet. Die importierte Bibliothek sowie die generierte Bibliothek müssen zur Laufzeit für die Anwendung verfügbar sein.

Beispiel 3

library NewBrowser
{
  importlib("stdole32.tlb");
  importlib("legacy.tlb");
  //remainder of library definition
};

Sie können auch die include-Direktive des C-Präprozessors verwenden, um Header und andere Dateien in Ihre IDL- oder ODL-Datei ein-/aus. # Beachten Sie jedoch, dass diese Direktive den gesamten Inhalt der angegebenen Datei enthält. Wenn eine Headerdatei Prototypen enthält, die Sie in den MIDL-generierten Stubdateien nicht benötigen oder möchten, oder wenn sie nichtremotable Typdefinitionen enthält, sollten Sie die MIDL-Import-Direktive anstelle der # include-Direktive verwenden.

Importieren

importlib

include

Importieren von System-Headerdateien