winhttp: Add a stub implementation of IWinHttpRequest.
This commit is contained in:
parent
7c938ac2a6
commit
fd7538d38c
|
@ -1,6 +1,6 @@
|
|||
MODULE = winhttp.dll
|
||||
IMPORTLIB = winhttp
|
||||
IMPORTS = shlwapi
|
||||
IMPORTS = uuid shlwapi
|
||||
DELAYIMPORTS = crypt32 advapi32
|
||||
EXTRALIBS = @SOCKETLIBS@
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define COBJMACROS
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
#include "wine/debug.h"
|
||||
|
@ -30,6 +31,9 @@
|
|||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "ole2.h"
|
||||
#include "initguid.h"
|
||||
#include "httprequest.h"
|
||||
#include "winhttp.h"
|
||||
|
||||
#include "winhttp_private.h"
|
||||
|
@ -2132,3 +2136,313 @@ BOOL WINAPI WinHttpWriteData( HINTERNET hrequest, LPCVOID buffer, DWORD to_write
|
|||
release_object( &request->hdr );
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct winhttp_request
|
||||
{
|
||||
IWinHttpRequest IWinHttpRequest_iface;
|
||||
LONG refs;
|
||||
};
|
||||
|
||||
static inline struct winhttp_request *impl_from_IWinHttpRequest( IWinHttpRequest *iface )
|
||||
{
|
||||
return CONTAINING_RECORD( iface, struct winhttp_request, IWinHttpRequest_iface );
|
||||
}
|
||||
|
||||
static ULONG WINAPI winhttp_request_AddRef(
|
||||
IWinHttpRequest *iface )
|
||||
{
|
||||
struct winhttp_request *request = impl_from_IWinHttpRequest( iface );
|
||||
return InterlockedIncrement( &request->refs );
|
||||
}
|
||||
|
||||
static ULONG WINAPI winhttp_request_Release(
|
||||
IWinHttpRequest *iface )
|
||||
{
|
||||
struct winhttp_request *request = impl_from_IWinHttpRequest( iface );
|
||||
LONG refs = InterlockedDecrement( &request->refs );
|
||||
if (!refs)
|
||||
{
|
||||
TRACE("destroying %p\n", request);
|
||||
heap_free( request );
|
||||
}
|
||||
return refs;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_QueryInterface(
|
||||
IWinHttpRequest *iface,
|
||||
REFIID riid,
|
||||
void **obj )
|
||||
{
|
||||
struct winhttp_request *request = impl_from_IWinHttpRequest( iface );
|
||||
|
||||
TRACE("%p, %s, %p\n", request, debugstr_guid(riid), obj );
|
||||
|
||||
if (IsEqualGUID( riid, &IID_IWinHttpRequest ) ||
|
||||
IsEqualGUID( riid, &IID_IDispatch ) ||
|
||||
IsEqualGUID( riid, &IID_IUnknown ))
|
||||
{
|
||||
*obj = iface;
|
||||
}
|
||||
else
|
||||
{
|
||||
FIXME("interface %s not implemented\n", debugstr_guid(riid));
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
IWinHttpRequest_AddRef( iface );
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_GetTypeInfoCount(
|
||||
IWinHttpRequest *iface,
|
||||
UINT *count )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_GetTypeInfo(
|
||||
IWinHttpRequest *iface,
|
||||
UINT index,
|
||||
LCID lcid,
|
||||
ITypeInfo **info )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_GetIDsOfNames(
|
||||
IWinHttpRequest *iface,
|
||||
REFIID riid,
|
||||
LPOLESTR *names,
|
||||
UINT count,
|
||||
LCID lcid,
|
||||
DISPID *dispid )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_Invoke(
|
||||
IWinHttpRequest *iface,
|
||||
DISPID member,
|
||||
REFIID riid,
|
||||
LCID lcid,
|
||||
WORD flags,
|
||||
DISPPARAMS *params,
|
||||
VARIANT *result,
|
||||
EXCEPINFO *excep_info,
|
||||
UINT *arg_err )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetProxy(
|
||||
IWinHttpRequest *iface,
|
||||
HTTPREQUEST_PROXY_SETTING proxy_setting,
|
||||
VARIANT proxy_server,
|
||||
VARIANT bypass_list )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetCredentials(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR username,
|
||||
BSTR password,
|
||||
HTTPREQUEST_SETCREDENTIALS_FLAGS flags )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_Open(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR method,
|
||||
BSTR url,
|
||||
VARIANT async )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetRequestHeader(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR header,
|
||||
BSTR value )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_GetResponseHeader(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR header,
|
||||
BSTR *value )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_GetAllResponseHeaders(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR *headers )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_Send(
|
||||
IWinHttpRequest *iface,
|
||||
VARIANT body )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_Status(
|
||||
IWinHttpRequest *iface,
|
||||
LONG *status )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_StatusText(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR *status )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_ResponseText(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR *body )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_ResponseBody(
|
||||
IWinHttpRequest *iface,
|
||||
VARIANT *body )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_ResponseStream(
|
||||
IWinHttpRequest *iface,
|
||||
VARIANT *body )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_get_Option(
|
||||
IWinHttpRequest *iface,
|
||||
WinHttpRequestOption option,
|
||||
VARIANT *value )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_put_Option(
|
||||
IWinHttpRequest *iface,
|
||||
WinHttpRequestOption option,
|
||||
VARIANT value )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_WaitForResponse(
|
||||
IWinHttpRequest *iface,
|
||||
VARIANT timeout,
|
||||
VARIANT_BOOL *succeeded )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_Abort(
|
||||
IWinHttpRequest *iface )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetTimeouts(
|
||||
IWinHttpRequest *iface,
|
||||
LONG resolve_timeout,
|
||||
LONG connect_timeout,
|
||||
LONG send_timeout,
|
||||
LONG receive_timeout )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetClientCertificate(
|
||||
IWinHttpRequest *iface,
|
||||
BSTR certificate )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI winhttp_request_SetAutoLogonPolicy(
|
||||
IWinHttpRequest *iface,
|
||||
WinHttpRequestAutoLogonPolicy policy )
|
||||
{
|
||||
FIXME("\n");
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static const struct IWinHttpRequestVtbl winhttp_request_vtbl =
|
||||
{
|
||||
winhttp_request_QueryInterface,
|
||||
winhttp_request_AddRef,
|
||||
winhttp_request_Release,
|
||||
winhttp_request_GetTypeInfoCount,
|
||||
winhttp_request_GetTypeInfo,
|
||||
winhttp_request_GetIDsOfNames,
|
||||
winhttp_request_Invoke,
|
||||
winhttp_request_SetProxy,
|
||||
winhttp_request_SetCredentials,
|
||||
winhttp_request_Open,
|
||||
winhttp_request_SetRequestHeader,
|
||||
winhttp_request_GetResponseHeader,
|
||||
winhttp_request_GetAllResponseHeaders,
|
||||
winhttp_request_Send,
|
||||
winhttp_request_get_Status,
|
||||
winhttp_request_get_StatusText,
|
||||
winhttp_request_get_ResponseText,
|
||||
winhttp_request_get_ResponseBody,
|
||||
winhttp_request_get_ResponseStream,
|
||||
winhttp_request_get_Option,
|
||||
winhttp_request_put_Option,
|
||||
winhttp_request_WaitForResponse,
|
||||
winhttp_request_Abort,
|
||||
winhttp_request_SetTimeouts,
|
||||
winhttp_request_SetClientCertificate,
|
||||
winhttp_request_SetAutoLogonPolicy
|
||||
};
|
||||
|
||||
HRESULT WinHttpRequest_create( IUnknown *unknown, void **obj )
|
||||
{
|
||||
struct winhttp_request *request;
|
||||
|
||||
TRACE("%p, %p\n", unknown, obj);
|
||||
|
||||
if (!(request = heap_alloc( sizeof(*request) ))) return E_OUTOFMEMORY;
|
||||
request->IWinHttpRequest_iface.lpVtbl = &winhttp_request_vtbl;
|
||||
request->refs = 1;
|
||||
|
||||
*obj = &request->IWinHttpRequest_iface;
|
||||
TRACE("returning iface %p\n", *obj);
|
||||
return S_OK;
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
# define closesocket close
|
||||
# define ioctlsocket ioctl
|
||||
#endif
|
||||
#include "ole2.h"
|
||||
|
||||
static const WCHAR getW[] = {'G','E','T',0};
|
||||
static const WCHAR postW[] = {'P','O','S','T',0};
|
||||
|
@ -237,6 +238,8 @@ BOOL add_request_headers( request_t *, LPCWSTR, DWORD, DWORD ) DECLSPEC_HIDDEN;
|
|||
void delete_domain( domain_t * ) DECLSPEC_HIDDEN;
|
||||
BOOL set_server_for_hostname( connect_t *connect, LPCWSTR server, INTERNET_PORT port ) DECLSPEC_HIDDEN;
|
||||
|
||||
extern HRESULT WinHttpRequest_create( IUnknown *, void ** ) DECLSPEC_HIDDEN;
|
||||
|
||||
static inline void *heap_alloc( SIZE_T size )
|
||||
{
|
||||
return HeapAlloc( GetProcessHeap(), 0, size );
|
||||
|
|
Loading…
Reference in New Issue