2025-04-27 07:49:33 -04:00

58 lines
1.5 KiB
C++

// XMLVoiceCmd.h: interface for the CXMLVoiceCmd class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XMLVOICECMD_H__D06F5ED9_87F1_4D9F_A426_5B02D5ECE454__INCLUDED_)
#define AFX_XMLVOICECMD_H__D06F5ED9_87F1_4D9F_A426_5B02D5ECE454__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "BaseSAPI.h"
#define CICERO_ENABLE(x) HRESULT Init##x( IRCMLControl * pControl ); HRESULT Execute##x( ISpPhrase *pPhrase, IRCMLControl * pControl, HWND hwnd );
class CXMLVoiceCmd : public CBaseSAPI
{
public:
//
// Return S_OK to SaySuccess
// Return E_FAIL to SayFailure
// return S_FALSE to say NOTHING.
//
CICERO_ENABLE(Edit);
CICERO_ENABLE(Button);
CICERO_ENABLE(Checkbox);
CICERO_ENABLE(RadioButton);
CICERO_ENABLE(Slider);
CICERO_ENABLE(Combo);
CICERO_ENABLE(List);
CXMLVoiceCmd() { m_StringType=L"CICERO:CMD"; }
virtual ~CXMLVoiceCmd();
NEWNODE( VoiceCmd );
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InitNode(
IRCMLNode __RPC_FAR *parent);
void Callback();
virtual HRESULT ExecuteCommand( ISpPhrase *pPhrase );
private:
HRESULT LoadCFGResource( LPTSTR * ppCFG, DWORD * pdwSize, LPWSTR ResourceName);
enum
{
CT_BUTTON,
CT_CHECKBOX,
CT_SLIDER,
CT_RADIOBUTTON,
CT_COMBO,
CT_LIST,
CT_EDIT,
} m_ControlType;
};
#endif // !defined(AFX_XMLVOICECMD_H__D06F5ED9_87F1_4D9F_A426_5B02D5ECE454__INCLUDED_)