Compartilhar via


IPOutlookApp2::GetIDsFromNames

Windows Mobile SupportedWindows Embedded CE Not Supported

9/8/2008

The GetIDsFromNames método cria exclusivo propriedade identificação é para nomeado propriedades, bem como consultas sobre a existência de e obtém um nomeado determinado propriedade.

Syntax

HRESULT GetIDsFromNames(
  ULONG cPropNames,
  LPCWSTR const * rgszPropNames,
  ULONG ulFlags,
   CEPROPID * rgPropIDs
);

Parameters

  • cPropNames
    [no] O número de nomes propriedade passado a rgszPropNames matriz.
  • rgszPropNames
    [no] Nomes de propriedades em uma matriz seqüência de caracteres. Propriedades devem ter o mesmo tipo de dados.

    Observação

    Propriedade nomes são sem diferenciação de maiúsculas e minúsculas, estão limitados a 255 caracteres e não pode incluir o seguinte caracteres especiais: ,;[].

  • ulFlags
    [no] Máscara de bits de sinalizadores que indica como o nomeado propriedade é criada. A seguinte tabela mostra as opções de parâmetro pode demorar. Esses são combinados com o bit a bit Ou.

    Opção Value Description

    PIM_CREATE

    0x010000

    Cria o nomeado propriedade se ela já não existir. Se você usar o PIM_CREATE opção e, em seguida, você deve combinar a ulFlags máscara de bits (usando a bit a bit OU) com um dos tipos de dados listados abaixo.

    PIM_INDEXED

    0x200000

    Especifica se o nomeado propriedade deve ser indexada para a funcionalidade de localização mais rápida.

    Usado somente se o PIM_CREATE sinalizador é definido.

    PIM_DONTREPLICATE

    0x400000

    Especifica se o nomeado propriedade não deve ser copiada junto com o restante das propriedades do item quando um copiar do item é feita.

    Usado somente se o PIM_CREATE sinalizador é definido.

    Observação

    Se GetIDsFromNames Falha para localizar um índice para uma propriedade identificação e, em seguida, o seguinte valor é retornado no rgPropIDs.

    Se você não fizer isso especificar qualquer sinalizadores, em seguida, GetIDsFromNames Retorna a propriedade identificação se ele existir, ele retorna caso contrário PIMPR_INVALID_ID Em rgPropIDs.

    Opção Value Description

    PIMPR_INVALID_ID

    0xffff

    Propriedade identificação não encontrada.

  • rgPropIDs
    [out] Uma matriz de propriedade da identificação Para informações sobre CEPROPID, consulte CeOpenStream (EDB).

Return Value

Esse método retorna o seguinte:

  • S_OK
    The method completed successfully.
  • S_FAIL
    Falha de chamada de método.
  • E_INVALIDARG
    Ao definir ulFlags, PIM_CREATE foi especificado sem especificar também um válido tipo de dados.
  • HRESULT_FROM_WIN32(GetLastError())
    Mapeia o último valor de erro Win32 em Um HRESULT.

Remarks

The GetIDsFromNames método é baseado em IMAPIProp::GetIDsFromNames.

Chamando GetIDsFromNames múltiplo horas para o mesmo nome propriedade produz a mesma propriedade ID.

Propriedades nomeadas devem ter um dos tipos listados na seguinte tabela.

Tipo de dados Description

CEVT_BLOB

Estrutura blob

CEVT_BOOL

Boolean valor

CEVT_FILETIME

Estrutura FILETIME

CEVT_I2

16-bit número inteiro assinado

CEVT_I4

32-bit número inteiro assinado

CEVT_LPWSTR

Seqüência de caracteres NULL-Terminated

CEVT_R8

64-bit float

CEVT_UI2

16-bit inteiro sem assinatura

CEVT_UI4

32-bit inteiro sem assinatura

Exemplo de código

O seguinte exemplo de código demonstra como criar três nomeado propriedades.

Observação

Para tornar o exemplo de código mais fácil para ler, verificação de segurança e manipulação de erro não estão incluídos.This code example should not be used in a release configuration unless it has been modified to include them.

WCHAR *rgszNamedProps[3] = {0};
CEPROPID rgPropIDs[3]    = {0};

rgszNamedProps[0] = L"Blood Group";
rgszNamedProps[1] = L"Favorite Book";
rgszNamedProps[2] = L"Pet";

hr = m_polApp->GetIDsFromNames(3, rgszNamedProps, PIM_CREATE | CEVT_LPWSTR, rgPropIDs);

Exemplo de código

O seguinte exemplo de código demonstra como usar GetIDsFromNames. Todos os nomeado propriedades podem ser usadas com todos os tipos item gerenciador de informações pessoais. Nomes de propriedades não são com diferenciação de maiúsculas e minúsculas. Para obter/definir o nomeado propriedades, chamar IItem::GetProps e IItem::SetProps.

Observação

Para tornar o exemplo de código mais fácil para ler, verificação de segurança e manipulação de erro não estão incluídos.This code example should not be used in a release configuration unless it has been modified to include them.

HRESULT CreateNamedPropExample(IPOutlookApp2 *pPoom, OlItemType olItemType)
{
    HRESULT hr = E_FAIL;

    WCHAR * rgszNamedProps[3] = {0};
    CEPROPID     rgPropIds[3] = {0};

    // Case 1: Create three named properties of type String.
    rgszNamedProps[0] = L"Blood Group";
    rgszNamedProps[1] = L"Favorite Book";
    rgszNamedProps[2] = L"Pet";

    hr = pPoom->GetIDsFromNames(3, rgszNamedProps, PIM_CREATE | CEVT_LPWSTR, rgPropIds);

    // Case 2: Create two named properties of type Integer.
    rgszNamedProps[0] = L"Height";
    rgszNamedProps[1] = L"Weight";
    hr = pPoom->GetIDsFromNames(2, rgszNamedProps, PIM_CREATE | CEVT_I4, rgPropIds);

    // Case 3: Create one named property of type indexed uint, that is not replicated when an item is copied by using IItem::Copy.
    rgszNamedProps[0] = L"RecordId";
    hr = pPoom->GetIDsFromNames(1, rgszNamedProps, PIM_CREATE | PIM_INDEXED | PIM_DONTREPLICATE | CEVT_UI4, rgPropIds);

    return hr;
}

Remarks

Propriedade de identificação são do tipo CEPROPID, que é definido na Windbase.h arquivo de cabeçalho como uma DWORD (sem assinatura int longo). A alta duas - ordem bytes contêm o identificador e o baixo duas - ordem bytes contêm o tipo. Para uma lista de com suporte tipos, consulte o CEVALUNION união no Windbase.h header file.

De exemplo, caso 1 in a codificar exemplo acima produz a seguinte propriedade três identificações de:

2147549215 (1000000000000001 0000000000011111)
2147614751 (1000000000000010 0000000000011111)
2147680287 (1000000000000011 0000000000011111)

Desde que descends de IPOutlookApp2 IPOutlookApp, você pode inicializar sua sessão POOM com um ponteiro para IID_IPOutlookApp2 em vez de IID_IPOutlookApp.

Para seu projeto para compilação corretamente, você deve adicionar a declaração # include < pimstore.h > Para lista do seu arquivo de origem de pre-Processor diretivas e você deve adicionar pimstore.lib para lista do projeto de Additional Dependencies (Propriedades do projeto > Configuration Properties > Linker > Input > Additional Dependencies).

Para seu projeto para link corretamente, você deve adicionar o seguinte duas instruções para o início da lista do seu arquivo de origem de pre-Processor diretivas:

#include <objbase.h>
#include <initguid.h>

Requirements

Header pimstore.h
Library Pimstore.lib
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also

Reference

IPOutlookApp2
IMAPIProp::GetIDsFromNames

Other Resources