Hi,
Thanks for submitting the patch, and keeping the coding style consistent! Andrey Turkin wrote:
This patch adds virtual _Streams table to MSI because native MSI maintains such table ChangeLog: virtual _Streams table added
+static UINT STREAMS_fetch_stream( struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm ) +{
....
+ + /* + * The column marked with the type stream data seems to have a single number + * which references the column containing the name of the stream data + * + * Fetch the column to reference first. + */ + r = view->ops->fetch_int( view, row, col, &ival );
I'm not so keen on the way this is done. You seem to have duplicated alot of code from TABLE_fetch_stream here.
+ if( r != ERROR_SUCCESS ) + { + ERR("1: %d\n", r); + return r; + } + + ERR("fetched %d\n", ival);
And forgotten to remove your debug code.
+MSIVIEWOPS streams_ops = +{ + TABLE_fetch_int, + STREAMS_fetch_stream, + TABLE_set_int, + TABLE_insert_row, + STREAMS_execute, + TABLE_close, + TABLE_get_dimensions, + TABLE_get_column_info, + TABLE_modify, + TABLE_delete, + TABLE_find_matching_rows +};
The streams table is just another table. How about generating an MSITABLE structure containing the data rather than treat it as a special case in here?
Mike