IPOutlookApp2::GetIDsFromNames
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