ITypeInfo
9/8/2008
Essa interface é geralmente usado para ler informações sobre objetos. Exemplo, uma ferramenta navegador objeto pode usar ITypeInfo Para extrair informações sobre as características e capacidades de objetos do tipo bibliotecas.
Digite informações interfaces servem para descrever as partes do aplicativo que pode ser chamado por clientes externos, rather than aqueles que podem ser usados internamente para compilar um aplicativo.
O ITypeInfo interface fornece acessar para o seguinte:
- O conjunto de função descrições associado com o tipo. Para interfaces, este contém o conjunto de funções membro na interface.
- O conjunto de dados membro descrições associado com o tipo. Para estruturas, este contém o conjunto de membros de tipo.
- Os atributos gerais do tipo, such as se ele descreve uma estrutura, uma interface e SO on.
A descrição do tipo um IDispatch interface pode ser usado para implementar a interface.
Uma instância de ITypeInfo Fornece vários informações sobre o tipo de um objeto e é usado de diversas maneiras. Um compilador pode usar um ITypeInfo a compilação referências a membros de tipo. Um navegador interface tipo pode usá-lo para localizar informações sobre cada membro de tipo. Um IDispatch implementor pode usá-lo para fornecer delegação automática do IDispatch Chamadas para uma interface.
Tipo descrições
As informações associado com um objeto descrito por ITypeInfo Pode incluir
- Um conjunto de funções
- Um conjunto de dados membros
- Vários atributos tipo
É essencialmente o mesmo que as informações descritas por um declaração de classe C++, que pode ser usado para definir as interfaces e estruturas, as well as qualquer combinação de funções e membros dados.
Interfaces além definições estrutura, a ITypeInfo interface é usado para descrever outros tipos, incluindo enumerações e aliases. Porque a interface para um arquivo C ou biblioteca é simplesmente um conjunto de funções e variável declarações, ITypeInfo Também pode ser usado para descrevê-los.
Informações tipo compreendem individual descrições tipo. Cada descrição tipo deve ter um do seguinte formulários.
Categoria | Palavra-chave ODL | Descrição |
---|---|---|
alias |
typedef |
Um alias para outro tipo. |
enumeração |
enum |
Uma enumeração. |
estrutura |
estrutura |
Uma estrutura. |
união |
união |
Um item de dados único que pode ter um de uma GRUPO especificado de tipos. |
módulo |
módulo |
Dados e funções não acessadas por meio de entradas tabela de função virtual (VTBL). |
IDispatch interface |
Dispinterface |
IDispatch propriedades e métodos acessados através IDispatch::Invoke. |
Interface OLE |
interface |
Funções membro OLE acessadas através de entradas VTBL. |
interface dupla |
Dual |
Oferece suporte a ambos os VTBL ou IDispatch. |
classe objeto componente |
coclass |
Classe um objeto componente. Especifica uma implementação de um ou mais interfaces OLE e um ou mais IDispatch Interfaces. |
Observação
Todos os sinalizadores bit que não são usados especificamente devem ser definidos como zero para compatibilidade futura.
Alias
Um alias foi TypeKind = TKIND_ALIAS. Um alias é um vazio conjunto de funções, um vazio conjunto de dados membros e uma descrição tipo (localizada na TYPEATTR), que fornece o real (definição de tipotypedef) do alias.
Enumeração (instrução)
(Uma enumeraçãoenum) tem TypeKind = TKIND_ENUM. Uma enumeração é um vazio conjunto de funções e um conjunto de constante membros dados.
Estrutura (instrução)
(Uma estruturaestrutura) descrição tem TypeKind = TKIND_RECORD. Uma estrutura é um vazio conjunto de funções e um conjunto de por-membros dados instância.
União (instrução)
A união descrição tem TypeKind = TKIND_UNION. Uma união é um vazio conjunto de funções e um conjunto de por-instância dados membros, cada um deles com um deslocamento instância de zero.
Módulo (instrução)
A módulo Tem TypeKind = TKIND_MODULE. Um módulo é um conjunto de funções estáticos e um conjunto de dados estáticos membros.
Interface-compatíveis com OLE
Um interface definição foi TypeKind = TKIND_INTERFACE. Uma interface é um conjunto de funções virtuais puros e um vazio conjunto de dados membros. Se uma descrição tipo contém quaisquer funções virtuais, em seguida, o ponteiro para o VTBL é os primeiros 4 bytes da instância.
Informações de tipo totalmente descreve as funções membro no VTBL, incluindo nomes parâmetro tipos e tipos de retorno função. Ele pode herdar de não more than uma outra interface.
Com interfaces e dispinterfaces, todos os participantes devem têm nomes diferentes, exceto as funções acessador de propriedades. Para funções propriedade tenham o mesmo nome, o contexto da Ajuda e documentação seqüência de caracteres devem ser definidas somente para um das funções (porque eles definem a propriedade mesma conceitualmente).
Interface IDispatch
Eles incluem os objetos (TypeKind = TKIND_DISPATCH) que suporte o IDispatch interface com uma especificação dos métodos e distribuir dados membros (such as propriedades) com suporte por meio do objeto a Chamar implementação. Todos os membros do Dispinterface devem têm identificações diferentes, Except for as funções acessador de propriedades.
Interface dupla
Interfaces duplos têm dois descrições tipo diferente para a mesma interface.
- A descrição tipo TKIND_INTERFACE descreve a interface como um padrão interface OLE Component Object Model (COM).
- A descrição tipo TKIND_DISPATCH descreve a interface como um padrão interface de distribuição.
O LCID e retval Parâmetros e o HRESULT retornam tipos são removidos, e o tipo de retorno do membro é especificado para ser o mesmo tipo como o retval parâmetro.
Por padrão, a enumeração TYPEKIND para uma interface dupla é TKIND_INTERFACE. Ferramentas que BIND a interfaces deve verificar o tipo sinalizadores para TYPEFLAG_FDUAL.
Se este sinalizador for definido, a descrição tipo TKIND_DISPATCH será disponível por um chamar para ITypeInfo::GetRefTypeOfImplType Com um índice de – 1, seguido por um chamar para ITypeInfo::GetRefTypeInfo.
Classes de objeto componente
Esses objetos coclass (TypeKind = TKIND_COCLASS) suporte um conjunto de interfaces implementadas, que podem ser de TKIND_INTERFACE ou TKIND_DISPATCH.
Métodos
A seguinte tabela mostra os métodos para esta interface no ordem alfabética. Como todas as interfaces COM, essa interface herda os métodos para a IUnknown interface.
Método | Descrição |
---|---|
Este método recupera os endereços de funções estáticas ou variáveis, tais como aquelas definidas em um dynamic-link library (DLL). |
|
Esse método cria uma nova instância de um tipo que descreve uma classe objeto componente (coclass). |
|
Este método recupera dois de biblioteca de tipos que contém uma descrição tipo específico e o índice de descrição de tipo de biblioteca de tipo. |
|
Este método recupera uma descrição ou especificação de uma ponto de entrada para uma função em um dynamic-link library (DLL). |
|
Este método recupera o seqüência de caracteres documentação, nome do completo arquivo da Ajuda Nome e caminho e o identificador de contexto para o tópico da Ajuda para uma descrição tipo especificado. |
|
Este método recupera o FUNCDESC estrutura que contém informações sobre uma função especificada. |
|
Este método mapeia entre os nomes e identificadores de membros e parâmetros. |
|
Este método recupera o IMPLTYPEFLAGS Para uma interface. |
|
Este método recupera informações empacotamento. |
|
Este método recupera a variável com o identificador especificado membro, ou o nome dos nomes de função e parâmetro correspondente para o identificador função especificada. |
|
Este método recupera as descrições tipo relacionado por uma descrição tipo especificado. |
|
Este método recupera a descrição tipo de interface implementada tipos para uma classe de objeto componente (coclass) ou uma interface herdada. |
|
Este método recupera uma TYPEATTR estrutura que contém os atributos descrição tipo. |
|
Este método recupera o ITypeComp interface para a descrição tipo, que permite que um compilador cliente para BIND a membros da descrição de tipo. |
|
Este método recupera uma VARDESC estrutura que descreve a variável especificada. |
|
Este método chama um método ou acessa uma propriedade de um objeto que implementa a interface indicada por descrição de tipo. |
|
Esse método libera um FUNCDESC Anteriormente retornado por GetFuncDesc. |
|
Esse método libera um TYPEATTR Anteriormente retornado por GetTypeAttr. |
|
Esse método libera um VARDESC Anteriormente retornado por GetVarDesc. |
Requisitos
Header | oaidl.h, oaidl.idl |
Library | oleaut32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Automation Interfaces
FUNCDESC
IDispatch
IDispatch::Invoke
IMPLTYPEFLAGS
IUnknown
VARDESC