Abstract autoarranging decision to a helper function.
[wine] / files / change.c
1 /*
2  * Win32 file change notification functions
3  *
4  * FIXME: this is VERY difficult to implement with proper Unix support
5  * at the wineserver side.
6  * (Unix doesn't really support this)
7  * See http://x57.deja.com/getdoc.xp?AN=575483053 for possible solutions.
8  *
9  * Copyright 1998 Ulrich Weigand
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with this library; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
24  */
25
26 #include "config.h"
27
28 #include <assert.h>
29 #include <stdlib.h>
30 #ifdef HAVE_UNISTD_H
31 # include <unistd.h>
32 #endif
33 #include <string.h>
34 #include <time.h>
35 #include "winbase.h"
36 #include "winerror.h"
37 #include "wine/server.h"
38 #include "wine/debug.h"
39
40 WINE_DEFAULT_DEBUG_CHANNEL(file);
41
42 /****************************************************************************
43  *              FindFirstChangeNotificationA (KERNEL32.@)
44  */
45 HANDLE WINAPI FindFirstChangeNotificationA( LPCSTR lpPathName, BOOL bWatchSubtree,
46                                             DWORD dwNotifyFilter )
47 {
48     HANDLE ret = INVALID_HANDLE_VALUE;
49
50     FIXME("this is not supported yet (non-trivial).\n");
51
52     SERVER_START_REQ( create_change_notification )
53     {
54         req->subtree = bWatchSubtree;
55         req->filter  = dwNotifyFilter;
56         if (!wine_server_call_err( req )) ret = reply->handle;
57     }
58     SERVER_END_REQ;
59     return ret;
60 }
61
62 /****************************************************************************
63  *              FindFirstChangeNotificationW (KERNEL32.@)
64  */
65 HANDLE WINAPI FindFirstChangeNotificationW( LPCWSTR lpPathName,
66                                                 BOOL bWatchSubtree,
67                                                 DWORD dwNotifyFilter)
68 {
69     HANDLE ret = INVALID_HANDLE_VALUE;
70
71     FIXME("this is not supported yet (non-trivial).\n");
72
73     SERVER_START_REQ( create_change_notification )
74     {
75         req->subtree = bWatchSubtree;
76         req->filter  = dwNotifyFilter;
77         if (!wine_server_call_err( req )) ret = reply->handle;
78     }
79     SERVER_END_REQ;
80     return ret;
81 }
82
83 /****************************************************************************
84  *              FindNextChangeNotification (KERNEL32.@)
85  */
86 BOOL WINAPI FindNextChangeNotification( HANDLE handle )
87 {
88     /* FIXME: do something */
89     return TRUE;
90 }
91
92 /****************************************************************************
93  *              FindCloseChangeNotification (KERNEL32.@)
94  */
95 BOOL WINAPI FindCloseChangeNotification( HANDLE handle)
96 {
97     return CloseHandle( handle );
98 }
99