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

Fichier de définition d’interface (IDL)

Génération d’une bibliothèque de types avec MIDL

Exemple de fichier ODL

Syntaxe de fichier ODL

/Osf

uuid