vceGetCurrentList

Returns the list of messages contained in the current message.

Prototype

DWORD vceGetCurrentList ( CTAHD ctahd, VCE_MESSAGE *msglist[], unsigned maxcount, unsigned *actualcount)

Argument

Description

ctahd

Handle returned by ctaCreateContext or ctaAttachContext.

msglist

Pointer to an array of the VCE_MESSAGE structure:

typedef struct
{
  VCEHD    vh;
  unsigned message;
} VCE_MESSAGE;

Refer to the Details section for a description of these fields.

maxcount

Number of elements in the msglist array.

actualcount

Pointer to returned number of elements written to the msglist array.


Return values

Return value

Description

SUCCESS

 

CTAERR_INVALID_CTAHD

Context handle is invalid.

CTAERR_SVR_COMM

Server communication error.


Details

vceGetCurrentList returns the list of messages contained in the current message for the context that ctahd specifies. When vcePlayList or vceSetCurrentList defines the current message, it can contain a list of messages.

The VCE_MESSAGE structure contains the following fields:

Field

Description

vh

Handle of an open voice object.

message

Message number in the voice object that vh specifies.


The number of messages in the list is returned in actualcount unless actualcount is NULL. If there is no current message, the function returns SUCCESS and zero (0) in actualcount. If maxcount is less than or equal to the actual list size, the function returns SUCCESS and maxcount in actualcount.

To retrieve the list size of the current message, use vceGetContextInfo.

Applications accessing the same voice object using ctaAttachHandle in a shared context environment are returned separate handles. The Voice Message service internally records the handle (vh) of the application that opened or created the voice object.

See also

vceGetContextInfo

Example

/*Return the current message (or first message if current message is a list*/

void myGetCurrentMessage (CTAHD ctahd, VCEHD *vh, unsigned *message)
{
    VCE_MESSAGE vcemsg;
    unsigned    actual;

    vceGetCurrentList (ctahd, &vcemsg, 1, &actual);
    if (actual == 0)
    {
        *message = VCE_UNDEFINED_MESSAGE;
        *vh      = 0;
    }
    else
    {
        *vh      = vcemsg.vh;
        *message = vcemsg.message;
    }
}