IFXAttributes

This interface is used to enumerate the attribute names supported by an IFXCOM-Lite component, determine attribute type information and retrieve them. IFXCOM-Lite components are NOT required to support this interface.

ATTRIBUTE_TYPE defines the following types:

IFX_ATTRIBUTETYPE_NONE=0
IFX_ATTRIBUTETYPE_BOOL
IFX_ATTRIBUTETYPE_F32
IFX_ATTRIBUTETYPE_F64
IFX_ATTRIBUTETYPE_S16
IFX_ATTRIBUTETYPE_STRING
IFX_ATTRIBUTETYPE_U8
IFX_ATTRIBUTETYPE_U16
IFX_ATTRIBUTETYPE_U32
IFX_ATTRIBUTETYPE_RGB
IFX_ATTRIBUTETYPE_RGBA
IFX_ATTRIBUTETYPE_VECTOR
IFX_ATTRIBUTETYPE_VECTOR4
IFX_ATTRIBUTETYPE_USER
IFX_ATTRIBUTETYPE_VARIABLE_SIZED_BUFFER=99

This interface is derived from IFXUnknown.

Method Interface

Description

Get

Gets the value of the specified attribute

Set

Sets the value of the specified attribute

GetType

Gets the type of the specified attribute

GetIDs

Gets the IDs associated with specified names

EnumerateNames

Gets the list of supported attribute names

GetSize

Gets the size of the specified attribute

GetCount

Gets the number of supported attributes


IFXAttributes::Get(U32 nAttributeID, U32 nBufferSize, void* pReturnValue);

Given an attribute ID, returns the value of that attribute. The caller must supply a buffer of the correct size (see GetSize), and the value is copied into that buffer.

Parameters:

nAttributeID

ID of the desired attribute

nBufferSize

Size of the buffer supplied by the user

pReturnValue

User-supplied buffer into which the attribute value is copied

Return Values

Comments:

Attribute values are always copied, including strings and variable-sized buffers.


IFXAttributes::Set(U32 nAttributeID, U32 nBufferSize, void* pValue);

Sets the value of a specific attribute.

Parameters:

nAttributeID

ID of the desired attribute

nBufferSize

Size of the value supplied by the user

pValue

Pointer to the new value, which will be copied

Return Values

Comments:

Attribute values are always copied, including strings and variable-sized buffers.


IFXAttributes::GetType(U32 nAttributeID, IFXATTRIBUTE_TYPE * pReturnValue)

Gets the type of the specified attribute.

Parameters:

nAttributeID

ID of the desired attribute

pReturnValue

Pointer to the attribute type. The user must supply a reference to a valid IFXATTRIBUTE_TYPE variable, which will be initialized to the correct value.

Return Values


IFXAttributes::GetIDs(CHAR ** ppAttributeNames, U32 nAttributeCount, U32 * pAttributeIDs);

Returns the IDs associated with attribute names, if any.

Parameters:

ppAttributeNames

An array of strings, representing the names of attributes

nAttributeCount

Number of entries in the ppAttributeNames array

pAttributeIDs

An array of U32s which will be initialized to the IDs which match the supplied names

Return Values

Comments:

If the attribute does not exist in the component, the corresponding ID will be set to IFX_ATTRIBUTETYPE_NONE.


IFXAttributes::EnumerateNames(U32 nIndex, CHAR * * ppReturnValue)

Returns the list of names of attributes supported by the component.

Parameters:

nIndex

Number of pointer entries in the user-supplied buffer

ppReturnValue

User-supplied array of pointers to strings which will be initialized to point to the names of attributes supported by this component

Return Values

Comments:

ppReturnValue is only an array of pointers which will be assigned to point to the names of attributes; no strings are actually copied.


IFXAttributes::GetSize(U32 nAttributeID, U32 * pReturnValue)

Returns the size of a given attribute.

Parameters:

nAttributeID

ID of the desired attribute

pReturnValue

Pointer to a user-supplied U32 which will be set to the size of the attribute in question

Return Values

Comments:

Attributes of type IFX_ATTRIBUTETYPE_STRING return the length of the string buffer.


IFXAttributes::GetCount(U32 * pReturnValue)

Returns the number of attributes supported by the component.

Parameters:

pReturnValue

Pointer to a user-supplied U32 which will be initialized with the number of the attributes supported by the component

Return Values


§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.