interface (atributo)
La palabra clave interface especifica el nombre de la interfaz. El nombre de la interfaz debe proporcionarse tanto en el archivo IDL como en el ACF.
[
interface-attribute-list
]
interface interface-name [ : base-interface ]
{
}
typedef interface interface-name declarator-list
-
interface-attribute-list
-
Especifica los atributos que se aplican a la interfaz en su conjunto. Los atributos de interfaz válidos para un archivo IDL incluyen [endpoint], [local], [object], [pointer_default], [uuid]y [version]. Los atributos de interfaz válidos para un ACF incluyen [encode], [decode], [auto_handle] o [implicit_handle], y [code] o [nocode].
-
interface-name
-
Especifica el nombre de la interfaz. El nombre de la interfaz debe ser un nombre único y debe comenzar con un carácter alfabético o de subrayado.
-
interfaz base
-
Especifica el nombre de una interfaz de la que esta interfaz derivada hereda funciones miembro, códigos de estado y atributos de interfaz. La interfaz derivada no hereda las definiciones de tipo. Para ello, use la palabra clave import para importar el archivo IDL de la interfaz base.
-
declarator-list
-
Especifica declaradores de C estándar, como identificadores, declaradores de puntero y declaradores de matriz. Para obtener más información, vea Array and Sized-Pointer Attributes, arrays., and Arrays and Pointers. La lista declarator consta de uno o varios declaradores, separados por comas.
Los nombres de interfaz del archivo IDL y ACF deben ser los mismos, excepto cuando se usa el modificador del compilador MIDL /acf.
El nombre de la interfaz forma la primera parte del nombre de las estructuras de datos de control de interfaz que son parámetros para las funciones en tiempo de ejecución rpc. Para obtener más información, consulte RPC_IF_HANDLE.
Si el encabezado de interfaz incluye el atributo [object] para indicar una interfaz COM, también debe incluir el atributo [uuid] y debe especificar la interfaz COM base a partir de la cual se deriva. Para obtener más información sobre las interfaces COM, vea [object].
También puede usar la palabra clave interface con la palabra clave typedef para definir un tipo de datos de interfaz.
/* 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;