wineoss: Use mmdevapi's AudioClient3.
[wine.git] / include / sapiddk.idl
blob46aebbb9a12f42b02921505fce0886fe63c6f570
1 /*
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
21 import "oaidl.idl";
22 import "ocidl.idl";
23 import "sapi.idl";
25 #ifndef __WIDL__
26 #define threading(model)
27 #define progid(str)
28 #define vi_progid(str)
29 #endif
32 object,
33 uuid(06b64f9f-7fda-11d2-b4f2-00c04f797396),
34 helpstring("ISpObjectTokenEnumBuilder"),
35 pointer_default(unique),
36 local,
37 restricted
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)
55 } SPVSKIPTYPE;
57 typedef enum SPVESACTIONS
59 SPVES_CONTINUE = 0,
60 SPVES_ABORT = (1L << 0),
61 SPVES_SKIP = (1L << 1),
62 SPVES_RATE = (1L << 2),
63 SPVES_VOLUME = (1L << 3)
64 } SPVESACTIONS;
67 object,
68 uuid(9880499b-cce9-11d2-b503-00c04f797396),
69 helpstring("ISpTTSEngineSite"),
70 pointer_default(unique),
71 local
73 interface ISpTTSEngineSite : ISpEventSink
75 HRESULT GetActions();
76 HRESULT Write([in] const void *pBuff,
77 [in] ULONG cb,
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;
89 SPVSTATE State;
90 LPCWSTR pTextStart;
91 ULONG ulTextLen;
92 ULONG ulTextSrcOffset;
93 } SPVTEXTFRAG;
96 object,
97 uuid(a74d7c8e-4cc5-4f2f-a6eb-804dee18500e),
98 helpstring("ISpTTSEngine"),
99 pointer_default(unique),
100 local
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),
118 version(5.4)
120 library SpeechDDKLib
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"),
129 threading(both)
131 coclass 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"),
142 threading(both)
144 coclass SpObjectTokenEnum
146 interface ISpObjectTokenEnumBuilder;
147 [default] interface IEnumSpObjectTokens;