| /* | 
 |  * Copyright 2023 Rémi Bernon for CodeWeavers | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 |  | 
 | #ifdef __WIDL__ | 
 | #pragma winrt ns_prefix | 
 | #endif | 
 |  | 
 | #ifndef DO_NO_IMPORTS | 
 | import "inspectable.idl"; | 
 | import "asyncinfo.idl"; | 
 | import "eventtoken.idl"; | 
 | import "windowscontracts.idl"; | 
 | import "windows.foundation.idl"; | 
 | import "windows.storage.streams.idl"; | 
 | import "windows.system.idl"; | 
 | #endif | 
 |  | 
 | namespace Windows.System.Profile { | 
 |     typedef enum SystemIdentificationSource SystemIdentificationSource; | 
 |     interface IAnalyticsInfoStatics; | 
 |     interface IAnalyticsInfoStatics2; | 
 |     interface IAnalyticsVersionInfo; | 
 |     interface IAnalyticsVersionInfo2; | 
 |     interface ISystemIdentificationInfo; | 
 |     interface ISystemIdentificationStatics; | 
 |     runtimeclass AnalyticsVersionInfo; | 
 |     runtimeclass AnalyticsInfo; | 
 |     runtimeclass SystemIdentification; | 
 |     runtimeclass SystemIdentificationInfo; | 
 |  | 
 |     [contract(Windows.Foundation.UniversalApiContract, 3.0)] | 
 |     enum SystemIdentificationSource | 
 |     { | 
 |         None     = 0, | 
 |         Tpm      = 1, | 
 |         Uefi     = 2, | 
 |         [contract(Windows.Foundation.UniversalApiContract, 5.0)] | 
 |         Registry = 3, | 
 |     }; | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 1.0), | 
 |         exclusiveto(Windows.System.Profile.AnalyticsInfo), | 
 |         uuid(1d5ee066-188d-5ba9-4387-acaeb0e7e305) | 
 |     ] | 
 |     interface IAnalyticsInfoStatics : IInspectable | 
 |     { | 
 |         [propget] HRESULT VersionInfo([out, retval] Windows.System.Profile.AnalyticsVersionInfo **value); | 
 |         [propget] HRESULT DeviceForm([out, retval] HSTRING *value); | 
 |     } | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 1.0), | 
 |         exclusiveto(Windows.System.Profile.AnalyticsVersionInfo), | 
 |         uuid(926130b8-9955-4c74-bdc1-7cd0decf9b03) | 
 |     ] | 
 |     interface IAnalyticsVersionInfo : IInspectable | 
 |     { | 
 |         [propget] HRESULT DeviceFamily([out, retval] HSTRING *value); | 
 |         [propget] HRESULT DeviceFamilyVersion([out, retval] HSTRING *value); | 
 |     } | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 3.0), | 
 |         exclusiveto(Windows.System.Profile.SystemIdentificationInfo), | 
 |         uuid(0c659e7d-c3c2-4d33-a2df-21bc41916eb3) | 
 |     ] | 
 |     interface ISystemIdentificationInfo : IInspectable | 
 |     { | 
 |         [propget] HRESULT Id([out, retval] Windows.Storage.Streams.IBuffer **value); | 
 |         [propget] HRESULT Source([out, retval] Windows.System.Profile.SystemIdentificationSource *value); | 
 |     } | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 3.0), | 
 |         exclusiveto(Windows.System.Profile.SystemIdentification), | 
 |         uuid(5581f42a-d3df-4d93-a37d-c41a616c6d01) | 
 |     ] | 
 |     interface ISystemIdentificationStatics : IInspectable | 
 |     { | 
 |         HRESULT GetSystemIdForPublisher([out, retval] Windows.System.Profile.SystemIdentificationInfo **result); | 
 |         HRESULT GetSystemIdForUser([in] Windows.System.User *user, [out, retval] Windows.System.Profile.SystemIdentificationInfo **result); | 
 |     } | 
 |  | 
 | #ifndef _WINDOWS_SYSTEM_PROFILE_SYSTEM_ID | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 1.0), | 
 |         marshaling_behavior(agile), | 
 |         threading(both) | 
 |     ] | 
 |     runtimeclass AnalyticsVersionInfo | 
 |     { | 
 |         [default] interface Windows.System.Profile.IAnalyticsVersionInfo; | 
 |         [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.System.Profile.IAnalyticsVersionInfo2; | 
 |     } | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 1.0), | 
 |         marshaling_behavior(agile), | 
 |         static(Windows.System.Profile.IAnalyticsInfoStatics, Windows.Foundation.UniversalApiContract, 1.0), | 
 |         static(Windows.System.Profile.IAnalyticsInfoStatics2, Windows.Foundation.UniversalApiContract, 6.0), | 
 |         threading(both) | 
 |     ] | 
 |     runtimeclass AnalyticsInfo | 
 |     { | 
 |     } | 
 | #endif | 
 |  | 
 | #ifndef _TWINAPI_APPCORE | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 3.0), | 
 |         marshaling_behavior(agile), | 
 |         static(Windows.System.Profile.ISystemIdentificationStatics, Windows.Foundation.UniversalApiContract, 3.0), | 
 |         threading(both) | 
 |     ] | 
 |     runtimeclass SystemIdentification | 
 |     { | 
 |     } | 
 |  | 
 |     [ | 
 |         contract(Windows.Foundation.UniversalApiContract, 3.0), | 
 |         marshaling_behavior(agile), | 
 |         threading(both) | 
 |     ] | 
 |     runtimeclass SystemIdentificationInfo | 
 |     { | 
 |         [default] interface Windows.System.Profile.ISystemIdentificationInfo; | 
 |     } | 
 | #endif | 
 | } |