Atributos de tipo
Los atributos de tipo son los atributos MIDL que se pueden aplicar a las declaraciones de tipo:
El atributo [switch_type] designa el tipo de discriminador de la unión. Este atributo solo se aplica a una unión no encapsulada.
Un identificador de contexto es un puntero con un atributo [context_handle]. El atributo [context_handle] permite escribir procedimientos que mantienen información de estado entre las llamadas a procedimientos remotos. Un identificador de contexto con un valor distinto de NULL representa el contexto guardado y sirve para dos propósitos:
- En el lado cliente, contiene la información que necesita la biblioteca en tiempo de ejecución de RPC para dirigir la llamada al servidor.
- En el lado servidor, actúa como identificador en el contexto activo.
El atributo [handle] especifica que un tipo puede producirse como identificador definido por el usuario (genérico). Esta característica permite el diseño de identificadores que son significativos para la aplicación. El usuario debe proporcionar rutinas de enlace y desenlace para convertir entre el tipo de identificador definido por el usuario y el tipo de identificador primitivo RPC, handle_t. Un identificador primitivo contiene información de destino significativa para las bibliotecas en tiempo de ejecución rpc. Un identificador definido por el usuario solo se puede definir en una declaración de tipo, no en una declaración de función. Un parámetro con el atributo [handle] tiene un propósito doble. Se usa para determinar el enlace de la llamada y se transmite al procedimiento llamado como parámetro de datos normal.