此介面可新增 Steam 執行個體或連接現有的 Steam 執行個體,無論該 Steam 執行個體位於不同的處理程序或是本機中。
大部分情況下,這些作業皆是由
SteamAPI_Init 自動處理。
如您有更複雜的版本配置,或者想實作一個多工遊戲伺服器,在當中使用獨立的遊戲伺服器 Steam ID,以單一處理程序同時控制多款遊戲,才需要使用此 API 。
成員函式
ISteamClient
的成員函式可透過全域存取子函式
ISteamClient()
呼叫。
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 );
Create a Steam user that won't be shared with anyone else. 只用於遊戲伺服器。
執行緒不安全 - 請確保呼叫時無其它執行緒存取 Steamworks API!
傳回: HSteamUserSteamUser 的新控制代碼。
CreateSteamPipe
HSteamPipe CreateSteamPipe();
建立通向 Steam 用戶端的通訊管道。
執行緒不安全 - 請確保呼叫時無其它執行緒存取 Steamworks API!
傳回: HSteamPipeGetIPCCallCount
uint32 GetIPCCallCount();
傳回自上次呼叫此函式以來進行過的 IPC (處理序間通訊)呼叫數量。
用於性能偵錯,以得知遊戲每幀呼叫的 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 *
指向 SteamApps 實作的指標,該 SteamApps 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamController
ISteamController * GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamController 介面。
記錄介面目前版本的常數為:「STEAMCONTROLLER_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamController()
相同。
傳回: ISteamController *
指向 SteamController 實作的指標,該 SteamController 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamFriends
ISteamFriends * GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamFriends 介面。
記錄介面目前版本的常數為:「STEAMFRIENDS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamFriends()
相同。
傳回: ISteamFriends *
指向 SteamFriends 實作的指標,該 SteamFriends 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamGameServer
ISteamGameServer * GetISteamGameServer( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamGameServer 介面。
記錄介面目前版本的常數為:「STEAMGAMESERVER_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamGameServer()
相同。
傳回: ISteamGameServer *
指向 SteamGameServer 實作的指標,該 SteamGameServer 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamGameServerStats
ISteamGameServerStats * GetISteamGameServerStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamGameServerStats 介面。
記錄介面目前版本的常數為:「STEAMGAMESERVERSTATS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamGameServerStats()
相同。
傳回: ISteamGameServerStats *
指向 SteamGameServerStats 實作的指標,該 SteamGameServerStats 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 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 *
指向 SteamHTMLSurface 實作的指標,該 SteamHTMLSurface 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamHTTP
ISteamHTTP * GetISteamHTTP( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamHTTP 介面。
記錄介面目前版本的常數為:「STEAMHTTP_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamHTTP()
相同。
傳回: ISteamHTTP *
指向 SteamHTTP 實作的指標,該 SteamHTTP 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamInventory
ISteamInventory * GetISteamInventory( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamInventory 介面。
記錄介面目前版本的常數為:「STEAMINVENTORY_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamInventory()
相同。
傳回: ISteamInventory *
指向 SteamInventory 實作的指標,該 SteamInventory 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamMatchmaking
ISteamMatchmaking * GetISteamMatchmaking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamMatchmaking 介面。
記錄介面目前版本的常數為:「STEAMMATCHMAKING_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamMatchmaking()
相同。
傳回: ISteamMatchmaking *
指向 SteamMatchmaking 實作的指標,該 SteamMatchmaking 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamMatchmakingServers
ISteamMatchmakingServers * GetISteamMatchmakingServers( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamMatchmakingServers 介面。
記錄介面目前版本的常數為:「STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamMatchmakingServers()
相同。
傳回: ISteamMatchmakingServers *
指向 SteamMatchmakingServers 實作的指標,該 SteamMatchmakingServers 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamMusic
ISteamMusic * GetISteamMusic( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamMusic 介面。
記錄介面目前版本的常數為:「STEAMMUSIC_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamMusic()
相同。
傳回: ISteamMusic *
指向 SteamMusic 實作的指標,該 SteamMusic 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamMusicRemote
ISteamMusicRemote * GetISteamMusicRemote( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamMusicRemote 介面。
記錄介面目前版本的常數為:「STEAMMUSICREMOTE_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamMusicRemote()
相同。
傳回: ISteamMusicRemote *
指向 SteamMusicRemote 實作的指標,該 SteamMusicRemote 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamNetworking
ISteamNetworking * GetISteamNetworking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamNetworking 介面。
記錄介面目前版本的常數為:「STEAMNETWORKING_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamNetworking()
相同。
傳回: ISteamMatchmaking *
指向 SteamNetworking 實作的指標,該 SteamNetworking 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamRemoteStorage
ISteamRemoteStorage * GetISteamRemoteStorage( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamRemoteStorage 介面。
記錄介面目前版本的常數為:「STEAMREMOTESTORAGE_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamRemoteStorage()
相同。
傳回: ISteamRemoteStorage *
指向 SteamRemoteStorage 實作的指標,該 SteamRemoteStorage 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamScreenshots
ISteamScreenshots * GetISteamScreenshots( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamScreenshots 介面。
記錄介面目前版本的常數為:「STEAMSCREENSHOTS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamScreenshots()
相同。
傳回: ISteamScreenshots *
指向 SteamScreenshots 實作的指標,該 SteamScreenshots 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamUGC
ISteamUGC * GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamUGC 介面。
記錄介面目前版本的常數為:「STEAMUGC_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamUGC()
相同。
傳回: ISteamUGC *
指向 SteamUGC 實作的指標,該 SteamUGC 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamUnifiedMessages
ISteamUnifiedMessages * GetISteamUnifiedMessages( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamUnifiedMessages 介面。
記錄介面目前版本的常數為:「STEAMUNIFIEDMESSAGES_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamUnifiedMessages()
相同。
傳回: ISteamUnifiedMessages *
指向 SteamUnifiedMessages 實作的指標,該 SteamUnifiedMessages 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamUser
ISteamUser * GetISteamUser( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamUser 介面。
記錄介面目前版本的常數為:「STEAMUSER_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamUser()
相同。
傳回: ISteamUser *
指向 SteamUser 實作的指標,該 SteamUser 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamUserStats
ISteamUserStats * GetISteamUserStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamUserStats 介面。
記錄介面目前版本的常數為:「STEAMUSERSTATS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamUserStats()
相同。
傳回: ISteamUserStats *
指向 SteamUserStats 實作的指標,該 SteamUserStats 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamUtils
ISteamUtils * GetISteamUtils( HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamUtils 介面。
記錄介面目前版本的常數為:「STEAMUTILS_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamUtils()
相同。
傳回: ISteamUtils *
指向 SteamUtils 實作的指標,該 SteamUtils 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 NULL。
GetISteamVideo
ISteamVideo * GetISteamVideo( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱 | 型別 | 說明 |
hSteamUser | HSteamUser | 要取得介面的使用者控制代碼。 |
hSteamPipe | HSteamPipe | 存取介面的管道。 |
pchVersion | const char * | 辨識您所收到的介面版本的版本字串。 |
取出與指定使用者控制代碼關聯的
ISteamVideo 介面。
記錄介面目前版本的常數為:「STEAMVIDEO_INTERFACE_VERSION」。
正常情況下無須使用此函式,功能上也與呼叫全域存取子
SteamVideo()
相同。
傳回: ISteamVideo *
指向 SteamVideo 實作的指標,該 SteamVideo 與指定的 HSteamUser 關聯。
如果有任何無效引數,則傳回 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 中的 typedefs。
名稱 | 基礎型別 | 說明 |
HSteamPipe | int32 | 連接至 Steam 用戶端的通訊管道控制代碼。 |
HSteamUser | int32 | 某 Steam 使用者的單一執行個體的控制代碼。 |