IContactProperties::GetBinary Method

Retrieves the binary data of a property using an IStream interface [Structured Storage].


HRESULT GetBinary(      
    LPCWSTR pszPropertyName,
    DWORD dwFlags,
    LPWSTR pszContentType,
    DWORD cchContentType,
    DWORD *pdwcchContentTypeRequired,
    IStream** ppStream


  • pszPropertyName
    [in] Specifies the property to retrieve.
  • dwFlags
    [in] Must be CGD_DEFAULT.
  • pszContentType
    [in, out] Specifies user-allocated buffer to store the MIME content type.
  • cchContentType
    [in] Specifies the allocated buffer size in characters.
  • pdwcchContentTypeRequired
    [in, out] On failure, contains the required size for pszContentType.
  • ppStream
    [out] On success, contains a new IStream interface [Structured Storage]. Use this to retrieve the binary data.

Return Value

Returns one of the following values:

S_OK ppStream contains an IStream interface [Structured Storage]. Caller must release the reference.
S_FALSE No data for this value. Either the property has been present in the past but its value has been removed or the property is a container of other properties (toplevel/secondlevel[3]). The buffer at pszContentType has been zero'ed.
ERROR_PATH_NOT_FOUND No data found for this property name.
ERROR_INVALID_DATATYPE Unable to get value for this property due to schema.
ERROR_INSUFFICIENT_BUFFER pszContentType was not large enough to store the value. The required buffer size is stored in pdwcchContentTypeRequired.


To retrieve a single level property, set pszPropertyName to the property name.

To retrieve a value from a multi-value (hierarchical) property, include the desired index as part of pszPropertyName using the form: toplevel/secondlevel[1]/thirdlevel. NOTE: the first element of a set is index 1, so index [0] is invalid.

For deleted properties, this method returns S_OK and an IStream interface [Structured Storage] of zero length. NOTE: For properties not of binary type, this method may return incorrect data in the IStream.