Steamworks 文献库
ISteamClient 接口
用于创建新 Steam 实例或连接现有 Steam 实例的接口,不论该实例是否在不同的进程或在本地。

在大部分情况下可通过 SteamAPI_Init 自动处理。
如果您有更复杂的版本方案,或者您想实现一个多路复用游戏服务器,在其中使用独立的游戏服务器 Steam ID 由单一进程同时处理多个游戏,才需要使用这些 API。

成员函数

ISteamClient 的成员函数通过全局访问器函数 SteamClient() 调用。

BReleaseSteamPipe

bool BReleaseSteamPipe( HSteamPipe hSteamPipe );
名称类型描述
hSteamPipeHSteamPipe要释放的管道。

释放此前创建的通信管道。

线程不安全 - 请确保调用时无其他线程访问 Steamworks API!

返回: bool
true 表明管道有效且成功释放,否则返回 false

BShutdownIfAllPipesClosed

bool BShutdownIfAllPipesClosed();
如果所有管道均关闭,则触发 DLL 全局关闭。

返回: bool

ConnectToGlobalUser

HSteamUser ConnectToGlobalUser( HSteamPipe hSteamPipe );
名称类型描述
hSteamPipeHSteamPipe要连接的管道。

与现有全局用户连接,如不存在此类用户则失败。

游戏用此来与 Steam UI 协调。

线程不安全 - 请确保调用时无其他线程访问 Steamworks API!

返回: HSteamUser
全局用户的 HSteamUser 句柄。 如管道无效或无全局用户则在失败时返回 0。

CreateLocalUser

HSteamUser CreateLocalUser( HSteamPipe *phSteamPipe, EAccountType eAccountType );
名称类型描述
phSteamPipeHSteamPipe *
eAccountTypeEAccountType

创建不会与任何他人分享的 Steam 用户。 只用于游戏服务器。

线程不安全 - 请确保调用时无其他线程访问 Steamworks API!

返回: HSteamUser
指向 SteamUser 的新句柄。

CreateSteamPipe

HSteamPipe CreateSteamPipe();
创建通向 Steam 客户端的通信管道。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!

返回: HSteamPipe

GetIPCCallCount

uint32 GetIPCCallCount();
返回自上次调用此函数起的 IPC(进程间通信)调用数量。

用于性能调试,由此您可知您游戏每帧所进行的 IPC 调用数量。 每个 IPC 调用如果不是进程切换也至少是线程上下文切换,因此您需要小心谨慎,可能要对使用频率进行控制。

返回: uint32

GetISteamApps

ISteamApps * GetISteamApps( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamApps 接口。

包含当前版本接口的常量为:“STEAMAPPS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamApps() 相同。

返回: ISteamApps *
指针,指向与给定 HSteamUser 相关联的 SteamApps 的实现。

如果任何参数无效,则返回 NULL。

GetISteamController

ISteamController * GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamController 接口。

包含当前版本接口的常量为:“STEAMCONTROLLER_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamController() 相同。

返回: ISteamController *
指针,指向与给定 HSteamUser 相关联的 SteamController 的实现。

如果任何参数无效,则返回 NULL。

GetISteamFriends

ISteamFriends * GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamFriends 接口。

包含当前版本接口的常量为:“STEAMFRIENDS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamFriends() 相同。

返回: ISteamFriends *
指针,指向与给定 HSteamUser 相关联的 SteamFriends 的实现。

如果任何参数无效,则返回 NULL。

GetISteamGameServer

ISteamGameServer * GetISteamGameServer( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamGameServer 接口。

包含当前版本接口的常量为:“STEAMGAMESERVER_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamGameServer() 相同。

返回: ISteamGameServer *
指针,指向与给定 HSteamUser 相关联的 SteamGameServer 的实现。

如果任何参数无效,则返回 NULL。

GetISteamGameServerStats

ISteamGameServerStats * GetISteamGameServerStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamGameServerStats 接口。

包含当前版本接口的常量为:“STEAMGAMESERVERSTATS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamGameServerStats() 相同。

返回: ISteamGameServerStats *
指针,指向与给定 HSteamUser 相关联的 SteamGameServerStats 的实现。

如果任何参数无效,则返回 NULL。

GetISteamGenericInterface

void * GetISteamGenericInterface( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的泛型接口。

正常情况下您无需使用。

返回: void *
指针,指向与给定 HSteamUser 相关联的一个接口的实现。

如果任何参数无效,则返回 NULL。

GetISteamHTMLSurface

ISteamHTMLSurface * GetISteamHTMLSurface( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 SteamHTMLSurface 接口。

包含当前版本接口的常量为:“STEAMHTMLSURFACE_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamHTMLSurface() 相同。

返回: ISteamHTMLSurface *
指针,指向与给定 HSteamUser 相关联的 SteamHTMLSurface 的实现。

如果任何参数无效,则返回 NULL。

GetISteamHTTP

ISteamHTTP * GetISteamHTTP( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamHTTP 接口。

包含当前版本接口的常量为:“STEAMHTTP_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamHTTP() 相同。

返回: ISteamHTTP *
指针,指向与给定 HSteamUser 相关联的 SteamHTTP 的实现。

如果任何参数无效,则返回 NULL。

GetISteamInventory

ISteamInventory * GetISteamInventory( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamInventory 接口。

包含当前版本接口的常量为:“STEAMINVENTORY_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamInventory() 相同。

返回: ISteamInventory *
指针,指向与给定 HSteamUser 相关联的 SteamInventory 的实现。

如果任何参数无效,则返回 NULL。

GetISteamMatchmaking

ISteamMatchmaking * GetISteamMatchmaking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamMatchmaking 接口。

包含当前版本接口的常量为:“STEAMMATCHMAKING_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamMatchmaking() 相同。

返回: ISteamMatchmaking *
指针,指向与给定 HSteamUser 相关联的 SteamMatchmaking 的实现。

如果任何参数无效,则返回 NULL。

GetISteamMatchmakingServers

ISteamMatchmakingServers * GetISteamMatchmakingServers( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamMatchmakingServers 接口。

包含当前版本接口的常量为:“STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamMatchmakingServers() 相同。

返回: ISteamMatchmakingServers *
指针,指向与给定 HSteamUser 相关联的 SteamMatchmakingServers 的实现。

如果任何参数无效,则返回 NULL。

GetISteamMusic

ISteamMusic * GetISteamMusic( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamuserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamMusic 接口。

包含当前版本接口的常量为:“STEAMMUSIC_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamMusic() 相同。

返回: ISteamMusic *
指针,指向与给定 HSteamUser 相关联的 SteamMusic 的实现。

如果任何参数无效,则返回 NULL。

GetISteamMusicRemote

ISteamMusicRemote * GetISteamMusicRemote( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamMusicRemote 接口。

包含当前版本接口的常量为:“STEAMMUSICREMOTE_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamMusicRemote() 相同。

返回: ISteamMusicRemote *
指针,指向与给定 HSteamUser 相关联的 SteamMusicRemote 的实现。

如果任何参数无效,则返回 NULL。

GetISteamNetworking

ISteamNetworking * GetISteamNetworking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamNetworking 接口。

包含当前版本接口的常量为:“STEAMNETWORKING_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamNetworking() 相同。

返回: ISteamNetworking *
指针,指向与给定 HSteamUser 相关联的 SteamNetworking 的实现。

如果任何参数无效,则返回 NULL。

GetISteamRemoteStorage

ISteamRemoteStorage * GetISteamRemoteStorage( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamRemoteStorage 接口。

包含当前版本接口的常量为:“STEAMREMOTESTORAGE_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamRemoteStorage() 相同。

返回: ISteamRemoteStorage *
指针,指向与给定 HSteamUser 相关联的 SteamRemoteStorage 的实现。

如果任何参数无效,则返回 NULL。如果任何参数无效,则返回 NULL。如果任何参数无效,则返回 NULL。

GetISteamScreenshots

ISteamScreenshots * GetISteamScreenshots( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamScreenshots 接口。

包含当前版本接口的常量为:“STEAMSCREENSHOTS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamScreenshots() 相同。

返回: ISteamScreenshots *
指针,指向与给定 HSteamUser 相关联的 SteamScreenshots 的实现。

如果任何参数无效,则返回 NULL。

GetISteamUGC

ISteamUGC * GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamUGC 接口。

包含当前版本接口的常量为:“STEAMUGC_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamUGC() 相同。

返回: ISteamUGC *
指针,指向与给定 HSteamUser 相关联的 SteamUGC 的实现。

如果任何参数无效,则返回 NULL。

GetISteamUnifiedMessages

ISteamUnifiedMessages * GetISteamUnifiedMessages( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamUnifiedMessages 接口。

包含当前版本接口的常量为:“STEAMUNIFIEDMESSAGES_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamUnifiedMessages() 相同。

返回: ISteamUnifiedMessages *
指针,指向与给定 HSteamUser 相关联的 SteamUnifiedMessages 的实现。

如果任何参数无效,则返回 NULL。

GetISteamUser

ISteamUser * GetISteamUser( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamuserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamUser 接口。

包含当前版本接口的常量为:“STEAMUSER_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamUser() 相同。

返回: ISteamUser *
指针,指向与给定 HSteamUser 相关联的 SteamUser 的实现。

如果任何参数无效,则返回 NULL。

GetISteamUserStats

ISteamUserStats * GetISteamUserStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamUserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamUserStats 接口。

包含当前版本接口的常量为:“STEAMUSERSTATS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamUserStats() 相同。

返回: ISteamUserStats *
指针,指向与给定 HSteamUser 相关联的 SteamUserStats 的实现。

如果任何参数无效,则返回 NULL。

GetISteamUtils

ISteamUtils * GetISteamUtils( HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取与指定用户句柄相关联的 ISteamUtils 接口。

包含当前版本接口的常量为:“STEAMUTILS_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamUtils() 相同。

返回: isteamUtils *
指向实现与给定 hsteamUtils 相关的指针。

如果任何参数无效,则返回 NULL。

GetISteamVideo

ISteamVideo * GetISteamVideo( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称类型描述
hSteamuserHSteamUser获取接口的用户句柄。
hSteamPipeHSteamPipe访问接口的管道。
pchVersionconst char *识别您所收到的接口版本的版本字符串。

获取出与指定用户句柄相关联的 ISteamVideo 接口。

包含当前版本接口的常量为:“STEAMVIDEO_INTERFACE_VERSION”。

正常情况下您无需使用,通常在功能上与调用全局访问器 SteamVideo() 相同。

返回: ISteamVideo *
指针,指向与给定 HSteamUser 相关联的 SteamVideo 的实现。

如果任何参数无效,则返回 NULL。

ReleaseUser

void ReleaseUser( HSteamPipe hSteamPipe, HSteamUser hUser );
名称类型描述
hSteamPipeHSteamPipe要移除用户的连接管道。
hUserHSteamUser要移除的用户。

移除已分配用户。

线程不安全 - 请确保调用时无其他线程访问 Steamworks API!

SetLocalIPBinding

void SetLocalIPBinding( uint32 unIP, uint16 usPort );
名称类型描述
unIPuint32要绑定的本地 IP。
usPortuint16要绑定的端口。

设置要绑定的本地 IP 及端口。

必须在调用 CreateLocalUser 之前设置!

SetWarningMessageHook

void SetWarningMessageHook( SteamAPIWarningMessageHook_t pFunction );
名称类型描述
pFunctionSteamAPIWarningMessageHook_t指向回调函数的函数指针。

设置一个警告消息挂钩,以在回调函数中接收 SteamAPI 警告及信息消息。

函数原型必须与在 SteamAPIWarningMessageHook_t 中的定义一致。 包括外部“C”链接及 __cdecl 调用约定。

“int nSeverity”为严重级别,0 为消息,1 为警告。 如果您在调试器中运行,只会发出警告。 如果您将 -debug_steamapi 添加到命令行,那么还将发送信息性消息。
'const char * pchDebugText' 是消息文本。
回调将在调用生成警告或消息的 API 函数后直接发生

传入 NULL 可解除挂钩。

示例:
extern "C" void __cdecl SteamAPIDebugTextHook( int nSeverity, const char *pchDebugText ) { ::OutputDebugString( pchDebugText ); if ( nSeverity >= 1 ) { //在这里设置断点以捕获 API 错误 int x = 3; x = x; } } void EnableWarningMessageHook() { SteamUtils()->SetWarningMessageHook( &SteamAPIDebugTextHook ); }

Typedefs

以下为定义来与 IsteamClient 一起使用的 typedef。

名称基类型描述
HSteamPipeint32指向 Steam 客户端通信管道的句柄。
HSteamuserint32指向一个 Steam 用户的单一实例的句柄。