attribut explicit_handle

L’attribut ACF [explicit_handle] spécifie que chaque procédure a, comme premier paramètre, un handle primitif, tel qu’un type handle_t.

[
    explicit_handle
] 
interface interface-name
{
    ...
}

Paramètres

nom_interface

Spécifie le nom de l’interface.

Notes

Lorsque vous utilisez l’attribut [explicit_handle], chaque procédure a un handle primitif comme premier paramètre, même si le fichier IDL ne contient pas ce handle dans sa liste de paramètres. Les prototypes émis dans le fichier d’en-tête et les routines stub contiennent le paramètre supplémentaire, et ce paramètre est utilisé comme handle pour diriger l’appel distant.

L’attribut [explicit_handle] affecte à la fois les procédures distantes et les procédures de sérialisation. Pour la sérialisation de type, les routines de prise en charge sont générées avec le paramètre initial en tant que handle (sérialisation) explicite. Si l’attribut [explicit_handle] n’est pas utilisé, l’application peut toujours spécifier qu’une opération a un handle explicite (liaison ou sérialisation) qui dirige l’appel. Pour ce faire, un prototype avec un argument contenant un type de handle est fourni au fichier IDL. Notez qu’en mode par défaut, un argument qui n’apparaît pas en premier peut également être utilisé comme handle dirigeant l’appel.

Par conséquent, bien que l’attribut [explicit_handle] soit un moyen de donner au prototype IDL un attribut [explicit_handle] primitif, il ne nécessite pas nécessairement une modification du fichier IDL. En mode /osf , seul le premier argument peut être utilisé comme type de handle explicite.

L’attribut [explicit_handle] peut être utilisé comme attribut d’interface ou comme attribut d’opération. En tant qu’attribut d’interface, il affecte toutes les opérations de l’interface et tous les types qui nécessitent la prise en charge de la sérialisation. Toutefois, si elle est utilisée en tant qu’attribut d’opération, elle affecte uniquement cette opération particulière. Si une méthode contient un ou plusieurs handles de contexte [in], le handle de contexte le plus à gauche est utilisé comme handle de liaison et aucun handle explicite supplémentaire n’est créé.

Exemples

/* ACF File */ 
[
    explicit_handle
] 
interface iface
{ 
    // Interface definition statements.
};

Voir aussi

Fichier de configuration d’application (ACF)

auto_handle

implicit_handle

/Osf