Compartir a través de


Escritor de presencia de la barra de juegos

Propósito

Game Bar Presence Writer es un componente que recibe una notificación cuando cambia el estado de "presencia" de un juego (es decir, es un juego que se ejecuta en primer plano). Esta funcionalidad está disponible en los sistemas operativos Windows 10 y versiones posteriores. De forma predeterminada, el escritor de presencia de la barra de juegos existente establecerá el estado de presencia de Xbox Live de un usuario para un juego en ejecución si la aplicación xbox está instalada, el usuario ha iniciado sesión en su cuenta de Xbox y el usuario ha habilitado la presencia de Xbox Live para que se establezca cuando ejecute un juego en su PC. Es posible que los desarrolladores de aplicaciones de Windows invaliden este comportamiento predeterminado con su propia implementación.

Importante

Al proporcionar una implementación personalizada del escritor de presencia de la barra de juegos, el comportamiento predeterminado del estado de presencia de Xbox Live de un usuario que se establece cuando ejecute un juego ya no estará disponible.

Implementación de un servidor COM fuera de proceso que implementa la funcionalidad del escritor de presencia de la barra de juegos

Para proporcionar una implementación de Game Bar Presence Writer, debe implementar un servidor COM fuera del proceso que implementó las siguientes interfaces COM:

import "oaidl.idl";
import "Inspectable.idl";

#include <sdkddkver.h>

namespace Windows.Gaming.GameBar.PresenceServer.Internal
{
    // typedefs
    typedef enum GameNotificationEvent GameNotificationEvent;
    typedef enum AppIdType AppIdType;

    typedef UINT64 WindowId;

    interface IPresenceWriter;
    runtimeclass PresenceWriter;

    // enums
    enum GameNotificationEvent
    {
        None = 0,
        GotFocus,
        LostFocus,
        AppClose
    };

    // enums
    enum AppIdType
    {
        Aumid = 0,  // Application User Model Id
        TitleId     // Xbox Live Title Id
    };

    [uuid(782674D9-5CBB-4FCA-AD72-D9AC5F7AE963)]
    [exclusiveto(PresenceWriter)]
    interface IPresenceWriter : IInspectable
    {
        HRESULT UpdatePresence([in] WindowId hWnd, [in] GameNotificationEvent @event, [in] HSTRING appId, [in] AppIdType appIdType);
    }

    [marshaling_behavior(agile)] 
    runtimeclass PresenceWriter 
    {
        [default] interface IPresenceWriter; 
    }
}

Cuando se ejecuta un juego en la máquina del usuario, se llamará a UpdatePresence con los parámetros siguientes:

hWnd [in]

Identificador de la ventana del juego en ejecución.

de eventos [in]

Evento que correpsondes a si el juego obtuvo el foco (GotFocus), perdió el foco (LostFocus), o el juego tal como estaba cerrado (AppClose).

appId [in]

Identificador de aplicación del juego. Si appIdType es Aumid, appId es el identificador de modelo de usuario de la aplicación. Si appId es TitleId, appId es el id. de título de Xbox Live.

appIdType [in]

Especifica si appId corresponde al id. de modelo de usuario de aplicación (Aumid) del juego del id. de título de Xbox Live (TitleId) del juego.

Registro de la implementación del servidor COM para el escritor de presencia

Para que se ejecute la implementación de Game Bar Presence Writer, debe asegurarse de que se establece el siguiente valor del Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsRuntime\Server\Windows.Gaming.GameBar.Internal.PresenceWriterServer\ExePath

Tipo de dato Gama Valor predeterminado
REG_SZ Ruta de acceso al ejecutable