SECAgentCharacterExPtr Class

class SECAgentCharacterExPtr: public IAgentCharacterExPtr

SECAgentCharacterExPtr is a subclass of the IAgentCharacterExPtr smart pointer that in-turn encapsulates the IAgentCharacterEx interface. This class creates and registers a default notification sink for the underlying character. You can enable a pre-created command "Change Default Character" using which users can change the character at any time. It provides APIs that instructs the underlying character to prompt at a Window or Rectangle. Using the MessageBox API, you can display a message box accompanied by the Agent reading out the text from it. It also provides an elaborate framework to enclose character actions within Act objects. Take a look at SECAgentCharAct for more information.

Defined in: ot_agent.h

Class Members

Construction

void UnloadChar(IAgentExPtr& ptrAgent)

Unloads the underlying character object

virtual BOOL CreateNotifySink(IAgentExPtr& ptrAgent)

Creates a notification sink for the underlying character object

virtual void ReleaseNotifySink(IAgentExPtr& ptrAgent)

Release the notification sink for the underlying character object

Attributes

BOOL IsBusy(UINT nActType)

This state tells you whether the character is busy playing a type of Act.

void EnableCharChangeCommand(BOOL bEnable = TRUE)

Enable/Disable the "Change Default Character" Command

SECAgentCharAct* GetAct(long lActID)

Get Act object for the corresponding ID.

Operations

void PromptAt(CWnd* pWnd, const CString& strText, UINT nType = NonCritical, long* lActID = NULL)

Prompt at the window

void PromptAt(HWND hWnd, const CString& strText, UINT nType = NonCritical, long* lActID = NULL)

Prompt at the window

virtual void PromptAt(HWND hWnd, BSTR bstrText, UINT nType = NonCritical, long* lActID = NULL)

Prompt at the window

CPoint* GetOptimalPosAdjacentTo(HWND hWnd, CPoint& pt)

Get the optimal position for the character to move to beside the window

void PromptAt(CRect& rect, const CString& strText, UINT nType = NonCritical, long* lActID = NULL)

Prompt at the rect

virtual void PromptAt(CRect& rect, BSTR bstrText, UINT nType = NonCritical, long* lActID = NULL)

Prompt at the rect

virtual void Speak(BSTR bstrText, UINT nType = NonCritical, long* lActID = NULL)

Speak out the text

virtual void InterruptAct(long nActID)

Interrupt a particular or all Acts

virtual int MessageBox( LPCTSTR lpszPrompt, UINT nType = MB_OK, UINT nIDHelp = 0, UINT nInterruptType = CharReadOut)

Display an Agent enabled message box.

void AddAct(SECAgentCharAct* pAct)

Add this act to the Acts list

void RunActs()

Run pending acts in the Act list.

virtual notifications

virtual HRESULT OnCommand(long dwCommandID, IUnknown * punkUserInput)

Command notification from the sink.

virtual void DefaultInterruptAction()

The default interrupt action.

virtual BOOL OnBeginAct(SECAgentCharAct* pAct)

Notification to indicate beginning of the act.

virtual void OnEndAct(SECAgentCharAct* pAct)

Notification to indicate the end of the act.