lsteamclient: Generate iface constructor lookup function.

CW-Bug-Id: #22729
This commit is contained in:
Rémi Bernon 2023-09-30 14:14:10 +02:00
parent 4e322598b0
commit c78594d32c
6 changed files with 281 additions and 238 deletions

View File

@ -7,6 +7,7 @@ EXTRADEFS = -DWINE_NO_LONG_TYPES -DSTEAM_API_EXPORTS -Dprivate=public -Dprotecte
SOURCES = \ SOURCES = \
steam_input_manual.c \ steam_input_manual.c \
steam_networking_manual.c \ steam_networking_manual.c \
steamclient_generated.c \
steamclient_main.c \ steamclient_main.c \
steamclient_wrappers.c \ steamclient_wrappers.c \
winISteamAppList.c \ winISteamAppList.c \

View File

@ -1133,14 +1133,6 @@ def handle_class(klass):
out(u' return r;\n') out(u' return r;\n')
out(u'}\n\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): def parse(sources, sdkver, abi):
args = [f'-m{abi[1:]}', '-I' + CLANG_PATH + '/include/'] args = [f'-m{abi[1:]}', '-I' + CLANG_PATH + '/include/']
@ -1322,6 +1314,46 @@ for _, klass in sorted(all_classes.items()):
handle_class(klass) 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 = {} declared = {}
with open('steamclient_structs_generated.h', 'w') as file: with open('steamclient_structs_generated.h', 'w') as file:

View File

@ -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}, {"STEAMAPPLIST_INTERFACE_VERSION001", &create_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001},
{"SteamApps001", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001}, /* alias */
{"STEAMAPPS_INTERFACE_VERSION001", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001}, {"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_VERSION002", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION002},
{"STEAMAPPS_INTERFACE_VERSION003", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003}, {"STEAMAPPS_INTERFACE_VERSION003", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003},
{"STEAMAPPS_INTERFACE_VERSION004", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004}, {"STEAMAPPS_INTERFACE_VERSION004", &create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004},
@ -118,9 +124,9 @@
{"SteamGameServer003", &create_winISteamGameServer_SteamGameServer003}, {"SteamGameServer003", &create_winISteamGameServer_SteamGameServer003},
{"SteamGameServer004", &create_winISteamGameServer_SteamGameServer004}, {"SteamGameServer004", &create_winISteamGameServer_SteamGameServer004},
{"SteamGameServer005", &create_winISteamGameServer_SteamGameServer005}, {"SteamGameServer005", &create_winISteamGameServer_SteamGameServer005},
{"SteamGameServer008", &create_winISteamGameServer_SteamGameServer008},
{"SteamGameServer007", &create_winISteamGameServer_SteamGameServer008}, /* alias */ {"SteamGameServer007", &create_winISteamGameServer_SteamGameServer008}, /* alias */
{"SteamGameServer006", &create_winISteamGameServer_SteamGameServer008}, /* alias */ {"SteamGameServer006", &create_winISteamGameServer_SteamGameServer008}, /* alias */
{"SteamGameServer008", &create_winISteamGameServer_SteamGameServer008},
{"SteamGameServer009", &create_winISteamGameServer_SteamGameServer009}, {"SteamGameServer009", &create_winISteamGameServer_SteamGameServer009},
{"SteamGameServer010", &create_winISteamGameServer_SteamGameServer010}, {"SteamGameServer010", &create_winISteamGameServer_SteamGameServer010},
{"SteamGameServer011", &create_winISteamGameServer_SteamGameServer011}, {"SteamGameServer011", &create_winISteamGameServer_SteamGameServer011},
@ -155,15 +161,15 @@
{"SteamNetworking006", &create_winISteamNetworking_SteamNetworking006}, {"SteamNetworking006", &create_winISteamNetworking_SteamNetworking006},
{"SteamNetworkingFakeUDPPort001", &create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001}, {"SteamNetworkingFakeUDPPort001", &create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001},
{"SteamNetworkingMessages002", &create_winISteamNetworkingMessages_SteamNetworkingMessages002}, {"SteamNetworkingMessages002", &create_winISteamNetworkingMessages_SteamNetworkingMessages002},
{"SteamNetworkingSockets003", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, /* alias */
{"SteamNetworkingSockets002", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, {"SteamNetworkingSockets002", &create_winISteamNetworkingSockets_SteamNetworkingSockets002},
{"SteamNetworkingSockets003", &create_winISteamNetworkingSockets_SteamNetworkingSockets002}, /* alias */
{"SteamNetworkingSockets004", &create_winISteamNetworkingSockets_SteamNetworkingSockets004}, {"SteamNetworkingSockets004", &create_winISteamNetworkingSockets_SteamNetworkingSockets004},
{"SteamNetworkingSockets006", &create_winISteamNetworkingSockets_SteamNetworkingSockets006}, {"SteamNetworkingSockets006", &create_winISteamNetworkingSockets_SteamNetworkingSockets006},
{"SteamNetworkingSockets008", &create_winISteamNetworkingSockets_SteamNetworkingSockets008}, {"SteamNetworkingSockets008", &create_winISteamNetworkingSockets_SteamNetworkingSockets008},
{"SteamNetworkingSockets009", &create_winISteamNetworkingSockets_SteamNetworkingSockets009}, {"SteamNetworkingSockets009", &create_winISteamNetworkingSockets_SteamNetworkingSockets009},
{"SteamNetworkingSockets012", &create_winISteamNetworkingSockets_SteamNetworkingSockets012}, {"SteamNetworkingSockets012", &create_winISteamNetworkingSockets_SteamNetworkingSockets012},
{"SteamNetworkingSocketsSerialized001", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, /* alias */
{"SteamNetworkingSocketsSerialized002", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, {"SteamNetworkingSocketsSerialized002", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002},
{"SteamNetworkingSocketsSerialized001", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002}, /* alias */
{"SteamNetworkingSocketsSerialized003", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003}, {"SteamNetworkingSocketsSerialized003", &create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003},
{"SteamNetworkingUtils001", &create_winISteamNetworkingUtils_SteamNetworkingUtils001}, {"SteamNetworkingUtils001", &create_winISteamNetworkingUtils_SteamNetworkingUtils001},
{"SteamNetworkingUtils002", &create_winISteamNetworkingUtils_SteamNetworkingUtils002}, {"SteamNetworkingUtils002", &create_winISteamNetworkingUtils_SteamNetworkingUtils002},
@ -190,13 +196,23 @@
{"SteamUser021", &create_winISteamUser_SteamUser021}, {"SteamUser021", &create_winISteamUser_SteamUser021},
{"SteamUser022", &create_winISteamUser_SteamUser022}, {"SteamUser022", &create_winISteamUser_SteamUser022},
{"SteamUser023", &create_winISteamUser_SteamUser023}, {"SteamUser023", &create_winISteamUser_SteamUser023},
{"SteamUtils001", &create_winISteamUtils_SteamUtils002}, /* alias */
{"SteamUtils002", &create_winISteamUtils_SteamUtils002}, {"SteamUtils002", &create_winISteamUtils_SteamUtils002},
{"SteamUtils003", &create_winISteamUtils_SteamUtils004}, /* alias */ {"SteamUtils001", &create_winISteamUtils_SteamUtils002}, /* alias */
{"SteamUtils004", &create_winISteamUtils_SteamUtils004}, {"SteamUtils004", &create_winISteamUtils_SteamUtils004},
{"SteamUtils003", &create_winISteamUtils_SteamUtils004}, /* alias */
{"SteamUtils005", &create_winISteamUtils_SteamUtils005}, {"SteamUtils005", &create_winISteamUtils_SteamUtils005},
{"SteamUtils006", &create_winISteamUtils_SteamUtils006}, {"SteamUtils006", &create_winISteamUtils_SteamUtils006},
{"SteamUtils007", &create_winISteamUtils_SteamUtils007}, {"SteamUtils007", &create_winISteamUtils_SteamUtils007},
{"SteamUtils008", &create_winISteamUtils_SteamUtils008}, {"SteamUtils008", &create_winISteamUtils_SteamUtils008},
{"SteamUtils009", &create_winISteamUtils_SteamUtils009}, {"SteamUtils009", &create_winISteamUtils_SteamUtils009},
{"SteamUtils010", &create_winISteamUtils_SteamUtils010}, {"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;
}

View File

@ -1,195 +1,197 @@
extern struct w_steam_iface *create_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001(void *); /* This file is auto-generated, do not edit. */
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_winISteamAppList_STEAMAPPLIST_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION005(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION006(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION007(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION008(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamAppTicket_STEAMAPPTICKET_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_STEAMCONTROLLER_INTERFACE_VERSION(void *); extern struct w_steam_iface *create_winISteamApps_STEAMAPPS_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_001(void *); extern struct w_steam_iface *create_winISteamAppTicket_STEAMAPPTICKET_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_002(void *); extern struct w_steam_iface *create_winISteamController_STEAMCONTROLLER_INTERFACE_VERSION(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_003(void *); extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_004(void *); extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_005(void *); extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamHTMLSurface_STEAMHTMLSURFACE_INTERFACE_VERSION_005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V001(void *); extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V002(void *); extern struct w_steam_iface *create_winISteamHTTP_STEAMHTTP_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V003(void *); extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMusicRemote_STEAMMUSICREMOTE_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMusic_STEAMMUSIC_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamInventory_STEAMINVENTORY_INTERFACE_V003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamParentalSettings_STEAMPARENTALSETTINGS_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamMusicRemote_STEAMMUSICREMOTE_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamMusic_STEAMMUSIC_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamParentalSettings_STEAMPARENTALSETTINGS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamRemotePlay_STEAMREMOTEPLAY_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION004(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamRemoteStorage_STEAMREMOTESTORAGE_INTERFACE_VERSION016(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamScreenshots_STEAMSCREENSHOTS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION004(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION005(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION006(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION007(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION008(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION009(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION010(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION012(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION013(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION014(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION015(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION016(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION017(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION015(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION018(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION016(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUnifiedMessages_STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION017(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION001(void *); extern struct w_steam_iface *create_winISteamUGC_STEAMUGC_INTERFACE_VERSION018(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION002(void *); extern struct w_steam_iface *create_winISteamUnifiedMessages_STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION003(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION004(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION005(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION006(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION007(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION008(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION009(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION010(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION011(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION012(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V001(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V002(void *); extern struct w_steam_iface *create_winISteamUserStats_STEAMUSERSTATS_INTERFACE_VERSION012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient006(void *); extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient007(void *); extern struct w_steam_iface *create_winISteamVideo_STEAMVIDEO_INTERFACE_V002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient008(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient009(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient010(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient011(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient012(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient013(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient014(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient015(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient016(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient017(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient015(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient018(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient016(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient019(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient017(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamClient_SteamClient020(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient018(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController003(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient019(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController004(void *); extern struct w_steam_iface *create_winISteamClient_SteamClient020(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController005(void *); extern struct w_steam_iface *create_winISteamController_SteamController003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController006(void *); extern struct w_steam_iface *create_winISteamController_SteamController004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController007(void *); extern struct w_steam_iface *create_winISteamController_SteamController005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamController_SteamController008(void *); extern struct w_steam_iface *create_winISteamController_SteamController006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends001(void *); extern struct w_steam_iface *create_winISteamController_SteamController007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends002(void *); extern struct w_steam_iface *create_winISteamController_SteamController008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends003(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends004(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends005(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends006(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends007(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends008(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends009(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends010(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends011(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends012(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends013(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends014(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends015(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamFriends_SteamFriends017(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameCoordinator_SteamGameCoordinator001(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends015(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer002(void *); extern struct w_steam_iface *create_winISteamFriends_SteamFriends017(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer003(void *); extern struct w_steam_iface *create_winISteamGameCoordinator_SteamGameCoordinator001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer004(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer005(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer008(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer009(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer010(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer011(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer012(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer013(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer014(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer015(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameServerStats_SteamGameServerStats001(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameStats_SteamGameStats001(void *); extern struct w_steam_iface *create_winISteamGameServer_SteamGameServer015(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInput_SteamInput001(void *); extern struct w_steam_iface *create_winISteamGameServerStats_SteamGameServerStats001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInput_SteamInput002(void *); extern struct w_steam_iface *create_winISteamGameStats_SteamGameStats001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInput_SteamInput005(void *); extern struct w_steam_iface *create_winISteamInput_SteamInput001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamInput_SteamInput006(void *); extern struct w_steam_iface *create_winISteamInput_SteamInput002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMasterServerUpdater_SteamMasterServerUpdater001(void *); extern struct w_steam_iface *create_winISteamInput_SteamInput005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamGameSearch_SteamMatchGameSearch001(void *); extern struct w_steam_iface *create_winISteamInput_SteamInput006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking001(void *); extern struct w_steam_iface *create_winISteamMasterServerUpdater_SteamMasterServerUpdater001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking002(void *); extern struct w_steam_iface *create_winISteamGameSearch_SteamMatchGameSearch001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking003(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking004(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking005(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking006(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking007(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking008(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking009(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers001(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers002(void *); extern struct w_steam_iface *create_winISteamMatchmaking_SteamMatchMaking009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking001(void *); extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking002(void *); extern struct w_steam_iface *create_winISteamMatchmakingServers_SteamMatchMakingServers002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking003(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking004(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking005(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking006(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingMessages_SteamNetworkingMessages002(void *); extern struct w_steam_iface *create_winISteamNetworking_SteamNetworking006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets002(void *); extern struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets004(void *); extern struct w_steam_iface *create_winISteamNetworkingMessages_SteamNetworkingMessages002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets006(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets008(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets009(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets012(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003(void *); extern struct w_steam_iface *create_winISteamNetworkingSockets_SteamNetworkingSockets012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils001(void *); extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils002(void *); extern struct w_steam_iface *create_winISteamNetworkingSocketsSerialized_SteamNetworkingSocketsSerialized003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils003(void *); extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils001(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils004(void *); extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamParties_SteamParties002(void *); extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils003(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser004(void *); extern struct w_steam_iface *create_winISteamNetworkingUtils_SteamNetworkingUtils004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser005(void *); extern struct w_steam_iface *create_winISteamParties_SteamParties002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser006(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser007(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser008(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser009(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser010(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser008(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser011(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser009(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser012(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser010(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser013(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser011(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser014(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser012(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser015(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser013(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser016(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser014(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser017(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser015(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser018(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser016(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser019(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser017(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser020(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser018(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser021(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser019(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser022(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser020(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUser_SteamUser023(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser021(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils002(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser022(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils004(void *); extern struct w_steam_iface *create_winISteamUser_SteamUser023(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils005(void *); extern struct w_steam_iface *create_winISteamUtils_SteamUtils002(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils006(void *); extern struct w_steam_iface *create_winISteamUtils_SteamUtils004(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils007(void *); extern struct w_steam_iface *create_winISteamUtils_SteamUtils005(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils008(void *); extern struct w_steam_iface *create_winISteamUtils_SteamUtils006(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils009(void *); extern struct w_steam_iface *create_winISteamUtils_SteamUtils007(void *) DECLSPEC_HIDDEN;
extern struct w_steam_iface *create_winISteamUtils_SteamUtils010(void *); 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;

View File

@ -617,15 +617,6 @@ uint32_t manual_convert_nNativeKeyCode( uint32_t win_vk )
#error You must implement VK<->Native keysym conversion for this platform. #error You must implement VK<->Native keysym conversion for this platform.
#endif #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 steamclient_interface
{ {
struct list entry; 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 steamclient_interface *e;
struct w_steam_iface *ret = NULL; struct w_steam_iface *ret = NULL;
int i; iface_constructor constructor;
TRACE("trying to create %s\n", name); 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); /* Don't cache interfaces allocated from steamclient.dll space.
if (allocated_from_steamclient_dll(ret) || allocated_from_steamclient_dll(ret->vtable)) * steamclient may get reloaded by the app, miss the previous
{ * data and potentially have different load address. */
/* Don't cache interfaces allocated from steamclient.dll space. goto done;
* 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;
} }
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: done:

View File

@ -37,7 +37,9 @@ struct w_steam_iface
void *u_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; struct SteamInputActionEvent_t;
typedef void (*CDECL win_SteamInputActionEventCallbackPointer)( 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 start_callback_thread(void) DECLSPEC_HIDDEN;
extern void stop_callback_thread(void) DECLSPEC_HIDDEN; extern void stop_callback_thread(void) DECLSPEC_HIDDEN;
#include "steamclient_generated.h"
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif