feat: added Input and System idls

This commit is contained in:
CT5
2026-01-31 18:07:59 +11:00
parent 9bfa30c47f
commit 4986ea7e50
2 changed files with 411 additions and 103 deletions

265
idl/Windows.Xbox.Input.idl Normal file
View File

@@ -0,0 +1,265 @@
import "Windows.Xbox.System.idl";
namespace Windows.Xbox.Input
{
[flags]
enum GamepadButtons
{
None = 0x0,
DPadUp = 0x100,
DPadDown = 0x200,
DPadLeft = 0x400,
DPadRight = 0x800,
View = 0x8,
Menu = 0x4,
LeftThumbstick = 0x4000,
RightThumbstick = 0x8000,
LeftShoulder = 0x1000,
RightShoulder = 0x2000,
A = 0x10,
B = 0x20,
X = 0x40,
Y = 0x80,
};
[flags]
enum NavigationButtons
{
None = 0x0,
Up = 0x100,
Down = 0x200,
Left = 0x400,
Right = 0x800,
View = 0x8,
Menu = 0x4,
PreviousPage = 0x1000,
NextPage = 0x2000,
Accept = 0x10,
Cancel = 0x20,
X = 0x40,
Y = 0x80,
};
[flags]
enum ControllerOrderFilter
{
None = 0x0,
TrackedAccessories = 0x1,
TrackedBodies = 0x2,
};
enum MetadataVersion
{
V1 = 0x1,
};
enum HandType {
NONE = 0x0,
LEFT = 0x1,
RIGHT = 0x2,
};
runtimeclass Controller;
[interface_name("IControllerAddedEventArgs", AACAAAAB-ACAA-AAAA-AAAA-AAACCCAAAAAA)]
runtimeclass ControllerAddedEventArgs
{
Controller Controller { get; };
}
[interface_name("IControllerRemovedEventArgs", FAFAAAAB-AAAA-AEAA-AAAA-AAACCCAAAAAA)]
runtimeclass ControllerRemovedEventArgs
{
Controller Controller { get; };
}
[interface_name("IControllerPairingChangedEventArgs", FAFAAAAB-AAAA-AAAA-AAAA-AAAECCAAFAFA)]
runtimeclass ControllerPairingChangedEventArgs
{
Controller Controller { get; };
Windows.Xbox.System.User User { get; };
Windows.Xbox.System.User PreviousUser { get; };
}
[interface_name("IControllerOrderChangedEventArgs", FAFAAAAB-AABA-ABAA-AEAA-AAACCCAAFAFA)]
runtimeclass ControllerOrderChangedEventArgs
{
}
[interface_name("IGamepadAddedEventArgs", AACEAAAB-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass GamepadAddedEventArgs
{
Gamepad Gamepad { get; };
}
[interface_name("IGamepadRemovedEventArgs", AACAAAAB-FFAC-AAAA-AAAA-AAAAAAAAEFDA)]
runtimeclass GamepadRemovedEventArgs
{
Gamepad Gamepad { get; };
}
[interface_name("IBiometricUserChangedEventArgs", AACAAAAB-FFAC-AAAA-AAAA-AACCAAAAEFDA)]
runtimeclass BiometricUserChangedEventArgs
{
UInt32 BiometricUserId { get; };
}
[interface_name("IBodyControllerAddedEventArgs", AACAAAAB-F88C-AAAA-AAAA-AACCAAAAEFDA)]
runtimeclass BodyControllerAddedEventArgs
{
BodyController BodyController { get; };
}
[interface_name("IBodyControllerReadingChangedEventArgs", AACAAAAB-F88C-AAAA-AAAA-AA88AAAAEFDA)]
runtimeclass BodyControllerReadingChangedEventArgs
{
BodyControllerReading Reading { get; };
}
[interface_name("IBodyControllerRemovedEventArgs", AACAAAAB-F88C-A88A-AAAA-AA88AAAAEFDA)]
runtimeclass BodyControllerRemovedEventArgs
{
BodyController BodyController { get; };
}
struct RawGamepadReading
{
UInt64 Timestamp;
GamepadButtons Buttons;
Single LeftTrigger;
Single RightTrigger;
Single LeftThumbstickX;
Single LeftThumbstickY;
Single RightThumbstickX;
Single RightThumbstickY;
};
struct GamepadVibration
{
Single LeftMotorLevel;
Single RightMotorLevel;
Single LeftTriggerLevel;
Single RightTriggerLevel;
};
struct RawNavigationReading
{
UInt64 Timestamp;
NavigationButtons Buttons;
};
[interface_name("IBodyController", ABCAAAAB-AAAA-AABA-AAAA-AACCFFDAAAAF)]
runtimeclass BodyController
{
UInt32 BiometricUserId { get; };
event Windows.Foundation.TypedEventHandler<BodyController, BiometricUserChangedEventArgs> BiometricUserChanged;
BodyControllerReading GetCurrentReading;
event Windows.Foundation.TypedEventHandler<BodyController, BodyControllerReadingChangedEventArgs> ReadingChanged;
}
[interface_name("IBodyControllerReading", ABCAAAAB-AAAA-AABA-AAAA-AACC88DAAAAF)]
runtimeclass BodyControllerReading
{
Windows.Foundation.DateTime Timestamp { get; };
Boolean IsLeanTracked { get; };
Single LeanX { get; };
Single LeanY { get; };
}
[interface_name("IBodyHandPair", AB88AA8B-AAAA-AABA-AAAA-AACC88DAAAAF)]
runtimeclass BodyHandPair
{
UInt64 BodyTrackingId { get; set; };
HandType HandType { get; set; };
}
[interface_name("IGamepadReading", ABCAAAAB-AAAA-AABA-AAAA-AAAAADDAAAAA)]
runtimeclass GamepadReading
{
Windows.Foundation.DateTime Timestamp { get; };
GamepadButtons Buttons { get; };
Boolean IsDPadUpPressed { get; };
Boolean IsDPadDownPressed { get; };
Boolean IsDPadLeftPressed { get; };
Boolean IsDPadRightPressed { get; };
Boolean IsMenuPressed { get; };
Boolean IsViewPressed { get; };
Boolean IsLeftThumbstickPressed { get; };
Boolean IsRightThumbstickPressed { get; };
Boolean IsLeftShoulderPressed { get; };
Boolean IsRightShoulderPressed { get; };
Boolean IsAPressed { get; };
Boolean IsBPressed { get; };
Boolean IsXPressed { get; };
Boolean IsYPressed { get; };
Single LeftTrigger { get; };
Single RightTrigger { get; };
Single LeftThumbstickX { get; };
Single LeftThumbstickY { get; };
Single RightThumbstickX { get; };
Single RightThumbstickY { get; };
}
[uuid(AACAAAAB-AAAA-AAAA-AAAA-DDFAAAAAAAAA)]
interface IController
{
UInt64 Id { get; };
String Type { get; };
Windows.Xbox.System.User User { get; };
}
[static_name("IControllerStatics", AACAAAAB-AAAA-AAAA-AAAA-AADDAFFFFAAA)]
runtimeclass Controller : [default] IController
{
static Windows.Foundation.Collections.IVectorView<Controller> Controllers { get; };
static event Windows.Foundation.EventHandler<ControllerAddedEventArgs> ControllerAdded;
static event Windows.Foundation.EventHandler<ControllerRemovedEventArgs> ControllerRemoved;
static event Windows.Foundation.EventHandler<ControllerPairingChangedEventArgs> ControllerPairingChanged;
static event Windows.Foundation.EventHandler<ControllerOrderChangedEventArgs> ControllerOrderChanged;
static Controller GetControllerById(UInt64 unk);
static void GetControllerMetadata(UInt64 unk, MetadataVersion version, Windows.Foundation.Collections.IVector<UInt8> unka);
static Windows.Foundation.Collections.IVectorView<Controller> GetControllersOrderedLeftToRight(ControllerOrderFilter filter);
}
[uuid(AACAAAAB-ADAA-AAAA-AAAA-AAAAAAAACAAA)]
interface INavigationReading requires IController
{
Windows.Foundation.DateTime Timestamp { get; };
NavigationButtons Buttons { get; };
Boolean IsUpPressed { get; };
Boolean IsDownPressed { get; };
Boolean IsLeftPressed { get; };
Boolean IsRightPressed { get; };
Boolean IsMenuPressed { get; };
Boolean IsViewPressed { get; };
Boolean IsPreviousPagePressed { get; };
Boolean IsNextPagePressed { get; };
Boolean IsAcceptPressed { get; };
Boolean IsCancelPressed { get; };
Boolean IsXPressed { get; };
Boolean IsYPressed { get; };
}
[uuid(AACAAAAB-AAAA-AAAA-AAAA-CDAAAAAACAAA)]
interface INavigationController requires IController
{
INavigationReading GetNavigationReading();
RawNavigationReading GetRawNavigationReading();
}
[uuid(AACAAAAB-AADC-AAAA-AAAA-AFAAAAAAAAAA)]
interface IGamepad requires INavigationController
{
GamepadVibration SetVibration();
GamepadReading GetCurrentReading();
RawGamepadReading GetRawCurrentReading();
}
[static_name("IGamepadStatics", AACAAAAB-AAAA-AAAA-AAAA-AFADCAAAFAAA)]
runtimeclass Gamepad : [default] IGamepad
{
static Windows.Foundation.Collections.IVectorView<Gamepad> Gamepads { get; };
static event Windows.Foundation.EventHandler<GamepadAddedEventArgs> GamepadAdded;
static event Windows.Foundation.EventHandler<GamepadRemovedEventArgs> GamepadRemoved;
}
}

View File

@@ -1,171 +1,214 @@
namespace Window.Xbox.System
{
runtimeclass User;
runtimeclass UserDisplayInfo;
runtimeclass UserDisplayInfoChangedEventArgs;
runtimeclass UserAddedEventArgs;
runtimeclass UserRemovedEventArgs;
runtimeclass OnlineStateChangedEventArgs;
runtimeclass GetTokenAndSignatureResult;
runtimeclass AudioDeviceAddedEventArgs;
runtimeclass AudioDeviceRemovedEventArgs;
runtimeclass AudioDeviceChangedEventArgs;
runtimeclass SignInCompletedEventArgs;
runtimeclass SignOutStartedEventArgs;
runtimeclass SignOutCompletedEventArgs;
import "Windows.Xbox.Input.idl";
namespace Windows.Xbox.System
{
enum UserPictureSize
{
Small = 0x0001,
Medium = 0x0002,
Large = 0x0003,
ExtraLarge = 0x0004,
Small = 0x1,
Medium = 0x2,
Large = 0x3,
ExtraLarge = 0x4,
};
enum UserOnlineState
{
Unknown = 0x0000,
Offline = 0x0001,
Online = 0x0002,
Unknown = 0x0,
Offline = 0x1,
Online = 0x2,
};
// Placeholder GUID
[uuid(AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
interface IUserStatics : IInspectable
enum UserLocation
{
Guid GetNetworkCacheIdForUsers(Windows.Foundation.Collections.IVectorView<UINT32> unk);
UserOnlineState OnlineState { get; };
event Windows.Foundation.EventHandler<OnlineStateChangedEventArgs> OnlineStateChanged(Windows.Foundation.EventRegistrationToken unk);
Windows.Foundation.Collections.IVectorView<User> Users { get; };
event Windows.Foundation.EventHandler<UserAddedEventArgs> UserAdded;
event Windows.Foundation.EventHandler<UserRemovedEventArgs> UserRemoved;
User GetUserById(UINT32 Id);
[default_overload, overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers, HSTRING body);
[overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers, Windows.Foundation.Collections.IVector<Byte> body);
[overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers);
event Windows.Foundation.EventHandler<AudioDeviceAddedEventArgs> AudioDeviceAdded;
event Windows.Foundation.EventHandler<AudioDeviceRemovedEventArgs> AudioDeviceRemoved;
event Windows.Foundation.EventHandler<AudioDeviceChangedEventArgs> AudioDeviceChanged;
event Windows.Foundation.EventHandler<SignInCompletedEventArgs> SignInCompleted;
event Windows.Foundation.EventHandler<SignOutStartedEventArgs> SignOutStarted;
event Windows.Foundation.EventHandler<SignOutCompletedEventArgs> SignOutCompleted;
event Windows.Foundation.EventHandler<UserDisplayInfoChangedEventArgs> UserDisplayInfoChanged;
Guid GetNetworkCacheIdForUsers(Windows.Foundation.Collections.IVectorView<unsigned int> unk);
Local = 0x0,
Remote = 0x1,
};
enum UserAgeGroup
{
Unknown = 0x0,
Child = 0x1,
Teen = 0x2,
Adult = 0x3,
};
enum AudioDeviceType
{
Capture = 0x0,
Render = 0x1,
};
enum AudioDeviceSharing
{
Exclusive = 0x0,
Private = 0x1,
Shared = 0x2,
};
enum AudioDeviceCategory
{
Communications = 0x0,
Voice = 0x1,
Multimedia = 0x2,
};
[interface_name("IGetPictureResult", DDCCAAAA-AAFC-ACDA-AAAA-AAAFFCCAABBA)]
runtimeclass GetPictureResult
{
HRESULT Result { get; };
UInt32 RequiredBufferSize { get; };
}
// Placeholder GUID
[interface_name("IUser", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[static(IUserStatics, 1.0)]
[interface_name("IUser", DDCCAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[static_name("IUserStatics", ABAACCAA-AAAA-AAAA-AAAA-FAAAAAAAAAAA)]
runtimeclass User
{
UINT32 Id { get; };
//Windows.Foundation.Collections.IVectorView<IAudioDeviceInfo> AudioDevices { get; };
//Windows.Foundation.Collections.IVectorView<Windows.Xbox.Input.IController> Controllers { get; };
User();
static UserOnlineState OnlineState { get; };
static event Windows.Foundation.EventHandler<OnlineStateChangedEventArgs> OnlineStateChanged;
static Windows.Foundation.Collections.IVectorView<User> Users { get; };
static event Windows.Foundation.EventHandler<UserAddedEventArgs> UserAdded;
static event Windows.Foundation.EventHandler<UserRemovedEventArgs> UserRemoved;
static User GetUserById(UInt32 Id);
static Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureForAllUsersAsync(String method, String url, String headers);
static Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureForAllUsersAsync(String method, String url, String headers, Windows.Foundation.Collections.IVector<UInt8> body);
[default_overload] static Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureForAllUsersAsync(String method, String url, String headers, String body);
static event Windows.Foundation.EventHandler<AudioDeviceAddedEventArgs> AudioDeviceAdded;
static event Windows.Foundation.EventHandler<AudioDeviceRemovedEventArgs> AudioDeviceRemoved;
static event Windows.Foundation.EventHandler<AudioDeviceChangedEventArgs> AudioDeviceChanged;
static event Windows.Foundation.EventHandler<SignInCompletedEventArgs> SignInCompleted;
static event Windows.Foundation.EventHandler<SignOutStartedEventArgs> SignOutStarted;
static event Windows.Foundation.EventHandler<SignOutCompletedEventArgs> SignOutCompleted;
static event Windows.Foundation.EventHandler<UserDisplayInfoChangedEventArgs> UserDisplayInfoChanged;
static Guid GetNetworkCacheIdForUsers(Windows.Foundation.Collections.IVectorView<unsigned int> unk);
UInt32 Id { get; };
Windows.Foundation.Collections.IVectorView<AudioDeviceInfo> AudioDevices { get; };
Windows.Foundation.Collections.IVectorView<Windows.Xbox.Input.Controller> Controllers { get; };
UserDisplayInfo DisplayInfo { get; };
Boolean IsGuest { get; };
Boolean IsSignedIn { get; };
//UserLocation Location { get; };
UserLocation Location { get; };
User Sponsor { get; };
HSTRING XboxUserHash { get; };
HSTRING XboxUserId { get; };
[default_overload, overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers, HSTRING body);
[overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers, Windows.Foundation.Collections.IVector<Byte> body);
[overload("GetTokenAndSignatureAsync")] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(HSTRING url, HSTRING method, HSTRING headers);
String XboxUserHash { get; };
String XboxUserId { get; };
// https://learn.microsoft.com/en-us/dotnet/api/microsoft.xbox.services.system.xboxliveuser.gettokenandsignatureasync
Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(String method, String url, String headers);
Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(String method, String url, String headers, Windows.Foundation.Collections.IVector<UInt8> body);
[default_overload] Windows.Foundation.IAsyncOperation<GetTokenAndSignatureResult> GetTokenAndSignatureAsync(String method, String url, String headers, String body);
}
// Placeholder GUID
[interface_name("IUserDisplayInfo", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
// Placeholder GUID TODO
[interface_name("IUserDisplayInfo", AACAAAAA-ADCA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass UserDisplayInfo
{
HSTRING Gamertag();
UINT32 GamerScore();
HSTRING ApplicationDisplayName();
HSTRING GameDisplayName();
UINT32 Reputation();
//UserAgeGroup AgeGroup();
String Gamertag();
UInt32 GamerScore();
String ApplicationDisplayName();
String GameDisplayName();
UInt32 Reputation();
UserAgeGroup AgeGroup();
Windows.Foundation.Collections.IVectorView<unsigned int> Privileges();
//Windows.Foundation.IAsyncOperation<GetPictureResult> GetApplicationPictureAsync(UserPictureSize unk, Windows.Storage.Streams.IBuffer unka);
//Windows.Foundation.IAsyncOperation<GetPictureResult> GetGamerPictureAsync(UserPictureSize unk, Windows.Storage.Streams.IBuffer unka);
Windows.Foundation.IAsyncOperation<GetPictureResult> GetApplicationPictureAsync(UserPictureSize unk, Windows.Storage.Streams.IBuffer unka);
Windows.Foundation.IAsyncOperation<GetPictureResult> GetGamerPictureAsync(UserPictureSize unk, Windows.Storage.Streams.IBuffer unka);
}
// Placeholder GUID
[interface_name("IAudioDeviceInfo", AAAAAAAA-DFAF-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass AudioDeviceInfo
{
String Id { get; };
AudioDeviceType DeviceType { get; };
AudioDeviceSharing Sharing { get; };
AudioDeviceCategory DeviceCategory { get; };
Boolean IsMicrophoneMuted { get; };
}
// Placeholder GUID
[interface_name("IUserDisplayInfoChangedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("IUserDisplayInfoChangedEventArgs", CCDDAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass UserDisplayInfoChangedEventArgs
{
User User { get; };
}
// Placeholder GUID
[interface_name("IUserAddedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("IUserAddedEventArgs", AAAAEAAA-ADEA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass UserAddedEventArgs
{
User User { get; };
}
// Placeholder GUID
[interface_name("IUserRemovedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("IUserRemovedEventArgs", AAAAAFAA-AAAA-AAAA-ADEA-AAAAAAAAAAAA)]
runtimeclass UserRemovedEventArgs
{
User User { get; };
}
// Placeholder GUID
[interface_name("IOnlineStateChangedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("IOnlineStateChangedEventArgs", DEAAAAFA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass OnlineStateChangedEventArgs
{
UserOnlineState State { get; };
}
// Placeholder GUID
[interface_name("IGetTokenAndSignatureResult", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("IGetTokenAndSignatureResult", ADEAAAAF-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass GetTokenAndSignatureResult
{
HSTRING Signature { get; };
HSTRING Token { get; };
String Signature { get; };
String Token { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceAddedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass AudioDeviceAddedEventArgs
{
User User { get; };
//IAudioDeviceInfo AudioDevice { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceRemovedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass AudioDeviceRemovedEventArgs
{
User User { get; };
//IAudioDeviceInfo AudioDevice { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceChangedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass AudioDeviceChangedEventArgs
{
User User { get; };
//IAudioDeviceInfo AudioDevice { get; };
}
// Placeholder GUID
[interface_name("ISignInCompletedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
[interface_name("ISignInCompletedEventArgs", DEFFAAAA-FAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass SignInCompletedEventArgs
{
User User { get; };
}
// Placeholder GUID TODO: PLACEHOLDER
[interface_name("ISignOutStartedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass SignOutStartedEventArgs
// Placeholder GUID TODO
[interface_name("ISignOutDeferral", AAAFFDDA-AFAA-AAAA-AAAA-AAAAAAAAAAAA)]
runtimeclass SignOutDeferral
{
UserOnlineState State { get; };
}
// Placeholder GUID TODO: PLACEHOLDER
[interface_name("ISignOutCompletedEventArgs", AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA)]
// Placeholder GUID
[interface_name("ISignOutStartedEventArgs", AAAAAAAA-AFAA-AAAA-AAAA-AAAAAAADEFAA)]
runtimeclass SignOutStartedEventArgs
{
SignOutDeferral GetDeferral();
User User { get; };
}
// Placeholder GUID
[interface_name("ISignOutCompletedEventArgs", AAAAAAAA-AAFA-AAAA-AAAA-AFDEECAAAAAA)]
runtimeclass SignOutCompletedEventArgs
{
UserOnlineState State { get; };
HRESULT Result { get; };
User User { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceAddedEventArgs", AAAAAAAA-AAAF-AAAA-FCCF-AAAAAAAAAAAA)]
runtimeclass AudioDeviceAddedEventArgs
{
User User { get; };
AudioDeviceInfo AudioDevice { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceRemovedEventArgs", AAAAAAAA-AAAA-FAAA-DCCD-AAAAAAAAAAAA)]
runtimeclass AudioDeviceRemovedEventArgs
{
User User { get; };
AudioDeviceInfo AudioDevice { get; };
}
// Placeholder GUID
[interface_name("IAudioDeviceChangedEventArgs", AAAAAAAA-AAAA-AFAA-DCDD-AAAAAAAAAAAA)]
runtimeclass AudioDeviceChangedEventArgs
{
User User { get; };
AudioDeviceInfo AudioDevice { get; };
}
}