wininet: Moved more InternetQueryOption implementation to vtbl.
This commit is contained in:
parent
13a95f1648
commit
7426e7e055
|
@ -1227,8 +1227,7 @@ static DWORD FTPFILE_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void *b
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INVALID_OPTION;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DWORD FTPFILE_ReadFile(WININETHANDLEHEADER *hdr, void *buffer, DWORD size, DWORD *read)
|
static DWORD FTPFILE_ReadFile(WININETHANDLEHEADER *hdr, void *buffer, DWORD size, DWORD *read)
|
||||||
|
@ -2194,8 +2193,7 @@ static DWORD FTPSESSION_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INVALID_OPTION;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const HANDLEHEADERVtbl FTPSESSIONVtbl = {
|
static const HANDLEHEADERVtbl FTPSESSIONVtbl = {
|
||||||
|
@ -3275,8 +3273,7 @@ static DWORD FTPFINDNEXT_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, voi
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INVALID_OPTION;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DWORD FTPFINDNEXT_FindNextFileW(WININETHANDLEHEADER *hdr, void *data)
|
static DWORD FTPFINDNEXT_FindNextFileW(WININETHANDLEHEADER *hdr, void *data)
|
||||||
|
|
|
@ -1579,8 +1579,7 @@ static DWORD HTTPREQ_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void *b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INVALID_OPTION;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DWORD HTTPREQ_SetOption(WININETHANDLEHEADER *hdr, DWORD option, void *buffer, DWORD size)
|
static DWORD HTTPREQ_SetOption(WININETHANDLEHEADER *hdr, DWORD option, void *buffer, DWORD size)
|
||||||
|
@ -3472,8 +3471,7 @@ static DWORD HTTPSESSION_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, voi
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INCORRECT_HANDLE_TYPE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const HANDLEHEADERVtbl HTTPSESSIONVtbl = {
|
static const HANDLEHEADERVtbl HTTPSESSIONVtbl = {
|
||||||
|
|
|
@ -533,8 +533,7 @@ static DWORD APPINFO_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void *b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FIXME("Not implemented option %d\n", option);
|
return INET_QueryOption(option, buffer, size, unicode);
|
||||||
return ERROR_INTERNET_INVALID_OPTION;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const HANDLEHEADERVtbl APPINFOVtbl = {
|
static const HANDLEHEADERVtbl APPINFOVtbl = {
|
||||||
|
@ -1955,6 +1954,49 @@ BOOL WINAPI InternetReadFileExW(HINTERNET hFile, LPINTERNET_BUFFERSW lpBuffer,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DWORD INET_QueryOption(DWORD option, void *buffer, DWORD *size, BOOL unicode)
|
||||||
|
{
|
||||||
|
switch(option) {
|
||||||
|
case INTERNET_OPTION_REQUEST_FLAGS:
|
||||||
|
TRACE("INTERNET_OPTION_REQUEST_FLAGS\n");
|
||||||
|
|
||||||
|
if (*size < sizeof(ULONG))
|
||||||
|
return ERROR_INSUFFICIENT_BUFFER;
|
||||||
|
|
||||||
|
*(ULONG*)buffer = 4;
|
||||||
|
*size = sizeof(ULONG);
|
||||||
|
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
|
||||||
|
case INTERNET_OPTION_HTTP_VERSION:
|
||||||
|
if (*size < sizeof(HTTP_VERSION_INFO))
|
||||||
|
return ERROR_INSUFFICIENT_BUFFER;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Presently hardcoded to 1.1
|
||||||
|
*/
|
||||||
|
((HTTP_VERSION_INFO*)buffer)->dwMajorVersion = 1;
|
||||||
|
((HTTP_VERSION_INFO*)buffer)->dwMinorVersion = 1;
|
||||||
|
*size = sizeof(HTTP_VERSION_INFO);
|
||||||
|
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
|
||||||
|
case INTERNET_OPTION_CONNECTED_STATE:
|
||||||
|
FIXME("INTERNET_OPTION_CONNECTED_STATE: semi-stub\n");
|
||||||
|
|
||||||
|
if (*size < sizeof(ULONG))
|
||||||
|
return ERROR_INSUFFICIENT_BUFFER;
|
||||||
|
|
||||||
|
*(ULONG*)buffer = INTERNET_STATE_CONNECTED;
|
||||||
|
*size = sizeof(ULONG);
|
||||||
|
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
FIXME("Stub for %d\n", option);
|
||||||
|
return ERROR_INTERNET_INCORRECT_HANDLE_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* INET_QueryOptionHelper (internal)
|
* INET_QueryOptionHelper (internal)
|
||||||
*/
|
*/
|
||||||
|
@ -1970,52 +2012,6 @@ static BOOL INET_QueryOptionHelper(BOOL bIsUnicode, HINTERNET hInternet, DWORD d
|
||||||
|
|
||||||
switch (dwOption)
|
switch (dwOption)
|
||||||
{
|
{
|
||||||
case INTERNET_OPTION_REQUEST_FLAGS:
|
|
||||||
{
|
|
||||||
ULONG flags = 4;
|
|
||||||
TRACE("INTERNET_OPTION_REQUEST_FLAGS: %d\n", flags);
|
|
||||||
if (*lpdwBufferLength < sizeof(ULONG))
|
|
||||||
INTERNET_SetLastError(ERROR_INSUFFICIENT_BUFFER);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
memcpy(lpBuffer, &flags, sizeof(ULONG));
|
|
||||||
bSuccess = TRUE;
|
|
||||||
}
|
|
||||||
*lpdwBufferLength = sizeof(ULONG);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case INTERNET_OPTION_HTTP_VERSION:
|
|
||||||
{
|
|
||||||
if (*lpdwBufferLength < sizeof(HTTP_VERSION_INFO))
|
|
||||||
INTERNET_SetLastError(ERROR_INSUFFICIENT_BUFFER);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Presently hardcoded to 1.1
|
|
||||||
*/
|
|
||||||
((HTTP_VERSION_INFO*)lpBuffer)->dwMajorVersion = 1;
|
|
||||||
((HTTP_VERSION_INFO*)lpBuffer)->dwMinorVersion = 1;
|
|
||||||
bSuccess = TRUE;
|
|
||||||
}
|
|
||||||
*lpdwBufferLength = sizeof(HTTP_VERSION_INFO);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case INTERNET_OPTION_CONNECTED_STATE:
|
|
||||||
{
|
|
||||||
DWORD *pdwConnectedState = (DWORD *)lpBuffer;
|
|
||||||
FIXME("INTERNET_OPTION_CONNECTED_STATE: semi-stub\n");
|
|
||||||
|
|
||||||
if (*lpdwBufferLength < sizeof(*pdwConnectedState))
|
|
||||||
INTERNET_SetLastError(ERROR_INSUFFICIENT_BUFFER);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*pdwConnectedState = INTERNET_STATE_CONNECTED;
|
|
||||||
bSuccess = TRUE;
|
|
||||||
}
|
|
||||||
*lpdwBufferLength = sizeof(*pdwConnectedState);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case INTERNET_OPTION_PROXY:
|
case INTERNET_OPTION_PROXY:
|
||||||
{
|
{
|
||||||
LPWININETAPPINFOW lpwai = (LPWININETAPPINFOW)lpwhh;
|
LPWININETAPPINFOW lpwai = (LPWININETAPPINFOW)lpwhh;
|
||||||
|
@ -2209,19 +2205,17 @@ static BOOL INET_QueryOptionHelper(BOOL bIsUnicode, HINTERNET hInternet, DWORD d
|
||||||
bSuccess = TRUE;
|
bSuccess = TRUE;
|
||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
if(lpwhh) {
|
DWORD res;
|
||||||
DWORD res;
|
|
||||||
|
|
||||||
|
if(lpwhh)
|
||||||
res = lpwhh->vtbl->QueryOption(lpwhh, dwOption, lpBuffer, lpdwBufferLength, bIsUnicode);
|
res = lpwhh->vtbl->QueryOption(lpwhh, dwOption, lpBuffer, lpdwBufferLength, bIsUnicode);
|
||||||
if(res == ERROR_SUCCESS)
|
else
|
||||||
bSuccess = TRUE;
|
res = INET_QueryOption(dwOption, lpBuffer, lpdwBufferLength, bIsUnicode);
|
||||||
else
|
|
||||||
SetLastError(res);
|
if(res == ERROR_SUCCESS)
|
||||||
}else {
|
bSuccess = TRUE;
|
||||||
FIXME("Stub! %d\n", dwOption);
|
else
|
||||||
SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE);
|
SetLastError(res);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (lpwhh)
|
if (lpwhh)
|
||||||
|
|
|
@ -347,6 +347,8 @@ LPWININETHANDLEHEADER WININET_AddRef( LPWININETHANDLEHEADER info );
|
||||||
BOOL WININET_Release( LPWININETHANDLEHEADER info );
|
BOOL WININET_Release( LPWININETHANDLEHEADER info );
|
||||||
BOOL WININET_FreeHandle( HINTERNET hinternet );
|
BOOL WININET_FreeHandle( HINTERNET hinternet );
|
||||||
|
|
||||||
|
DWORD INET_QueryOption(DWORD,void*,DWORD*,BOOL);
|
||||||
|
|
||||||
time_t ConvertTimeString(LPCWSTR asctime);
|
time_t ConvertTimeString(LPCWSTR asctime);
|
||||||
|
|
||||||
HINTERNET FTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName,
|
HINTERNET FTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName,
|
||||||
|
|
Loading…
Reference in New Issue