FtpCommandA function (wininet.h)

The FtpCommand function sends commands directly to an FTP server.


BOOL FtpCommandA(
  [in]  HINTERNET hConnect,
  [in]  BOOL      fExpectResponse,
  [in]  DWORD     dwFlags,
  [in]  LPCSTR    lpszCommand,
  [in]  DWORD_PTR dwContext,
  [out] HINTERNET *phFtpCommand


[in] hConnect

A handle returned from a call to InternetConnect.

[in] fExpectResponse

A Boolean value that indicates whether the application expects a data connection to be established by the FTP server. This must be set to TRUE if a data connection is expected, or FALSE otherwise.

[in] dwFlags

A parameter that can be set to one of the following values.

Value Meaning
Transfers the file using the FTP ASCII (Type A) transfer method. Control and formatting data is converted to local equivalents.
Transfers the file using the FTP Image (Type I) transfer method. The file is transferred exactly with no changes. This is the default transfer method.

[in] lpszCommand

A pointer to a string that contains the command to send to the FTP server.

[in] dwContext

A pointer to a variable that contains an application-defined value used to identify the application context in callback operations.

[out] phFtpCommand

A pointer to a handle that is created if a valid data socket is opened. The fExpectResponse parameter must be set to TRUE for phFtpCommand to be filled.

Return value

Returns TRUE if successful, or FALSE otherwise. To get a specific error message, call GetLastError.


GetLastError can return ERROR_INTERNET_NO_DIRECT_ACCESS if the client application is offline. If one or more of the parameters are invalid, GetLastError will return ERROR_INVALID_PARAMETER.

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 FtpCommand 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.


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

FTP Sessions

WinINet Functions