local (attributo)

L'attributo [local] specifica al compilatore MIDL che un'interfaccia o una funzione non è remota.

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

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

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

Parametri

interface-attribute-list

Specifica altri attributi che si applicano all'interfaccia nel suo complesso. Gli attributi [endpoint], [versione]e [pointer_default] sono facoltativi. Quando si compila con l'opzione /app_config , [implicit_handle] o [auto_handle] può essere presente anche. Separare più attributi con virgole.

nome dell'interfaccia

Specifica il nome in base al quale i componenti software possono delineare l'interfaccia.

string-uuid

Specifica una stringa UUID generata dall'utilità Uuidgen. Se non si usa l'opzione del compilatore MIDL /osf, è possibile racchiudere la stringa UUID nelle virgolette.

function-attribute-list

Specifica zero o più attributi che si applicano alla funzione. Gli attributi di funzione validi sono [callback]; attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [string], [ignore]e [context_handle]. Separare più attributi con virgole.

function-declarator

Specifica l'identificatore di tipo, il nome della funzione e l'elenco dei parametri per la funzione.

Commenti

L'attributo [local] può essere applicato a singole funzioni o all'interfaccia nel suo complesso.

Se usato nell'intestazione dell'interfaccia, l'attributo [local] consente di usare il compilatore MIDL come generatore di intestazioni. Il compilatore non genera stub per le funzioni e non garantisce che l'intestazione possa essere trasmessa.

Per un'interfaccia RPC, l'attributo [local] non può essere usato contemporaneamente all'attributo [uuid]. [uuid] o [local] deve essere presente nell'intestazione dell'interfaccia e quella scelta deve verificarsi esattamente una volta.

Per un'interfaccia COM (identificata dall'attributo dell'interfaccia [object] ), l'elenco di attributi dell'interfaccia può includere l'attributo [local] anche se l'attributo [uuid] è presente.

Se usato in una singola funzione, l'attributo [local] designa una procedura locale per cui non vengono generati stub. L'uso di [local] come attributo di funzione è un'estensione Microsoft per DCE IDL. Pertanto questo attributo non è disponibile quando si compila usando l'opzione MIDL /osf .

Si noti che un'interfaccia senza attributi può essere importata in un file IDL di base. Tuttavia, l'interfaccia deve contenere solo tipi di dati senza procedure. Se anche una procedura è contenuta nell'interfaccia, è necessario specificare un attributo UUID locale o UUID.

Esempi

/* 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); 
}

Vedere anche

/app_config

auto_handle

callback

context_handle

Endpoint

File IDL (Interface Definition)

Ignorare

implicit_handle

/Osf

Oggetto

pointer_default

Ptr

Ref

string

Unico

uuid

Versione