attribut local

L’attribut [local] spécifie au compilateur MIDL qu’une interface ou une fonction n’est pas distante.

[ 
    local 
    [, interface-attribute-list] 
] 
interface interface-name
{
}

[ 
    object, 
    uuid(string-uuid), 
    local [, interface-attribute-list] 
]
interface interface-name
{
}

[ local [, function-attribute-list] ] function-declarator ;

Paramètres

interface-attribute-list

Spécifie d’autres attributs qui s’appliquent à l’interface dans son ensemble. Les attributs [endpoint], [version] et [pointer_default] sont facultatifs. Lorsque vous compilez avec le commutateur /app_config , [implicit_handle] ou [auto_handle] peuvent également être présents. Séparez plusieurs attributs par des virgules.

nom_interface

Spécifie le nom par lequel les composants logiciels peuvent délimiter l’interface.

string-uuid

Spécifie une chaîne UUID générée par l’utilitaire Uuidgen. Si vous n’utilisez pas le commutateur / osf du compilateur MIDL, vous pouvez placer la chaîne UUID entre guillemets.

function-attribute-list

Spécifie zéro ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides sont [callback]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [string], [ignore] et [context_handle]. Séparez plusieurs attributs par des virgules.

function-declarator

Spécifie le spécificateur de type, le nom de la fonction et la liste de paramètres pour la fonction.

Notes

L’attribut [local] peut être appliqué à des fonctions individuelles ou à l’interface dans son ensemble.

Lorsqu’il est utilisé dans l’en-tête d’interface, l’attribut [local] vous permet d’utiliser le compilateur MIDL comme générateur d’en-têtes. Le compilateur ne génère pas de stubs pour les fonctions et ne garantit pas que l’en-tête peut être transmis.

Pour une interface RPC, l’attribut [local] ne peut pas être utilisé en même temps que l’attribut [uuid]. [uuid] ou [local] doit être présent dans l’en-tête d’interface, et celui que vous choisissez doit se produire exactement une fois.

Pour une interface COM (identifiée par l’attribut d’interface [object], la liste d’attributs d’interface peut inclure l’attribut [local] même si l’attribut [uuid] est présent.

Lorsqu’il est utilisé dans une fonction individuelle, l’attribut [local] désigne une procédure locale pour laquelle aucun stub n’est généré. L’utilisation de [local] comme attribut de fonction est une extension Microsoft à DCE IDL. Par conséquent, cet attribut n’est pas disponible lorsque vous compilez à l’aide du commutateur MIDL /osf .

Notez qu’une interface sans attributs peut être importée dans un fichier IDL de base. Toutefois, l’interface doit contenir uniquement des types de données sans procédures. Si une seule procédure est contenue dans l’interface, un attribut local ou UUID doit être spécifié.

Exemples

/* IDL file #1 */ 
[
    local
] 
interface local_procs 
{ 
    void MyLocalProc(void);
} 
 
/* IDL file #2 */ 
[
    object, 
    uuid(12345678-1234-1234-123456789ABC), 
    local
] 
interface local_object_procs : IUnknown
{ 
    void MyLocalObjectProc(void);
} 
 
/* IDL file #3 */ 
[
    uuid(87654321-1234-1234-123456789ABC)
] 
interface mixed_procs 
{ 
    [local] void MyLocalProc(void); 
    HRESULT MyRemoteProc([in] short sParam); 
}

Voir aussi

/app_config

auto_handle

rappel

context_handle

Terminaison

Fichier de définition d’interface (IDL)

Ignorer

implicit_handle

/Osf

object

pointer_default

Ptr

Ref

String

Unique

uuid

Version