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