313 lines
12 KiB
C
313 lines
12 KiB
C
|
/*****************************************************************
|
||
|
Spchtel.H - Header file to use the Microsoft Speech telephony controls.
|
||
|
|
||
|
Copyright 1998 by Microsoft corporation.All rights reserved.
|
||
|
*/
|
||
|
|
||
|
#ifndef _SPCHTEL_H_
|
||
|
#define _SPCHTEL_H_
|
||
|
|
||
|
// Flag values for the ITelControl::TypeSet call
|
||
|
#define INFOTYPE_PC 0x00000001
|
||
|
#define INFOTYPE_TAPI20 0x00000002
|
||
|
#define INFOTYPE_TAPI30 0x00000004
|
||
|
|
||
|
// Common return codes from controls
|
||
|
// not usually handled, often returned
|
||
|
#define TCR_ABORT ((DWORD)-1L) // the user has hung up
|
||
|
#define TCR_NORESPONSE ((DWORD)-2L) // the user hasn't repsonded to the questions
|
||
|
#define TCR_ASKOPERATOR ((DWORD)-3L) // the user has asked for an operator (often control just auto replies)
|
||
|
#define TCR_ASKHANGUP ((DWORD)-4L) // the user has asked to hang up. App must handle
|
||
|
#define TCR_ASKBACK ((DWORD)-5L) // the user has asked to go back and redo the previous thing
|
||
|
|
||
|
// usually handled by control, unless overrided
|
||
|
#define TCR_ASKWHERE ((DWORD)-10L) // the user has asked where he/she is (usualy handled by control)
|
||
|
#define TCR_ASKHELP ((DWORD)-11L) // the user has asked for help (usually handled by control)
|
||
|
#define TCR_ASKREPEAT ((DWORD)-12L) // the user has asked for the question to be repeated (usually handled by the control)
|
||
|
#define TCR_ASKSPEAKFASTER ((DWORD)-13L) // the user has asked to speak faster. usually handled by the control
|
||
|
#define TCR_ASKSPEAKSLOWER ((DWORD)-14L) // the user has asked to speak slower. Usually handled by the control
|
||
|
|
||
|
|
||
|
|
||
|
// {F9D18BF8-E0ED-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID (CLSID_TelInfo,
|
||
|
0xf9d18bf8, 0xe0ed, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
/*
|
||
|
* ITelNotifySink
|
||
|
*/
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ITelNotifySink
|
||
|
|
||
|
// {CD0C7D7C-E1CD-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(IID_ITelNotifySink,
|
||
|
0xcd0c7d7c, 0xe1cd, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
DECLARE_INTERFACE_ (ITelNotifySink, IUnknown) {
|
||
|
// IUnkown members
|
||
|
STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
|
||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
|
||
|
// ITelNotifySink members
|
||
|
STDMETHOD (DTMF) (THIS_ WCHAR) PURE;
|
||
|
STDMETHOD (Abort) (THIS_ DWORD) PURE;
|
||
|
};
|
||
|
typedef ITelNotifySink FAR *PITELNOTIFYSINK;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ITelControlNotifySink
|
||
|
*/
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ITelControlNotifySink
|
||
|
|
||
|
// {A55E2436-E297-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(IID_ITelControlNotifySink,
|
||
|
0xa55e2436, 0xe297, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
DECLARE_INTERFACE_ (ITelControlNotifySink, IUnknown) {
|
||
|
// IUnkown members
|
||
|
STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
|
||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
|
||
|
// ITelControlNotifySink members
|
||
|
STDMETHOD (Finish) (THIS_ DWORD, PVOID, DWORD) PURE;
|
||
|
STDMETHOD (Info) (THIS_ DWORD, PVOID, DWORD) PURE;
|
||
|
};
|
||
|
typedef ITelControlNotifySink FAR *PITELCONTROLNOTIFYSINK;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ITelInfo
|
||
|
*/
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ITelInfo
|
||
|
|
||
|
// {250F0433-E0EB-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(IID_ITelInfo,
|
||
|
0x250f0433, 0xe0eb, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
DECLARE_INTERFACE_ (ITelInfo, IUnknown) {
|
||
|
// IUnkown members
|
||
|
STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
|
||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
|
||
|
// ITelInfo members
|
||
|
STDMETHOD (ObjectGet) (THIS_ GUID, LPUNKNOWN *) PURE;
|
||
|
STDMETHOD (ObjectSet) (THIS_ GUID, LPUNKNOWN) PURE;
|
||
|
STDMETHOD (DWORDGet) (THIS_ GUID, DWORD *) PURE;
|
||
|
STDMETHOD (DWORDSet) (THIS_ GUID, DWORD) PURE;
|
||
|
STDMETHOD (MemoryGet) (THIS_ GUID, PVOID *, DWORD *) PURE;
|
||
|
STDMETHOD (MemorySet) (THIS_ GUID, PVOID, DWORD) PURE;
|
||
|
STDMETHOD (SendDTMF) (THIS_ WCHAR) PURE;
|
||
|
STDMETHOD (SendAbort) (THIS_ DWORD) PURE;
|
||
|
STDMETHOD (TypeSet) (THIS_ DWORD) PURE;
|
||
|
STDMETHOD (WaveDeviceSet) (THIS_ DWORD, DWORD) PURE;
|
||
|
STDMETHOD (AudioSourceCreate) (THIS_ LPUNKNOWN *) PURE;
|
||
|
STDMETHOD (AudioDestCreate) (THIS_ LPUNKNOWN *) PURE;
|
||
|
STDMETHOD (QuickCreate) (THIS_ HMODULE, PSRMODEINFOW, PTTSMODEINFOW,
|
||
|
PCWSTR, BOOL) PURE;
|
||
|
};
|
||
|
typedef ITelInfo FAR *PITELINFO;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ITelControl
|
||
|
*/
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE ITelControl
|
||
|
|
||
|
// {17674DEB-E298-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(IID_ITelControl,
|
||
|
0x17674deb, 0xe298, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
DECLARE_INTERFACE_ (ITelControl, IUnknown) {
|
||
|
// IUnkown members
|
||
|
STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
|
||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||
|
|
||
|
// ITelControl members
|
||
|
STDMETHOD (FromMemory) (THIS_ PVOID, DWORD) PURE;
|
||
|
STDMETHOD (FromStream) (THIS_ IStream *) PURE;
|
||
|
#ifdef STRICT
|
||
|
STDMETHOD (FromResource) (THIS_ PVOID, DWORD) PURE;
|
||
|
#else
|
||
|
STDMETHOD (FromResource) (THIS_ HINSTANCE, DWORD) PURE;
|
||
|
#endif
|
||
|
STDMETHOD (FromFile) (THIS_ PCWSTR) PURE;
|
||
|
STDMETHOD (Compile) (THIS_ LPWSTR*, DWORD*) PURE;
|
||
|
STDMETHOD (IsCompiled) (THIS_ BOOL*) PURE;
|
||
|
STDMETHOD (LanguageGet) (THIS_ LANGUAGEW*) PURE;
|
||
|
STDMETHOD (ToMemory) (THIS_ PVOID*, DWORD*) PURE;
|
||
|
STDMETHOD (ToStream) (THIS_ IStream *) PURE;
|
||
|
STDMETHOD (ToFile) (THIS_ PCWSTR) PURE;
|
||
|
STDMETHOD (TextGet) (THIS_ LPWSTR*, DWORD*) PURE;
|
||
|
STDMETHOD (TextDefaultGet) (THIS_ LPWSTR*, DWORD*) PURE;
|
||
|
STDMETHOD (ObjectSet) (THIS_ PITELINFO) PURE;
|
||
|
STDMETHOD (Start) (THIS_ PITELCONTROLNOTIFYSINK) PURE;
|
||
|
STDMETHOD (Abort) (THIS) PURE;
|
||
|
};
|
||
|
typedef ITelControl FAR *PITELCONTROL;
|
||
|
|
||
|
|
||
|
//
|
||
|
// GUID identifiers for objects
|
||
|
//
|
||
|
// {44DB6739-E10E-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(TELOBJ_SPEECHRECOG,
|
||
|
0x44db6739, 0xe10e, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
// {44DB673B-E10E-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(TELOBJ_TTSQUEUE,
|
||
|
0x44db673b, 0xe10e, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
// {44DB673C-E10E-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(TELOBJ_LOGGING,
|
||
|
0x44db673c, 0xe10e, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
// {44DB673D-E10E-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(TELOBJ_TAPI30,
|
||
|
0x44db673d, 0xe10e, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
// {44DB673E-E10E-11d0-AB8B-08002BE4E3B7}
|
||
|
DEFINE_GUID(TELOBJ_NOTIFYSINK,
|
||
|
0x44db673e, 0xe10e, 0x11d0, 0xab, 0x8b, 0x8, 0x0, 0x2b, 0xe4, 0xe3, 0xb7);
|
||
|
|
||
|
|
||
|
// hcall for TAPI
|
||
|
// {F40CC4C0-0D0A-11d2-BEF0-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_HCALL,
|
||
|
0xf40cc4c0, 0xd0a, 0x11d2, 0xbe, 0xf0, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// hline for tapi
|
||
|
// {F40CC4C1-0D0A-11d2-BEF0-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_HLINE,
|
||
|
0xf40cc4c1, 0xd0a, 0x11d2, 0xbe, 0xf0, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// If this is set to TRUE, then beeps on a recognition are enabled.
|
||
|
// Disabling speeds up the response time of the system, but some people
|
||
|
// will speak before the beep. It's a tradeoff.
|
||
|
// {DB7F6130-0D2D-11d2-BEF1-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_EnableRecognizeBeeps,
|
||
|
0xdb7f6130, 0xd2d, 0x11d2, 0xbe, 0xf1, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// if set to true, and we're using tapi, then we should use tapi
|
||
|
// beeps rather than recordings for recognition acknowledgement
|
||
|
// beeps. This doesn't work properly on most telephony cards, and there's no
|
||
|
// way to tell, so be careful about using it
|
||
|
// {F40CC4C2-0D0A-11d2-BEF0-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_UseTAPIBeep,
|
||
|
0xf40cc4c2, 0xd0a, 0x11d2, 0xbe, 0xf0, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// disable the ability for a user to change the speed
|
||
|
// {59596FBE-F936-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(TELDWORD_DisableSpeedChange,
|
||
|
0x59596fbe, 0xf936, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// enable the ability for the user to ask for an operator
|
||
|
// {59596FBF-F936-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(TELDWORD_EnableOperator,
|
||
|
0x59596fbf, 0xf936, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// eanble the user to ask to hang up. If TRUE application must handle
|
||
|
// {59596FC0-F936-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(TELDWORD_EnableAskHangUp,
|
||
|
0x59596fc0, 0xf936, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// if TRUE, then the system supports full duplex
|
||
|
// both full duplex and echo cancelling must be TRUE for telephony controls to have barge in
|
||
|
// {10FEF992-343F-11d1-BE71-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_FullDuplex,
|
||
|
0x10fef992, 0x343f, 0x11d1, 0xbe, 0x71, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// if TRUE, then the system has echo cancelling built in.
|
||
|
// both full duplex and echo cancelling must be TRUE for telephony controls to have barge in
|
||
|
// {10FEF991-343F-11d1-BE71-006008317CE8}
|
||
|
DEFINE_GUID(TELDWORD_EchoCancel,
|
||
|
0x10fef991, 0x343f, 0x11d1, 0xbe, 0x71, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
/**************************************************************************
|
||
|
Telephon controls in spchtel.dll. */
|
||
|
|
||
|
// {53961A01-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_YesNoControl,
|
||
|
0x53961a01, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A02-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_ExtensionControl,
|
||
|
0x53961a02, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A03-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_PhoneNumControl,
|
||
|
0x53961a03, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A04-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_GrammarControl,
|
||
|
0x53961a04, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A05-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_DateControl,
|
||
|
0x53961a05, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A06-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_TimeControl,
|
||
|
0x53961a06, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A07-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_RecordControl,
|
||
|
0x53961a07, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A08-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_SpellingControl,
|
||
|
0x53961a08, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
// {53961A09-459B-11d1-BE77-006008317CE8}
|
||
|
DEFINE_GUID(CLSID_NameControl,
|
||
|
0x53961a09, 0x459b, 0x11d1, 0xbe, 0x77, 0x0, 0x60, 0x8, 0x31, 0x7c, 0xe8);
|
||
|
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
Sample telephony controls GUIDs. These samples appear in the SDK. */
|
||
|
// {C869F0DE-EF29-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleYesNoControl,
|
||
|
0xc869f0de, 0xef29, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BA9-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleExtensionControl,
|
||
|
0x9de44ba9, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAA-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SamplePhoneNumControl,
|
||
|
0x9de44baa, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAB-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleGrammarControl,
|
||
|
0x9de44bab, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAC-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleDateControl,
|
||
|
0x9de44bac, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAD-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleTimeControl,
|
||
|
0x9de44bad, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {275931C6-FD27-11d0-8FAE-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleRecordControl,
|
||
|
0x275931c6, 0xfd27, 0x11d0, 0x8f, 0xae, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAE-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleSpellingControl,
|
||
|
0x9de44bae, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
// {9DE44BAF-F94A-11d0-8FAD-08002BE4E62A}
|
||
|
DEFINE_GUID(CLSID_SampleNameControl,
|
||
|
0x9de44baf, 0xf94a, 0x11d0, 0x8f, 0xad, 0x8, 0x0, 0x2b, 0xe4, 0xe6, 0x2a);
|
||
|
|
||
|
|
||
|
#endif // _SPCHTEL_H_
|