用于创建新 Steam 实例或连接现有 Steam 实例的接口,不论该实例是否在不同的进程或在本地。
在大部分情况下可通过
SteamAPI_Init 自动处理。
如果您有更复杂的版本方案,或者您想实现一个多路复用游戏服务器,在其中使用独立的游戏服务器 Steam ID 由单一进程同时处理多个游戏,才需要使用这些 API。
成员函数
ISteamClient
的成员函数通过全局访问器函数
SteamClient()
调用。
BReleaseSteamPipe
bool BReleaseSteamPipe( HSteamPipe hSteamPipe );
释放此前创建的通信管道。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!
返回: bool
true 表明管道有效且成功释放,否则返回
false。
BShutdownIfAllPipesClosed
bool BShutdownIfAllPipesClosed();
如果所有管道均关闭,则触发 DLL 全局关闭。
返回: bool
ConnectToGlobalUser
HSteamUser ConnectToGlobalUser( HSteamPipe hSteamPipe );
与现有全局用户连接,如不存在此类用户则失败。
游戏用此来与 Steam UI 协调。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!
返回: HSteamUser全局用户的 HSteamUser 句柄。 如管道无效或无全局用户则在失败时返回 0。
CreateLocalUser
HSteamUser CreateLocalUser( HSteamPipe *phSteamPipe, EAccountType eAccountType );
创建不会与任何他人分享的 Steam 用户。 只用于游戏服务器。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!
返回: HSteamUser指向 SteamUser 的新句柄。
CreateSteamPipe
HSteamPipe CreateSteamPipe();
创建通向 Steam 客户端的通信管道。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!
返回: HSteamPipeGetIPCCallCount
uint32 GetIPCCallCount();
返回自上次调用此函数起的 IPC(进程间通信)调用数量。
用于性能调试,由此您可知您游戏每帧所进行的 IPC 调用数量。 每个 IPC 调用如果不是进程切换也至少是线程上下文切换,因此您需要小心谨慎,可能要对使用频率进行控制。
返回: uint32GetISteamApps
ISteamApps * GetISteamApps( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamApps 接口。
包含当前版本接口的常量为:“STEAMAPPS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamApps()
相同。
返回: ISteamApps *
指针,指向与给定 HSteamUser 相关联的 SteamApps 的实现。
如果任何参数无效,则返回 NULL。
GetISteamController
ISteamController * GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamController 接口。
包含当前版本接口的常量为:“STEAMCONTROLLER_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamController()
相同。
返回: ISteamController *
指针,指向与给定 HSteamUser 相关联的 SteamController 的实现。
如果任何参数无效,则返回 NULL。
GetISteamFriends
ISteamFriends * GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamFriends 接口。
包含当前版本接口的常量为:“STEAMFRIENDS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamFriends()
相同。
返回: ISteamFriends *
指针,指向与给定 HSteamUser 相关联的 SteamFriends 的实现。
如果任何参数无效,则返回 NULL。
GetISteamGameServer
ISteamGameServer * GetISteamGameServer( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamGameServer 接口。
包含当前版本接口的常量为:“STEAMGAMESERVER_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamGameServer()
相同。
返回: ISteamGameServer *
指针,指向与给定 HSteamUser 相关联的 SteamGameServer 的实现。
如果任何参数无效,则返回 NULL。
GetISteamGameServerStats
ISteamGameServerStats * GetISteamGameServerStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamGameServerStats 接口。
包含当前版本接口的常量为:“STEAMGAMESERVERSTATS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamGameServerStats()
相同。
返回: ISteamGameServerStats *
指针,指向与给定 HSteamUser 相关联的 SteamGameServerStats 的实现。
如果任何参数无效,则返回 NULL。
GetISteamGenericInterface
void * GetISteamGenericInterface( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的泛型接口。
正常情况下您无需使用。
返回: void *
指针,指向与给定 HSteamUser 相关联的一个接口的实现。
如果任何参数无效,则返回 NULL。
GetISteamHTMLSurface
ISteamHTMLSurface * GetISteamHTMLSurface( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
SteamHTMLSurface 接口。
包含当前版本接口的常量为:“STEAMHTMLSURFACE_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamHTMLSurface()
相同。
返回: ISteamHTMLSurface *
指针,指向与给定 HSteamUser 相关联的 SteamHTMLSurface 的实现。
如果任何参数无效,则返回 NULL。
GetISteamHTTP
ISteamHTTP * GetISteamHTTP( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamHTTP 接口。
包含当前版本接口的常量为:“STEAMHTTP_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamHTTP()
相同。
返回: ISteamHTTP *
指针,指向与给定 HSteamUser 相关联的 SteamHTTP 的实现。
如果任何参数无效,则返回 NULL。
GetISteamInventory
ISteamInventory * GetISteamInventory( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamInventory 接口。
包含当前版本接口的常量为:“STEAMINVENTORY_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamInventory()
相同。
返回: ISteamInventory *
指针,指向与给定 HSteamUser 相关联的 SteamInventory 的实现。
如果任何参数无效,则返回 NULL。
GetISteamMatchmaking
ISteamMatchmaking * GetISteamMatchmaking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamMatchmaking 接口。
包含当前版本接口的常量为:“STEAMMATCHMAKING_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamMatchmaking()
相同。
返回: ISteamMatchmaking *
指针,指向与给定 HSteamUser 相关联的 SteamMatchmaking 的实现。
如果任何参数无效,则返回 NULL。
GetISteamMatchmakingServers
ISteamMatchmakingServers * GetISteamMatchmakingServers( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamMatchmakingServers 接口。
包含当前版本接口的常量为:“STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamMatchmakingServers()
相同。
返回: ISteamMatchmakingServers *
指针,指向与给定 HSteamUser 相关联的 SteamMatchmakingServers 的实现。
如果任何参数无效,则返回 NULL。
GetISteamMusic
ISteamMusic * GetISteamMusic( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamuser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamMusic 接口。
包含当前版本接口的常量为:“STEAMMUSIC_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamMusic()
相同。
返回: ISteamMusic *
指针,指向与给定 HSteamUser 相关联的 SteamMusic 的实现。
如果任何参数无效,则返回 NULL。
GetISteamMusicRemote
ISteamMusicRemote * GetISteamMusicRemote( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamMusicRemote 接口。
包含当前版本接口的常量为:“STEAMMUSICREMOTE_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamMusicRemote()
相同。
返回: ISteamMusicRemote *
指针,指向与给定 HSteamUser 相关联的 SteamMusicRemote 的实现。
如果任何参数无效,则返回 NULL。
GetISteamNetworking
ISteamNetworking * GetISteamNetworking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamNetworking 接口。
包含当前版本接口的常量为:“STEAMNETWORKING_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamNetworking()
相同。
返回: ISteamNetworking *
指针,指向与给定 HSteamUser 相关联的 SteamNetworking 的实现。
如果任何参数无效,则返回 NULL。
GetISteamRemoteStorage
ISteamRemoteStorage * GetISteamRemoteStorage( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamRemoteStorage 接口。
包含当前版本接口的常量为:“STEAMREMOTESTORAGE_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamRemoteStorage()
相同。
返回: ISteamRemoteStorage *
指针,指向与给定 HSteamUser 相关联的 SteamRemoteStorage 的实现。
如果任何参数无效,则返回 NULL。如果任何参数无效,则返回 NULL。如果任何参数无效,则返回 NULL。
GetISteamScreenshots
ISteamScreenshots * GetISteamScreenshots( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamScreenshots 接口。
包含当前版本接口的常量为:“STEAMSCREENSHOTS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamScreenshots()
相同。
返回: ISteamScreenshots *
指针,指向与给定 HSteamUser 相关联的 SteamScreenshots 的实现。
如果任何参数无效,则返回 NULL。
GetISteamUGC
ISteamUGC * GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamUGC 接口。
包含当前版本接口的常量为:“STEAMUGC_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamUGC()
相同。
返回: ISteamUGC *
指针,指向与给定 HSteamUser 相关联的 SteamUGC 的实现。
如果任何参数无效,则返回 NULL。
GetISteamUnifiedMessages
ISteamUnifiedMessages * GetISteamUnifiedMessages( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamUnifiedMessages 接口。
包含当前版本接口的常量为:“STEAMUNIFIEDMESSAGES_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamUnifiedMessages()
相同。
返回: ISteamUnifiedMessages *
指针,指向与给定 HSteamUser 相关联的 SteamUnifiedMessages 的实现。
如果任何参数无效,则返回 NULL。
GetISteamUser
ISteamUser * GetISteamUser( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamuser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamUser 接口。
包含当前版本接口的常量为:“STEAMUSER_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamUser()
相同。
返回: ISteamUser *
指针,指向与给定 HSteamUser 相关联的 SteamUser 的实现。
如果任何参数无效,则返回 NULL。
GetISteamUserStats
ISteamUserStats * GetISteamUserStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamUser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamUserStats 接口。
包含当前版本接口的常量为:“STEAMUSERSTATS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamUserStats()
相同。
返回: ISteamUserStats *
指针,指向与给定 HSteamUser 相关联的 SteamUserStats 的实现。
如果任何参数无效,则返回 NULL。
GetISteamUtils
ISteamUtils * GetISteamUtils( HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取与指定用户句柄相关联的
ISteamUtils 接口。
包含当前版本接口的常量为:“STEAMUTILS_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamUtils()
相同。
返回: isteamUtils *
指向实现与给定 hsteamUtils 相关的指针。
如果任何参数无效,则返回 NULL。
GetISteamVideo
ISteamVideo * GetISteamVideo( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名称 | 类型 | 描述 |
hSteamuser | HSteamUser | 获取接口的用户句柄。 |
hSteamPipe | HSteamPipe | 访问接口的管道。 |
pchVersion | const char * | 识别您所收到的接口版本的版本字符串。 |
获取出与指定用户句柄相关联的
ISteamVideo 接口。
包含当前版本接口的常量为:“STEAMVIDEO_INTERFACE_VERSION”。
正常情况下您无需使用,通常在功能上与调用全局访问器
SteamVideo()
相同。
返回: ISteamVideo *
指针,指向与给定 HSteamUser 相关联的 SteamVideo 的实现。
如果任何参数无效,则返回 NULL。
ReleaseUser
void ReleaseUser( HSteamPipe hSteamPipe, HSteamUser hUser );
移除已分配用户。
线程不安全 - 请确保调用时无其他线程访问 Steamworks API!
SetLocalIPBinding
void SetLocalIPBinding( uint32 unIP, uint16 usPort );
设置要绑定的本地 IP 及端口。
必须在调用
CreateLocalUser 之前设置!
SetWarningMessageHook
void SetWarningMessageHook( SteamAPIWarningMessageHook_t pFunction );
名称 | 类型 | 描述 |
pFunction | SteamAPIWarningMessageHook_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。
名称 | 基类型 | 描述 |
HSteamPipe | int32 | 指向 Steam 客户端通信管道的句柄。 |
HSteamuser | int32 | 指向一个 Steam 用户的单一实例的句柄。 |