IMAPIProp::GetPropList

The IMAPIProp::GetPropList method returns property tags for all properties.

Quick Info

See IMAPIProp : IUnknown.

HRESULT GetPropList(
  ULONG ulFlags,                         
  LPSPropTagArray FAR * lppPropTagArray  
);
 

Parameters

ulFlags
[in] Bitmask of flags that controls the format for the strings in the returned property tags. The following flag can be set:
MAPI_UNICODE
The returned strings are in Unicode format. If the MAPI_UNICODE flag is not set, the strings are in ANSI format.
lppPropTagArray
[out] Pointer to a pointer to the property tag array containing tags for all of the object's properties.

Return Values

S_OK
All of the property tags were returned successfully.
MAPI_E_BAD_CHARWIDTH
Either the MAPI_UNICODE flag was set and the implementation does not support Unicode, or MAPI_UNICODE was not set and the implementation only supports Unicode.

Remarks

The IMAPIProp::GetPropList method retrieves the property tag for each property currently supported by an object. If the object does not currently support any properties, GetPropList returns a property tag array with the cValues member set to zero.

The scope of properties returned by GetPropList varies from provider to provider. Some service providers exclude those properties for which the caller does not have access. All providers return properties of type PT_OBJECT.

If the object does not support Unicode, GetPropList returns MAPI_E_BAD_CHARWIDTH, even if there are no string properties defined for the object.

Notes to Implementers

Remote transport providers implement GetPropList exactly as specified here. There are no special concerns. Your implementation should, of course, return the same list of properties as supported by the GetProps method.

Notes to Callers

Call the MAPIFreeBuffer function to free the property tag array pointed to by lppPropTagArray.

See Also

MAPIFreeBuffer