Jacek Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 1 | /* |
| 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 |
| 24 | import "inspectable.idl"; |
| 25 | import "asyncinfo.idl"; |
| 26 | import "eventtoken.idl"; |
| 27 | import "windowscontracts.idl"; |
| 28 | import "windows.foundation.idl"; |
| 29 | import "windows.storage.streams.idl"; |
| 30 | import "windows.system.idl"; |
| 31 | #endif |
| 32 | |
| 33 | namespace Windows.System.Profile { |
Jacek Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 34 | typedef enum SystemIdentificationSource SystemIdentificationSource; |
Jacek Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 35 | interface IAnalyticsInfoStatics; |
| 36 | interface IAnalyticsInfoStatics2; |
| 37 | interface IAnalyticsVersionInfo; |
| 38 | interface IAnalyticsVersionInfo2; |
Jacek Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 39 | interface ISystemIdentificationInfo; |
| 40 | interface ISystemIdentificationStatics; |
Jacek Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 41 | runtimeclass AnalyticsVersionInfo; |
| 42 | runtimeclass AnalyticsInfo; |
Jacek Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 43 | 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 Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 55 | |
| 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 Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 79 | 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 Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 102 | 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 Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 122 | #endif |
Jacek Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 123 | |
Jacek Caban | 75ed7d2 | 2025-04-04 11:47:26 +0200 | [diff] [blame] | 124 | #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 Caban | 662e130 | 2023-11-30 12:10:42 +0100 | [diff] [blame] | 145 | } |