oleautomation (attribut)
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_interface
-
Spécifie le nom de l’interface.
-
interface de base
-
Spécifie le nom d’une interface Automation dont cette interface dérivée hérite des fonctions membres, des codes status et des attributs d’interface. Toutes les interfaces Automation sont dérivées de IUnknown ou IDispatch.
Notes
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 qui peut avoir la valeur VARIANT_TRUE ou VARIANT_FALSE. La taille correspond à VARIANT_BOOL. |
unsigned char | Élément de données non signé 8 bits. |
double | Nombre à virgule flottante IEEE 64 bits. |
float | Numéro à virgule flottante IEEE 32 bits. |
int | Entier signé, dont la taille dépend du système. Sur les plateformes 32 bits, MIDL traite int comme un entier signé 32 bits. |
long | Entier signé 32 bits. |
short | Entier signé 16 bits. |
BSTR | Chaîne avec préfixe de longueur, comme décrit dans la rubrique Automation BSTR. |
CURRENCY | Nombre à virgule flottante fixe de 8 octets. |
DATE | Nombre de jours fractionnaires à 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. |
Énumération Typedef  myenum | 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 .) |
dispinterface  Typename * | Pointeur vers une interface dérivée d’IDispatch (VT_DISPATCH). |
Coclasse  Typename * | Pointeur vers un nom de coclasse (VT_UNKNOWN). |
Interface [oleautomation] Â Typename * | Pointeur vers une interface qui dérive de 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 exige 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 de IDispatch ou IUnknown, si elle a l’attribut [oleautomation] et si 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 avec 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.
Indicateurs
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 aussi