AAFA Developer Support

Public Member Functions
IAAFKLVData Interface Reference

The IAAFKLVData interface is implemented by objects that specify an User defined tag and value. More...

List of all members.

Public Member Functions

HRESULT Initialize ([in] aafUID_t key,[in] aafUInt32 length,[in, size_is(length)] aafDataBuffer_t pValue)
 Initializes a new KLVData object to be interpreted using the given given key.
HRESULT GetKey ([out] aafUID_t *pKey)
 Returns the type definition for this invocation.
HRESULT GetValue ([in] aafUInt32 valueSize,[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t pValue,[out] aafUInt32 *bytesRead)
 Writes the value into the pValue buffer.
HRESULT GetValueBufLen ([out] aafUInt32 *pLen)
 Returns the length of buffer required for the GetValue() method.
HRESULT SetValue ([in] aafUInt32 valueSize,[in, size_is(valueSize)] aafDataBuffer_t pValue)
 The data value is set from a buffer of size valueSize and type.

Detailed Description

The IAAFKLVData interface is implemented by objects that specify an User defined tag and value.

In addition to the specific error results listed for each method, all methods in this interface may also return one of the following values:

AAFRESULT_NOMEMORY

Objects that implement IAAFKLVData also implement the following interfaces:

Definition at line 12481 of file AAF.idl.


Member Function Documentation

HRESULT IAAFKLVData::GetKey ( [out] aafUID_t *  pKey)

Returns the type definition for this invocation.

Succeeds if all of the following are true:

  • the pKey pointer is valid.

If this method fails nothing will be written to *pKey.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_PROP_NOT_PRESENT

  • This property does not exist in the file.

AAFRESULT_NULL_PARAM

  • pKey arg is NULL.
Parameters:
pKey[out] The key of this object
HRESULT IAAFKLVData::GetValue ( [in] aafUInt32  valueSize,
[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t  pValue,
[out] aafUInt32 *  bytesRead 
)

Writes the value into the pValue buffer.

The buffer is allocated by the caller, and the size of the buffer is given by valueSize.

Caller may call GetValueBufLen() to determine the required buffer size.

Succeeds if all of the following are true:

  • the pValue pointer is valid.
  • valueSize indicates the buffer is large enough to hold the name.

If this method fails nothing will be written to *pValue.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pValue arg is NULL.

AAFRESULT_SMALLBUF

  • valueSize indicates the buffer is too small to hold the value.
Parameters:
valueSize[in] Size of preallocated buffer
pValue[out, size_is(valueSize), length_is(*bytesRead)] Preallocated buffer to hold value
bytesRead[out] Number of actual bytes read
HRESULT IAAFKLVData::GetValueBufLen ( [out] aafUInt32 *  pLen)

Returns the length of buffer required for the GetValue() method.

The value is placed into the location specified by pLen.

Succeeds if all of the following are true:

  • the pLen pointer is valid.

If this method fails nothing will be written to *pLen.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pLen arg is NULL.
Parameters:
pLen[out] Pointer to an variable used to return the length
HRESULT IAAFKLVData::Initialize ( [in] aafUID_t  key,
[in] aafUInt32  length,
[in, size_is(length)] aafDataBuffer_t  pValue 
)

Initializes a new KLVData object to be interpreted using the given given key.

The key must have been registered using dictionary->RegisterKLVDataKey() in order to use the byte swapping functionality of the type model.

This method must be called after allocation, and before any other method can be called.

Succeeds if:

  • Initialize() has not yet been called on this object.
  • pName is a valid pointer.
  • pTypeDef is a valid pointer and registered
  • pValue is a valid pointer

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_ALREADY_INITIALIZED

AAFRESULT_NULL_PARAM

  • pTypeDef or pValue arg is NULL.

AAFRESULT_NOT_VALID_KEY

  • The given key must not resolve to a builtin type. For most purposes, use IAAFTypeDefRename to rename an existing type.
Parameters:
key[in] Key of the following value data
length[in] Length of preallocated buffer
pValue[in, size_is(length)] buffer containing value
HRESULT IAAFKLVData::SetValue ( [in] aafUInt32  valueSize,
[in, size_is(valueSize)] aafDataBuffer_t  pValue 
)

The data value is set from a buffer of size valueSize and type.

Succeeds if all of the following are true:

  • the pValue pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pValue is null.
Parameters:
valueSize[in] Size of preallocated buffer
pValue[in, size_is(valueSize)] buffer containing value

Generated on Wed Jul 4 2012 22:13:28 for AAF COM API by doxygen 1.7.4