xref: /reactos/dll/win32/wininet/gopher.c (revision d5399189)
1 /*
2  * WININET - Gopher implementation
3  *
4  * Copyright 2003 Kirill Smelkov
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #include "config.h"
22 
23 #include <stdarg.h>
24 
25 #include "windef.h"
26 #include "winbase.h"
27 #include "wininet.h"
28 
29 #include "wine/debug.h"
30 
31 WINE_DEFAULT_DEBUG_CHANNEL(wininet);
32 
33 /***********************************************************************
34  *           GopherCreateLocatorA (WININET.@)
35  *
36  * Create a Gopher locator string from its component parts
37  *
38  * PARAMS
39  *  lpszHost            [I] host name
40  *  nServerPort         [I] port in host byteorder or INTERNET_INVALID_PORT_NUMBER for default
41  *  lpszDisplayString   [I] document/directory to display (NULL - default directory)
42  *  lpszSelectorString  [I] selector string for server (NULL - none)
43  *  dwGopherType        [I] selector type (see GOPHER_TYPE_xxx)
44  *  lpszLocator         [O] buffer for locator string
45  *  lpdwBufferLength    [I] locator buffer length
46  *
47  * RETURNS
48  *  TRUE  on success
49  *  FALSE on failure
50  *
51  */
52 BOOL WINAPI GopherCreateLocatorA(
53  LPCSTR        lpszHost,
54  INTERNET_PORT nServerPort,
55  LPCSTR        lpszDisplayString,
56  LPCSTR        lpszSelectorString,
57  DWORD         dwGopherType,
58  LPSTR         lpszLocator,
59  LPDWORD       lpdwBufferLength
60 )
61 {
62     FIXME("stub\n");
63     return FALSE;
64 }
65 
66 /***********************************************************************
67  *           GopherCreateLocatorW (WININET.@)
68  *
69  * See GopherCreateLocatorA.
70  */
71 BOOL WINAPI GopherCreateLocatorW(
72  LPCWSTR       lpszHost,
73  INTERNET_PORT nServerPort,
74  LPCWSTR       lpszDisplayString,
75  LPCWSTR       lpszSelectorString,
76  DWORD         dwHopherType,
77  LPWSTR        lpszLocator,
78  LPDWORD       lpdwBufferLength
79 )
80 {
81     FIXME("stub\n");
82     return FALSE;
83 }
84 
85 /***********************************************************************
86  *           GopherFindFirstFileA (WININET.@)
87  *
88  * Create a session and locate the requested documents
89  *
90  * PARAMS
91  *  hConnect        [I] Handle to a Gopher session returned by InternetConnect
92  *  lpszLocator     [I] - address of a string containing the name of the item to locate.
93  *                      - Locator created by the GopherCreateLocator function.
94  * lpszSearchString [I] what to search for if this request is to an index server.
95  *                      Otherwise, this parameter should be NULL.
96  * lpFindData       [O] retrieved information
97  * dwFlags          [I] INTERNET_FLAG_{HYPERLINK, NEED_FILE, NO_CACHE_WRITE, RELOAD, RESYNCHRONIZE}
98  * dwContext        [I] application private value
99  *
100  * RETURNS
101  *  HINTERNET handle on success
102  *  NULL on error
103  */
104 HINTERNET WINAPI GopherFindFirstFileA(
105  HINTERNET hConnect,
106  LPCSTR    lpszLocator,
107  LPCSTR    lpszSearchString,
108  LPGOPHER_FIND_DATAA
109            lpFindData,
110  DWORD     dwFlags,
111  DWORD_PTR dwContext
112 )
113 {
114     FIXME("stub\n");
115     return NULL;
116 }
117 
118 /***********************************************************************
119  *           GopherFindFirstFileW (WININET.@)
120  *
121  * See GopherFindFirstFileA.
122  */
123 HINTERNET WINAPI GopherFindFirstFileW(
124  HINTERNET hConnect,
125  LPCWSTR   lpszLocator,
126  LPCWSTR   lpszSearchString,
127  LPGOPHER_FIND_DATAW
128            lpFindData,
129  DWORD     dwFlags,
130  DWORD_PTR dwContext
131 )
132 {
133     FIXME("stub\n");
134     return NULL;
135 }
136 
137 /***********************************************************************
138  *           GopherGetAttributeA (WININET.@)
139  *
140  * Retrieves the specific attribute information from the server.
141  *
142  * RETURNS
143  *  TRUE on success
144  *  FALSE on failure
145  */
146 BOOL WINAPI GopherGetAttributeA(
147  HINTERNET hConnect,
148  LPCSTR    lpszLocator,
149  LPCSTR    lpszAttributeName,
150  LPBYTE    lpBuffer,
151  DWORD     dwBufferLength,
152  LPDWORD   lpdwCharactersReturned,
153  GOPHER_ATTRIBUTE_ENUMERATORA
154            lpfnEnumerator,
155  DWORD_PTR dwContext
156 )
157 {
158     FIXME("stub\n");
159     return FALSE;
160 }
161 
162 /***********************************************************************
163  *           GopherGetAttributeW (WININET.@)
164  *
165  * See GopherGetAttributeA.
166  */
167 BOOL WINAPI GopherGetAttributeW(
168  HINTERNET hConnect,
169  LPCWSTR   lpszLocator,
170  LPCWSTR   lpszAttributeName,
171  LPBYTE    lpBuffer,
172  DWORD     dwBufferLength,
173  LPDWORD   lpdwCharactersReturned,
174  GOPHER_ATTRIBUTE_ENUMERATORW
175            lpfnEnumerator,
176  DWORD_PTR dwContext
177 )
178 {
179     FIXME("stub\n");
180     return FALSE;
181 }
182 
183 /***********************************************************************
184  *           GopherGetLocatorTypeA (WININET.@)
185  *
186  * Parses a Gopher locator and determines its attributes.
187  *
188  * PARAMS
189  *  lpszLocator     [I] Address of the Gopher locator string to parse
190  *  lpdwGopherType  [O] destination for bitmasked type of locator
191  *
192  * RETURNS
193  *  TRUE  on success
194  *  FALSE on failure
195  */
196 BOOL WINAPI GopherGetLocatorTypeA(LPCSTR lpszLocator, LPDWORD lpdwGopherType)
197 {
198     FIXME("stub\n");
199     return FALSE;
200 }
201 
202 /***********************************************************************
203  *           GopherGetLocatorTypeW (WININET.@)
204  *
205  * See GopherGetLocatorTypeA.
206  */
207 BOOL WINAPI GopherGetLocatorTypeW(LPCWSTR lpszLocator, LPDWORD lpdwGopherType)
208 {
209     FIXME("stub\n");
210     return FALSE;
211 }
212 
213 /***********************************************************************
214  *           GopherOpenFileA (WININET.@)
215  *
216  * Begins reading a Gopher data file from a Gopher server.
217  *
218  * PARAMS
219  *  hConnect    [I] handle to a Gopher session
220  *  lpszLocator [I] file locator
221  *  lpszView    [I] file view (or default if NULL)
222  *  dwFlags     [I] INTERNET_FLAG_{HYPERLINK, NEED_FILE, NO_CACHE_WRITE, RELOAD, RESYNCHRONIZE}
223  *  dwContext   [I] application private value
224  *
225  * RETURNS
226  *  handle  on success
227  *  NULL    on error
228  */
229 HINTERNET WINAPI GopherOpenFileA(
230  HINTERNET hConnect,
231  LPCSTR    lpszLocator,
232  LPCSTR    lpszView,
233  DWORD     dwFlags,
234  DWORD_PTR dwContext
235 )
236 {
237     FIXME("stub\n");
238     return NULL;
239 }
240 
241 /***********************************************************************
242  *           GopherOpenFileW (WININET.@)
243  *
244  * See GopherOpenFileA.
245  */
246 HINTERNET WINAPI GopherOpenFileW(
247  HINTERNET hConnect,
248  LPCWSTR   lpszLocator,
249  LPCWSTR   lpszView,
250  DWORD     dwFlags,
251  DWORD_PTR dwContext
252 )
253 {
254     FIXME("stub\n");
255     return NULL;
256 }
257