atributo local

O atributo [local] especifica ao compilador MIDL que uma interface ou função não é 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 ;

Parâmetros

interface-attribute-list

Especifica outros atributos que se aplicam à interface como um todo. Os atributos [ponto de extremidade], [versão], e [pointer_default] são opcionais. Ao compilar com a opção /app_config , [implicit_handle] ou [auto_handle] também podem estar presentes. Separe vários atributos com vírgulas.

interface-name

Especifica o nome pelo qual os componentes de software podem delinear a interface.

string-uuid

Especifica uma cadeia de caracteres UUID gerada pelo utilitário Uuidgen. Se você não estiver usando a opção /osf do compilador MIDL, poderá colocar a cadeia de caracteres UUID entre aspas.

function-attribute-list

Especifica zero ou mais atributos que se aplicam à função. Os atributos de função válidos são [retorno de chamada]; o atributo de ponteiro [ref], [unique]ou [ptr]; e os atributos de uso [string], [ignore], e [context_handle]. Separe vários atributos com vírgulas.

function-declarator

Especifica o especificador de tipo, o nome da função e a lista de parâmetros para a função.

Comentários

O atributo [local] pode ser aplicado a funções individuais ou à interface como um todo.

Quando usado no cabeçalho da interface, o atributo [local] permite que você use o compilador MIDL como um gerador de cabeçalho. O compilador não gera stubs para nenhuma função e não garante que o cabeçalho possa ser transmitido.

Para uma interface RPC, o atributo [local] não pode ser usado ao mesmo tempo que o atributo [uuid] . [uuid] ou [local] deve estar presente no cabeçalho da interface e o escolhido deve ocorrer exatamente uma vez.

Para uma interface COM (identificada pelo atributo de interface [object] ), a lista de atributos de interface pode incluir o atributo [local] mesmo que o atributo [uuid] esteja presente.

Quando usado em uma função individual, o atributo [local] designa um procedimento local para o qual nenhum stub é gerado. Usar [local] como um atributo de função é uma extensão da Microsoft para IDL de DCE. Portanto, esse atributo não está disponível quando você compila usando a opção MIDL /osf .

Observe que uma interface sem atributos pode ser importada para um arquivo IDL base. No entanto, a interface deve conter apenas tipos de dados sem procedimentos. Se até mesmo um procedimento estiver contido na interface, um atributo local ou UUID deverá ser especificado.

Exemplos

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

Confira também

/app_config

auto_handle

retorno de chamada

context_handle

Extremidade

Arquivo IDL (definição de interface)

Ignorar

implicit_handle

/Osf

Objeto

pointer_default

Ptr

Ref

string

Único

uuid

version