Attributs IDL

Traditionnellement, la gestion d’un fichier .idl signifiait que vous deviez :

  • Familiarisez-vous avec la structure et la syntaxe d’un fichier .idl pour pouvoir le modifier.

  • Reposez sur un Assistant, ce qui vous permet de modifier certains aspects du fichier .idl.

À présent, vous pouvez modifier le fichier .idl à partir d’un fichier de code source à l’aide des attributs IDL Visual C++. Dans de nombreux cas, les attributs IDL Visual C++ ont le même nom que les attributs MIDL. Lorsque le nom d’un attribut IDL Visual C++ et d’un attribut MIDL sont identiques, cela signifie que le fait de placer l’attribut Visual C++ dans votre fichier de code source entraîne un fichier .idl qui contient son attribut MIDL nameake. Toutefois, un attribut IDL Visual C++ peut ne pas fournir toutes les fonctionnalités d’un attribut MIDL.

Lorsqu’ils ne sont pas utilisés avec des attributs COM, les attributs IDL vous permettent de définir des interfaces. Lorsque le code source est compilé, les attributs sont utilisés pour définir le fichier .idl généré. Lorsqu’ils sont utilisés avec des attributs COM dans un projet ATL, certains attributs IDL, tels que coclass, entraînent l’injection de code dans le projet.

Notez que idl_quote vous permet d’utiliser des constructions MIDL qui ne sont pas prises en charge dans la version actuelle de Visual C++. Cela et d’autres attributs tels que importlib et includelib vous aident à utiliser des fichiers .idl existants dans votre projet Visual Studio C++actuel.

Attribut Description
aggregatable Indique qu’un contrôle peut être agrégé par un autre contrôle.
appobject Identifie la coclasse en tant qu’objet d’application, associé à une application EXE complète, et indique que les fonctions et propriétés de la coclasse sont globalement disponibles dans cette bibliothèque de types.
async_uuid Spécifie l’UUID qui dirige le compilateur MIDL pour définir des versions synchrones et asynchrones d’une interface COM.
bindable Indique que la propriété prend en charge la liaison de données.
call_as Permet à une fonction nonremotable d’être mappée à une fonction distante.
case Utilisé avec l’attribut switch_type dans une union.
coclass Place la définition de classe dans un fichier .idl en tant que coclasse.
control Spécifie que le type défini par l’utilisateur est un contrôle.
cpp_quote Émet la chaîne spécifiée, sans les guillemets, dans le fichier d’en-tête généré.
defaultbind Indique la propriété unique pouvant être liée qui représente le mieux l’objet.
defaultcollelem Utilisé pour l’optimisation du code Visual Basic.
defaultvalue Autorise la spécification d’une valeur par défaut pour un paramètre facultatif typé.
default Indique que l’interface personnalisée ou dispinterface définie dans une coclasse représente l’interface de programmabilité par défaut.
defaultvtable Définit une interface comme interface de table virtuelle par défaut pour un contrôle.
dispinterface Place une interface dans le fichier .idl comme interface de dispatch.
displaybind Indique une propriété qui doit être affichée à l’utilisateur comme pouvant être liée.
dual Place une interface dans le fichier .idl en tant qu’interface double.
entry Spécifie une fonction ou une constante exportée dans un module en identifiant le point d’entrée dans la DLL.
first_is Spécifie l’index du premier élément de tableau à transmettre.
helpcontext Spécifie un ID de contexte qui permet à l’utilisateur d’afficher des informations sur cet élément dans le fichier d’aide.
helpfile Définit le nom du fichier d’aide pour une bibliothèque de types.
helpstringcontext Spécifie l’ID d’une rubrique d’aide dans un fichier .hlp ou .chm.
helpstringdll Spécifie le nom de la DLL à utiliser pour effectuer la recherche de chaîne de document (localisation).
helpstring Spécifie une chaîne de caractères qui est utilisée pour décrire l’élément auquel elle s’applique.
hidden Indique que l’élément existe mais ne doit pas être affiché dans un navigateur orienté utilisateur.
idl_module Spécifie un point d’entrée dans une DLL.
idl_quote Vous permet d’utiliser des attributs ou des constructions IDL qui ne sont pas prises en charge dans la version actuelle de Visual C++.
id Spécifie un DISPID pour une fonction membre (une propriété ou une méthode, dans une interface ou une dispinterface).
iid_is Spécifie l’IID de l’interface COM pointée par un pointeur d’interface.
immediatebind Indique que la base de données sera avertie immédiatement de toutes les modifications apportées à une propriété d’un objet lié aux données.
importlib Rend disponibles les types qui ont déjà été compilés dans une autre bibliothèque de types pour la bibliothèque de types en cours de création.
import Spécifie un autre fichier .idl, .odl ou d’en-tête contenant des définitions que vous souhaitez référencer à partir de votre fichier .idl principal.
inclure Spécifie un ou plusieurs fichiers d’en-tête à inclure dans le fichier .idl généré.
includelib Provoque l’inclusion d’un fichier .idl ou .h dans le fichier .idl généré.
dans Indique qu’un paramètre doit être passé de la procédure appelante à la procédure appelée.
last_is Spécifie l’index du dernier élément de tableau à transmettre.
lcid Vous permet de passer un identificateur de paramètres régionaux à une fonction.
length_is Spécifie le nombre d’éléments de tableau à transmettre.
licensed Indique que la coclasse à laquelle elle s’applique est sous licence et doit être instanciée à l’aide IClassFactory2de .
local Vous permet d’utiliser le compilateur MIDL comme générateur d’en-tête lorsqu’il est utilisé dans l’en-tête d’interface. Lorsqu’elle est utilisée dans une fonction individuelle, désigne une procédure locale pour laquelle aucun stub n’est généré.
max_is Désigne la valeur maximale d’un index de tableau valide.
module Définit le bloc de bibliothèque dans le fichier .idl.
ms_union Contrôle l’alignement de la représentation des données réseau des unions non-capsulées.
no_injected_text Empêche le compilateur d’injecter du code suite à l’utilisation d’attributs.
nonbrowsable Indique qu’un membre d’interface ne doit pas être affiché dans un navigateur de propriétés.
noncreatable Définit un objet qui ne peut pas être instancié par lui-même.
nonextensible Spécifie que l’implémentation IDispatch inclut uniquement les propriétés et méthodes répertoriées dans la description de l’interface et ne peut pas être étendue avec des membres supplémentaires au moment de l’exécution.
object Identifie une interface personnalisée ; synonyme d’attribut personnalisé.
odl Identifie une interface en tant qu’interface ODL (Object Description Language).
oleautomation Indique qu’une interface est compatible avec Automation.
facultatif Spécifie un paramètre facultatif pour une fonction membre.
out Identifie des paramètres pointeurs qui sont retournés de la procédure appelée à la procédure appelante (du serveur au client).
pointer_default Spécifie l’attribut de pointeur par défaut pour tous les pointeurs, à l’exception des pointeurs de niveau supérieur qui apparaissent dans les listes de paramètres.
pragma Émet la chaîne spécifiée, sans les guillemets, dans le fichier .idl généré.
progid Spécifie le ProgID pour un objet COM.
propget Spécifie une fonction d’accesseur de propriété (get).
propputref Spécifie une fonction de paramètre de propriété qui utilise une référence au lieu d’une valeur.
propput Spécifie une fonction de définition de propriété.
ptr Désigne un pointeur comme pointeur complet.
public Garantit qu’un typedef entre dans la bibliothèque de types même s’il n’est pas référencé à partir du fichier .idl.
range Spécifie une plage de valeurs autorisées pour les arguments ou les champs dont les valeurs sont définies au moment de l’exécution.
readonly Interdit l’affectation à une variable.
ref Identifie un pointeur de référence.
requestedit Indique que la propriété prend en charge la notification OnRequestEdit.
restricted Spécifie qu’une bibliothèque ou un membre d’un module, d’une interface ou d’une dispinterface ne peut pas être appelée arbitrairement.
retval Désigne le paramètre qui reçoit la valeur de retour du membre.
size_is Spécifie la taille de la mémoire allouée pour les pointeurs dimensionnés, les pointeurs dimensionnés vers les pointeurs dimensionnés et les tableaux multidimensionnels uniques ou multidimensionnels.
source Indique qu’un membre d’une classe, d’une propriété ou d’une méthode est une source d’événements.
string Indique que le tableau unidimensionnel char, wchar_tou bytele tableau équivalent ou le pointeur vers un tel tableau doit être traité comme une chaîne.
switch_is Spécifie l’expression ou l’identificateur agissant comme discriminant de l’union qui sélectionne le membre de l’union.
switch_type Identifie le type de la variable utilisée comme discriminant union.
transmit_as Indique au compilateur d’associer un type présenté, que les applications client et serveur manipulent, avec un type transmis.
uidefault Indique que le membre d’informations de type est le membre par défaut à afficher dans l’interface utilisateur.
unique Spécifie un pointeur unique.
usesgetlasterror Indique à l’appelant qu’en cas d’erreur lors de l’appel de cette fonction, l’appelant peut ensuite appeler GetLastError pour récupérer le code d’erreur.
uuid Spécifie l’ID unique d’une classe ou d’une interface.
v1_enum Indique que le type énuméré spécifié est transmis en tant qu’entité 32 bits, au lieu de la valeur par défaut 16 bits.
vararg Spécifie que la fonction prend un nombre variable d’arguments.
vi_progid Spécifie une forme indépendante de version du ProgID.
wire_marshal Spécifie un type de données qui sera utilisé pour la transmission au lieu d’un type de données spécifique à l’application.

Voir aussi

Attributs par groupe