blob: 9e0b0ed8411012326ce7a435006e7b689f7b9e31 [file] [log] [blame]
Jacek Caban662e1302023-11-30 12:10:42 +01001/*
2 * Copyright 2023 Rémi Bernon for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifdef __WIDL__
20#pragma winrt ns_prefix
21#endif
22
23#ifndef DO_NO_IMPORTS
24import "inspectable.idl";
25import "asyncinfo.idl";
26import "eventtoken.idl";
27import "windowscontracts.idl";
28import "windows.foundation.idl";
29import "windows.storage.streams.idl";
30import "windows.system.idl";
31#endif
32
33namespace Windows.System.Profile {
Jacek Caban75ed7d22025-04-04 11:47:26 +020034 typedef enum SystemIdentificationSource SystemIdentificationSource;
Jacek Caban662e1302023-11-30 12:10:42 +010035 interface IAnalyticsInfoStatics;
36 interface IAnalyticsInfoStatics2;
37 interface IAnalyticsVersionInfo;
38 interface IAnalyticsVersionInfo2;
Jacek Caban75ed7d22025-04-04 11:47:26 +020039 interface ISystemIdentificationInfo;
40 interface ISystemIdentificationStatics;
Jacek Caban662e1302023-11-30 12:10:42 +010041 runtimeclass AnalyticsVersionInfo;
42 runtimeclass AnalyticsInfo;
Jacek Caban75ed7d22025-04-04 11:47:26 +020043 runtimeclass SystemIdentification;
44 runtimeclass SystemIdentificationInfo;
45
46 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
47 enum SystemIdentificationSource
48 {
49 None = 0,
50 Tpm = 1,
51 Uefi = 2,
52 [contract(Windows.Foundation.UniversalApiContract, 5.0)]
53 Registry = 3,
54 };
Jacek Caban662e1302023-11-30 12:10:42 +010055
56 [
57 contract(Windows.Foundation.UniversalApiContract, 1.0),
58 exclusiveto(Windows.System.Profile.AnalyticsInfo),
59 uuid(1d5ee066-188d-5ba9-4387-acaeb0e7e305)
60 ]
61 interface IAnalyticsInfoStatics : IInspectable
62 {
63 [propget] HRESULT VersionInfo([out, retval] Windows.System.Profile.AnalyticsVersionInfo **value);
64 [propget] HRESULT DeviceForm([out, retval] HSTRING *value);
65 }
66
67 [
68 contract(Windows.Foundation.UniversalApiContract, 1.0),
69 exclusiveto(Windows.System.Profile.AnalyticsVersionInfo),
70 uuid(926130b8-9955-4c74-bdc1-7cd0decf9b03)
71 ]
72 interface IAnalyticsVersionInfo : IInspectable
73 {
74 [propget] HRESULT DeviceFamily([out, retval] HSTRING *value);
75 [propget] HRESULT DeviceFamilyVersion([out, retval] HSTRING *value);
76 }
77
78 [
Jacek Caban75ed7d22025-04-04 11:47:26 +020079 contract(Windows.Foundation.UniversalApiContract, 3.0),
80 exclusiveto(Windows.System.Profile.SystemIdentificationInfo),
81 uuid(0c659e7d-c3c2-4d33-a2df-21bc41916eb3)
82 ]
83 interface ISystemIdentificationInfo : IInspectable
84 {
85 [propget] HRESULT Id([out, retval] Windows.Storage.Streams.IBuffer **value);
86 [propget] HRESULT Source([out, retval] Windows.System.Profile.SystemIdentificationSource *value);
87 }
88
89 [
90 contract(Windows.Foundation.UniversalApiContract, 3.0),
91 exclusiveto(Windows.System.Profile.SystemIdentification),
92 uuid(5581f42a-d3df-4d93-a37d-c41a616c6d01)
93 ]
94 interface ISystemIdentificationStatics : IInspectable
95 {
96 HRESULT GetSystemIdForPublisher([out, retval] Windows.System.Profile.SystemIdentificationInfo **result);
97 HRESULT GetSystemIdForUser([in] Windows.System.User *user, [out, retval] Windows.System.Profile.SystemIdentificationInfo **result);
98 }
99
100#ifndef _WINDOWS_SYSTEM_PROFILE_SYSTEM_ID
101 [
Jacek Caban662e1302023-11-30 12:10:42 +0100102 contract(Windows.Foundation.UniversalApiContract, 1.0),
103 marshaling_behavior(agile),
104 threading(both)
105 ]
106 runtimeclass AnalyticsVersionInfo
107 {
108 [default] interface Windows.System.Profile.IAnalyticsVersionInfo;
109 [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.System.Profile.IAnalyticsVersionInfo2;
110 }
111
112 [
113 contract(Windows.Foundation.UniversalApiContract, 1.0),
114 marshaling_behavior(agile),
115 static(Windows.System.Profile.IAnalyticsInfoStatics, Windows.Foundation.UniversalApiContract, 1.0),
116 static(Windows.System.Profile.IAnalyticsInfoStatics2, Windows.Foundation.UniversalApiContract, 6.0),
117 threading(both)
118 ]
119 runtimeclass AnalyticsInfo
120 {
121 }
Jacek Caban75ed7d22025-04-04 11:47:26 +0200122#endif
Jacek Caban662e1302023-11-30 12:10:42 +0100123
Jacek Caban75ed7d22025-04-04 11:47:26 +0200124#ifndef _TWINAPI_APPCORE
125 [
126 contract(Windows.Foundation.UniversalApiContract, 3.0),
127 marshaling_behavior(agile),
128 static(Windows.System.Profile.ISystemIdentificationStatics, Windows.Foundation.UniversalApiContract, 3.0),
129 threading(both)
130 ]
131 runtimeclass SystemIdentification
132 {
133 }
134
135 [
136 contract(Windows.Foundation.UniversalApiContract, 3.0),
137 marshaling_behavior(agile),
138 threading(both)
139 ]
140 runtimeclass SystemIdentificationInfo
141 {
142 [default] interface Windows.System.Profile.ISystemIdentificationInfo;
143 }
144#endif
Jacek Caban662e1302023-11-30 12:10:42 +0100145}