Steamworks 文獻庫
ISteamClient 介面
此介面可新增 Steam 執行個體或連接現有的 Steam 執行個體,無論該 Steam 執行個體位於不同的處理程序或是本機中。

大部分情況下,這些作業皆是由 SteamAPI_Init 自動處理。
如您有更複雜的版本配置,或者想實作一個多工遊戲伺服器,在當中使用獨立的遊戲伺服器 Steam ID,以單一處理程序同時控制多款遊戲,才需要使用此 API 。

成員函式

ISteamClient 的成員函式可透過全域存取子函式 ISteamClient() 呼叫。

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

Create a Steam user that won't be shared with anyone else. 只用於遊戲伺服器。

執行緒不安全 - 請確保呼叫時無其它執行緒存取 Steamworks API!

傳回: HSteamUser
SteamUser 的新控制代碼。

CreateSteamPipe

HSteamPipe CreateSteamPipe();
建立通向 Steam 用戶端的通訊管道。
執行緒不安全 - 請確保呼叫時無其它執行緒存取 Steamworks API!

傳回: HSteamPipe

GetIPCCallCount

uint32 GetIPCCallCount();
傳回自上次呼叫此函式以來進行過的 IPC (處理序間通訊)呼叫數量。

用於性能偵錯,以得知遊戲每幀呼叫的 IPC 數量。 所有 IPC 呼叫,如果不是處理程序切換,則最小也是執行程序環境切換,因此得小心檢查,可能要控制使用 IPC 呼叫的速率。

傳回: uint32

GetISteamApps

ISteamApps * GetISteamApps( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamApps 介面。

記錄介面目前版本的常數為:「STEAMAPPS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamApps() 相同。

傳回: ISteamApps *
指向 SteamApps 實作的指標,該 SteamApps 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamController

ISteamController * GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamController 介面。

記錄介面目前版本的常數為:「STEAMCONTROLLER_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamController() 相同。

傳回: ISteamController *
指向 SteamController 實作的指標,該 SteamController 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamFriends

ISteamFriends * GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamFriends 介面。

記錄介面目前版本的常數為:「STEAMFRIENDS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamFriends() 相同。

傳回: ISteamFriends *
指向 SteamFriends 實作的指標,該 SteamFriends 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamGameServer

ISteamGameServer * GetISteamGameServer( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamGameServer 介面。

記錄介面目前版本的常數為:「STEAMGAMESERVER_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamGameServer() 相同。

傳回: ISteamGameServer *
指向 SteamGameServer 實作的指標,該 SteamGameServer 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamGameServerStats

ISteamGameServerStats * GetISteamGameServerStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamGameServerStats 介面。

記錄介面目前版本的常數為:「STEAMGAMESERVERSTATS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamGameServerStats() 相同。

傳回: ISteamGameServerStats *
指向 SteamGameServerStats 實作的指標,該 SteamGameServerStats 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 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 *
指向 SteamHTMLSurface 實作的指標,該 SteamHTMLSurface 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamHTTP

ISteamHTTP * GetISteamHTTP( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamHTTP 介面。

記錄介面目前版本的常數為:「STEAMHTTP_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子SteamHTTP() 相同。

傳回: ISteamHTTP *
指向 SteamHTTP 實作的指標,該 SteamHTTP 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamInventory

ISteamInventory * GetISteamInventory( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamInventory 介面。

記錄介面目前版本的常數為:「STEAMINVENTORY_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamInventory() 相同。

傳回: ISteamInventory *
指向 SteamInventory 實作的指標,該 SteamInventory 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamMatchmaking

ISteamMatchmaking * GetISteamMatchmaking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamMatchmaking 介面。

記錄介面目前版本的常數為:「STEAMMATCHMAKING_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamMatchmaking() 相同。

傳回: ISteamMatchmaking *
指向 SteamMatchmaking 實作的指標,該 SteamMatchmaking 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamMatchmakingServers

ISteamMatchmakingServers * GetISteamMatchmakingServers( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamMatchmakingServers 介面。

記錄介面目前版本的常數為:「STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamMatchmakingServers() 相同。

傳回: ISteamMatchmakingServers *
指向 SteamMatchmakingServers 實作的指標,該 SteamMatchmakingServers 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamMusic

ISteamMusic * GetISteamMusic( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamMusic 介面。

記錄介面目前版本的常數為:「STEAMMUSIC_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamMusic() 相同。

傳回: ISteamMusic *
指向 SteamMusic 實作的指標,該 SteamMusic 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamMusicRemote

ISteamMusicRemote * GetISteamMusicRemote( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamMusicRemote 介面。

記錄介面目前版本的常數為:「STEAMMUSICREMOTE_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamMusicRemote() 相同。

傳回: ISteamMusicRemote *
指向 SteamMusicRemote 實作的指標,該 SteamMusicRemote 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamNetworking

ISteamNetworking * GetISteamNetworking( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamNetworking 介面。

記錄介面目前版本的常數為:「STEAMNETWORKING_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamNetworking() 相同。

傳回: ISteamMatchmaking *
指向 SteamNetworking 實作的指標,該 SteamNetworking 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamRemoteStorage

ISteamRemoteStorage * GetISteamRemoteStorage( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamRemoteStorage 介面。

記錄介面目前版本的常數為:「STEAMREMOTESTORAGE_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamRemoteStorage() 相同。

傳回: ISteamRemoteStorage *
指向 SteamRemoteStorage 實作的指標,該 SteamRemoteStorage 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamScreenshots

ISteamScreenshots * GetISteamScreenshots( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamScreenshots 介面。

記錄介面目前版本的常數為:「STEAMSCREENSHOTS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamScreenshots() 相同。

傳回: ISteamScreenshots *
指向 SteamScreenshots 實作的指標,該 SteamScreenshots 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamUGC

ISteamUGC * GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamUGC 介面。

記錄介面目前版本的常數為:「STEAMUGC_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamUGC() 相同。

傳回: ISteamUGC *
指向 SteamUGC 實作的指標,該 SteamUGC 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamUnifiedMessages

ISteamUnifiedMessages * GetISteamUnifiedMessages( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamUnifiedMessages 介面。

記錄介面目前版本的常數為:「STEAMUNIFIEDMESSAGES_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamUnifiedMessages() 相同。

傳回: ISteamUnifiedMessages *
指向 SteamUnifiedMessages 實作的指標,該 SteamUnifiedMessages 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamUser

ISteamUser * GetISteamUser( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamUser 介面。

記錄介面目前版本的常數為:「STEAMUSER_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamUser() 相同。

傳回: ISteamUser *
指向 SteamUser 實作的指標,該 SteamUser 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamUserStats

ISteamUserStats * GetISteamUserStats( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamUserStats 介面。

記錄介面目前版本的常數為:「STEAMUSERSTATS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamUserStats() 相同。

傳回: ISteamUserStats *
指向 SteamUserStats 實作的指標,該 SteamUserStats 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamUtils

ISteamUtils * GetISteamUtils( HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamUtils 介面。

記錄介面目前版本的常數為:「STEAMUTILS_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamUtils() 相同。

傳回: ISteamUtils *
指向 SteamUtils 實作的指標,該 SteamUtils 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 NULL。

GetISteamVideo

ISteamVideo * GetISteamVideo( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion );
名稱型別說明
hSteamUserHSteamUser要取得介面的使用者控制代碼。
hSteamPipeHSteamPipe存取介面的管道。
pchVersionconst char *辨識您所收到的介面版本的版本字串。

取出與指定使用者控制代碼關聯的 ISteamVideo 介面。

記錄介面目前版本的常數為:「STEAMVIDEO_INTERFACE_VERSION」。

正常情況下無須使用此函式,功能上也與呼叫全域存取子 SteamVideo() 相同。

傳回: ISteamVideo *
指向 SteamVideo 實作的指標,該 SteamVideo 與指定的 HSteamUser 關聯。

如果有任何無效引數,則傳回 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 中的 typedefs。

名稱基礎型別說明
HSteamPipeint32連接至 Steam 用戶端的通訊管道控制代碼。
HSteamUserint32某 Steam 使用者的單一執行個體的控制代碼。