Compartilhar via


IDispatch::GetIDsOfNames

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Este método mapeia um nome único membro e um conjunto de nomes parâmetro para um correspondente conjunto de identificadores distribuir inteiro (DISPIDs), que, em seguida, podem ser usados em subseqüente opcional chama para Chamar.

Syntax

HRESULT GetIDsOfNames( 
  REFIID riid, 
  OLECHAR FAR* FAR* rgszNames, 
  unsigned int cNames, 
  LCID lcid, 
  DISPID FAR* rgDispId 
);

Parameters

  • riid
    [no] Reservado para uso futuro; Defina como IID_NULL.
  • rgszNames
    [no] Passed-in matriz de nomes a ser mapeada.
  • cNames
    [no] Contagem dos nomes a serem mapeados.
  • LCID
    [no] Localidade contexto no qual interpretar os nomes.
  • rgDispId
    [out] Matriz Caller-allocated, cada elemento do qual contém um identificador que corresponde a um dos nomes de passado o rgszNames matriz. O primeiro elemento representa o nome membro. Os elementos subseqüentes representam cada um dos parâmetros do membro.

Return Value

A seguinte tabela mostra os valores de retorno para esta função.

Valor Descrição

S_OK

O sucesso.

E_OUTOFMEMORY

Memória insuficiente.

DISP_E_UNKNOWNNAME

Um ou mais de nomes não eram conhecidas. A matriz retornada de DISPIDs contém DISPID_UNKNOWN para cada entrada que corresponde a um nome desconhecido.

DISP_E_UNKNOWNLCID

Identificador de localidade (LCID) não foi reconhecido.

Remarks

Um IDispatch implementação pode associar qualquer valor inteiro positivo identificador com um given Name. Zero é reservado para o usar como padrão, ou Valor propriedade; – 1 está reservada para indicar um nome desconhecido; e outros valores negativos são definidos para outros fins.

Por exemplo, se GetIDsOfNames é chamado e a implementação não reconhece um ou mais nomes de, ele retorna DISP_E_UNKNOWNNAME e o rgDispId matriz contém DISPID_UNKNOWN para as entradas que corresponder aos nomes desconhecidos.

O membro e DISPIDs parâmetro devem permanecerão constante para a tempo de vida do objeto. Isso permite que um cliente para obter os DISPIDs uma vez e armazenar em cache-los para uso posterior.

Quando GetIDsOfNames é chamado com more than um nome, a (primeiro nomergszNames[0]) corresponde ao nome do membro e nomes subseqüentes corresponder aos nomes dos parâmetros do membro.

O mesmo nome pode mapa (n.); mapear (v.) para diferentes DISPIDs, depending on contexto. De exemplo, um nome pode ter um DISPID quando ele é usado como um nome membro com uma interface específica, um identificador diferente como um membro de uma interface diferente e mapeamento diferente para cada tempo que ele aparece como um parâmetro.

O IDispatch interface vincula a nomes em tempo de execução. Para BIND em tempo de compilação em vez disso, um IDispatch cliente pode nomes mapa (n.); mapear (v.) para DISPIDs usando o ITypeLib, ITypeLib2, ITypeInfo, ITypeInfo2, e ITypeComp Interfaces. Isso permite que um cliente para BIND para membros em tempo de compilação e evitar chamado GetIDsOfNames em tempo de execução.

A implementação de GetIDsOfNames é sem diferenciação de maiúsculas e minúsculas. Os usuários que precisam com diferenciação de maiúsculas e minúsculas nome mapeamento deve usar interfaces informações tipo para nomes mapa (n.); mapear (v.) para DISPIDs, em vez chamar GetIDsOfNames.

Example

O seguinte codificar a partir de arquivo exemplo linhas Lines.cpp implementa o GetIDsOfNames função membro para o CLine classe. O ActiveX ou objeto OLE usa o padrão implementação, DispGetIDsOfNames.

STDMETHODIMP 
CLine::GetIDsOfNames(
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgDispId)
{
return DispGetIDsOfNames(m_ptinfo, rgszNames, cNames, rgDispId);
}

O seguinte codificar pode aparecer em um cliente ActiveX que chama GetIDsOfNames Para get a DISPID da Cor cLine propriedade.

HRESULT hresult;
IDispatch FAR* pdisp = (IDispatch FAR*)NULL;
DISPID dispid;
OLECHAR FAR* szMember = "color";
// Code that sets a pointer to the dispatch (pdisp) is omitted.
hresult = pdisp->GetIDsOfNames(
IID_NULL,
&szMember,
1, LOCALE_SYSTEM_DEFAULT,
&dispid);

Requirements

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

IDispatch
DispGetIDsOfNames
IDispatch::Invoke
ITypeComp
ITypeInfo
ITypeInfo2
ITypeLib
ITypeLib2