IGameInput para uma versão específica da API GameInput.
Sintaxe
Parâmetros
riid _In_Tipo: REFIID O ID de interface (IID) da interface
IGameInput a ser obtida. O IID seleciona a versão da API GameInput, por exemplo, __uuidof(GameInput::v4::IGameInput) para a v4 ou __uuidof(GameInput::v0::IGameInput) para a v0.
ppv _COM_Outptr_Tipo: LPVOID* Recebe a interface solicitada do singleton subjacente por processo. Definido como
nullptr se a função falhar.
Valor retornado
Tipo: HRESULT RetornaS_OK em caso de êxito. Retorna E_NOINTERFACE se riid não for o IID de uma interface IGameInput ou se o runtime do GameInput instalado não oferecer suporte à versão da API solicitada. Retorna outro código de erro se o runtime do GameInput não puder ser carregado.
Comentários
GameInputInitialize funciona como GameInputCreate, mas recebe o IID da versão de IGameInput que você deseja. Ambas as funções retornam uma interface no mesmo singleton por processo. A primeira chamada cria o singleton, e as chamadas posteriores adicionam uma referência a ele. Para obter orientações sobre quando chamar essas funções e por quanto tempo manter a referência, confira GameInputCreate.
Um runtime do GameInput oferece suporte a todas as versões da API menores ou iguais à sua própria versão principal. Por exemplo, o runtime do GameInput 4.0 aceita o IID de qualquer versão de IGameInput da v0 à v4. Se você solicitar uma versão mais recente que o runtime instalado, a função falhará com E_NOINTERFACE. Você pode usar isso para verificar em tempo de execução se uma versão mais recente da API está disponível.
Relação com GameInputCreate
A partir da v3,GameInputCreate no cabeçalho do GameInput é uma função embutida que chama GameInputInitialize com o IID da interface IGameInput que o cabeçalho declara:
GameInputCreate na v3 e posteriores cria a versão de IGameInput que corresponde ao cabeçalho que você inclui. Para criar uma versão diferente sem incluir o cabeçalho dela, chame GameInputInitialize diretamente.
Na v0, GameInputCreate é uma função exportada por GameInput.lib e sempre cria a interface v0. Em vez disso, a GameInput.lib do pacote NuGet Microsoft.GameInput exporta GameInputInitialize. Para criar a interface v0 ao vincular essa biblioteca, chame GameInputInitialize com o IID da v0. O cabeçalho da v0 não declara GameInputInitialize, portanto declare-a você mesmo:
GameInputInitialize, a biblioteca recorrerá ao GameInputCreate do runtime para o IID da v0 e retornará E_NOINTERFACE para qualquer outro IID.
Para obter outra versão da API de um objeto IGameInput que você já tem, chame QueryInterface nele em vez de chamar GameInputInitialize novamente. Para obter mais informações e exemplos, confira Usando várias versões da API GameInput em um aplicativo.
Requisitos
Cabeçalho: GameInput.h Biblioteca: GameInput.lib Plataformas com suporte: Windows, consoles da família XBOX One e consoles XBOX SeriesConfira também
GameInputCreateControle de versão da API do GameInput
Usando várias versões da API GameInput em um aplicativo
GameInput
