interface (attribut)
L’interface mot clé spécifie le nom de l’interface. Le nom de l’interface doit être fourni dans le fichier IDL et l’ACF.
[
interface-attribute-list
]
interface interface-name [ : base-interface ]
{
}
typedef interface interface-name declarator-list
-
interface-attribute-list
-
Spécifie les attributs qui s’appliquent à l’interface dans son ensemble. Les attributs d’interface valides pour un fichier IDL incluent [endpoint], [local], [object], [pointer_default], [uuid] et [version]. Les attributs d’interface valides pour un ACF incluent [encode], [decode], [auto_handle] ou [implicit_handle] et [code] ou [nocode].
-
nom_interface
-
Spécifie le nom de l’interface. Le nom de l’interface doit être un nom unique et doit commencer par un caractère alphabétique ou de soulignement.
-
interface de base
-
Spécifie le nom d’une interface dont cette interface dérivée hérite des fonctions membres, des codes status et des attributs d’interface. L’interface dérivée n’hérite pas des définitions de type. Pour ce faire, utilisez le mot clé d’importation pour importer le fichier IDL de l’interface de base.
-
declarator-list
-
Spécifie les déclarateurs C standard, tels que les identificateurs, les déclarateurs de pointeurs et les déclarateurs de tableau. Pour plus d’informations, consultez Array and Sized-Pointer Attributes, arrays., and Arrays and Pointers. Le declarator-list se compose d’un ou plusieurs déclarateurs, séparés par des virgules.
Les noms d’interface dans le fichier IDL et ACF doivent être identiques, sauf lorsque vous utilisez le commutateur du compilateur MIDL /acf.
Le nom de l’interface constitue la première partie du nom des structures de données de gestion d’interface qui sont des paramètres pour les fonctions d’exécution RPC. Pour plus d’informations, consultez RPC_IF_HANDLE.
Si l’en-tête d’interface inclut l’attribut [object] pour indiquer une interface COM, il doit également inclure l’attribut [uuid] et spécifier l’interface COM de base à partir de laquelle il est dérivé. Pour plus d’informations sur les interfaces COM, consultez [object].
Vous pouvez également utiliser l’interface mot clé avec le typedef mot clé pour définir un type de données d’interface.
/* use of interface keyword in IDL file for an RPC interface */
[
uuid (00000000-0000-0000-0000-000000000000),
version (1.0)
]
interface remote_if_2
{
// Interface definition statements.
}
/* use of interface keyword in ACF for an RPC interface */
[
implicit_handle( handle_t xa_bhandle )
]
interface remote_if_2
{
// Attribute configuration statements.
}
/* use of interface keyword in IDL file for a COM interface */
[
object, uuid (00000000-0000-0000-0000-000000000000)
]
interface IDerivedInterface : IBaseInterface
{
import "base.idl"
Save();
}
/* use of interface keyword to define an interface pointer type */
typedef interface IStorage *LPSTORAGE;