2 * Speech API (SAPI) DDK IDL file.
4 * Copyright (C) 2017 Huw Davies
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 #define threading
(model
)
28 #define vi_progid
(str
)
33 uuid(06b64f9f
-7fda
-11d2
-b4f2
-00c04f797396
),
34 helpstring("ISpObjectTokenEnumBuilder"),
35 pointer_default(unique),
39 interface ISpObjectTokenEnumBuilder
: IEnumSpObjectTokens
41 HRESULT SetAttribs
([in] LPCWSTR pszReqAttribs
,
42 [in] LPCWSTR pszOptAttribs
);
43 HRESULT AddTokens
([in] ULONG cTokens
,
44 [in] ISpObjectToken
**pToken
);
45 HRESULT AddTokensFromDataKey
([in] ISpDataKey
*pDataKey
,
46 [in] LPCWSTR pszSubKey
,
47 [in] LPCWSTR pszCategoryId
);
48 HRESULT AddTokensFromTokenEnum
([in] IEnumSpObjectTokens
*pTokenEnum
);
49 HRESULT Sort
([in] LPCWSTR pszTokenIdToListFirst
);
52 typedef enum SPVSKIPTYPE
54 SPVST_SENTENCE
= (1L << 0)
57 typedef enum SPVESACTIONS
60 SPVES_ABORT
= (1L << 0),
61 SPVES_SKIP
= (1L << 1),
62 SPVES_RATE
= (1L << 2),
63 SPVES_VOLUME
= (1L << 3)
68 uuid(9880499b
-cce9
-11d2
-b503
-00c04f797396
),
69 helpstring("ISpTTSEngineSite"),
70 pointer_default(unique),
73 interface ISpTTSEngineSite
: ISpEventSink
76 HRESULT Write
([in] const void *pBuff
,
78 [out] ULONG
*pcbWritten
);
79 HRESULT GetRate
([out] long *pRateAdjust
);
80 HRESULT GetVolume
([out] USHORT
*pusVolume
);
81 HRESULT GetSkipInfo
([out] SPVSKIPTYPE
*peType
,
82 [out] long *plNumItems
);
83 HRESULT CompleteSkip
([in] long lNumSkipped
);
86 typedef struct SPVTEXTFRAG
88 struct SPVTEXTFRAG
* pNext
;
92 ULONG ulTextSrcOffset
;
97 uuid(a74d7c8e
-4cc5
-4f2f
-a6eb
-804dee18500e
),
98 helpstring("ISpTTSEngine"),
99 pointer_default(unique),
102 interface ISpTTSEngine
: IUnknown
104 HRESULT Speak
([in] DWORD dwSpeakFlags
,
105 [in] REFGUID rguidFormatId
,
106 [in] const WAVEFORMATEX
*pWaveFormatEx
,
107 [in] const SPVTEXTFRAG
*pTextFragList
,
108 [in] ISpTTSEngineSite
*pOutputSite
);
109 HRESULT GetOutputFormat
([in] const GUID
*pTargetFmtId
,
110 [in] const WAVEFORMATEX
*pTargetWaveFormatEx
,
111 [out] GUID
*pOutputFormatId
,
112 [out] WAVEFORMATEX
**ppCoMemOutputWaveFormatEx
);
116 helpstring("Speech Object DDK Library"),
117 uuid(9903f14c
-12ce
-4c99
-9986-2ee3d7d588a8
),
122 importlib
("stdole2.tlb");
125 uuid(d9f6ee60
-58c9
-458b
-88e1
-2f908fd7f87c
),
126 helpstring("Data Key"),
127 progid
("SAPI.SpDataKey.1"),
128 vi_progid
("SAPI.SpDataKey"),
133 interface ISpRegDataKey
;
134 [default] interface ISpDataKey
;
138 uuid(3918d75f
-0acb
-41f2
-b733
-92aa15bcecf6
),
139 helpstring("Object Token Enumerator"),
140 progid
("SAPI.SpObjectTokenEnum.1"),
141 vi_progid
("SAPI.SpObjectTokenEnum"),
144 coclass SpObjectTokenEnum
146 interface ISpObjectTokenEnumBuilder
;
147 [default] interface IEnumSpObjectTokens
;