diff --git a/lsteamclient/Makefile.in b/lsteamclient/Makefile.in index c2880977..42454b49 100644 --- a/lsteamclient/Makefile.in +++ b/lsteamclient/Makefile.in @@ -7,6 +7,7 @@ EXTRADEFS = -DWINE_NO_LONG_TYPES -DSTEAM_API_EXPORTS -Dprivate=public -Dprotecte SOURCES = \ steam_input_manual.c \ steam_networking_manual.c \ + steamclient_generated.c \ steamclient_main.c \ steamclient_wrappers.c \ winISteamAppList.c \ diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index 309249f0..af28160f 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -1133,14 +1133,6 @@ def handle_class(klass): out(u' return r;\n') out(u'}\n\n') - constructors = open("win_constructors.h", "a") - constructors.write(f"extern struct w_steam_iface *create_{winclassname}(void *);\n") - - constructors = open("win_constructors_table.dat", "a") - for alias in VERSION_ALIASES.get(klass.version, []): - constructors.write(f" {{\"{alias}\", &create_{winclassname}}}, /* alias */\n") - constructors.write(f" {{\"{klass.version}\", &create_{winclassname}}},\n") - def parse(sources, sdkver, abi): args = [f'-m{abi[1:]}', '-I' + CLANG_PATH + '/include/'] @@ -1322,6 +1314,46 @@ for _, klass in sorted(all_classes.items()): handle_class(klass) +with open("steamclient_generated.h", "w") as file: + out = file.write + + out(u'/* This file is auto-generated, do not edit. */\n\n') + + for _, klass in sorted(all_classes.items()): + out(f"extern struct w_steam_iface *create_win{klass.full_name}(void *) DECLSPEC_HIDDEN;\n") + + +with open("steamclient_generated.c", "w") as file: + out = file.write + + out(u'/* This file is auto-generated, do not edit. */\n\n') + out(u'#include "steamclient_private.h"\n\n') + + out(u'static const struct { const char *iface_version; iface_constructor ctor; } constructors[] =\n') + out(u'{\n') + for _, klass in sorted(all_classes.items()): + out(f' {{"{klass.version}", &create_win{klass.full_name}}},\n') + for alias in VERSION_ALIASES.get(klass.version, []): + out(f' {{"{alias}", &create_win{klass.full_name}}}, /* alias */\n') + out(u'};\n') + out(u'\n') + out(u'iface_constructor find_iface_constructor( const char *iface_version )\n') + out(u'{\n') + out(u' int i;\n') + out(u' for (i = 0; i < ARRAYSIZE(constructors); ++i)\n') + out(u' if (!strcmp( iface_version, constructors[i].iface_version ))\n') + out(u' return constructors[i].ctor;\n') + out(u' return NULL;\n') + out(u'}\n') + + +for name, klasses in all_classes.items(): + if name not in SDK_CLASSES: continue + for sdkver, klass in klasses.items(): + version = all_versions[sdkver][name[1:].upper()] + handle_class(sdkver, klass, version, SDK_CLASSES[name]) + + declared = {} with open('steamclient_structs_generated.h', 'w') as file: diff --git a/lsteamclient/win_constructors_table.dat b/lsteamclient/steamclient_generated.c similarity index 97% rename from lsteamclient/win_constructors_table.dat rename to lsteamclient/steamclient_generated.c index 6cd31358..342108c3 100644 --- a/lsteamclient/win_constructors_table.dat +++ b/lsteamclient/steamclient_generated.c @@ -1,6 +1,12 @@ +/* This file is auto-generated, do not edit. */ + +#include "steamclient_private.h" + +static const struct { const char *iface_version; iface_constructor ctor; } constructors[] = +{ {"STEAMAPPLIST_INTERFACE_VERSION001", &create_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001}, - {"SteamApps001", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001}, /* alias */ {"STEAMAPPS_INTERFACE_VERSION001", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001}, + {"SteamApps001", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001}, /* alias */ {"STEAMAPPS_INTERFACE_VERSION002", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION002}, {"STEAMAPPS_INTERFACE_VERSION003", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003}, {"STEAMAPPS_INTERFACE_VERSION004", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004}, @@ -118,9 +124,9 @@ {"SteamGameServer003", &create_winISteamGameServer_SteamGameServer003}, {"SteamGameServer004", &create_winISteamGameServer_SteamGameServer004}, {"SteamGameServer005", &create_winISteamGameServer_SteamGameServer005}, + {"SteamGameServer008", &create_winISteamGameServer_SteamGameServer008}, {"SteamGameServer007", &create_winISteamGameServer_SteamGameServer008}, /* alias */ {"SteamGameServer006", &create_winISteamGameServer_SteamGameServer008}, /* alias */ - {"SteamGameServer008", &create_winISteamGameServer_SteamGameServer008}, {"SteamGameServer009", &create_winISteamGameServer_SteamGameServer009}, {"SteamGameServer010", &create_winISteamGameServer_SteamGameServer010}, {"SteamGameServer011", &create_winISteamGameServer_SteamGameServer011}, @@ -155,15 +161,15 @@ {"SteamNetworking006", &create_winISteamNetworking_SteamNetworking006}, {"SteamNetworkingFakeUDPPort001", &create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001}, {"SteamNetworkingMessages002", &create_winISteamNetworkingMessages_SteamNetworkingMessages002}, - {"SteamNetworkingSockets003", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, /* alias */ {"SteamNetworkingSockets002", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, + {"SteamNetworkingSockets003", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, /* alias */ {"SteamNetworkingSockets004", &create_winISteamNetworkingSockets_SteamNetworkingSockets004}, {"SteamNetworkingSockets006", &create_winISteamNetworkingSockets_SteamNetworkingSockets006}, {"SteamNetworkingSockets008", &create_winISteamNetworkingSockets_SteamNetworkingSockets008}, {"SteamNetworkingSockets009", &create_winISteamNetworkingSockets_SteamNetworkingSockets009}, {"SteamNetworkingSockets012", &create_winISteamNetworkingSockets_SteamNetworkingSockets012}, - {"SteamNetworkingSocketsSerialized001", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, /* alias */ {"SteamNetworkingSocketsSerialized002", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, + {"SteamNetworkingSocketsSerialized001", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, /* alias */ {"SteamNetworkingSocketsSerialized003", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003}, {"SteamNetworkingUtils001", &create_winISteamNetworkingUtils_SteamNetworkingUtils001}, {"SteamNetworkingUtils002", &create_winISteamNetworkingUtils_SteamNetworkingUtils002}, @@ -190,13 +196,23 @@ {"SteamUser021", &create_winISteamUser_SteamUser021}, {"SteamUser022", &create_winISteamUser_SteamUser022}, {"SteamUser023", &create_winISteamUser_SteamUser023}, - {"SteamUtils001", &create_winISteamUtils_SteamUtils002}, /* alias */ {"SteamUtils002", &create_winISteamUtils_SteamUtils002}, - {"SteamUtils003", &create_winISteamUtils_SteamUtils004}, /* alias */ + {"SteamUtils001", &create_winISteamUtils_SteamUtils002}, /* alias */ {"SteamUtils004", &create_winISteamUtils_SteamUtils004}, + {"SteamUtils003", &create_winISteamUtils_SteamUtils004}, /* alias */ {"SteamUtils005", &create_winISteamUtils_SteamUtils005}, {"SteamUtils006", &create_winISteamUtils_SteamUtils006}, {"SteamUtils007", &create_winISteamUtils_SteamUtils007}, {"SteamUtils008", &create_winISteamUtils_SteamUtils008}, {"SteamUtils009", &create_winISteamUtils_SteamUtils009}, {"SteamUtils010", &create_winISteamUtils_SteamUtils010}, +}; + +iface_constructor find_iface_constructor( const char *iface_version ) +{ + int i; + for (i = 0; i < ARRAYSIZE(constructors); ++i) + if (!strcmp( iface_version, constructors[i].iface_version )) + return constructors[i].ctor; + return NULL; +} diff --git a/lsteamclient/win_constructors.h b/lsteamclient/steamclient_generated.h similarity index 61% rename from lsteamclient/win_constructors.h rename to lsteamclient/steamclient_generated.h index 466c425b..4c138b8d 100644 --- a/lsteamclient/win_constructors.h +++ b/lsteamclient/steamclient_generated.h @@ -1,195 +1,197 @@ -extern struct w_steam_iface *create_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION005(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION006(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION007(void *); -extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION008(void *); -extern struct w_steam_iface *create_winISteamAppTicket_STEAMAPPTICKET_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamController_STEAMCONTROLLER_INTERFACE_VERSION(void *); -extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_001(void *); -extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_002(void *); -extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_003(void *); -extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_004(void *); -extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_005(void *); -extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V001(void *); -extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V002(void *); -extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V003(void *); -extern struct w_steam_iface *create_winISteamMusicRemote_STEAMMUSICREMOTE_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamMusic_STEAMMUSIC_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamParentalSettings_STEAMPARENTALSETTINGS_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION004(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014(void *); -extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016(void *); -extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION004(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION005(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION006(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION007(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION008(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION009(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION010(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION012(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION013(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION014(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION015(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION016(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION017(void *); -extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION018(void *); -extern struct w_steam_iface *create_winISteamUnifiedMessages_STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION001(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION002(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION003(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION004(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION005(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION006(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION007(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION008(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION009(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION010(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION011(void *); -extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION012(void *); -extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V001(void *); -extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V002(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient006(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient007(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient008(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient009(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient010(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient011(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient012(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient013(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient014(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient015(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient016(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient017(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient018(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient019(void *); -extern struct w_steam_iface *create_winISteamClient_SteamClient020(void *); -extern struct w_steam_iface *create_winISteamController_SteamController003(void *); -extern struct w_steam_iface *create_winISteamController_SteamController004(void *); -extern struct w_steam_iface *create_winISteamController_SteamController005(void *); -extern struct w_steam_iface *create_winISteamController_SteamController006(void *); -extern struct w_steam_iface *create_winISteamController_SteamController007(void *); -extern struct w_steam_iface *create_winISteamController_SteamController008(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends001(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends002(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends003(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends004(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends005(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends006(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends007(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends008(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends009(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends010(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends011(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends012(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends013(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends014(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends015(void *); -extern struct w_steam_iface *create_winISteamFriends_SteamFriends017(void *); -extern struct w_steam_iface *create_winISteamGameCoordinator_SteamGameCoordinator001(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer002(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer003(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer004(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer005(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer008(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer009(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer010(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer011(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer012(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer013(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer014(void *); -extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer015(void *); -extern struct w_steam_iface *create_winISteamGameServerStats_SteamGameServerStats001(void *); -extern struct w_steam_iface *create_winISteamGameStats_SteamGameStats001(void *); -extern struct w_steam_iface *create_winISteamInput_SteamInput001(void *); -extern struct w_steam_iface *create_winISteamInput_SteamInput002(void *); -extern struct w_steam_iface *create_winISteamInput_SteamInput005(void *); -extern struct w_steam_iface *create_winISteamInput_SteamInput006(void *); -extern struct w_steam_iface *create_winISteamMasterServerUpdater_SteamMasterServerUpdater001(void *); -extern struct w_steam_iface *create_winISteamGameSearch_SteamMatchGameSearch001(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking001(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking002(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking003(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking004(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking005(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking006(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking007(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking008(void *); -extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking009(void *); -extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers001(void *); -extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers002(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking001(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking002(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking003(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking004(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking005(void *); -extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking006(void *); -extern struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001(void *); -extern struct w_steam_iface *create_winISteamNetworkingMessages_SteamNetworkingMessages002(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets002(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets004(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets006(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets008(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets009(void *); -extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets012(void *); -extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002(void *); -extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003(void *); -extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils001(void *); -extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils002(void *); -extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils003(void *); -extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils004(void *); -extern struct w_steam_iface *create_winISteamParties_SteamParties002(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser004(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser005(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser006(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser007(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser008(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser009(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser010(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser011(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser012(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser013(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser014(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser015(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser016(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser017(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser018(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser019(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser020(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser021(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser022(void *); -extern struct w_steam_iface *create_winISteamUser_SteamUser023(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils002(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils004(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils005(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils006(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils007(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils008(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils009(void *); -extern struct w_steam_iface *create_winISteamUtils_SteamUtils010(void *); +/* This file is auto-generated, do not edit. */ + +extern struct w_steam_iface *create_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamAppTicket_STEAMAPPTICKET_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_STEAMCONTROLLER_INTERFACE_VERSION(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMusicRemote_STEAMMUSICREMOTE_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMusic_STEAMMUSIC_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamParentalSettings_STEAMPARENTALSETTINGS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION015(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION016(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION017(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION018(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUnifiedMessages_STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient015(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient016(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient017(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient018(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient019(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamClient_SteamClient020(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamController_SteamController008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends015(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamFriends_SteamFriends017(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameCoordinator_SteamGameCoordinator001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer015(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameServerStats_SteamGameServerStats001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameStats_SteamGameStats001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInput_SteamInput001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInput_SteamInput002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInput_SteamInput005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamInput_SteamInput006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMasterServerUpdater_SteamMasterServerUpdater001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamGameSearch_SteamMatchGameSearch001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingMessages_SteamNetworkingMessages002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils001(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils003(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamParties_SteamParties002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser010(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser011(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser012(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser013(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser014(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser015(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser016(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser017(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser018(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser019(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser020(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser021(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser022(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUser_SteamUser023(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils002(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils004(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils005(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils006(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils007(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils008(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils009(void *) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamUtils_SteamUtils010(void *) DECLSPEC_HIDDEN; diff --git a/lsteamclient/steamclient_main.c b/lsteamclient/steamclient_main.c index c9e3d922..f7465cfb 100644 --- a/lsteamclient/steamclient_main.c +++ b/lsteamclient/steamclient_main.c @@ -617,15 +617,6 @@ uint32_t manual_convert_nNativeKeyCode( uint32_t win_vk ) #error You must implement VK<->Native keysym conversion for this platform. #endif -#include "win_constructors.h" - -static const struct { - const char *iface_version; - struct w_steam_iface *(*ctor)(void *); -} constructors[] = { -#include "win_constructors_table.dat" -}; - struct steamclient_interface { struct list entry; @@ -640,7 +631,7 @@ struct w_steam_iface *create_win_interface(const char *name, void *u_iface) { struct steamclient_interface *e; struct w_steam_iface *ret = NULL; - int i; + iface_constructor constructor; TRACE("trying to create %s\n", name); @@ -659,27 +650,24 @@ struct w_steam_iface *create_win_interface(const char *name, void *u_iface) } } - for (i = 0; i < sizeof(constructors) / sizeof(*constructors); ++i) + if ((constructor = find_iface_constructor( name ))) { - if (!strcmp(name, constructors[i].iface_version)) + ret = constructor( u_iface ); + if (allocated_from_steamclient_dll( ret ) || allocated_from_steamclient_dll( ret->vtable )) { - ret = constructors[i].ctor(u_iface); - if (allocated_from_steamclient_dll(ret) || allocated_from_steamclient_dll(ret->vtable)) - { - /* Don't cache interfaces allocated from steamclient.dll space. - * steamclient may get reloaded by the app, miss the previous - * data and potentially have different load address. */ - break; - } - - e = HeapAlloc(GetProcessHeap(), 0, sizeof(*e)); - e->name = constructors[i].iface_version; - e->u_iface = u_iface; - e->w_iface = ret; - list_add_tail(&steamclient_interfaces, &e->entry); - - break; + /* Don't cache interfaces allocated from steamclient.dll space. + * steamclient may get reloaded by the app, miss the previous + * data and potentially have different load address. */ + goto done; } + + e = HeapAlloc( GetProcessHeap(), 0, sizeof(*e) ); + e->name = strdup( name ); + e->u_iface = u_iface; + e->w_iface = ret; + list_add_tail( &steamclient_interfaces, &e->entry ); + + goto done; } done: diff --git a/lsteamclient/steamclient_private.h b/lsteamclient/steamclient_private.h index 4e54bded..34759e6f 100644 --- a/lsteamclient/steamclient_private.h +++ b/lsteamclient/steamclient_private.h @@ -37,7 +37,9 @@ struct w_steam_iface void *u_iface; }; -#include "win_constructors.h" +typedef struct w_steam_iface *(*iface_constructor)( void * ); +extern iface_constructor find_iface_constructor( const char *iface_version ) DECLSPEC_HIDDEN; +extern struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001( void * ) DECLSPEC_HIDDEN; struct SteamInputActionEvent_t; typedef void (*CDECL win_SteamInputActionEventCallbackPointer)( struct SteamInputActionEvent_t * ); @@ -53,6 +55,8 @@ void *alloc_vtable(void *vtable, unsigned int method_count, const char *iface_ve extern void start_callback_thread(void) DECLSPEC_HIDDEN; extern void stop_callback_thread(void) DECLSPEC_HIDDEN; +#include "steamclient_generated.h" + #ifdef __cplusplus } #endif