Getting start with IXMLHTTPRequest

Jacek Caban jacek at codeweavers.com
Sun Feb 7 20:24:59 CST 2010


On 2/7/10 3:08 PM, Nikolay Sivov wrote:
> On 2/7/2010 16:45, Hans Leidekker wrote:
>> On Sunday 07 February 2010 14:28:37 Nikolay Sivov wrote:
>>
>>> Recently I tried to start with this interface. It looks trivial enough
>>> but since it's first time i'm using winhttp,
>>> there could be some problems, especially cause IXMLHTTPRequest supports
>>> asynchronous requests.
>>>
>>> Could someone with winhttp knowledge review this patch before it 
>>> goes to
>>> far from reality?
>>>
>>> P.S. any comments are welcome actually.
>> Last time this came up Jacek suggested to use urlmon instead of winhttp,
>> which may already handle asynchronous requests.
>>
>>   -Hans
> Such things:
> ---
> static HRESULT WINAPI HttpInfo_QueryInfo(IWinInetHttpInfo *iface, 
> DWORD dwOption,
>         void *pBuffer, DWORD *pcbBuffer, DWORD *pdwFlags, DWORD 
> *pdwReserved)
> {
>     HttpProtocol *This = INETINFO_THIS(iface);
>     FIXME("(%p)->(%x %p %p %p %p)\n", This, dwOption, pBuffer, 
> pcbBuffer, pdwFlags, pdwReserved);
>     return E_NOTIMPL;
> }
> ---
> static HRESULT WINAPI HttpProtocol_Abort(IInternetProtocol *iface, 
> HRESULT hrReason,
>         DWORD dwOptions)
> {
>     HttpProtocol *This = PROTOCOL_THIS(iface);
>     FIXME("(%p)->(%08x %08x)\n", This, hrReason, dwOptions);
>     return E_NOTIMPL;
> }
> ---
> make me think it's not ready.

Even if that's true, it's not a reason to choose wrong architecture.

> Also IXMLHTTPRequest methods look to directly map tp Winhttp calls.
> For example how can I implement IXMLHTTPRequest::setRequestHeader() 
> with urlmon?

By implementing IHttpNegotiate on bind status callback.

> Btw, what was a reason for using it?

Everything IE-related should use it for binding. It's because of 
plugable protocols, shared wininet session and more. urlmon is not just 
a wrapper around wininet.


Jacek



More information about the wine-devel mailing list