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 IClassFactory2 de . |
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_t ou byte le 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. |