[PATCH 3/3] msado15: Implement ADORecordsetConstruction get/put Rowset

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sat Oct 31 02:43:59 CDT 2020


On 30/10/20 8:09 pm, Hans Leidekker wrote:
> On Fri, 2020-10-30 at 18:50 +1100, Alistair Leslie-Hughes wrote:
>>   static HRESULT WINAPI rsconstruction_put_Rowset(ADORecordsetConstruction *iface, IUnknown *row_set)
>>   {
>>       struct recordset *recordset = impl_from_ADORecordsetConstruction( iface );
>> -    FIXME("%p, %p\n", recordset, row_set);
>> -    return E_NOTIMPL;
>> +
>> +    TRACE("%p, %p\n", recordset, row_set);
>> +
>> +    if (recordset->row_set) IUnknown_Release(recordset->row_set);
>> +    recordset->row_set = row_set;
>> +    if (recordset->row_set) IUnknown_AddRef(recordset->row_set);
>> +
>> +    return S_OK;
>>   }
> 
> This is supposed to turn the row_set into a Recordset object but
> you only store a reference. This could use some tests around
> the interaction between these objects.
> 
Based off this one, it appears the pointer is stored.  How that point is 
used internally is another issue.  I suspect that when set, the rowset 
point is used to get/set data.

https://docs.microsoft.com/en-us/archive/msdn-magazine/2000/july/house-of-com-using-ado-to-create-xml-based-recordsets

I'll attempt to add tests to illustrate how the objects relate.

Regards
Alistair.





More information about the wine-devel mailing list