Added support for calling the TLS callback functions.
[wine] / dlls / tapi32 / phone.c
1 /*
2  * TAPI32 phone services
3  *
4  * Copyright 1999  Andreas Mohr
5  *
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.
10  *
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.
15  *
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include "winbase.h"
22 #include "windef.h"
23 #include "tapi.h"
24 #include "wine/debug.h"
25
26 /*
27  * Additional TSPI functions:
28  * - voiceGetHandles
29  * - TSPI_ProviderInit
30  * - TSPI_ProviderShutdown
31  * - TSPI_ProviderEnumDevices
32  * - TSPI_ProviderConfig
33 */
34 WINE_DEFAULT_DEBUG_CHANNEL(tapi);
35
36 /***********************************************************************
37  *              phoneClose (TAPI32.@)
38  */
39 DWORD WINAPI phoneClose(HPHONE hPhone)
40 {
41     FIXME("(%p), stub.\n", hPhone);
42     /* call TSPI function here ! */
43     return 0;
44 }
45
46 /***********************************************************************
47  *              phoneConfigDialog (TAPI32.@)
48  */
49 DWORD WINAPI phoneConfigDialog(DWORD dwDeviceID, HWND hwndOwner, LPCSTR lpszDeviceClass)
50 {
51     FIXME("(%08lx, %p, %s): stub.\n", dwDeviceID, hwndOwner, lpszDeviceClass);
52     return 0;
53 }
54
55 /***********************************************************************
56  *              phoneDevSpecific (TAPI32.@)
57  */
58 DWORD WINAPI phoneDevSpecific(HPHONE hPhone, LPVOID lpParams, DWORD dwSize)
59 {
60     FIXME("(%p, %p, %08ld): stub.\n", hPhone, lpParams, dwSize);
61     return 1;
62 }
63
64 /***********************************************************************
65  *              phoneGetButtonInfo (TAPI32.@)
66  */
67 DWORD WINAPI phoneGetButtonInfo(HPHONE hPhone, DWORD dwButtonLampID,
68                                 LPPHONEBUTTONINFO lpButtonInfo)
69 {
70     FIXME("(%p, %08lx, %p): stub.\n", hPhone, dwButtonLampID, lpButtonInfo);
71     return 0;
72 }
73
74 /***********************************************************************
75  *              phoneGetData (TAPI32.@)
76  */
77 DWORD WINAPI phoneGetData(HPHONE hPhone, DWORD dwDataID, LPVOID lpData, DWORD dwSize)
78 {
79     FIXME("(%p, %08ld, %p, %08ld): stub.\n", hPhone, dwDataID, lpData, dwSize);
80     return 0;
81 }
82
83 /***********************************************************************
84  *              phoneGetDevCaps (TAPI32.@)
85  */
86 DWORD WINAPI phoneGetDevCaps(HPHONEAPP hPhoneApp, DWORD dwDeviceID,
87                DWORD dwAPIVersion, DWORD dwExtVersion, LPPHONECAPS lpPhoneCaps)
88 {
89     FIXME("(%p, %08ld, %08lx, %08lx, %p): stub.\n", hPhoneApp, dwDeviceID, dwAPIVersion, dwExtVersion, lpPhoneCaps);
90     /* call TSPI function here ! */
91     return 0;
92 }
93
94 /***********************************************************************
95  *              phoneGetDisplay (TAPI32.@)
96  */
97 DWORD WINAPI phoneGetDisplay(HPHONE hPhone, LPVARSTRING lpDisplay)
98 {
99     FIXME("(%p, %p): stub.\n", hPhone, lpDisplay);
100     return 0;
101 }
102
103 /***********************************************************************
104  *              phoneGetGain (TAPI32.@)
105  */
106 DWORD WINAPI phoneGetGain(HPHONE hPhone, DWORD dwHookSwitchDev, LPDWORD lpdwGain)
107 {
108     FIXME("(%p, %08lx, %p): stub.\n", hPhone, dwHookSwitchDev, lpdwGain);
109     /* call TSPI function here ! */
110     return 0;
111 }
112
113 /***********************************************************************
114  *              phoneGetHookSwitch (TAPI32.@)
115  */
116 DWORD WINAPI phoneGetHookSwitch(HPHONE hPhone, LPDWORD lpdwHookSwitchDevs)
117 {
118    FIXME("(%p, %p): stub.\n", hPhone, lpdwHookSwitchDevs);
119     /* call TSPI function here ! */
120    return 0;
121 }
122
123 /***********************************************************************
124  *              phoneGetID (TAPI32.@)
125  */
126 DWORD WINAPI phoneGetID(HPHONE hPhone, LPVARSTRING lpDeviceID,
127                         LPCSTR lpszDeviceClass)
128 {
129     FIXME("(%p, %p, %s): stub.\n", hPhone, lpDeviceID, lpszDeviceClass);
130     /* call TSPI function here ! */
131     return 0;
132 }
133
134 /***********************************************************************
135  *              phoneGetIcon (TAPI32.@)
136  */
137 DWORD WINAPI phoneGetIcon(DWORD dwDeviceID, LPCSTR lpszDeviceClass,
138                           HICON *lphIcon)
139 {
140     FIXME("(%08lx, %s, %p): stub.\n", dwDeviceID, lpszDeviceClass, lphIcon);
141     /* call TSPI function here ! */
142     return 0;
143 }
144
145 /***********************************************************************
146  *              phoneGetLamp (TAPI32.@)
147  */
148 DWORD WINAPI phoneGetLamp(HPHONE hPhone, DWORD dwButtonLampID,
149                           LPDWORD lpdwLampMode)
150 {
151     FIXME("(%p, %08lx, %p): stub.\n", hPhone, dwButtonLampID, lpdwLampMode);
152     return 0;
153 }
154
155 /***********************************************************************
156  *              phoneGetRing (TAPI32.@)
157  */
158 DWORD WINAPI phoneGetRing(HPHONE hPhone, LPDWORD lpdwRingMode, LPDWORD lpdwVolume)
159 {
160     FIXME("(%p, %p, %p): stub.\n", hPhone, lpdwRingMode, lpdwVolume);
161     return 0;
162 }
163
164 /***********************************************************************
165  *              phoneGetStatus (TAPI32.@)
166  */
167 DWORD WINAPI phoneGetStatus(HPHONE hPhone, LPPHONESTATUS lpPhoneStatus)
168 {
169     FIXME("(%p, %p): stub.\n", hPhone, lpPhoneStatus);
170     /* call TSPI function here ! */
171     return 0;
172 }
173
174 /***********************************************************************
175  *              phoneGetStatusMessages (TAPI32.@)
176  */
177 DWORD WINAPI phoneGetStatusMessages(HPHONE hPhone, LPDWORD lpdwPhoneStates,
178                           LPDWORD lpdwButtonModes, LPDWORD lpdwButtonStates)
179 {
180     FIXME("(%p, %p, %p, %p): stub.\n", hPhone, lpdwPhoneStates, lpdwButtonModes, lpdwButtonStates);
181     return 0;
182 }
183
184 /***********************************************************************
185  *              phoneGetVolume (TAPI32.@)
186  */
187 DWORD WINAPI phoneGetVolume(HPHONE hPhone, DWORD dwHookSwitchDevs,
188                             LPDWORD lpdwVolume)
189 {
190     FIXME("(%p, %08lx, %p): stub.\n", hPhone, dwHookSwitchDevs, lpdwVolume);
191     /* call TSPI function here ! */
192     return 0;
193 }
194
195 /***********************************************************************
196  *              phoneInitialize (TAPI32.@)
197  */
198 DWORD WINAPI phoneInitialize(LPHPHONEAPP lphPhoneApp, HINSTANCE hInstance, PHONECALLBACK lpfnCallback, LPCSTR lpszAppName, LPDWORD lpdwNumDevs)
199 {
200     FIXME("(%p, %p, %p, %s, %p): stub.\n", lphPhoneApp, hInstance, lpfnCallback, lpszAppName, lpdwNumDevs);
201     return 0;
202 }
203
204 /***********************************************************************
205  *              phoneNegotiateAPIVersion (TAPI32.@)
206  */
207 DWORD WINAPI phoneNegotiateAPIVersion(HPHONEAPP hPhoneApp, DWORD dwDeviceID, DWORD dwAPILowVersion, DWORD dwAPIHighVersion, LPDWORD lpdwAPIVersion, LPPHONEEXTENSIONID lpExtensionID)
208 {
209     FIXME("(): stub.\n");
210     return 0;
211 }
212
213 /***********************************************************************
214  *              phoneNegotiateExtVersion (TAPI32.@)
215  */
216 DWORD WINAPI phoneNegotiateExtVersion(HPHONEAPP hPhoneApp, DWORD dwDeviceID,
217                                  DWORD dwAPIVersion, DWORD dwExtLowVersion,
218                                  DWORD dwExtHighVersion, LPDWORD lpdwExtVersion)
219 {
220     FIXME("(): stub.\n");
221     /* call TSPI function here ! */
222     return 0;
223 }
224
225 /***********************************************************************
226  *              phoneOpen (TAPI32.@)
227  */
228 DWORD WINAPI phoneOpen(HPHONEAPP hPhoneApp, DWORD dwDeviceID, LPHPHONE lphPhone, DWORD dwAPIVersion, DWORD dwExtVersion, DWORD dwCallbackInstance, DWORD dwPrivileges)
229 {
230     FIXME("(): stub.\n");
231     /* call TSPI function here ! */
232     return 0;
233 }
234
235 /***********************************************************************
236  *              phoneSetButtonInfo (TAPI32.@)
237  */
238 DWORD WINAPI phoneSetButtonInfo(HPHONE hPhone, DWORD dwButtonLampID, LPPHONEBUTTONINFO lpButtonInfo)
239 {
240     FIXME("(%p, %08lx, %p): stub.\n", hPhone, dwButtonLampID, lpButtonInfo);
241     return 0;
242 }
243
244 /***********************************************************************
245  *              phoneSetData (TAPI32.@)
246  */
247 DWORD WINAPI phoneSetData(HPHONE hPhone, DWORD dwDataID, LPVOID lpData, DWORD dwSize)
248 {
249     FIXME("(%p, %08lx, %p, %ld): stub.\n", hPhone, dwDataID, lpData, dwSize);
250     return 1;
251 }
252
253 /***********************************************************************
254  *              phoneSetDisplay (TAPI32.@)
255  */
256 DWORD WINAPI phoneSetDisplay(HPHONE hPhone, DWORD dwRow, DWORD dwColumn, LPCSTR lpszDisplay, DWORD dwSize)
257 {
258     FIXME("(%p, '%s' at %ld/%ld, len %ld): stub.\n", hPhone, lpszDisplay, dwRow, dwColumn, dwSize);
259     return 1;
260 }
261
262 /***********************************************************************
263  *              phoneSetGain (TAPI32.@)
264  */
265 DWORD WINAPI phoneSetGain(HPHONE hPhone, DWORD dwHookSwitchDev, DWORD dwGain)
266 {
267     FIXME("(%p, %08lx, %ld): stub.\n", hPhone, dwHookSwitchDev, dwGain);
268     /* call TSPI function here ! */
269     return 1;
270 }
271
272 /***********************************************************************
273  *              phoneSetHookSwitch (TAPI32.@)
274  */
275 DWORD WINAPI phoneSetHookSwitch(HPHONE hPhone, DWORD dwHookSwitchDevs, DWORD dwHookSwitchMode)
276 {
277     FIXME("(%p, %08lx, %08lx): stub.\n", hPhone, dwHookSwitchDevs, dwHookSwitchMode);
278     /* call TSPI function here ! */
279     return 1;
280 }
281
282 /***********************************************************************
283  *              phoneSetLamp (TAPI32.@)
284  */
285 DWORD WINAPI phoneSetLamp(HPHONE hPhone, DWORD dwButtonLampID, DWORD lpdwLampMode)
286 {
287     FIXME("(%p, %08lx, %08lx): stub.\n", hPhone, dwButtonLampID, lpdwLampMode);
288     return 1;
289 }
290
291 /***********************************************************************
292  *              phoneSetRing (TAPI32.@)
293  */
294 DWORD WINAPI phoneSetRing(HPHONE hPhone, DWORD dwRingMode, DWORD dwVolume)
295 {
296     FIXME("(%p, %08lx, %08lx): stub.\n", hPhone, dwRingMode, dwVolume);
297     return 1;
298 }
299
300 /***********************************************************************
301  *              phoneSetStatusMessages (TAPI32.@)
302  */
303 DWORD WINAPI phoneSetStatusMessages(HPHONE hPhone, DWORD dwPhoneStates, DWORD dwButtonModes, DWORD dwButtonStates)
304 {
305     FIXME("(%p, %08lx, %08lx, %08lx): stub.\n", hPhone, dwPhoneStates, dwButtonModes, dwButtonStates);
306     /* call TSPI function here ! */
307     return 0; /* FIXME ? */
308 }
309
310 /***********************************************************************
311  *              phoneSetVolume (TAPI32.@)
312  */
313 DWORD WINAPI phoneSetVolume(HPHONE hPhone, DWORD dwHookSwitchDev, DWORD dwVolume)
314 {
315     FIXME("(%p, %08lx, %08lx): stub.\n", hPhone, dwHookSwitchDev, dwVolume);
316     /* call TSPI function here ! */
317     return 1;
318 }
319
320 /***********************************************************************
321  *              phoneShutdown (TAPI32.@)
322  */
323 DWORD WINAPI phoneShutdown(HPHONEAPP hPhoneApp)
324 {
325     FIXME("(%p): stub.\n", hPhoneApp);
326     return 0;
327 }