[PATCH] msado15: Semi-stub _Recordset Open
Nikolay Sivov
nsivov at codeweavers.com
Fri Feb 19 03:17:51 CST 2021
On 2/19/21 11:58 AM, Alistair Leslie-Hughes wrote:
> + hr = ADOConnectionConstruction15_get_Session(construct, &session);
> + ADOConnectionConstruction15_Release(construct);
> + if (FAILED(hr))
> + return E_FAIL;
> +
> + hr = IUnknown_QueryInterface(session, &IID_IOpenRowset, (void**)&openrowset);
> + if (FAILED(hr)) return hr;
> +
> + hr = IOpenRowset_QueryInterface(openrowset, &IID_IDBCreateCommand, (void**)&create_command);
> + if (FAILED(hr))
> + goto done;
> +
> + hr = IDBCreateCommand_CreateCommand(create_command, NULL, &IID_IUnknown, (IUnknown **)&cmd);
> + if (FAILED(hr))
> + goto done;
> +
> + hr = ICommand_QueryInterface(cmd, &IID_ICommandText, (void**)&command_text);
> + if (FAILED(hr))
> + {
> + FIXME("Currently only ICommandText interface is support\n");
> + goto done;
> + }
> +
> + hr = ICommandText_SetCommandText(command_text, &DBGUID_DEFAULT, V_BSTR(&source));
> + if (FAILED(hr))
> + goto done;
> +
> + hr = ICommandText_Execute(command_text, NULL, &IID_IUnknown, NULL, &affected, &rowset);
> + if (FAILED(hr))
> + goto done;
Most of that could use same pattern as get_Session(), so you don't have
to use a block of releases in 'done'.
Is it safe to assume that 'source' is VT_BSTR?
More information about the wine-devel
mailing list