Altium Designer installer in win7 mode fails reporting "KB2670838" and "KB3140245" updates are not installed. With this patch the installer starts successfully.
(Though I could of course change windows version to win10 to work around this, it might be useful to see if the installer installs maybe less newer/other components in win7 mode.)
From: Louis Lenders xerox.xerox2000x@gmail.com
Altium Designer installer in win7 mode fails reporting "KB2670838" and "KB3140245" updates are not installed. With this patch the installer starts successfully.
(Though I could of course change windows version to win10 to work around this, it might be useful to see if the installer installs maybe less newer/other components in win7 mode.) --- dlls/wbemprox/builtin.c | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index 9e5161755a3..f05d6b7c002 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -1166,11 +1166,6 @@ static const struct record_qualifier data_qualifier[] = { L"__WIN32_PROCESS_GETOWNER_OUT", L"Domain", CIM_SINT32, FLAVOR_ID, L"ID", 1 } };
-static const struct record_quickfixengineering data_quickfixengineering[] = -{ - { L"http://winehq.org", L"Update", L"KB1234567", L"", L"22/2/2022" }, -}; - static const struct record_softwarelicensingproduct data_softwarelicensingproduct[] = { { 0, 1 }, @@ -4075,6 +4070,36 @@ static enum fill_status fill_operatingsystem( struct table *table, const struct return status; }
+static enum fill_status fill_quickfixengineering( struct table *table, const struct expr *cond ) +{ + static const WCHAR *hotfixid[] = { L"KB2670838", L"KB3140245" }; + DWORD count = ARRAY_SIZE(hotfixid); + struct record_quickfixengineering *rec; + UINT i, row = 0, offset = 0; + enum fill_status status = FILL_STATUS_UNFILTERED; + + if (!resize_table( table, count, sizeof(*rec) )) return FILL_STATUS_FAILED; + + for (i = 0; i < count; i++) + { + rec = (struct record_quickfixengineering *)(table->data + offset); + rec->caption = wcsdup( L"http://winehq.org" ); + rec->description = wcsdup( L"Update" ); + rec->hotfixid = wcsdup( hotfixid[i] ); + rec->installedon = wcsdup( L"22/2/2022" ); + if (!match_row( table, row, cond, &status )) + { + free_row_values( table, row ); + continue; + } + offset += sizeof(*rec); + row++; + } + TRACE("created %u rows\n", row); + table->num_rows = row; + return status; +} + static const WCHAR *get_service_type( DWORD type ) { if (type & SERVICE_KERNEL_DRIVER) return L"Kernel Driver"; @@ -4691,7 +4716,7 @@ static struct table cimv2_builtin_classes[] = { L"Win32_Printer", C(col_printer), 0, 0, NULL, fill_printer }, { L"Win32_Process", C(col_process), 0, 0, NULL, fill_process }, { L"Win32_Processor", C(col_processor), 0, 0, NULL, fill_processor }, - { L"Win32_QuickFixEngineering", C(col_quickfixengineering), D(data_quickfixengineering) }, + { L"Win32_QuickFixEngineering", C(col_quickfixengineering), 0, 0, NULL, fill_quickfixengineering }, { L"Win32_SID", C(col_sid), 0, 0, NULL, fill_sid }, { L"Win32_Service", C(col_service), 0, 0, NULL, fill_service }, { L"Win32_SoundDevice", C(col_sounddevice), 0, 0, NULL, fill_sounddevice },
Hans Leidekker (@hans) commented about dlls/wbemprox/builtin.c:
return status;
}
+static enum fill_status fill_quickfixengineering( struct table *table, const struct expr *cond ) +{
You don't need a fill function if all you're adding is static data.
On Wed Sep 17 13:54:27 2025 +0000, Hans Leidekker wrote:
You don't need a fill function if all you're adding is static data.
Hi, but how do I accomplish that then without using the fill function? On Windows every hotfixid has "it's own row" with name, description etc.
On Wed Sep 17 15:44:04 2025 +0000, Louis Lenders wrote:
Hi, but how do I accomplish that then without using the fill function? On Windows every hotfixid has "it's own row" with name, description etc.
[wbemprox.diff](/uploads/d3a9f6370709051a2ec3b39e7e9a60c6/wbemprox.diff)
You can add static rows like this.
On Wed Sep 17 17:30:02 2025 +0000, Hans Leidekker wrote:
[wbemprox.diff](/uploads/d3a9f6370709051a2ec3b39e7e9a60c6/wbemprox.diff) You can add static rows like this.
guess I was thinking too difficult...