Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’attribut oleautomation indique qu’une interface est compatible avec Automation.
[
oleautomation,
uuid(string-uuid)
[ , interface-attribute-list]
]
interface interface-name : base-interface
{
...
}
Paramètres
-
string-uuid
-
Spécifie une chaîne UUID générée par l’utilitaire Uuidgen.
-
interface-attribute-list
-
Spécifie d’autres attributs qui s’appliquent à l’interface dans son ensemble.
-
nom de l’interface
-
Spécifie le nom de l’interface.
-
interface de base
-
Spécifie le nom d’une interface Automation à partir de laquelle cette interface dérivée hérite des fonctions membres, des codes d’état et des attributs d’interface. Toutes les interfaces Automation sont dérivées d’IUnknown ou IDispatch.
Remarques
Les paramètres et les types de retour spécifiés pour les membres d’une interface [oleautomation] doivent être compatibles Avec Automation, comme indiqué dans le tableau suivant.
| Type | Description |
|---|---|
| boolean | Élément de données pouvant avoir la valeur VARIANT_TRUE ou VARIANT_FALSE. La taille correspond à VARIANT_BOOL. |
| caractères non signés | Élément de données non signé 8 bits. |
| double | Nombre à virgule flottante IEEE 64 bits. |
| float | Nombre à virgule flottante IEEE 32 bits. |
| int | Entier signé, dont la taille dépend du système. Sur les plateformes 32 bits, MIDL traite int en tant qu’entier signé 32 bits. |
| long | Entier signé 32 bits. |
| courte | Entier signé 16 bits. |
| BSTR | Chaîne préfixée de longueur, comme décrit dans la rubrique Automation BSTR. |
| DEVISE | Nombre à virgule flottante fixe de 8 octets. |
| DATE | Nombre fractionnaire à virgule flottante 64 bits depuis le 30 décembre 1899. |
| SCODE | Pour les systèmes 16 bits, type d’erreur intégré qui correspond à VT_ERROR. |
| Typedef enummyenum | Entier signé, dont la taille dépend du système. |
| IDispatch d’interface * | Pointeur vers l’interface IDispatch (VT_DISPATCH). |
| Interface IUnknown * | Pointeur vers une interface qui ne dérive pas d’IDispatch (VT_UNKNOWN). (Toute interface OLE peut être représentée par son interface IUnknown .) |
| dispinterfaceTypename * | Pointeur vers une interface dérivée d’IDispatch (VT_DISPATCH). |
| CoclassTypename * | Pointeur vers un nom de coclasse (VT_UNKNOWN). |
| [oleautomation] interfaceTypename * | Pointeur vers une interface qui dérive d’IUnknown. |
| SAFEARRAY(TypeName) | TypeName est l’un des types ci-dessus. Tableau de ces types. |
| Typename* | TypeName est l’un des types ci-dessus. Pointeur vers un type. |
| Décimal | Entier binaire non signé 96 bits mis à l’échelle par une puissance variable de 10. Type de données décimal qui fournit une taille et une échelle pour un nombre (comme dans les coordonnées). |
Un paramètre est compatible avec Automation si son type est un type compatible Automation, un pointeur vers un type compatible Automation ou un SAFEARRAY d’un type compatible Automation.
Un type de retour est compatible avec Automation si son type est HRESULT, SCODE ou void. Toutefois, MIDL nécessite que les méthodes d’interface retournent HRESULT ou SCODE. Le renvoi de void génère une erreur du compilateur.
Un membre est compatible avec Automation si son type de retour et tous ses paramètres sont compatibles Avec Automation.
Une interface est compatible avec Automation si elle est dérivée d’IDispatch ou IUnknown, elle a l’attribut [oleautomation] et toutes ses entrées VTBL sont compatibles Avec Automation. Pour les plateformes 32 bits, la convention d’appel pour toutes les méthodes de l’interface doit être STDCALL. Pour les systèmes 16 bits, toutes les méthodes doivent avoir la convention d’appel CDECL.
Chaque dispinterface est implicitement compatible Automation. Par conséquent, vous ne devez pas utiliser l’attribut [oleautomation] sur dispinterface.
L’attribut [oleautomation] n’est pas disponible lorsque vous compilez à l’aide du commutateur /osf du compilateur MIDL.
Drapeaux
TYPEFLAG_FOLEAUTOMATION
Exemples
library Hello
{
importlib("stdole32.tlb");
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("Application object for the Hello application."),
oleautomation,
dual
]
interface IHello : IDispatch
{
// Interface definition statements.
}
// Other library definition statements.
}
Voir également