mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-05-13 07:09:35 +03:00
lsteamclient: Use a templated wrapper for ISteamUtils GetAPICallResult.
This commit is contained in:
parent
334cce3426
commit
ac408239a9
@ -96,6 +96,14 @@ extern void steamclient_free_path_array( const char **path_array );
|
|||||||
extern unsigned int steamclient_unix_path_to_dos_path( bool api_result, const char *src, char *dst,
|
extern unsigned int steamclient_unix_path_to_dos_path( bool api_result, const char *src, char *dst,
|
||||||
uint32_t dst_bytes, int is_url );
|
uint32_t dst_bytes, int is_url );
|
||||||
|
|
||||||
|
#define LSTEAMCLIENT_UNIX_IMPL( iface, version, method, ... ) \
|
||||||
|
NTSTATUS iface ## _ ## version ## _ ## method( void *args ) \
|
||||||
|
{ \
|
||||||
|
auto params = (struct iface ## _ ## version ## _ ## method ## _params *)args; \
|
||||||
|
auto u_iface = (struct u_ ## iface ## _ ## version *)params->linux_side; \
|
||||||
|
return iface ## _ ## method( u_iface, params, ## __VA_ARGS__ ); \
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -6,12 +6,9 @@
|
|||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
|
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils002 */
|
template< typename Iface, typename Params >
|
||||||
|
static NTSTATUS ISteamUtils_GetAPICallResult( Iface *iface, Params *params )
|
||||||
NTSTATUS ISteamUtils_SteamUtils002_GetAPICallResult( void *args )
|
|
||||||
{
|
{
|
||||||
struct ISteamUtils_SteamUtils002_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils002_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils002 *iface = (struct u_ISteamUtils_SteamUtils002 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
int u_callback_len = params->cubCallback;
|
||||||
void *u_callback;
|
void *u_callback;
|
||||||
|
|
||||||
@ -33,191 +30,18 @@ NTSTATUS ISteamUtils_SteamUtils002_GetAPICallResult( void *args )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils004 */
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils002, GetAPICallResult );
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils004_GetAPICallResult( void *args )
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils004, GetAPICallResult );
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils004_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils004_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils004 *iface = (struct u_ISteamUtils_SteamUtils004 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils005, GetAPICallResult );
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils006, GetAPICallResult );
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils007, GetAPICallResult );
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils005 */
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils008, GetAPICallResult );
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils005_GetAPICallResult( void *args )
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils009, GetAPICallResult );
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils005_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils005_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils005 *iface = (struct u_ISteamUtils_SteamUtils005 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
LSTEAMCLIENT_UNIX_IMPL( ISteamUtils, SteamUtils010, GetAPICallResult );
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils006 */
|
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils006_GetAPICallResult( void *args )
|
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils006_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils006_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils005 *iface = (struct u_ISteamUtils_SteamUtils005 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils007 */
|
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils007_GetAPICallResult( void *args )
|
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils007_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils007_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils007 *iface = (struct u_ISteamUtils_SteamUtils007 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils008 */
|
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils008_GetAPICallResult( void *args )
|
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils008_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils008_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils008 *iface = (struct u_ISteamUtils_SteamUtils008 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils009 */
|
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils009_GetAPICallResult( void *args )
|
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils009_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils009_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils009 *iface = (struct u_ISteamUtils_SteamUtils009 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ISteamUtils_SteamUtils010 */
|
|
||||||
|
|
||||||
NTSTATUS ISteamUtils_SteamUtils010_GetAPICallResult( void *args )
|
|
||||||
{
|
|
||||||
struct ISteamUtils_SteamUtils010_GetAPICallResult_params *params = (struct ISteamUtils_SteamUtils010_GetAPICallResult_params *)args;
|
|
||||||
struct u_ISteamUtils_SteamUtils010 *iface = (struct u_ISteamUtils_SteamUtils010 *)params->linux_side;
|
|
||||||
int u_callback_len = params->cubCallback;
|
|
||||||
void *u_callback;
|
|
||||||
|
|
||||||
if (!(u_callback = alloc_callback_wtou( params->iCallbackExpected, params->pCallback, &u_callback_len )))
|
|
||||||
{
|
|
||||||
params->_ret = FALSE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
params->_ret = iface->GetAPICallResult( params->hSteamAPICall, u_callback, u_callback_len,
|
|
||||||
params->iCallbackExpected, params->pbFailed );
|
|
||||||
if (params->_ret && u_callback != params->pCallback)
|
|
||||||
{
|
|
||||||
convert_callback_utow( params->iCallbackExpected, u_callback, u_callback_len,
|
|
||||||
params->pCallback, params->cubCallback );
|
|
||||||
free( u_callback );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user