Documentação do Steamworks
steam_api.h
Oferece a base para inicializar e acessar a API do Steamworks.

Todos os tipos listados aqui são definições globais, não associadas a APIs específicas.

Funções


Estas são funções globais, que não precisam de uma interface para configurar. Saiba mais sobre essas funções em Visão geral da API do Steamworks.

SteamAPI_Init

S_API bool S_CALLTYPE SteamAPI_Init();
Inicializa a API do Steamworks.

Consulte Inicialização e encerramento para mais informações.

Retorna: bool
true indica que todas as interfaces foram adquiridas e podem ser acessadas.
false indica uma das condições a seguir:
  • O cliente Steam não está em execução. É necessário que o cliente Steam esteja em execução para oferecer implementações das várias interfaces do Steamworks.
  • Não foi possível determinar o ID do aplicativo. Se estiver executando o aplicativo diretamente do executável ou depurador, então inclua um arquivo steam_appid.txt, no mesmo diretório do executável do jogo, que contenha apenas o ID do aplicativo e nada mais. O Steam buscará esse arquivo no diretório de trabalho atual. Se estiver executando o executável a partir de um diretório diferente, pode ser necessário mover o arquivo steam_appid.txt.
  • O aplicativo não está sendo executado no mesmo contexto de usuário do SO que o cliente Steam, como um usuário ou nível de acesso administrativo diferente.
  • Confirme que possui uma licença para o ID de aplicativo na conta Steam corrente. O jogo deve estar disponível na Biblioteca Steam.
  • O ID de aplicativo não está completamente configurado, i.é., em Situação de lançamento: Indisponível ou sem pacotes padrão.

Exemplo:
int main() { if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Substitua k_uAppIdInvalid com o AppID do seu aplicativo { return 1; } if ( !SteamAPI_Init() ) { printf( "Erro fatal - O Steam precisa estar em execução para jogar (SteamAPI_Init() falhou).\n" ); return 1; } return 0; }

SteamAPI_ReleaseCurrentThreadMemory

S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory();
Libera a memória alocada pela API do Steamworks associada à thread chamadora.

Muitas funções da API do Steamworks alocam uma pequena quantidade de memória local à thread para armazenamento de parâmetros; chamar esta função liberará a memória manualmente. Essa função é chamada automaticamente pela função SteamAPI_RunCallbacks, então um programa que só acessa a API do Steamworks de um única thread nunca precisará chamar essa função explicitamente.

SteamAPI_RestartAppIfNecessary

S_API bool S_CALLTYPE SteamAPI_RestartAppIfNecessary( uint32 unOwnAppID );
NomeTipoDescrição
unOwnAppIDuint32O AppID do título.

Verifica se o executável foi iniciado pelo Steam; caso contrário, o executável será reiniciado pelo Steam.

Consulte Inicialização e encerramento para mais informações.

Retorna: bool
Se retornar true, então o cliente Steam será iniciado se necessário e o jogo será iniciado novamente por ele, e o processo atual deverá ser encerrado o mais breve possível. Essa função basicamente executa o URI steam://run/<AppID>, então o executável iniciado pela função pode não ser o mesmo executável chamador da função, por sempre reiniciar a partir da versão instalada na pasta da Biblioteca Steam.

Caso contrário (se retornar false), então o jogo foi iniciado pelo cliente Steam e não é necessário realizar qualquer ação. Uma exceção é quando o arquivo steam_appid.txt estiver presente: nesse caso o valor de retorno sempre será false. Isso permite o desenvolvimento e testes sem precisar iniciar o jogo pelo cliente Steam. Não se esqueça de remover o arquivo steam_appid.txt ao enviar o jogo ao depot do Steam!

Exemplo:
int main() { if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Substitua k_uAppIdInvalid com o AppID do seu aplicativo { return 1; } if ( !SteamAPI_Init() ) { printf( "Erro fatal - O Steam precisa estar em execução para jogar (SteamAPI_Init() falhou).\n" ); return 1; } return 0; }

SteamAPI_RunCallbacks

S_API void S_CALLTYPE SteamAPI_RunCallbacks();
Despacha retornos e resultados de chamada a todos os observadores registrados.

É melhor chamar essa função a >10 Hz; quanto mais tempo entre chamadas, maior a latência entre o recebimento de eventos e resultados da API do Steamworks. A maioria dos jogos chama a função uma vez por quadro de renderização. Todas as funções observadoras registradas serão invocadas durante a chamada, no contexto da thread da função chamadora.

A SteamAPI_RunCallbacks pode ser chamada de várias threads simultaneamente, mas se escolher fazê-lo, o código dos retornos de chamada pode ser executado em qualquer thread. Uma alternativa é chamar a função SteamAPI_RunCallbacks apenas a partir da thread principal e chamar a função SteamAPI_ReleaseCurrentThreadMemory regularmente em outras threads.

SteamAPI_SetMiniDumpComment

S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg );
NomeTipoDescrição
pchMsgconst char *A mensagem a anexar ao minidump. Deve conter o terminador nulo ao fim.

Anexa um comentário arbitrário para incorporar ao minidump.

Alguns exemplos do que incluir: o nível atual no momento do travamento, quantidade de jogadores no servidor, memória livre etc.
Deve ser chamada antes da função SteamAPI_WriteMiniDump.
AVISO: Só funciona em versões 32 bits do Windows!

SteamAPI_Shutdown

S_API void S_CALLTYPE SteamAPI_Shutdown();
Encerra a API do Steamworks, desassocia ponteiros e libera memória.

Chame-a durante o encerramento do processo se possível.

Isso não desvinculará o Painel Steam do jogo, já que não há garantia de que a sua API de renderização terminou de usá-lo.

SteamAPI_WriteMiniDump

S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID );
NomeTipoDescrição
uStructuredExceptionCodeuint32O código da exceção estruturada.
pvExceptionInfovoid*Os EXCEPTION_POINTERS que contêm os dados da exceção.
uBuildIDuint32Um ID de versão para saber qual versão do aplicativo enviou o minidump. Não é igual ao ID de versão usado no Steam; este ID é usado apenas no relatório.

Grava e envia um minidump para relatar travamentos.

Consulte Relatórios de erro do Steam para mais informações.

Para adicionar um comentário (opcional), chame a função SteamAPI_SetMiniDumpComment antes desta.
AVISO: só funciona em versões 32 bits do Windows.

Exemplo:
#ifdef _WIN32 #include <Windows.h> void FuncaoMiniDump( unsigned int nCodExcecao, EXCEPTION_POINTERS *pExcecao ) { // Voce pode criar e definir um comentario arbitrario para incorporar ao minidump, // como o nivel atual no momento do travamento, quantidade de jogadores no servidor, // quantidade de memoria livre etc... SteamAPI_SetMiniDumpComment( "Comentario do minidump: SteamworksExample.exe/n" ); // O 0 aqui definido eh o ID de versao, que nao eh definido por nos SteamAPI_WriteMiniDump( nCodExcecao, pExcecao, 0 ); } int RealMain( HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow ) { __debugbreak(); return 0; } int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // O que fazemos aqui eh chamar a funcao principal real depois de configurar o se translator, // permitindo a captura de excecoes e passagem de relatorios ao Steam. // // Observe que voce deve definir os sinalizadores (flags) do compilador corretamente para ativar // o tratamento de excecoes estruturado para que esta forma de configuracao funcione. if ( IsDebuggerPresent() ) { // Nao queremos mascarar excecoes (ou passa-los ao Steam!) durante a depuracao. // Se quiser verificar o tratamento passo a passo, anexe um depurador // depois de executar o jogo fora do depurador. return RealMain( lpCmdLine, hInstance, nCmdShow ); } _set_se_translator( FuncaoMiniDump ); try // este bloco try permite o funcionamento do SE translator { return RealMain( hInstance, lpCmdLine, nCmdShow ); } catch( ... ) { return -1; } } #endif

Structs

Estas são as structs com as quais steam_api podem retornar e/ou interagir.

CGameID

O identificador único para jogos Steam.

CSteamID

O identificador único para contas, grupos, salas de partida e salas de conversa no Steam.
Consulte EAccountType e EUniverse.

Enumerações

Estas são as enumerações definidas para uso com steam_api.

EAccountType

Tipos de contas Steam. Usada internamente na struct CSteamID.

NomeValorDescrição
k_EAccountTypeInvalid0Usado para IDs Steam inválidos.
k_EAccountTypeIndividual1Conta de usuário normal.
k_EAccountTypeMultiseat2Conta multiassentos (ex.: Cyber Café).
k_EAccountTypeGameServer3Conta de servidor persistente (não anônima).
k_EAccountTypeAnonGameServer4Conta de servidor anônima.
k_EAccountTypePending5Pendente.
k_EAccountTypeContentServer6Conta de servidor de conteúdo para uso interno da Valve.
k_EAccountTypeClan7Grupo Steam (clã).
k_EAccountTypeChat8Sala de conversa ou de partida.
k_EAccountTypeConsoleUser9ID Steam falso para conta local da PSN no PS3 ou do Xbox Live no Xbox 360 etc.
k_EAccountTypeAnonUser10Conta anônima. (Usada para cadastrar-se ou redefinir a senha)
k_EAccountTypeMax11Máximo de 16 itens neste campo.

EAppOwnershipFlags

Sinalizadores (flags) que representam dados de titularidade de um AppID. (Apenas para uso interno do Steam)

NomeValorDescrição
k_EAppOwnershipFlags_None0x0000Desconhecido.
k_EAppOwnershipFlags_OwnsLicense0x0001Possui uma licença do aplicativo.
k_EAppOwnershipFlags_FreeLicense0x0002O usuário não pagou pelo aplicativo.
k_EAppOwnershipFlags_RegionRestricted0x0004Possui o aplicativo, mas não tem permissão para jogar na região atual.
k_EAppOwnershipFlags_LowViolence0x0008Só possui uma versão de baixa violência.
k_EAppOwnershipFlags_InvalidPlatform0x0010Aplicativo indisponível na plataforma atual.
k_EAppOwnershipFlags_SharedLicense0x0020Licença compartilhada em um dispositivo autorizado por meio do Compartilhamento de Biblioteca Steam.
k_EAppOwnershipFlags_FreeWeekend0x0040Acesso disponibilizado por uma licença de fim de semana gratuito.
k_EAppOwnershipFlags_RetailLicense0x0080(Em desuso) Possui uma licença de varejo do jogo (código de produto etc.).
k_EAppOwnershipFlags_LicenseLocked0x0100Licença compartilhada bloqueada (em uso) por outro usuário.
k_EAppOwnershipFlags_LicensePending0x0200Possui aplicativo, mas a transação ainda está pendente. Não pode instalar ou baixar.
k_EAppOwnershipFlags_LicenseExpired0x0400Não possui mais o aplicativo devido à expiração de licença.
k_EAppOwnershipFlags_LicensePermanent0x0800Licença permanente: não compartilhada, passe de convidado, fim de semana gratuito etc.
k_EAppOwnershipFlags_LicenseRecurring0x1000Licença recorrente: o usuário é cobrado periodicamente.
k_EAppOwnershipFlags_LicenseCanceled0x2000Licença marcada como cancelada, mas pode ainda estar ativa se for recorrente.
k_EAppOwnershipFlags_AutoGrant0x4000Titularidade baseada em uma licença de concessão automática.
k_EAppOwnershipFlags_PendingGift0x8000Usuário tem um presente pendente para ativar.
k_EAppOwnershipFlags_RentalNotActivated0x10000Aluguel ainda não ativado.
k_EAppOwnershipFlags_Rental0x20000É um aluguel.
k_EAppOwnershipFlags_SiteLicense0x40000É de uma licença de local público.

EAppReleaseState

Situação de lançamento de um AppID. (Apenas para uso interno do Steam)

NomeValorDescrição
k_EAppReleaseState_Unknown0Desconhecido, não foi possível recuperar os dados do aplicativo ou dados da licença ausentes.
k_EAppReleaseState_Unavailable1Mesmo que o usuário possua o aplicativo, não poderá vê-lo.
k_EAppReleaseState_Prerelease2Pode ser comprado e é exibido na lista de jogos, nada mais.
k_EAppReleaseState_PreloadOnly3Titulares podem pré-carregar aplicativo, mas não jogá-lo.
k_EAppReleaseState_Released4Titulares podem baixar e jogar o aplicativo.

EAppType

Tipo do AppID, mais informações em Tipos de aplicativos (Apenas para uso interno do Steam)

NomeValorDescrição
k_EAppType_Invalid0x000Desconhecido/inválido.
k_EAppType_Game0x001Jogo jogável, tipo padrão.
k_EAppType_Application0x002Aplicativo de software.
k_EAppType_Tool0x004SDKs, editores e servidores dedicados.
k_EAppType_Demo0x008Demonstração de jogo.
k_EAppType_Media_DEPRECATED0x010Antigo — era usado para trailers de jogos, que agora são apenas vídeos na web.
k_EAppType_DLC0x020Conteúdo adicional (DLC).
k_EAppType_Guide0x040Guia do jogo, PDF etc.
k_EAppType_Driver0x080Atualizador de driver de hardware (ATI, Razor etc.).
k_EAppType_Config0x100Aplicativo oculto usado para configurar recursos do Steam (mochila, promoções etc.).
k_EAppType_Hardware0x200Dispositivo de Hardware Steam (Máquina Steam, Controle Steam, Steam Link etc.).
k_EAppType_Franchise0x400Uma central para coleções de vários aplicativos, como filmes, séries e jogos.
k_EAppType_Video0x800Um componente em vídeo de um filme ou série de TV (um especial, episódio, prévia, bastidores etc.).
k_EAppType_Plugin0x1000Tipos plug-ins para outros aplicativos.
k_EAppType_Music0x2000Arquivos de música.
k_EAppType_Series0x4000Aplicativo que representa uma série em vídeo.
k_EAppType_Shortcut0x40000000Apenas um atalho, usado apenas no cliente.
k_EAppType_DepotOnly0x80000000Provisório, já que depots e aplicativos compartilham do mesmo espaço de nomes.

EAuthSessionResponse

Valores de retorno do retorno de chamada ValidateAuthTicketResponse_t, que é disparado como resposta às funções ISteamUser::BeginAuthSession e ISteamGameServer::BeginAuthSession.

NomeValorDescrição
k_EAuthSessionResponseOK0O Steam verificou que o usuário está on-line, o ticket é válido e não reciclado.
k_EAuthSessionResponseUserNotConnectedToSteam1O usuário em questão não está conectado ao Steam.
k_EAuthSessionResponseNoLicenseOrExpired2O usuário não tem uma licença do AppID ou o ticket perdeu a validade.
k_EAuthSessionResponseVACBanned3O usuário foi banido do jogo pelo VAC.
k_EAuthSessionResponseLoggedInElseWhere4A conta foi usada para iniciar a sessão em outro lugar e a sessão que continua a instância do jogo foi desconectada.
k_EAuthSessionResponseVACCheckTimedOut5O VAC não pôde realizar a varredura antitrapaça na máquina do usuário.
k_EAuthSessionResponseAuthTicketCanceled6O ticket foi cancelado pelo emissor.
k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed7Ticket já usado, logo não é mais válido.
k_EAuthSessionResponseAuthTicketInvalid8Ticket não pertencente à instância do usuário atualmente conectada ao Steam.
k_EAuthSessionResponsePublisherIssuedBan9Usuário banido do jogo. O banimento foi realizado pela Web API e não pelo VAC.

EBeginAuthSessionResult

Resultados retornados das funções ISteamUser::BeginAuthSession e ISteamGameServer::BeginAuthSession.

NomeValorDescrição
k_EBeginAuthSessionResultOK0Ticket válido para o jogo e o ID Steam.
k_EBeginAuthSessionResultInvalidTicket1Ticket inválido.
k_EBeginAuthSessionResultDuplicateRequest2Um ticket já foi enviado para o ID Steam associado.
k_EBeginAuthSessionResultInvalidVersion3Ticket de uma versão incompatível da interface.
k_EBeginAuthSessionResultGameMismatch4O ticket não é do jogo.
k_EBeginAuthSessionResultExpiredTicket5Ticket fora da validade.

EBroadcastUploadResult

Resultado de envio de transmissão por meio de BroadcastUploadStop_t.

NomeValorDescrição
k_EBroadcastUploadResultNone0Estado da transmissão desconhecido.
k_EBroadcastUploadResultOK1Transmissão bem-sucedida, sem problemas.
k_EBroadcastUploadResultInitFailed2Falha ao inicializar transmissão.
k_EBroadcastUploadResultFrameFailed3Falha ao enviar quadro da transmissão.
k_EBroadcastUploadResultTimeout4Tempo esgotado ao enviar transmissão.
k_EBroadcastUploadResultBandwidthExceeded5Transmissão enviou dados demais.
k_EBroadcastUploadResultLowFPS6Taxa de quadros da transmissão baixa demais.
k_EBroadcastUploadResultMissingKeyFrames7A transmissão não está enviando quadros-chave (keyframes) suficientes.
k_EBroadcastUploadResultNoConnection8Cliente de transmissão falhou em conectar-se ao retransmissor.
k_EBroadcastUploadResultRelayFailed9Retransmissão descartou o envio.
k_EBroadcastUploadResultSettingsChanged10O cliente alterou as configurações de transmissão.
k_EBroadcastUploadResultMissingAudio11O cliente falhou em enviar dados de áudio.
k_EBroadcastUploadResultTooFarBehind12O cliente demorou demais para enviar dados.
k_EBroadcastUploadResultTranscodeBehind13O servidor não conseguiu acompanhar a transcodificação.

EChatEntryType

Tipos de entrada de conversa.

Retornada pelas funções ISteamFriends::GetFriendMessage, ISteamFriends::GetClanChatMessage e ISteamMatchmaking::GetLobbyChatEntry.

NomeValorDescrição
k_EChatEntryTypeInvalid0Inválido.
k_EChatEntryTypeChatMsg1Mensagem de texto normal de outro usuário.
k_EChatEntryTypeTyping2O outro usuário está digitando. Não usado em conversas com vários usuários.
k_EChatEntryTypeInviteGame3Convite de outro usuário para se juntar à partida atual dele.
k_EChatEntryTypeEmote4Mensagem de emote de texto (em desuso, deve ser tratado como tipo ChatMsg).
k_EChatEntryTypeLeftConversation6Um usuário saiu da conversa (fechou a janela de conversa).
k_EChatEntryTypeEntered7Um usuário entrou na conversa. Usado em conversas com vários usuários e de grupos.
k_EChatEntryTypeWasKicked8Usuário expulso (Dados: ID Steam do usuário expulsor).
k_EChatEntryTypeWasBanned9Usuário banido (Dados: ID Steam do usuário banidor).
k_EChatEntryTypeDisconnected10Usuário desconectou-se.
k_EChatEntryTypeHistoricalChat11Uma mensagem de conversa do histórico de conversa do usuário ou deixada enquanto o usuário estava off-line.
k_EChatEntryTypeLinkBlocked14Um link foi removido pelo filtro.

EChatRoomEnterResponse

Respostas ao entrar em uma sala de conversa.

NomeValorDescrição
k_EChatRoomEnterResponseSuccess1Sucesso.
k_EChatRoomEnterResponseDoesntExist2Conversa inexistente (provavelmente fechada).
k_EChatRoomEnterResponseNotAllowed3Recusa geral — Você não tem permissão para entrar na conversa.
k_EChatRoomEnterResponseFull4Sala de conversa lotada.
k_EChatRoomEnterResponseError5Erro inesperado.
k_EChatRoomEnterResponseBanned6Você foi banido da sala de conversa e não pode voltar.
k_EChatRoomEnterResponseLimited7Não é permitido entrar na conversa por ser um usuário limitado (conta sem valor).
k_EChatRoomEnterResponseClanDisabled8Tentativa de entrar em conversa de clã quando este está trancado ou desativado.
k_EChatRoomEnterResponseCommunityBan9Tentativa de entrar na conversa quando o usuário possui restrição da Comunidade na conta.
k_EChatRoomEnterResponseMemberBlockedYou10Falha ao entrar — um usuário participante da conversa bloqueou você.
k_EChatRoomEnterResponseYouBlockedMember11Falha ao entrar — você bloqueou um usuário participante da conversa.
k_EChatRoomEnterResponseRatelimitExceeded15Join failed - too many join attempts in a very short period of time.

EChatSteamIDInstanceFlags

Sinalizadores (flags) especiais para contas de conversa — eles vão nos 8 bits mais significativos do campo "instance" do ID Steam, deixando 12 para identificar a instância.

NomeValorDescrição
k_EChatAccountInstanceMask0x00000FFFOs 8 bits mais significativos são sinalizadores (flags).
k_EChatInstanceFlagClan( k_unSteamAccountInstanceMask + 1 ) >> 1O ID Steam é de um grupo Steam.
k_EChatInstanceFlagLobby( k_unSteamAccountInstanceMask + 1 ) >> 2O ID Steam é de uma sala de partida.
k_EChatInstanceFlagMMSLobby( k_unSteamAccountInstanceMask + 1 ) >> 3O ID Steam é de uma sala MMS.

EDenyReason

Valores de resultado quando um cliente não consegue entrar ou foi expulso de um servidor. Obtido a partir de GSClientDeny_t e GSClientKick_t.

NomeValorDescrição
k_EDenyInvalid0Desconhecido.
k_EDenyInvalidVersion1O cliente e o servidor não estão usando a mesma versão.
k_EDenyGeneric2Genérico.
k_EDenyNotLoggedOn3O cliente não iniciou a sessão.
k_EDenyNoLicense4O cliente não tem uma licença para jogar o jogo.
k_EDenyCheater5O cliente foi banido pelo VAC.
k_EDenyLoggedInElseWhere6O cliente iniciou a sessão em outro lugar.
k_EDenyUnknownText7
k_EDenyIncompatibleAnticheat8
k_EDenyMemoryCorruption9
k_EDenyIncompatibleSoftware10
k_EDenySteamConnectionLost11O servidor perdeu a conexão ao Steam.
k_EDenySteamConnectionError12O servidor teve um erro geral ao conectar-se ao Steam.
k_EDenySteamResponseTimedOut13O tempo de conexão do servidor ao Steam esgotou.
k_EDenySteamValidationStalled14O cliente ainda não se autenticou junto ao Steam.
k_EDenySteamOwnerLeftGuestUser15O titular do jogo compartilhado saiu; disparado para cada convidado do titular.

EGameIDType

Usado para descrever o tipo do CGameID.

NomeValorDescrição
k_EGameIDTypeApp0O ID do jogo é um aplicativo comum do Steam.
k_EGameIDTypeGameMod1O ID do jogo é uma modificação.
k_EGameIDTypeShortcut2O ID do jogo é um atalho.
k_EGameIDTypeP2P3O ID do jogo é um arquivo P2P.

ELaunchOptionType

Códigos para opções de inicialização bem definidas, correspondem ao campo "Tipo de inicialização" nas opções de inicialização do aplicativo, que podem ser encontradas na página Configurações gerais de instalação.

Há uma função especial, BIsVRLaunchOptionType, para verificar se o tipo é uma das opções de inicialização em RV.

NomeValorDescrição
k_ELaunchOptionType_None0Não especificado.
k_ELaunchOptionType_Default1Executa o aplicativo no modo padrão.
k_ELaunchOptionType_SafeMode2Executa o aplicativo no modo de segurança.
k_ELaunchOptionType_Multiplayer3Executa o jogo no modo multijogador.
k_ELaunchOptionType_Config4Executa a ferramenta de configuração do aplicativo.
k_ELaunchOptionType_OpenVR5Executa o aplicativo no modo RV usando o OpenVR.
k_ELaunchOptionType_Server6Executa o servidor dedicado do aplicativo.
k_ELaunchOptionType_Editor7Executa o editor do aplicativo.
k_ELaunchOptionType_Manual8Exibe o manual do aplicativo.
k_ELaunchOptionType_Benchmark9Executa a ferramenta de verificação de desempenho (benchmark) do aplicativo.
k_ELaunchOptionType_Option110Opção de execução genérica, usa o campo de descrição como o nome do aplicativo.
k_ELaunchOptionType_Option211Opção de execução genérica, usa o campo de descrição como o nome do aplicativo.
k_ELaunchOptionType_Option312Opção de execução genérica, usa o campo de descrição como o nome do aplicativo.
k_ELaunchOptionType_OculusVR13Executa o aplicativo no modo RV usando o Oculus SDK.
k_ELaunchOptionType_OpenVROverlay14Executa uma sobreposição de painel do OpenVR.
k_ELaunchOptionType_OSVR15Executa o aplicativo no modo RV usando o OSVR SDK.
k_ELaunchOptionType_Dialog1000Exibe a janela de opções de inicialização.

EMarketingMessageFlags

Sinalizadores (flags) de mensagens de divulgação do Steam que alteram o tratamento destas pelo cliente.

NomeValorDescrição
k_EMarketingMessageFlagsNone0
k_EMarketingMessageFlagsHighPriority1 << 0
k_EMarketingMessageFlagsPlatformWindows1 << 1
k_EMarketingMessageFlagsPlatformMac1 << 2
k_EMarketingMessageFlagsPlatformLinux1 << 3
k_EMarketingMessageFlagsPlatformRestrictions=sinalizadores (flags) agregados

ENotificationPosition

Posições possíveis de exibição de notificações no painel. Usada com a função ISteamUtils::SetOverlayNotificationPosition.

NomeValorDescrição
k_EPositionTopLeft0Canto superior esquerdo.
k_EPositionTopRight1Canto superior direito.
k_EPositionBottomLeft2Canto inferior esquerdo.
k_EPositionBottomRight3Canto inferior direito.

EResult

Códigos de resultado de erro do Steam.

Costumam ser retornados por funções, retornos de chamada e resultados de chamada tanto pela API C++ quanto pela Web API do Steamworks. Se uma API retornar códigos EResult, consulte a documentação da função ou retorno de chamada para saber os valores retornáveis e o que significam no contexto da chamada.
Similar ao tipo HRESULT da API Win32 ou do errno de sistemas POSIX.

NomeValorDescrição
k_EResultOK1Sucesso.
k_EResultFail2Falha genérica.
k_EResultNoConnection3O cliente Steam não tem uma conexão ao backend.
k_EResultInvalidPassword5Senha/ticket inválido.
k_EResultLoggedInElsewhere6O usuário iniciou a sessão em outro lugar.
k_EResultInvalidProtocolVer7Versão incorreta do protocolo.
k_EResultInvalidParam8Um parâmetro está incorreto.
k_EResultFileNotFound9Arquivo não encontrado.
k_EResultBusy10Método chamado ocupado — ação não realizada.
k_EResultInvalidState11O objeto chamado estava em um estado inválido.
k_EResultInvalidName12Nome inválido.
k_EResultInvalidEmail13E-mail inválido.
k_EResultDuplicateName14Nome duplicado.
k_EResultAccessDenied15Acesso negado.
k_EResultTimeout16Tempo esgotado para a operação.
k_EResultBanned17Usuário banido pelo VAC2.
k_EResultAccountNotFound18Conta não encontrada.
k_EResultInvalidSteamID19ID Steam inválido.
k_EResultServiceUnavailable20O serviço requisitado está atualmente indisponível.
k_EResultNotLoggedOn21Usuário não iniciou a sessão.
k_EResultPending22Requisição pendente, por estar em processamento ou aguardando resposta de terceiros.
k_EResultEncryptionFailure23Falha ao (des)criptografar.
k_EResultInsufficientPrivilege24Permissões insuficientes.
k_EResultLimitExceeded25Limite ultrapassado.
k_EResultRevoked26Acesso revogado (usado para passes de convidado revogados).
k_EResultExpired27A licença ou passe de convidado que o usuário está tentando acessar está fora da validade.
k_EResultAlreadyRedeemed28Passe de convidado já ativado pela conta, não pode ser usado novamente.
k_EResultDuplicateRequest29Requisição duplicada e a ação já ocorreu no passado, ignorada desta vez.
k_EResultAlreadyOwned30Todos os jogos da requisição de ativação de passe de convidado já fazem parte da conta do usuário.
k_EResultIPNotFound31Endereço IP não encontrado.
k_EResultPersistFailed32Falha ao gravar alteração no armazenamento de dados.
k_EResultLockingFailed33Falha ao adquirir trava de acesso para esta operação.
k_EResultLogonSessionReplaced34A sessão do usuário foi substituída.
k_EResultConnectFailed35Falha ao se conectar.
k_EResultHandshakeFailed36A comunicação de autenticação falhou.
k_EResultIOFailure37Houve um erro genérico de E/S.
k_EResultRemoteDisconnect38O servidor remoto se desconectou.
k_EResultShoppingCartNotFound39Falha ao encontrar o carrinho de compras requisitado.
k_EResultBlocked40Um usuário bloqueou a ação.
k_EResultIgnored41O alvo ignorou o destinatário.
k_EResultNoMatch42Não foi encontrado nada que corresponda à requisição.
k_EResultAccountDisabled43Conta desativada.
k_EResultServiceReadOnly44Serviço não está aceitando alterações de conteúdo no momento.
k_EResultAccountNotFeatured45Conta sem valor, logo o recurso requisitado não está disponível.
k_EResultAdministratorOK46Usuário com permissão para realizar a ação por ser administrador.
k_EResultContentVersion47Diferença de versões no conteúdo transmitido no protocolo do Steam.
k_EResultTryAnotherCM48O CM atual não pode atender a requisição do usuário, tente outro.
k_EResultPasswordRequiredToKickSession49Sessão iniciada em outro lugar, logo as credenciais armazenadas localmente precisam ser atualizadas.
k_EResultAlreadyLoggedInElsewhere50O usuário iniciou a sessão em outro lugar. (Use k_EResultLoggedInElsewhere no lugar!)
k_EResultSuspended51Operação demorada foi suspensa/pausada (ex.: download de conteúdo).
k_EResultCancelled52Operação cancelada, tipicamente pelo usuário (ex.: download de conteúdo).
k_EResultDataCorruption53Operação cancelada devido a dados malformatados ou irrecuperáveis.
k_EResultDiskFull54Operação cancelada devido à falta de espaço em disco.
k_EResultRemoteCallFailed55Chamada remota ou entre processos (IPC) falhou.
k_EResultPasswordUnset56Não foi possível verificar senha; não definida no servidor.
k_EResultExternalAccountUnlinked57Conta externa (PSN, Facebook...) não está vinculada a uma conta Steam.
k_EResultPSNTicketInvalid58Ticket da PSN inválido.
k_EResultExternalAccountAlreadyLinked59Conta externa (PSN, Facebook...) já está vinculada a outra conta, deve requisitar explicitamente para substituir/excluir o vínculo atual primeiro.
k_EResultRemoteFileConflict60Não é possível retomar a sincronização devido a um conflito entre os arquivos locais e remotos.
k_EResultIllegalPassword61A nova senha requisitada não é permitida.
k_EResultSameAsPreviousValue62Valor novo igual ao antigo. Usado para a pergunta e resposta secretas.
k_EResultAccountLogonDenied63Início de sessão negado devido a falha de autenticação em duas etapas.
k_EResultCannotUseOldPassword64A nova senha requisitada não é permitida.
k_EResultInvalidLoginAuthCode65Início de sessão negado devido a um código de autenticação inválido.
k_EResultAccountLogonDeniedNoMail66Início de sessão negado devido a falha de autenticação em duas etapas — e nenhum e-mail foi enviado.
k_EResultHardwareNotCapableOfIPT67O hardware do usuário não é compatível com a Tecnologia de Proteção de Identidade da Intel (IPT).
k_EResultIPTInitError68A Tecnologia de Proteção de Identidade da Intel (IPT) falhou em ser inicializada.
k_EResultParentalControlRestricted69Operação falhou devido a restrições de controle dos pais para o usuário atual.
k_EResultFacebookQueryError70Consulta ao Facebook retornou um erro.
k_EResultExpiredLoginAuthCode71Início de sessão negado devido a um código de autenticação fora da validade.
k_EResultIPLoginRestrictionFailed72Falha ao iniciar sessão devido a uma restrição imposta ao endereço IP.
k_EResultAccountLockedDown73A conta do usuário atual foi trancada, possivelmente devido a uma invasão que resultou em uma verificação de titularidade pendente.
k_EResultAccountLogonDeniedVerifiedEmailRequired74Falha ao iniciar sessão porque o endereço de e-mail associado à conta não foi verificado.
k_EResultNoMatchingURL75Não há URL correspondente aos valores informados.
k_EResultBadResponse76Resposta inválida devido a um erro de processamento, campo obrigatório não preenchido etc.
k_EResultRequirePasswordReEntry77O usuário não pode realizar a ação até informar a senha novamente.
k_EResultValueOutOfRange78O valor informado está fora do intervalo aceitável.
k_EResultUnexpectedError79Ocorreu algo inesperado.
k_EResultDisabled80O serviço requisitado foi configurado para estar indisponível.
k_EResultInvalidCEGSubmission81Os arquivos enviados ao servidor de CEG não são válidos.
k_EResultRestrictedDevice82O dispositivo em uso não tem permissão para realizar a ação.
k_EResultRegionLocked83Não foi possível realizar a ação devido a restrições regionais.
k_EResultRateLimitExceeded84Limite de frequência ultrapassado, tente novamente mais tarde. Diferente do valor k_EResultLimitExceeded, que costuma indicar um limite permanente.
k_EResultAccountLoginDeniedNeedTwoFactor85Código de autenticação em duas etapas obrigatório para iniciar a sessão.
k_EResultItemDeleted86O recurso que estamos tentando acessar foi excluído.
k_EResultAccountLoginDeniedThrottle87Tentativa de início de sessão falhou devido a uma tentativa de evitar possíveis tentativas repetidas de acesso por um atacante.
k_EResultTwoFactorCodeMismatch88Código de autenticação em duas etapas (Steam Guard) incorreto.
k_EResultTwoFactorActivationCodeMismatch89O código de ativação para autenticação em duas etapas (Steam Guard) não corresponde.
k_EResultAccountAssociatedToMultiplePartners90A conta atual foi associada a vários parceiros.
k_EResultNotModified91Dados não modificados.
k_EResultNoMobileDevice92A conta não possui um dispositivo móvel associado.
k_EResultTimeNotSynced93O horário apresentado está fora do intervalo ou tolerância.
k_EResultSmsCodeFailed94Falha com código SMS — incorreto, nenhum pendente etc.
k_EResultAccountLimitExceeded95Muitas contas estão acessando o recurso.
k_EResultAccountActivityLimitExceeded96Muitas alterações à conta.
k_EResultPhoneActivityLimitExceeded97Muitas alterações ao telefone.
k_EResultRefundToWallet98Não foi possível reembolsar à forma de pagamento original, deve usar reembolso à Carteira Steam.
k_EResultEmailSendFailure99Não foi possível enviar um e-mail.
k_EResultNotSettled100Não é possível realizar a operação até o pagamento ser liquidado.
k_EResultNeedCaptcha101O usuário precisa informar um captcha válido.
k_EResultGSLTDenied102Um código de sessão de servidor associado a esta conta foi banido.
k_EResultGSOwnerDenied103A conta associada ao código de sessão de servidor foi negada por algum outro motivo, como conta trancada, banimento da Comunidade, banimento VAC, sem telefone associado etc.
k_EResultInvalidItemType104O tipo de coisa que requisitamos uma ação era inválido.
k_EResultIPBanned105O endereço IP foi banido de tomar essa ação.
k_EResultGSLTExpired106O código de sessão de servidor (GSLT) informado foi invalidado devido à falta de uso; ele pode ser redefinido para uso.
k_EResultInsufficientFunds107Usuário não possui saldo da Carteira Steam suficiente para realizar a ação.
k_EResultTooManyPending108Há muitas requisições pendentes.

ESteamUserStatType

Campos usados internamente para armazenamento de estatísticas do usuário.

NomeValorDescrição
k_ESteamUserStatTypeINVALID0Inválido.
k_ESteamUserStatTypeINT1Estatística de valor de número inteiro (int), com 32 bits.
k_ESteamUserStatTypeFLOAT2Estatística de valor de número de ponto flutuante (float), com 32 bits.
k_ESteamUserStatTypeAVGRATE3Leia como FLOAT, defina com a contagem e duração da sessão.
k_ESteamUserStatTypeACHIEVEMENTS4Conquista padrão do usuário.
k_ESteamUserStatTypeGROUPACHIEVEMENTS5Em desuso.
k_ESteamUserStatTypeMAX6Quantidade total de tipos de estatística do usuário, usada para verificações internas.

ETextFilteringContext

Parâmetro da função ISteamUtils::FilterText.

NomeValorDescrição
k_ETextFilteringContextUnknown0Contexto desconhecido.
k_ETextFilteringContextGameContent1Conteúdo do jogo. Apenas as regras de filtragem exigidas por lei são aplicadas.
k_ETextFilteringContextChat2Mensagem de conversa de outro usuário.
k_ETextFilteringContextName3Nome de personagem ou item.

EUniverse

Universos do Steam. Cada universo é uma instância do Steam autocontida.

NomeValorDescrição
k_EUniverseInvalid0Inválido.
k_EUniversePublic1O universo público padrão.
k_EUniverseBeta2Universo beta, usado internamente na Valve.
k_EUniverseInternal3Universo usado internamente na Valve.
k_EUniverseDev4Universo de desenvolvimento, usado internamente na Valve.
k_EUniverseMax5Quantidade total de universos, usada para verificações internas.

EUserHasLicenseForAppResult

Resultado da chamada à função ISteamUser::UserHasLicenseForApp.

NomeValorDescrição
k_EUserHasLicenseResultHasLicense0O usuário possui uma licença do aplicativo especificado.
k_EUserHasLicenseResultDoesNotHaveLicense1O usuário não possui uma licença do aplicativo especificado.
k_EUserHasLicenseResultNoAuth2O usuário não foi autenticado.

EVoiceResult

Resultados para uso com as funções de Voz no Steam.

NomeValorDescrição
k_EVoiceResultOK0Chamada concluída com sucesso.
k_EVoiceResultNotInitialized1A interface de voz do Steam não foi inicializada.
k_EVoiceResultNotRecording2O sistema de voz do Steam não está gravando áudio atualmente.
k_EVoiceResultNoData3Não há dados de voz disponíveis.
k_EVoiceResultBufferTooSmall4O buffer fornecido é pequeno demais para receber os dados.
k_EVoiceResultDataCorrupted5Os dados de voz foram corrompidos.
k_EVoiceResultRestricted6O usuário está com restrições de conversa.
k_EVoiceResultUnsupportedCodec7Em desuso.
k_EVoiceResultReceiverOutOfDate8Em desuso.
k_EVoiceResultReceiverDidNotAnswer9Em desuso.

EVRHMDType

Pontos de código para fabricantes e modelos de headsets de RV. Use as funções especiais BIsOculusHMD e BIsViveHMD para verificar um modelo específico.

NomeValorDescrição
k_eEVRHMDType_None-1Fabricante e modelo desconhecidos.
k_eEVRHMDType_Unknown0Fabricante e modelo desconhecidos.
k_eEVRHMDType_HTC_Dev1Kits de desenvolvimento originais da HTC.
k_eEVRHMDType_HTC_VivePre2Kits de desenvolvimento HTC Vive Pre.
k_eEVRHMDType_HTC_Vive3Versão do HTC Vive para usuários-finais.
k_eEVRHMDType_HTC_Unknown20Headset desconhecido da HTC.
k_eEVRHMDType_Oculus_DK121Oculus Rift, Kit de Desenvolvimento (DK) 1.
k_eEVRHMDType_Oculus_DK222Oculus Rift, Kit de Desenvolvimento (DK) 2.
k_eEVRHMDType_Oculus_Rift23Oculus Rift, Versão para Consumidores (CV) 1.
k_eEVRHMDType_Oculus_Unknown40Headset desconhecido da Oculus.

Tipos definidos

Estes são os tipos definidos por typedefs para uso com steam_api.

NomeTipo baseDescrição
AccountID_tuint32Usado internamente na struct CSteamID para representar uma conta de usuário específica independentemente do universo do Steam associado.
AppId_tuint32Identificador único de um aplicativo. Para mais informações, consulte a documentação sobre Aplicativos.
AssetClassId_tuint64Usado internamente pelo Steam.
BREAKPAD_HANDLEvoid *Usado pelas interfaces de tratamento de travamentos internas do Steam para referenciar tratadores de travamentos instalados específicos.
BundleId_tuint32Identificador único de um conjunto. (Usado internamente pelo Steam.)
CellID_tuint32Usado internamente pelo Steam.
DepotId_tuint32Identificador único de um depot.
GID_tuint64Usado internamente pelo Steam.
HAuthTicketuint32Handle de um ticket de autenticação de usuário. O tipo retornado pela função ISteamUser::GetAuthSessionTicket.
int16shortVersão do Steam de um número inteiro de 16 bits, equivalente ao tipo int16_t.
int32intVersão do Steam de um número inteiro de 32 bits, equivalente ao tipo int32_t.
int64long longVersão do Steam de um número inteiro de 64 bits, equivalente ao tipo int64_t.
int8signed charVersão do Steam de um número inteiro de 8 bits, equivalente ao tipo int8_t.
intpint/long longVersão do Steam de um tipo com sinal que pode armazenar um ponteiro, equivalente ao tipo intptr_t. (Usado internamente pelo Steam.)
JobID_tuint64Usado internamente pelo Steam.
lint64long intUsado internamente pelo Steam.
ManifestId_tuint64Usado internamente pelo Steam.
PackageId_tuint32Usado internamente pelo Steam.
PartnerId_tuint32Usado internamente pelo Steam.
PhysicalItemId_tuint32Usado internamente pelo Steam.
RTime32uint32A versão do Steam do horário em Era Unix. Oferece resolução de até 1 segundo a partir da chamada Era Unix (1970-01-01 00:00:00 +0000 (UTC))
SteamAPICall_tuint64Handle único a uma chamada à API do Steam.
Se uma função retornar uma instância desse tipo, acompanhe o seu estado por meio do sistema de resultados de chamada.
TxnID_tGID_tUsado internamente pelo Steam.
uint16unsigned shortVersão do Steam de um número inteiro de 16 bits sem sinal, equivalente ao tipo uint16_t.
uint32unsigned intVersão do Steam de um número inteiro de 32 bits sem sinal, equivalente ao tipo uint32_t.
uint64unsigned long longVersão do Steam de um número inteiro de 64 bits sem sinal, equivalente ao tipo uint64_t.
uint8unsigned charVersão do Steam de um número inteiro de 8 bits sem sinal, equivalente ao tipo uint8_t.
uintpunsigned int/unsigned long longVersão do Steam de um tipo sem sinal que pode armazenar um ponteiro, equivalente ao tipo uintptr_t. (Usado internamente pelo Steam.)
ulint64unsigned long intUsado internamente pelo Steam.

Constantes

Estas são as constantes definidas para uso com steam_api.

NomeTipoValorDescrição
BREAKPAD_INVALID_HANDLEint(BREAKPAD_HANDLE)0
k_cchGameExtraInfoMaxint64O tamanho máximo (em bytes UTF-8, incluindo o terminador nulo) do parâmetro pchExtraInfo da função ISteamUser::TrackAppUsageEvent.
k_cubSaltSizeint8Usada internamente pelo Steam.
k_GIDNilGID_t0xffffffffffffffffullUsada internamente pelo Steam.
k_HAuthTicketInvalidHAuthTicket0Um ticket de autenticação de usuário inválido.
k_JobIDNilJobID_t0xffffffffffffffffullUsada internamente pelo Steam.
k_steamIDLanModeGSintCSteamID(Este ID Steam vem de uma conexão de usuário a um servidor em LAN (sv_lan).
k_steamIDNilintCSteamID()CSteamID genérico inválido.
k_steamIDNonSteamGSintCSteamID(Este ID Steam pode vir de uma conexão de um usuário a um servidor que não usa o sistema de autenticação do Steam,
mas ainda assim deseja exibir a opção "Juntar-se à partida" na lista de amigos.
k_steamIDNotInitYetGSintCSteamID(Este ID Steam pode vir de uma conexão do usuário a um servidor que acabou de ser ligado, mas ainda não inicializou
o componente Steam3, e ainda está iniciando a sessão.
k_steamIDOutofDateGSintCSteamID(Este ID Steam vem de uma conexão do usuário a um servidor desatualizado que ainda não implementou o protocolo para fornecer o ID Steam.
k_TxnIDNilGID_tk_GIDNilUsada internamente pelo Steam.
k_TxnIDUnknownGID_t0Usada internamente pelo Steam.
k_uAPICallInvalidSteamAPICall_t0x0Um handle de chamada da API Steam inválido.
k_uAppIdInvalidAppId_t0x0Um AppID inválido.
k_uBundleIdInvalidBundleId_t0Usada internamente pelo Steam.
k_uCellIDInvalidCellID_t0xFFFFFFFFUsada internamente pelo Steam.
k_uDepotIdInvalidDepotId_t0x0Um ID de depot inválido.
k_ulAssetClassIdInvalidAssetClassId_t0x0Usada internamente pelo Steam.
k_uManifestIdInvalidManifestId_t0Usada internamente pelo Steam.
k_unSteamAccountIDMaskunsigned int0xFFFFFFFFUsado por CSteamID como máscara do tipo AccountID_t.
k_unSteamAccountInstanceMaskunsigned int0x000FFFFFUsado por CSteamID como máscara da instância de conta.
k_unSteamUserConsoleInstanceunsigned int2Usado por CSteamID para identificar usuários que iniciaram a sessão por um console.
k_unSteamUserDesktopInstanceunsigned int1Usado por CSteamID para identificar usuários que iniciaram a sessão pelo cliente tradicional.
k_unSteamUserWebInstanceunsigned int4Usado por CSteamID para identificar usuários que iniciaram a sessão pela web.
k_uPackageIdFreeSubPackageId_t0x0Usada internamente pelo Steam.
k_uPackageIdInvalidPackageId_t0xFFFFFFFFUsada internamente pelo Steam.
k_uPartnerIdInvalidPartnerId_t0Usada internamente pelo Steam.
k_uPhysicalItemIdInvalidPhysicalItemId_t0x0Usada internamente pelo Steam.
QUERY_PORT_ERRORint0xFFFENão foi possível recuperar a porta de consulta do servidor.
QUERY_PORT_NOT_INITIALIZEDint0xFFFF-----------------------------------------------------------------------------
Constantes usadas para portas de consulta.
-----------------------------------------------------------------------------
Ainda não requisitamos ao servidor o valor da porta de consulta.