IItem::GetProps
9/8/2008
The GetProps método obtém um gerenciador de informações pessoais lista do item de valores propriedade.
Syntax
HRESULT GetProps(
const CEPROPID * rgPropID,
ULONG ulFlags,
WORD cProps,
CEPROPVAL ** prgVals,
ULONG * pcbBuffer,
HANDLE hHeap
);
Parameters
- rgPropID
[no] Uma matriz de propriedade da identificação
- ulFlags
[no] Sinalizador especificando alocação de memória prgVals. Para alocar memória para prgVals, definida como CEDB_ALLOWREALLOC. Definido como zero, caso já alocada.
- cProps
[no] O número de valores contidos na propriedade rgPropID.
- prgVals
[out] Referência a uma matriz usada para retornar a lista de valores propriedade Se você alocar memória (isto é, definido ulFlags Para CEDB_ALLOWREALLOC). Se você não alocar memória, em seguida, prgVals é NULL, e GetProps aloca a memória para você. Se não houver memória insuficiente, E_OUTOFMEMORY será retornado. Para informações sobre CEPROPVAL, consulte CEPROPVAL.
- pcbBuffer
[In/Out] Referência para a contagem de bytes passados prgVals Se você alocar memória. Se você não alocar memória, em seguida, pcbBuffer é o tamanho da reserva que GetProps alocados em vez disso.
- hHeap
[no] Identificador para a memória heap para alocar prgVals (Se você alocar memória). Se você não alocar memória, em seguida, hHeap Deve ser NULL.
Return Value
This method returns the standard values HRESULT_FROM_WIN32(GetLastError()), E_INVALIDARG, E_OUTOFMEMORY GPSGetPosition, e E_FAIL, as well as o seguinte.
- S_OK
The method completed successfully.
Remarks
Este método oferece suporte a alocação de memória heap. Isso permite alocar um bloco de memória única para a eficiência. Se você não alocar memória com prgVals, você deve livre *prgVals com HeapFree.
Esteja ciente que obter propriedades dos itens de compromisso e contato usar como padrão produz tipos diferentes de resultados. Se você criar um novo contato item e, em seguida, consulta suas propriedades com IItem::GetProps, Source ID é será um aleatório número e cada um dos seus valores propriedade serão (CEDB_PROPNOTFOUNDwFlags = CEDB_PROPNOTFOUND). Se você criar um novo compromisso item e, em seguida, consulta suas propriedades, Source ID é e cada um dos seus valores propriedade serão zero (srcID = 0 e wFlags = 0).
Exemplo de código
O seguinte exemplo de código demonstra como usar GetProps.
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 GetPropsExample(IItem *pItem, OlItemType olItemType)
{
HRESULT hr = E_FAIL;
int cProps = 3;
CEPROPID rgPropId[3] = {0};
CEPROPVAL * prgPropvalPoom = NULL;
CEPROPVAL * prgPropvalUser = NULL;
ULONG cbBuffer = 0;
HANDLE hHeap = GetProcessHeap();
// Get properties based on item type.
switch(olItemType)
{
case olAppointmentItem:
rgPropId[0] = PIMPR_SUBJECT;
rgPropId[1] = PIMPR_START;
rgPropId[2] = PIMPR_BUSY_STATUS;
break;
case olContactItem:
rgPropId[0] = PIMPR_FIRST_NAME;
rgPropId[1] = PIMPR_LAST_NAME;
rgPropId[2] = PIMPR_EMAIL1_ADDRESS;
break;
case olTaskItem:
rgPropId[0] = PIMPR_SUBJECT;
rgPropId[1] = PIMPR_TEAM_TASK;
rgPropId[2] = PIMPR_IMPORTANCE;
break;
default:
hr = E_INVALIDARG;
goto Exit;
}
// Allocate memory, then get item properties.
cbBuffer = 0;
hr = pItem->GetProps(rgPropId, 0, cProps, &prgPropvalUser, &cbBuffer, NULL);
if(HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) == hr)
prgPropvalUser = (CEPROPVAL *) LocalAlloc(0, cbBuffer);
// cbBuffer is set to the number of bytes required to hold the data.
hr = pItem->GetProps(rgPropId, 0, cProps, (CEPROPVAL **)&prgPropvalUser, &cbBuffer, NULL);
// Alternately, you can let Outlook Mobile allocate memory, then get item properties.
cbBuffer = 0;
hr = pItem->GetProps(rgPropId, CEDB_ALLOWREALLOC, cProps, &prgPropvalPoom, &cbBuffer, hHeap);
hr = S_OK;
Exit:
// Free memory.
LocalFree(prgPropvalUser);
HeapFree(hHeap, 0, prgPropvalPoom);
return hr;
}
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
IItem
Pocket Outlook Object Model Interfaces
IPOlItems2::GetProps