Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O atributo oleautomation indica que uma interface é compatível com Automação.
[
oleautomation,
uuid(string-uuid)
[ , interface-attribute-list]
]
interface interface-name : base-interface
{
...
}
Parâmetros
-
string-uuid
-
Especifica uma cadeia UUID gerada pela utilitária Uuidgen.
-
interface-attribute-list
-
Especifica outros atributos que se aplicam à interface como um todo.
-
Nome da interface
-
Especifica o nome da interface.
-
interface base
-
Especifica o nome de uma interface de Automação da qual esta interface derivada herda funções membros, códigos de estado e atributos da interface. Todas as interfaces de Automação derivam do IUnknown ou IDispatch.
Observações
Os parâmetros e tipos de retorno especificados para os membros de uma interface [oleautomation] devem ser compatíveis com Automação, conforme listado na tabela seguinte.
| Tipo | Descrição |
|---|---|
| boolean | Itens de dados que podem ter valor VARIANT_TRUE ou VARIANT_FALSE. O tamanho corresponde ao VARIANT_BOOL. |
| char não assinado | Item de dados não assinados de 8 bits. |
| duplo | Número de ponto flutuante IEEE de 64 bits. |
| float | Número de ponto flutuante IEEE de 32 bits. |
| int | Inteiro com signo, cujo tamanho depende do sistema. Em plataformas de 32 bits, o MIDL trata o int como um inteiro assinado de 32 bits. |
| Longo | Inteiro assinado de 32 bits. |
| curto | Inteiro assinado de 16 bits. |
| BSTR | Cadeia com prefixo de comprimento, conforme descrito no tópico de Automação BSTR. |
| MOEDA | Número fixo de ponto flutuante de 8 bytes. |
| DATE | Número fracionário de 64 bits, ponto flutuante, desde 30 de dezembro de 1899. |
| SCODE | Para sistemas de 16 bits – tipo de erro incorporado que corresponde a VT_ERROR. |
| Typedef enummyenum | Inteiro com signo, cujo tamanho depende do sistema. |
| Interface IDispatch * | Apontador para a interface IDispatch (VT_DISPATCH). |
| Interface IUnknown * | Apontador para uma interface que não deriva do IDispatch (VT_UNKNOWN). (Qualquer interface OLE pode ser representada pela sua interface IUnknown .) |
| DisinterfaceNome do Tipo * | Apontador para uma interface derivada do IDispatch (VT_DISPATCH). |
| Nome de Tipo Coclasse * | Apontar para um nome de coclasse (VT_UNKNOWN). |
| [oleautomation] interfaceNome do tipo * | Apontador para uma interface que deriva de IUnknown. |
| SAFEARRAY (NomeTipo) | TypeName é qualquer um dos tipos acima. Variedade destes tipos. |
| Nome do Tipo * | TypeName é qualquer um dos tipos acima. Aponta para um tipo. |
| Decimal | Inteiro binário sem sinal de 96 bits, escalado por uma potência variável de 10. Um tipo de dado decimal que fornece um tamanho e uma escala para um número (como coordenadas). |
Um parâmetro é compatível com Automação se o seu tipo for compatível com Automação, um apontador para um tipo compatível com Automação, ou um SAFEARRAY de um tipo compatível com Automação.
Um tipo de retorno é compatível com Automação se o seu tipo for um HRESULT, SCODE ou void. No entanto, o MIDL exige que os métodos de interface retornem HRESULT ou SCODE. O retorno do void gera um erro do compilador.
Um membro é compatível com Automação se o seu tipo de retorno e todos os seus parâmetros forem compatíveis com Automação.
Uma interface é compatível com Automação se for derivada de IDispatch ou IUnknown, tiver o atributo [oleautomation ] e todas as suas entradas VTBL forem compatíveis com Automação. Para plataformas de 32 bits, a convenção de chamada para todos os métodos na interface deve ser STDCALL. Para sistemas de 16 bits, todos os métodos devem seguir a convenção de chamada CDECL.
Cada disinterface é implicitamente compatível com Automação. Por isso, não deve usar o atributo [oleautomation] na disinterface.
O atributo [oleautomation] não está disponível quando compila usando o compilador MIDL /osf switch.
Bandeiras
TYPEFLAG_FOLEAUTOMATION
Exemplos
library Hello
{
importlib("stdole32.tlb");
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("Application object for the Hello application."),
oleautomation,
dual
]
interface IHello : IDispatch
{
// Interface definition statements.
}
// Other library definition statements.
}
Consulte também