Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |