diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c index 5c97758ebb8..92dba6f4367 100644 --- a/dlls/wininet/ftp.c +++ b/dlls/wininet/ftp.c @@ -352,6 +352,17 @@ BOOL WINAPI FtpSetCurrentDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory) * FALSE on failure * */ +static void AsyncFtpSetCurrentDirectoryProc(WORKREQUEST *workRequest) +{ + struct WORKREQ_FTPSETCURRENTDIRECTORYW const *req = &workRequest->u.FtpSetCurrentDirectoryW; + LPWININETFTPSESSIONW lpwfs = (LPWININETFTPSESSIONW) workRequest->hdr; + + TRACE("%p\n", lpwfs); + + FTP_FtpSetCurrentDirectoryW(lpwfs, req->lpszDirectory); + HeapFree(GetProcessHeap(), 0, req->lpszDirectory); +} + BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory) { LPWININETFTPSESSIONW lpwfs = NULL; @@ -379,8 +390,9 @@ BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory) WORKREQUEST workRequest; struct WORKREQ_FTPSETCURRENTDIRECTORYW *req; - workRequest.asyncall = FTPSETCURRENTDIRECTORYW; - workRequest.hdr = WININET_AddRef( &lpwfs->hdr ); + workRequest.asyncall = CALLASYNCPROC; + workRequest.asyncproc = AsyncFtpSetCurrentDirectoryProc; + workRequest.hdr = WININET_AddRef( &lpwfs->hdr ); req = &workRequest.u.FtpSetCurrentDirectoryW; req->lpszDirectory = WININET_strdupW(lpszDirectory); diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index eb45c9533b2..0e57aef94bd 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -3243,19 +3243,6 @@ static VOID INTERNET_ExecuteWork(void) workRequest.asyncproc(&workRequest); break; - case FTPSETCURRENTDIRECTORYW: - { - struct WORKREQ_FTPSETCURRENTDIRECTORYW *req; - LPWININETFTPSESSIONW lpwfs = (LPWININETFTPSESSIONW) workRequest.hdr; - - TRACE("FTPSETCURRENTDIRECTORYW %p\n", lpwfs); - - req = &workRequest.u.FtpSetCurrentDirectoryW; - FTP_FtpSetCurrentDirectoryW(lpwfs, req->lpszDirectory); - HeapFree(GetProcessHeap(), 0, req->lpszDirectory); - } - break; - case FTPCREATEDIRECTORYW: { struct WORKREQ_FTPCREATEDIRECTORYW *req; diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index 3e0a034948e..1a7b2b65a6d 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -250,7 +250,6 @@ typedef struct typedef enum { CALLASYNCPROC, - FTPSETCURRENTDIRECTORYW, FTPCREATEDIRECTORYW, FTPFINDFIRSTFILEW, FTPGETCURRENTDIRECTORYW,