GopherFindFirstFileA function (wininet.h)

[The GopherFindFirstFile function is available for use in the operating systems specified in the Requirements section.]

Uses a Gopher locator and search criteria to create a session with the server and locate the requested documents, binary files, index servers, or directory trees.


HINTERNET GopherFindFirstFileA(
  [in]  HINTERNET           hConnect,
  [in]  LPCSTR              lpszLocator,
  [in]  LPCSTR              lpszSearchString,
  [out] LPGOPHER_FIND_DATAA lpFindData,
  [in]  DWORD               dwFlags,
  [in]  DWORD_PTR           dwContext


[in] hConnect

Handle to a Gopher session returned by InternetConnect.

[in] lpszLocator

Pointer to a null-terminated string that contains the name of the item to locate. This can be one of the following:

  • Gopher locator returned by a previous call to this function or the InternetFindNextFile function.
  • NULL pointer or empty string indicating that the topmost information from a Gopher server is being returned.
  • Locator created by the GopherCreateLocator function.

[in] lpszSearchString

Pointer to a buffer that contains the strings to search, if this request is to an index server. Otherwise, this parameter should be NULL.

[out] lpFindData

Pointer to a GOPHER_FIND_DATA structure that receives the information retrieved by this function.

[in] dwFlags

Controls the function behavior. This parameter can be a combination of the following values.

Value Meaning
Forces a reload if there was no Expires time and no LastModified time returned from the server when determining whether to reload the item from the network.
Causes a temporary file to be created if the file cannot be cached.
Does not add the returned entity to the cache.
Forces a download of the requested file, object, or directory listing from the origin server, not from the cache.
Reloads HTTP resources if the resource has been modified since the last time it was downloaded. All FTP and Gopher resources are reloaded.

[in] dwContext

Pointer to a variable that contains the application-defined value that associates this search with any application data.

Return value

Returns a valid search handle if successful, or NULL otherwise. To retrieve extended error information, call GetLastError or InternetGetLastResponseInfo.


GopherFindFirstFile closely resembles the FindFirstFile function. It creates a connection with a Gopher server, and then returns a single structure containing information about the first Gopher object referenced by the locator string.

After calling GopherFindFirstFile to retrieve the first Gopher object in an enumeration, an application can use the InternetFindNextFile function to retrieve subsequent Gopher objects.

After the calling application has finished using the HINTERNET handle returned by GopherFindFirstFile, it must be closed using the InternetCloseHandle function.

Like all other aspects of the WinINet API, this function cannot be safely called from within DllMain or the constructors and destructors of global objects.

Note  WinINet does not support server implementations. In addition, it should not be used from a service. For server implementations or services use Microsoft Windows HTTP Services (WinHTTP).


The wininet.h header defines GopherFindFirstFile as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wininet.h
Library Wininet.lib
DLL Wininet.dll

See also

WinINet Functions