From 6540e58078cd6bffb5aa30fbd0f85821ad6f3cde Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Thu, 13 Jun 2019 09:12:28 -0500 Subject: [PATCH] lsteamclient: Also check struct layouts in 64-bit --- lsteamclient/cb_converters.dat | 95 +++++ lsteamclient/cb_converters.h | 156 +++++++ lsteamclient/cb_getapi_sizes.dat | 70 +++- lsteamclient/cb_getapi_table.dat | 188 ++++++++- lsteamclient/gen_wrapper.py | 122 +++++- lsteamclient/struct_converters_132.cpp | 88 ++++ lsteamclient/struct_converters_144.cpp | 547 +++++++++++++++++++++++++ 7 files changed, 1247 insertions(+), 19 deletions(-) diff --git a/lsteamclient/cb_converters.dat b/lsteamclient/cb_converters.dat index d27b2192..a9671d40 100644 --- a/lsteamclient/cb_converters.dat +++ b/lsteamclient/cb_converters.dat @@ -42,11 +42,106 @@ case 0x00100d56: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetPr case 0x00100d57: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_RemoveAppDependencyResult_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x00940d58: win_msg->m_cubParam = 152; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_GetAppDependenciesResult_t_152((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x000c0d59: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_DeleteItemResult_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#ifdef __i386__ +case 0x00301196: win_msg->m_cubParam = 48; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NeedsPaint_t_48((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x00341196: win_msg->m_cubParam = 56; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NeedsPaint_t_56((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x00141197: win_msg->m_cubParam = 20; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_StartRequest_t_20((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x00201197: win_msg->m_cubParam = 40; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_StartRequest_t_40((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x00181199: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_URLChanged_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x00241199: win_msg->m_cubParam = 48; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_URLChanged_t_48((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000c119a: win_msg->m_cubParam = 12; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_FinishedRequest_t_12((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x0014119a: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_FinishedRequest_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x0008119b: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_OpenLinkInNewTab_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c119b: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_OpenLinkInNewTab_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x0008119c: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ChangedTitle_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c119c: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ChangedTitle_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x001411a1: win_msg->m_cubParam = 20; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_LinkAtPosition_t_20((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x001811a1: win_msg->m_cubParam = 32; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_LinkAtPosition_t_32((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000811a2: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_JSAlert_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c11a2: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_JSAlert_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000811a3: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_JSConfirm_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c11a3: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_JSConfirm_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ case 0x000c11a4: win_msg->m_cubParam = 12; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_FileOpenDialog_t_12((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x001411a4: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_FileOpenDialog_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x001c11a9: win_msg->m_cubParam = 28; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NewWindow_t_28((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x002011a9: win_msg->m_cubParam = 40; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NewWindow_t_40((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000811ab: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_StatusText_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c11ab: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_StatusText_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000811ac: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ShowToolTip_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c11ac: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ShowToolTip_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x000811ad: win_msg->m_cubParam = 8; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_UpdateToolTip_t_8((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x000c11ad: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_UpdateToolTip_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif case 0x00141260: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_SteamInventoryStartPurchaseResult_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x002000d1: win_msg->m_cubParam = 40; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_GSReputation_t_40((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x02c004c5: win_msg->m_cubParam = 712; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_SteamNetConnectionStatusChangedCallback_t_712((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x00140835: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTTPRequestCompleted_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#ifdef __i386__ +case 0x001011a5: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ComboNeedsPaint_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x001411a5: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_ComboNeedsPaint_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __i386__ +case 0x001811a9: win_msg->m_cubParam = 24; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NewWindow_t_24((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif +#ifdef __x86_64__ +case 0x001c11a9: win_msg->m_cubParam = 32; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_HTML_NewWindow_t_32((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; +#endif case 0x26240d4a: win_msg->m_cubParam = 9776; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_SteamUGCRequestUGCDetailsResult_t_9776((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x000c051b: win_msg->m_cubParam = 16; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_RemoteStorageFileShareResult_t_16((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; case 0x26200d4a: win_msg->m_cubParam = 9768; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); cb_SteamUGCRequestUGCDetailsResult_t_9768((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break; diff --git a/lsteamclient/cb_converters.h b/lsteamclient/cb_converters.h index 3bd57559..9b76542e 100644 --- a/lsteamclient/cb_converters.h +++ b/lsteamclient/cb_converters.h @@ -174,9 +174,145 @@ struct DeleteItemResult_t; struct winDeleteItemResult_t_16; extern void cb_DeleteItemResult_t_16(const struct DeleteItemResult_t *l, struct winDeleteItemResult_t_16 *w); +struct HTML_NeedsPaint_t; +#ifdef __i386__ +struct winHTML_NeedsPaint_t_48; +extern void cb_HTML_NeedsPaint_t_48(const struct HTML_NeedsPaint_t *l, struct winHTML_NeedsPaint_t_48 *w); +#endif +#ifdef __x86_64__ +struct winHTML_NeedsPaint_t_56; +extern void cb_HTML_NeedsPaint_t_56(const struct HTML_NeedsPaint_t *l, struct winHTML_NeedsPaint_t_56 *w); +#endif + +struct HTML_StartRequest_t; +#ifdef __i386__ +struct winHTML_StartRequest_t_20; +extern void cb_HTML_StartRequest_t_20(const struct HTML_StartRequest_t *l, struct winHTML_StartRequest_t_20 *w); +#endif +#ifdef __x86_64__ +struct winHTML_StartRequest_t_40; +extern void cb_HTML_StartRequest_t_40(const struct HTML_StartRequest_t *l, struct winHTML_StartRequest_t_40 *w); +#endif + +struct HTML_URLChanged_t; +#ifdef __i386__ +struct winHTML_URLChanged_t_24; +extern void cb_HTML_URLChanged_t_24(const struct HTML_URLChanged_t *l, struct winHTML_URLChanged_t_24 *w); +#endif +#ifdef __x86_64__ +struct winHTML_URLChanged_t_48; +extern void cb_HTML_URLChanged_t_48(const struct HTML_URLChanged_t *l, struct winHTML_URLChanged_t_48 *w); +#endif + +struct HTML_FinishedRequest_t; +#ifdef __i386__ +struct winHTML_FinishedRequest_t_12; +extern void cb_HTML_FinishedRequest_t_12(const struct HTML_FinishedRequest_t *l, struct winHTML_FinishedRequest_t_12 *w); +#endif +#ifdef __x86_64__ +struct winHTML_FinishedRequest_t_24; +extern void cb_HTML_FinishedRequest_t_24(const struct HTML_FinishedRequest_t *l, struct winHTML_FinishedRequest_t_24 *w); +#endif + +struct HTML_OpenLinkInNewTab_t; +#ifdef __i386__ +struct winHTML_OpenLinkInNewTab_t_8; +extern void cb_HTML_OpenLinkInNewTab_t_8(const struct HTML_OpenLinkInNewTab_t *l, struct winHTML_OpenLinkInNewTab_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_OpenLinkInNewTab_t_16; +extern void cb_HTML_OpenLinkInNewTab_t_16(const struct HTML_OpenLinkInNewTab_t *l, struct winHTML_OpenLinkInNewTab_t_16 *w); +#endif + +struct HTML_ChangedTitle_t; +#ifdef __i386__ +struct winHTML_ChangedTitle_t_8; +extern void cb_HTML_ChangedTitle_t_8(const struct HTML_ChangedTitle_t *l, struct winHTML_ChangedTitle_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_ChangedTitle_t_16; +extern void cb_HTML_ChangedTitle_t_16(const struct HTML_ChangedTitle_t *l, struct winHTML_ChangedTitle_t_16 *w); +#endif + +struct HTML_LinkAtPosition_t; +#ifdef __i386__ +struct winHTML_LinkAtPosition_t_20; +extern void cb_HTML_LinkAtPosition_t_20(const struct HTML_LinkAtPosition_t *l, struct winHTML_LinkAtPosition_t_20 *w); +#endif +#ifdef __x86_64__ +struct winHTML_LinkAtPosition_t_32; +extern void cb_HTML_LinkAtPosition_t_32(const struct HTML_LinkAtPosition_t *l, struct winHTML_LinkAtPosition_t_32 *w); +#endif + +struct HTML_JSAlert_t; +#ifdef __i386__ +struct winHTML_JSAlert_t_8; +extern void cb_HTML_JSAlert_t_8(const struct HTML_JSAlert_t *l, struct winHTML_JSAlert_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_JSAlert_t_16; +extern void cb_HTML_JSAlert_t_16(const struct HTML_JSAlert_t *l, struct winHTML_JSAlert_t_16 *w); +#endif + +struct HTML_JSConfirm_t; +#ifdef __i386__ +struct winHTML_JSConfirm_t_8; +extern void cb_HTML_JSConfirm_t_8(const struct HTML_JSConfirm_t *l, struct winHTML_JSConfirm_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_JSConfirm_t_16; +extern void cb_HTML_JSConfirm_t_16(const struct HTML_JSConfirm_t *l, struct winHTML_JSConfirm_t_16 *w); +#endif + struct HTML_FileOpenDialog_t; +#ifdef __i386__ struct winHTML_FileOpenDialog_t_12; extern void cb_HTML_FileOpenDialog_t_12(const struct HTML_FileOpenDialog_t *l, struct winHTML_FileOpenDialog_t_12 *w); +#endif +#ifdef __x86_64__ +struct winHTML_FileOpenDialog_t_24; +extern void cb_HTML_FileOpenDialog_t_24(const struct HTML_FileOpenDialog_t *l, struct winHTML_FileOpenDialog_t_24 *w); +#endif + +struct HTML_NewWindow_t; +#ifdef __i386__ +struct winHTML_NewWindow_t_28; +extern void cb_HTML_NewWindow_t_28(const struct HTML_NewWindow_t *l, struct winHTML_NewWindow_t_28 *w); +#endif +#ifdef __x86_64__ +struct winHTML_NewWindow_t_40; +extern void cb_HTML_NewWindow_t_40(const struct HTML_NewWindow_t *l, struct winHTML_NewWindow_t_40 *w); +#endif + +struct HTML_StatusText_t; +#ifdef __i386__ +struct winHTML_StatusText_t_8; +extern void cb_HTML_StatusText_t_8(const struct HTML_StatusText_t *l, struct winHTML_StatusText_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_StatusText_t_16; +extern void cb_HTML_StatusText_t_16(const struct HTML_StatusText_t *l, struct winHTML_StatusText_t_16 *w); +#endif + +struct HTML_ShowToolTip_t; +#ifdef __i386__ +struct winHTML_ShowToolTip_t_8; +extern void cb_HTML_ShowToolTip_t_8(const struct HTML_ShowToolTip_t *l, struct winHTML_ShowToolTip_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_ShowToolTip_t_16; +extern void cb_HTML_ShowToolTip_t_16(const struct HTML_ShowToolTip_t *l, struct winHTML_ShowToolTip_t_16 *w); +#endif + +struct HTML_UpdateToolTip_t; +#ifdef __i386__ +struct winHTML_UpdateToolTip_t_8; +extern void cb_HTML_UpdateToolTip_t_8(const struct HTML_UpdateToolTip_t *l, struct winHTML_UpdateToolTip_t_8 *w); +#endif +#ifdef __x86_64__ +struct winHTML_UpdateToolTip_t_16; +extern void cb_HTML_UpdateToolTip_t_16(const struct HTML_UpdateToolTip_t *l, struct winHTML_UpdateToolTip_t_16 *w); +#endif struct SteamInventoryStartPurchaseResult_t; struct winSteamInventoryStartPurchaseResult_t_24; @@ -194,6 +330,26 @@ struct HTTPRequestCompleted_t; struct winHTTPRequestCompleted_t_24; extern void cb_HTTPRequestCompleted_t_24(const struct HTTPRequestCompleted_t *l, struct winHTTPRequestCompleted_t_24 *w); +struct HTML_ComboNeedsPaint_t; +#ifdef __i386__ +struct winHTML_ComboNeedsPaint_t_16; +extern void cb_HTML_ComboNeedsPaint_t_16(const struct HTML_ComboNeedsPaint_t *l, struct winHTML_ComboNeedsPaint_t_16 *w); +#endif +#ifdef __x86_64__ +struct winHTML_ComboNeedsPaint_t_24; +extern void cb_HTML_ComboNeedsPaint_t_24(const struct HTML_ComboNeedsPaint_t *l, struct winHTML_ComboNeedsPaint_t_24 *w); +#endif + +struct HTML_NewWindow_t; +#ifdef __i386__ +struct winHTML_NewWindow_t_24; +extern void cb_HTML_NewWindow_t_24(const struct HTML_NewWindow_t *l, struct winHTML_NewWindow_t_24 *w); +#endif +#ifdef __x86_64__ +struct winHTML_NewWindow_t_32; +extern void cb_HTML_NewWindow_t_32(const struct HTML_NewWindow_t *l, struct winHTML_NewWindow_t_32 *w); +#endif + struct SteamUGCRequestUGCDetailsResult_t; struct winSteamUGCRequestUGCDetailsResult_t_9776; extern void cb_SteamUGCRequestUGCDetailsResult_t_9776(const struct SteamUGCRequestUGCDetailsResult_t *l, struct winSteamUGCRequestUGCDetailsResult_t_9776 *w); diff --git a/lsteamclient/cb_getapi_sizes.dat b/lsteamclient/cb_getapi_sizes.dat index 8845f0e6..519cf292 100644 --- a/lsteamclient/cb_getapi_sizes.dat +++ b/lsteamclient/cb_getapi_sizes.dat @@ -1,17 +1,28 @@ +#ifdef __i386__ case 513: /* LobbyCreated_t_16 */ return 12; +case 4524: /* HTML_ShowToolTip_t_8 */ + return 8; case 3415: /* RemoveAppDependencyResult_t_24 */ return 16; +case 4514: /* HTML_JSAlert_t_8 */ + return 8; case 3416: /* GetAppDependenciesResult_t_152 */ return 148; +case 4502: /* HTML_NeedsPaint_t_48 */ + return 48; case 1303: /* RemoteStorageAppSyncProgress_t_288 */ return 280; case 152: /* MicroTxnAuthorizationResponse_t_24 */ return 16; +case 4505: /* HTML_URLChanged_t_24 */ + return 24; +case 4506: /* HTML_FinishedRequest_t_12 */ + return 12; case 1307: /* RemoteStorageFileShareResult_t_280 */ return 272; -case 1308: /* RemoteStorageDownloadUGCResult_t_40 */ - return 32; +case 4508: /* HTML_ChangedTitle_t_8 */ + return 8; case 1309: /* RemoteStoragePublishFileResult_t_24 */ return 16; case 1310: /* RemoteStorageGetPublishedFileDetailsResult_t_1744 */ @@ -36,6 +47,10 @@ case 1319: /* RemoteStorageEnumerateWorkshopFilesResult_t_624 */ return 620; case 1320: /* RemoteStorageGetPublishedItemVoteDetailsResult_t_32 */ return 28; +case 4521: /* HTML_NewWindow_t_28 */ + return 28; +case 4523: /* HTML_StatusText_t_8 */ + return 8; case 1324: /* RemoteStorageUpdateUserPublishedItemVoteResult_t_16 */ return 12; case 1325: /* RemoteStorageUserVoteDetails_t_24 */ @@ -52,16 +67,24 @@ case 5302: /* CreateBeaconCallback_t_16 */ return 12; case 2103: /* HTTPRequestDataReceived_t_24 */ return 20; +case 4507: /* HTML_OpenLinkInNewTab_t_8 */ + return 8; case 2101: /* HTTPRequestCompleted_t_32 */ return 24; -case 1221: /* SteamNetConnectionStatusChangedCallback_t_712 */ - return 704; +case 4525: /* HTML_UpdateToolTip_t_8 */ + return 8; +case 4503: /* HTML_StartRequest_t_20 */ + return 20; case 2102: /* HTTPRequestHeadersReceived_t_16 */ return 12; +case 4513: /* HTML_LinkAtPosition_t_20 */ + return 20; case 3402: /* SteamUGCRequestUGCDetailsResult_t_9784 */ return 9768; case 3403: /* CreateItemResult_t_24 */ return 16; +case 1221: /* SteamNetConnectionStatusChangedCallback_t_712 */ + return 704; case 3405: /* ItemInstalled_t_16 */ return 12; case 3406: /* DownloadItemResult_t_24 */ @@ -70,6 +93,8 @@ case 209: /* GSReputation_t_40 */ return 32; case 1106: /* LeaderboardScoreUploaded_t_32 */ return 28; +case 4515: /* HTML_JSConfirm_t_8 */ + return 8; case 3412: /* AddUGCDependencyResult_t_24 */ return 20; case 3413: /* RemoveUGCDependencyResult_t_24 */ @@ -94,7 +119,44 @@ case 5215: /* EndGameResultCallback_t_16 */ return 12; case 4704: /* SteamInventoryStartPurchaseResult_t_24 */ return 20; +case 4517: /* HTML_ComboNeedsPaint_t_16 */ + return 16; +case 1308: /* RemoteStorageDownloadUGCResult_t_40 */ + return 32; case 4516: /* HTML_FileOpenDialog_t_12 */ return 12; case 1023: /* FileDetailsResult_t_40 */ return 36; +#endif +#ifdef __x86_64__ +case 4513: /* HTML_LinkAtPosition_t_32 */ + return 24; +case 4514: /* HTML_JSAlert_t_16 */ + return 12; +case 4515: /* HTML_JSConfirm_t_16 */ + return 12; +case 4516: /* HTML_FileOpenDialog_t_24 */ + return 20; +case 4517: /* HTML_ComboNeedsPaint_t_24 */ + return 20; +case 4521: /* HTML_NewWindow_t_40 */ + return 32; +case 4523: /* HTML_StatusText_t_16 */ + return 12; +case 4524: /* HTML_ShowToolTip_t_16 */ + return 12; +case 4525: /* HTML_UpdateToolTip_t_16 */ + return 12; +case 4502: /* HTML_NeedsPaint_t_56 */ + return 52; +case 4503: /* HTML_StartRequest_t_40 */ + return 32; +case 4505: /* HTML_URLChanged_t_48 */ + return 36; +case 4506: /* HTML_FinishedRequest_t_24 */ + return 20; +case 4507: /* HTML_OpenLinkInNewTab_t_16 */ + return 12; +case 4508: /* HTML_ChangedTitle_t_16 */ + return 12; +#endif diff --git a/lsteamclient/cb_getapi_table.dat b/lsteamclient/cb_getapi_table.dat index 8d2b82af..0aff38df 100644 --- a/lsteamclient/cb_getapi_table.dat +++ b/lsteamclient/cb_getapi_table.dat @@ -1,21 +1,40 @@ +#ifdef __i386__ case 513: switch(callback_len){ default: case 16: cb_LobbyCreated_t_16(lin_callback, callback); break; } break; +case 4524: + switch(callback_len){ + default: + case 8: cb_HTML_ShowToolTip_t_8(lin_callback, callback); break; + } + break; case 3415: switch(callback_len){ default: case 24: cb_RemoveAppDependencyResult_t_24(lin_callback, callback); break; } break; +case 4514: + switch(callback_len){ + default: + case 8: cb_HTML_JSAlert_t_8(lin_callback, callback); break; + } + break; case 3416: switch(callback_len){ default: case 152: cb_GetAppDependenciesResult_t_152(lin_callback, callback); break; } break; +case 4502: + switch(callback_len){ + default: + case 48: cb_HTML_NeedsPaint_t_48(lin_callback, callback); break; + } + break; case 1303: switch(callback_len){ default: @@ -28,6 +47,18 @@ case 152: case 24: cb_MicroTxnAuthorizationResponse_t_24(lin_callback, callback); break; } break; +case 4505: + switch(callback_len){ + default: + case 24: cb_HTML_URLChanged_t_24(lin_callback, callback); break; + } + break; +case 4506: + switch(callback_len){ + default: + case 12: cb_HTML_FinishedRequest_t_12(lin_callback, callback); break; + } + break; case 1307: switch(callback_len){ default: @@ -35,10 +66,10 @@ case 1307: case 16: cb_RemoteStorageFileShareResult_t_16(lin_callback, callback); break; } break; -case 1308: +case 4508: switch(callback_len){ default: - case 40: cb_RemoteStorageDownloadUGCResult_t_40(lin_callback, callback); break; + case 8: cb_HTML_ChangedTitle_t_8(lin_callback, callback); break; } break; case 1309: @@ -118,6 +149,19 @@ case 1320: case 32: cb_RemoteStorageGetPublishedItemVoteDetailsResult_t_32(lin_callback, callback); break; } break; +case 4521: + switch(callback_len){ + default: + case 28: cb_HTML_NewWindow_t_28(lin_callback, callback); break; + case 24: cb_HTML_NewWindow_t_24(lin_callback, callback); break; + } + break; +case 4523: + switch(callback_len){ + default: + case 8: cb_HTML_StatusText_t_8(lin_callback, callback); break; + } + break; case 1324: switch(callback_len){ default: @@ -166,6 +210,12 @@ case 2103: case 24: cb_HTTPRequestDataReceived_t_24(lin_callback, callback); break; } break; +case 4507: + switch(callback_len){ + default: + case 8: cb_HTML_OpenLinkInNewTab_t_8(lin_callback, callback); break; + } + break; case 2101: switch(callback_len){ default: @@ -173,10 +223,16 @@ case 2101: case 24: cb_HTTPRequestCompleted_t_24(lin_callback, callback); break; } break; -case 1221: +case 4525: switch(callback_len){ default: - case 712: cb_SteamNetConnectionStatusChangedCallback_t_712(lin_callback, callback); break; + case 8: cb_HTML_UpdateToolTip_t_8(lin_callback, callback); break; + } + break; +case 4503: + switch(callback_len){ + default: + case 20: cb_HTML_StartRequest_t_20(lin_callback, callback); break; } break; case 2102: @@ -185,6 +241,12 @@ case 2102: case 16: cb_HTTPRequestHeadersReceived_t_16(lin_callback, callback); break; } break; +case 4513: + switch(callback_len){ + default: + case 20: cb_HTML_LinkAtPosition_t_20(lin_callback, callback); break; + } + break; case 3402: switch(callback_len){ default: @@ -199,6 +261,12 @@ case 3403: case 24: cb_CreateItemResult_t_24(lin_callback, callback); break; } break; +case 1221: + switch(callback_len){ + default: + case 712: cb_SteamNetConnectionStatusChangedCallback_t_712(lin_callback, callback); break; + } + break; case 3405: switch(callback_len){ default: @@ -223,6 +291,12 @@ case 1106: case 32: cb_LeaderboardScoreUploaded_t_32(lin_callback, callback); break; } break; +case 4515: + switch(callback_len){ + default: + case 8: cb_HTML_JSConfirm_t_8(lin_callback, callback); break; + } + break; case 3412: switch(callback_len){ default: @@ -295,6 +369,18 @@ case 4704: case 24: cb_SteamInventoryStartPurchaseResult_t_24(lin_callback, callback); break; } break; +case 4517: + switch(callback_len){ + default: + case 16: cb_HTML_ComboNeedsPaint_t_16(lin_callback, callback); break; + } + break; +case 1308: + switch(callback_len){ + default: + case 40: cb_RemoteStorageDownloadUGCResult_t_40(lin_callback, callback); break; + } + break; case 4516: switch(callback_len){ default: @@ -307,3 +393,97 @@ case 1023: case 40: cb_FileDetailsResult_t_40(lin_callback, callback); break; } break; +#endif +#ifdef __x86_64__ +case 4513: + switch(callback_len){ + default: + case 32: cb_HTML_LinkAtPosition_t_32(lin_callback, callback); break; + } + break; +case 4514: + switch(callback_len){ + default: + case 16: cb_HTML_JSAlert_t_16(lin_callback, callback); break; + } + break; +case 4515: + switch(callback_len){ + default: + case 16: cb_HTML_JSConfirm_t_16(lin_callback, callback); break; + } + break; +case 4516: + switch(callback_len){ + default: + case 24: cb_HTML_FileOpenDialog_t_24(lin_callback, callback); break; + } + break; +case 4517: + switch(callback_len){ + default: + case 24: cb_HTML_ComboNeedsPaint_t_24(lin_callback, callback); break; + } + break; +case 4521: + switch(callback_len){ + default: + case 40: cb_HTML_NewWindow_t_40(lin_callback, callback); break; + case 32: cb_HTML_NewWindow_t_32(lin_callback, callback); break; + } + break; +case 4523: + switch(callback_len){ + default: + case 16: cb_HTML_StatusText_t_16(lin_callback, callback); break; + } + break; +case 4524: + switch(callback_len){ + default: + case 16: cb_HTML_ShowToolTip_t_16(lin_callback, callback); break; + } + break; +case 4525: + switch(callback_len){ + default: + case 16: cb_HTML_UpdateToolTip_t_16(lin_callback, callback); break; + } + break; +case 4502: + switch(callback_len){ + default: + case 56: cb_HTML_NeedsPaint_t_56(lin_callback, callback); break; + } + break; +case 4503: + switch(callback_len){ + default: + case 40: cb_HTML_StartRequest_t_40(lin_callback, callback); break; + } + break; +case 4505: + switch(callback_len){ + default: + case 48: cb_HTML_URLChanged_t_48(lin_callback, callback); break; + } + break; +case 4506: + switch(callback_len){ + default: + case 24: cb_HTML_FinishedRequest_t_24(lin_callback, callback); break; + } + break; +case 4507: + switch(callback_len){ + default: + case 16: cb_HTML_OpenLinkInNewTab_t_16(lin_callback, callback); break; + } + break; +case 4508: + switch(callback_len){ + default: + case 16: cb_HTML_ChangedTitle_t_16(lin_callback, callback); break; + } + break; +#endif diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index 155aa95c..a13209f8 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -394,11 +394,25 @@ def find_windows_struct(struct): return child.type return None +def find_windows64_struct(struct): + for child in list(windows_build64.cursor.get_children()): + if strip_const(struct.spelling) == child.spelling: + return child.type + return None + +def find_linux64_struct(struct): + for child in list(linux_build64.cursor.get_children()): + if strip_const(struct.spelling) == child.spelling: + return child.type + return None + def struct_needs_conversion_nocache(struct): if strip_const(struct.spelling) in exempt_structs: return False if strip_const(struct.spelling) in manually_handled_structs: return True + + #check 32-bit compat windows_struct = find_windows_struct(struct) assert(not windows_struct is None) #must find windows_struct for field in struct.get_fields(): @@ -407,6 +421,20 @@ def struct_needs_conversion_nocache(struct): if field.type.kind == clang.cindex.TypeKind.RECORD and \ struct_needs_conversion(field.type): return True + + #check 64-bit compat + windows_struct = find_windows64_struct(struct) + assert(not windows_struct is None) #must find windows_struct + lin64_struct = find_linux64_struct(struct) + assert(not lin64_struct is None) #must find lin64_struct + for field in lin64_struct.get_fields(): + if lin64_struct.get_offset(field.spelling) != windows_struct.get_offset(field.spelling): + return True + if field.type.kind == clang.cindex.TypeKind.RECORD and \ + struct_needs_conversion(field.type): + return True + + #check if any members need path conversion path_conv = get_path_converter(struct) if path_conv: return True @@ -764,6 +792,7 @@ generated_cb_handlers = [] generated_cb_ids = [] cpp_files_need_close_brace = [] cb_table = {} +cb_table64 = {} def get_field_attribute_str(field): if field.type.kind != clang.cindex.TypeKind.RECORD: @@ -794,9 +823,9 @@ def handle_struct(sdkver, struct): w2l_handler_name = None l2w_handler_name = None - def dump_win_struct(to_file): + def dump_win_struct(to_file, name): to_file.write("#pragma pack( push, 8 )\n") - to_file.write("struct win%s {\n" % struct_name) + to_file.write("struct win%s {\n" % name) for m in struct.get_children(): if m.kind == clang.cindex.CursorKind.FIELD_DECL: if m.type.kind == clang.cindex.TypeKind.CONSTANTARRAY: @@ -831,9 +860,10 @@ def handle_struct(sdkver, struct): w2l_handler_name = "win_to_lin_struct_%s" % struct_name; l2w_handler_name = "lin_to_win_struct_%s" % struct_name; + l2w_handler_name64 = None hfile.write("#if defined(SDKVER_%s) || !defined(__cplusplus)\n" % sdkver) - dump_win_struct(hfile) + dump_win_struct(hfile, struct_name) hfile.write("typedef struct win%s win%s;\n" % (struct_name, struct_name)) hfile.write("struct %s;\n" % struct.displayname); @@ -847,8 +877,15 @@ def handle_struct(sdkver, struct): else: #for callbacks, we use the windows struct size in the cb dispatch switch windows_struct = find_windows_struct(struct.type) + windows_struct64 = find_windows64_struct(struct.type) + struct64 = find_linux64_struct(struct.type) struct_name = "%s_%s" % (struct.displayname, windows_struct.get_size()) l2w_handler_name = "cb_%s" % struct_name; + if windows_struct64.get_size() != windows_struct.get_size(): + struct_name64 = "%s_%s" % (struct.displayname, windows_struct64.get_size()) + l2w_handler_name64 = "cb_%s" % struct_name64; + else: + l2w_handler_name64 = None if l2w_handler_name in generated_cb_handlers: # we already have a handler for the callback struct of this size return @@ -856,6 +893,7 @@ def handle_struct(sdkver, struct): return cb_id = cb_num | (struct.type.get_size() << 16) + cb_id64 = cb_num | (struct64.get_size() << 16) if cb_id in generated_cb_ids: # either this cb changed name, or steam used the same ID for different structs return @@ -863,19 +901,41 @@ def handle_struct(sdkver, struct): generated_cb_ids.append(cb_id) datfile = open("cb_converters.dat", "a") - datfile.write("case 0x%08x: win_msg->m_cubParam = %s; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); %s((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break;\n" % (cb_id, windows_struct.get_size(), l2w_handler_name)) + if l2w_handler_name64: + datfile.write("#ifdef __i386__\n") + datfile.write("case 0x%08x: win_msg->m_cubParam = %s; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); %s((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break;\n" % (cb_id, windows_struct.get_size(), l2w_handler_name)) + datfile.write("#endif\n") + + datfile.write("#ifdef __x86_64__\n") + datfile.write("case 0x%08x: win_msg->m_cubParam = %s; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); %s((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break;\n" % (cb_id64, windows_struct64.get_size(), l2w_handler_name64)) + datfile.write("#endif\n") + else: + datfile.write("case 0x%08x: win_msg->m_cubParam = %s; win_msg->m_pubParam = HeapAlloc(GetProcessHeap(), 0, win_msg->m_cubParam); %s((void*)lin_msg.m_pubParam, (void*)win_msg->m_pubParam); break;\n" % (cb_id, windows_struct.get_size(), l2w_handler_name)) generated_cb_handlers.append(l2w_handler_name) if not cb_num in cb_table.keys(): # latest SDK linux size, list of windows struct sizes and names cb_table[cb_num] = (struct.type.get_size(), []) + if l2w_handler_name64: + cb_table64[cb_num] = (struct64.get_size(), []) cb_table[cb_num][1].append((windows_struct.get_size(), struct_name)) hfile = open("cb_converters.h", "a") hfile.write("struct %s;\n" % struct.displayname) - hfile.write("struct win%s;\n" % struct_name) - hfile.write("extern void %s(const struct %s *l, struct win%s *w);\n\n" % (l2w_handler_name, struct.displayname, struct_name)) + if l2w_handler_name64: + cb_table64[cb_num][1].append((windows_struct64.get_size(), struct_name64)) + hfile.write("#ifdef __i386__\n") + hfile.write("struct win%s;\n" % struct_name) + hfile.write("extern void %s(const struct %s *l, struct win%s *w);\n" % (l2w_handler_name, struct.displayname, struct_name)) + hfile.write("#endif\n") + hfile.write("#ifdef __x86_64__\n") + hfile.write("struct win%s;\n" % struct_name64) + hfile.write("extern void %s(const struct %s *l, struct win%s *w);\n" % (l2w_handler_name64, struct.displayname, struct_name64)) + hfile.write("#endif\n\n") + else: + hfile.write("struct win%s;\n" % struct_name) + hfile.write("extern void %s(const struct %s *l, struct win%s *w);\n\n" % (l2w_handler_name, struct.displayname, struct_name)) cppname = "struct_converters_%s.cpp" % sdkver file_exists = os.path.isfile(cppname) @@ -916,7 +976,15 @@ def handle_struct(sdkver, struct): cppfile.write(" %s->%s = %s->%s;\n" % (dst, m.displayname, src, m.displayname)) if not cb_num is None: - dump_win_struct(cppfile) + if l2w_handler_name64: + cppfile.write("#ifdef __i386__\n") + dump_win_struct(cppfile, struct_name) + cppfile.write("#endif\n") + cppfile.write("#ifdef __x86_64__\n") + dump_win_struct(cppfile, struct_name64) + cppfile.write("#endif\n") + else: + dump_win_struct(cppfile, struct_name) if w2l_handler_name: cppfile.write("void %s(const struct win%s *win, struct %s *lin)\n{\n" % (w2l_handler_name, struct_name, struct.displayname)) @@ -924,13 +992,25 @@ def handle_struct(sdkver, struct): handle_field(m, "win", "lin") cppfile.write("}\n\n") + if l2w_handler_name64: + cppfile.write("#ifdef __x86_64__\n") + cppfile.write("void %s(const struct %s *lin, struct win%s *win)\n{\n" % (l2w_handler_name64, struct.displayname, struct_name64)) + for m in struct.get_children(): + handle_field(m, "lin", "win") + cppfile.write("}\n") + cppfile.write("#endif\n\n") + if l2w_handler_name: + if l2w_handler_name64: + cppfile.write("#ifdef __i386__\n") cppfile.write("void %s(const struct %s *lin, struct win%s *win)\n{\n" % (l2w_handler_name, struct.displayname, struct_name)) for m in struct.get_children(): handle_field(m, "lin", "win") - cppfile.write("}\n\n") - -#clang.cindex.Config.set_library_file("/usr/lib/llvm-3.8/lib/libclang-3.8.so.1"); + cppfile.write("}\n") + if l2w_handler_name64: + cppfile.write("#endif\n\n") + else: + cppfile.write("\n") prog = re.compile("^#define\s*(\w*)\s*\"(.*)\"") for sdkver in sdk_versions: @@ -945,13 +1025,13 @@ for sdkver in sdk_versions: iface_versions[iface] = version for fname, classes in files: - # Parse as 32-bit C++ input_name = "steamworks_sdk_%s/%s" % (sdkver, fname) sys.stdout.write("about to parse %s\n" % input_name) if not os.path.isfile(input_name): continue index = clang.cindex.Index.create() linux_build = index.parse(input_name, args=['-x', 'c++', '-m32', '-Isteamworks_sdk_%s/' % sdkver, '-I' + CLANG_PATH + '/include/']) + linux_build64 = index.parse(input_name, args=['-x', 'c++', '-Isteamworks_sdk_%s/' % sdkver, '-I' + CLANG_PATH + '/include/']) diagnostics = list(linux_build.diagnostics) if len(diagnostics) > 0: @@ -959,6 +1039,7 @@ for sdkver in sdk_versions: pprint.pprint(diagnostics) else: windows_build = index.parse(input_name, args=['-x', 'c++', '-m32', '-Isteamworks_sdk_%s/' % sdkver, '-I' + CLANG_PATH + '/include/', '-mms-bitfields', '-U__linux__', '-Wno-incompatible-ms-struct']) + windows_build64 = index.parse(input_name, args=['-x', 'c++', '-Isteamworks_sdk_%s/' % sdkver, '-I' + CLANG_PATH + '/include/', '-mms-bitfields', '-U__linux__', '-Wno-incompatible-ms-struct']) diagnostics = list(windows_build.diagnostics) if len(diagnostics) > 0: print('There were parse errors (windows build)') @@ -980,6 +1061,9 @@ for f in cpp_files_need_close_brace: getapifile = open("cb_getapi_table.dat", "w") cbsizefile = open("cb_getapi_sizes.dat", "w") + +cbsizefile.write("#ifdef __i386__\n") +getapifile.write("#ifdef __i386__\n") for cb in cb_table.keys(): cbsizefile.write("case %u: /* %s */\n" % (cb, cb_table[cb][1][0][1])) cbsizefile.write(" return %u;\n" % cb_table[cb][0]) @@ -989,3 +1073,19 @@ for cb in cb_table.keys(): for (size, name) in cb_table[cb][1]: getapifile.write(" case %s: cb_%s(lin_callback, callback); break;\n" % (size, name)) getapifile.write(" }\n break;\n") +cbsizefile.write("#endif\n") +getapifile.write("#endif\n") + +cbsizefile.write("#ifdef __x86_64__\n") +getapifile.write("#ifdef __x86_64__\n") +for cb in cb_table64.keys(): + cbsizefile.write("case %u: /* %s */\n" % (cb, cb_table64[cb][1][0][1])) + cbsizefile.write(" return %u;\n" % cb_table64[cb][0]) + getapifile.write("case %u:\n" % cb) + getapifile.write(" switch(callback_len){\n") + getapifile.write(" default:\n") # the first one should be the latest, should best support future SDK versions + for (size, name) in cb_table64[cb][1]: + getapifile.write(" case %s: cb_%s(lin_callback, callback); break;\n" % (size, name)) + getapifile.write(" }\n break;\n") +cbsizefile.write("#endif\n") +getapifile.write("#endif\n") diff --git a/lsteamclient/struct_converters_132.cpp b/lsteamclient/struct_converters_132.cpp index c9b8bc4c..72ca8ba0 100644 --- a/lsteamclient/struct_converters_132.cpp +++ b/lsteamclient/struct_converters_132.cpp @@ -101,5 +101,93 @@ void lin_to_win_struct_SteamUGCDetails_t_132(const struct SteamUGCDetails_t *lin win->m_unNumChildren = lin->m_unNumChildren; } +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_ComboNeedsPaint_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pBGRA; + uint32 unWide; + uint32 unTall; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_ComboNeedsPaint_t_24 { + HHTMLBrowser unBrowserHandle; + const char * pBGRA; + uint32 unWide; + uint32 unTall; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_ComboNeedsPaint_t_24(const struct HTML_ComboNeedsPaint_t *lin, struct winHTML_ComboNeedsPaint_t_24 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pBGRA = lin->pBGRA; + win->unWide = lin->unWide; + win->unTall = lin->unTall; +} +#endif + +#ifdef __i386__ +void cb_HTML_ComboNeedsPaint_t_16(const struct HTML_ComboNeedsPaint_t *lin, struct winHTML_ComboNeedsPaint_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pBGRA = lin->pBGRA; + win->unWide = lin->unWide; + win->unTall = lin->unTall; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_NewWindow_t_24 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + uint32 unX; + uint32 unY; + uint32 unWide; + uint32 unTall; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_NewWindow_t_32 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + uint32 unX; + uint32 unY; + uint32 unWide; + uint32 unTall; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_NewWindow_t_32(const struct HTML_NewWindow_t *lin, struct winHTML_NewWindow_t_32 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->unX = lin->unX; + win->unY = lin->unY; + win->unWide = lin->unWide; + win->unTall = lin->unTall; +} +#endif + +#ifdef __i386__ +void cb_HTML_NewWindow_t_24(const struct HTML_NewWindow_t *lin, struct winHTML_NewWindow_t_24 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->unX = lin->unX; + win->unY = lin->unY; + win->unWide = lin->unWide; + win->unTall = lin->unTall; +} +#endif + } diff --git a/lsteamclient/struct_converters_144.cpp b/lsteamclient/struct_converters_144.cpp index 3dd2b7f9..d9759f78 100644 --- a/lsteamclient/struct_converters_144.cpp +++ b/lsteamclient/struct_converters_144.cpp @@ -791,6 +791,383 @@ void cb_DeleteItemResult_t_16(const struct DeleteItemResult_t *lin, struct winDe win->m_nPublishedFileId = lin->m_nPublishedFileId; } +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_NeedsPaint_t_48 { + HHTMLBrowser unBrowserHandle; + const char * pBGRA; + uint32 unWide; + uint32 unTall; + uint32 unUpdateX; + uint32 unUpdateY; + uint32 unUpdateWide; + uint32 unUpdateTall; + uint32 unScrollX; + uint32 unScrollY; + float flPageScale; + uint32 unPageSerial; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_NeedsPaint_t_56 { + HHTMLBrowser unBrowserHandle; + const char * pBGRA; + uint32 unWide; + uint32 unTall; + uint32 unUpdateX; + uint32 unUpdateY; + uint32 unUpdateWide; + uint32 unUpdateTall; + uint32 unScrollX; + uint32 unScrollY; + float flPageScale; + uint32 unPageSerial; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_NeedsPaint_t_56(const struct HTML_NeedsPaint_t *lin, struct winHTML_NeedsPaint_t_56 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pBGRA = lin->pBGRA; + win->unWide = lin->unWide; + win->unTall = lin->unTall; + win->unUpdateX = lin->unUpdateX; + win->unUpdateY = lin->unUpdateY; + win->unUpdateWide = lin->unUpdateWide; + win->unUpdateTall = lin->unUpdateTall; + win->unScrollX = lin->unScrollX; + win->unScrollY = lin->unScrollY; + win->flPageScale = lin->flPageScale; + win->unPageSerial = lin->unPageSerial; +} +#endif + +#ifdef __i386__ +void cb_HTML_NeedsPaint_t_48(const struct HTML_NeedsPaint_t *lin, struct winHTML_NeedsPaint_t_48 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pBGRA = lin->pBGRA; + win->unWide = lin->unWide; + win->unTall = lin->unTall; + win->unUpdateX = lin->unUpdateX; + win->unUpdateY = lin->unUpdateY; + win->unUpdateWide = lin->unUpdateWide; + win->unUpdateTall = lin->unUpdateTall; + win->unScrollX = lin->unScrollX; + win->unScrollY = lin->unScrollY; + win->flPageScale = lin->flPageScale; + win->unPageSerial = lin->unPageSerial; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_StartRequest_t_20 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchTarget; + const char * pchPostData; + bool bIsRedirect; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_StartRequest_t_40 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchTarget; + const char * pchPostData; + bool bIsRedirect; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_StartRequest_t_40(const struct HTML_StartRequest_t *lin, struct winHTML_StartRequest_t_40 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchTarget = lin->pchTarget; + win->pchPostData = lin->pchPostData; + win->bIsRedirect = lin->bIsRedirect; +} +#endif + +#ifdef __i386__ +void cb_HTML_StartRequest_t_20(const struct HTML_StartRequest_t *lin, struct winHTML_StartRequest_t_20 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchTarget = lin->pchTarget; + win->pchPostData = lin->pchPostData; + win->bIsRedirect = lin->bIsRedirect; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_URLChanged_t_24 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchPostData; + bool bIsRedirect; + const char * pchPageTitle; + bool bNewNavigation; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_URLChanged_t_48 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchPostData; + bool bIsRedirect; + const char * pchPageTitle; + bool bNewNavigation; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_URLChanged_t_48(const struct HTML_URLChanged_t *lin, struct winHTML_URLChanged_t_48 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchPostData = lin->pchPostData; + win->bIsRedirect = lin->bIsRedirect; + win->pchPageTitle = lin->pchPageTitle; + win->bNewNavigation = lin->bNewNavigation; +} +#endif + +#ifdef __i386__ +void cb_HTML_URLChanged_t_24(const struct HTML_URLChanged_t *lin, struct winHTML_URLChanged_t_24 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchPostData = lin->pchPostData; + win->bIsRedirect = lin->bIsRedirect; + win->pchPageTitle = lin->pchPageTitle; + win->bNewNavigation = lin->bNewNavigation; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_FinishedRequest_t_12 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchPageTitle; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_FinishedRequest_t_24 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + const char * pchPageTitle; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_FinishedRequest_t_24(const struct HTML_FinishedRequest_t *lin, struct winHTML_FinishedRequest_t_24 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchPageTitle = lin->pchPageTitle; +} +#endif + +#ifdef __i386__ +void cb_HTML_FinishedRequest_t_12(const struct HTML_FinishedRequest_t *lin, struct winHTML_FinishedRequest_t_12 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->pchPageTitle = lin->pchPageTitle; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_OpenLinkInNewTab_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_OpenLinkInNewTab_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_OpenLinkInNewTab_t_16(const struct HTML_OpenLinkInNewTab_t *lin, struct winHTML_OpenLinkInNewTab_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; +} +#endif + +#ifdef __i386__ +void cb_HTML_OpenLinkInNewTab_t_8(const struct HTML_OpenLinkInNewTab_t *lin, struct winHTML_OpenLinkInNewTab_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_ChangedTitle_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchTitle; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_ChangedTitle_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchTitle; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_ChangedTitle_t_16(const struct HTML_ChangedTitle_t *lin, struct winHTML_ChangedTitle_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchTitle = lin->pchTitle; +} +#endif + +#ifdef __i386__ +void cb_HTML_ChangedTitle_t_8(const struct HTML_ChangedTitle_t *lin, struct winHTML_ChangedTitle_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchTitle = lin->pchTitle; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_LinkAtPosition_t_20 { + HHTMLBrowser unBrowserHandle; + uint32 x; + uint32 y; + const char * pchURL; + bool bInput; + bool bLiveLink; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_LinkAtPosition_t_32 { + HHTMLBrowser unBrowserHandle; + uint32 x; + uint32 y; + const char * pchURL; + bool bInput; + bool bLiveLink; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_LinkAtPosition_t_32(const struct HTML_LinkAtPosition_t *lin, struct winHTML_LinkAtPosition_t_32 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->x = lin->x; + win->y = lin->y; + win->pchURL = lin->pchURL; + win->bInput = lin->bInput; + win->bLiveLink = lin->bLiveLink; +} +#endif + +#ifdef __i386__ +void cb_HTML_LinkAtPosition_t_20(const struct HTML_LinkAtPosition_t *lin, struct winHTML_LinkAtPosition_t_20 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->x = lin->x; + win->y = lin->y; + win->pchURL = lin->pchURL; + win->bInput = lin->bInput; + win->bLiveLink = lin->bLiveLink; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_JSAlert_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchMessage; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_JSAlert_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchMessage; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_JSAlert_t_16(const struct HTML_JSAlert_t *lin, struct winHTML_JSAlert_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMessage = lin->pchMessage; +} +#endif + +#ifdef __i386__ +void cb_HTML_JSAlert_t_8(const struct HTML_JSAlert_t *lin, struct winHTML_JSAlert_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMessage = lin->pchMessage; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_JSConfirm_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchMessage; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_JSConfirm_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchMessage; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_JSConfirm_t_16(const struct HTML_JSConfirm_t *lin, struct winHTML_JSConfirm_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMessage = lin->pchMessage; +} +#endif + +#ifdef __i386__ +void cb_HTML_JSConfirm_t_8(const struct HTML_JSConfirm_t *lin, struct winHTML_JSConfirm_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMessage = lin->pchMessage; +} +#endif + +#ifdef __i386__ #pragma pack( push, 8 ) struct winHTML_FileOpenDialog_t_12 { HHTMLBrowser unBrowserHandle; @@ -798,6 +1175,27 @@ struct winHTML_FileOpenDialog_t_12 { const char * pchInitialFile; } __attribute__ ((ms_struct)); #pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_FileOpenDialog_t_24 { + HHTMLBrowser unBrowserHandle; + const char * pchTitle; + const char * pchInitialFile; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_FileOpenDialog_t_24(const struct HTML_FileOpenDialog_t *lin, struct winHTML_FileOpenDialog_t_24 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchTitle = lin->pchTitle; + steamclient_unix_path_to_dos_path(1, lin->pchInitialFile, g_tmppath, sizeof(g_tmppath)); + win->pchInitialFile = g_tmppath; +} +#endif + +#ifdef __i386__ void cb_HTML_FileOpenDialog_t_12(const struct HTML_FileOpenDialog_t *lin, struct winHTML_FileOpenDialog_t_12 *win) { win->unBrowserHandle = lin->unBrowserHandle; @@ -805,6 +1203,155 @@ void cb_HTML_FileOpenDialog_t_12(const struct HTML_FileOpenDialog_t *lin, struct steamclient_unix_path_to_dos_path(1, lin->pchInitialFile, g_tmppath, sizeof(g_tmppath)); win->pchInitialFile = g_tmppath; } +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_NewWindow_t_28 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + uint32 unX; + uint32 unY; + uint32 unWide; + uint32 unTall; + HHTMLBrowser unNewWindow_BrowserHandle_IGNORE; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_NewWindow_t_40 { + HHTMLBrowser unBrowserHandle; + const char * pchURL; + uint32 unX; + uint32 unY; + uint32 unWide; + uint32 unTall; + HHTMLBrowser unNewWindow_BrowserHandle_IGNORE; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_NewWindow_t_40(const struct HTML_NewWindow_t *lin, struct winHTML_NewWindow_t_40 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->unX = lin->unX; + win->unY = lin->unY; + win->unWide = lin->unWide; + win->unTall = lin->unTall; + win->unNewWindow_BrowserHandle_IGNORE = lin->unNewWindow_BrowserHandle_IGNORE; +} +#endif + +#ifdef __i386__ +void cb_HTML_NewWindow_t_28(const struct HTML_NewWindow_t *lin, struct winHTML_NewWindow_t_28 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchURL = lin->pchURL; + win->unX = lin->unX; + win->unY = lin->unY; + win->unWide = lin->unWide; + win->unTall = lin->unTall; + win->unNewWindow_BrowserHandle_IGNORE = lin->unNewWindow_BrowserHandle_IGNORE; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_StatusText_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_StatusText_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_StatusText_t_16(const struct HTML_StatusText_t *lin, struct winHTML_StatusText_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif + +#ifdef __i386__ +void cb_HTML_StatusText_t_8(const struct HTML_StatusText_t *lin, struct winHTML_StatusText_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_ShowToolTip_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_ShowToolTip_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_ShowToolTip_t_16(const struct HTML_ShowToolTip_t *lin, struct winHTML_ShowToolTip_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif + +#ifdef __i386__ +void cb_HTML_ShowToolTip_t_8(const struct HTML_ShowToolTip_t *lin, struct winHTML_ShowToolTip_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif + +#ifdef __i386__ +#pragma pack( push, 8 ) +struct winHTML_UpdateToolTip_t_8 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +#pragma pack( push, 8 ) +struct winHTML_UpdateToolTip_t_16 { + HHTMLBrowser unBrowserHandle; + const char * pchMsg; +} __attribute__ ((ms_struct)); +#pragma pack( pop ) +#endif +#ifdef __x86_64__ +void cb_HTML_UpdateToolTip_t_16(const struct HTML_UpdateToolTip_t *lin, struct winHTML_UpdateToolTip_t_16 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif + +#ifdef __i386__ +void cb_HTML_UpdateToolTip_t_8(const struct HTML_UpdateToolTip_t *lin, struct winHTML_UpdateToolTip_t_8 *win) +{ + win->unBrowserHandle = lin->unBrowserHandle; + win->pchMsg = lin->pchMsg; +} +#endif #pragma pack( push, 8 ) struct winSteamInventoryStartPurchaseResult_t_24 {