Hi Nikolay,
On 9/25/10 10:15 PM, Nikolay Sivov wrote:
Store passed data for IXMLHttpRequest::open()
+ hr = VariantChangeType(&async,&async, 0, VT_BOOL); + This->async = (hr == S_OK) ? V_BOOL(&async) : FALSE;
You mix BOOL and VARIANT_BOOL here. |This->async = (hr == S_OK) && V_BOOL(&async)| will do what you want.
+ hr = VariantChangeType(&user,&user, 0, VT_BSTR); + if (hr == S_OK) + This->user = SysAllocString(V_BSTR(&user));
You potentially leak here.
+ hr = VariantChangeType(&password,&password, 0, VT_BSTR); + if (hr == S_OK) + This->password = SysAllocString(V_BSTR(&password));
And here.
+ { + return SysReAllocString(&entry->value, value) == TRUE ? S_OK : E_OUTOFMEMORY; +
You shouldn't compare to TRUE value. This should be |return SysReAllocString(...) ? S_OK : E_OUTOFMEMORY|.
+ *bind_flags = BINDF_FROMURLMON;
Are you sure you need BINDF_FROMURLMON here? This flag is set by urlmon before calling protocol handler.
+ hr = BindStatusCallback_create(This,&bsc); + if (FAILED(hr)) return hr; + + ERR("%x\n", hr);
Debugging code left?
Jacek