| /** | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER within this package. | |
| */ | |
| import "naptypes.idl"; | |
| import "unknwn.idl"; | |
| cpp_quote("#include <winapifamily.h>") | |
| cpp_quote("") | |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | |
| [pointer_default (unique)] | |
| interface INapSoHTypes { | |
| typedef enum tagSoHAttributeType { | |
| sohAttributeTypeSystemHealthId = 2, | |
| sohAttributeTypeIpv4FixupServers = 3, | |
| sohAttributeTypeComplianceResultCodes = 4, | |
| sohAttributeTypeTimeOfLastUpdate = 5, | |
| sohAttributeTypeClientId = 6, | |
| sohAttributeTypeVendorSpecific = 7, | |
| sohAttributeTypeHealthClass = 8, | |
| sohAttributeTypeSoftwareVersion = 9, | |
| sohAttributeTypeProductName = 10, | |
| sohAttributeTypeHealthClassStatus = 11, | |
| sohAttributeTypeSoHGenerationTime = 12, | |
| sohAttributeTypeErrorCodes = 13, | |
| sohAttributeTypeFailureCategory = 14, | |
| sohAttributeTypeIpv6FixupServers = 15, | |
| sohAttributeTypeExtendedIsolationState = 16 | |
| } SoHAttributeType; | |
| typedef enum tagHealthClassValue { | |
| healthClassFirewall = 0, | |
| healthClassPatchLevel = 1, | |
| healthClassAntiVirus = 2, | |
| healthClassCriticalUpdate = 3, | |
| healthClassReserved = 128 | |
| } HealthClassValue; | |
| typedef [switch_type (SoHAttributeType)] union tagSoHAttributeValue { | |
| [case (sohAttributeTypeSystemHealthId)] SystemHealthEntityId idVal; | |
| [case (sohAttributeTypeIpv4FixupServers)] struct tagIpv4Addresses { | |
| [range (1, maxIpv4CountPerSoHAttribute)] UINT16 count; | |
| [size_is (count)] Ipv4Address *addresses; | |
| } v4AddressesVal; | |
| [case (sohAttributeTypeIpv6FixupServers)] struct tagIpv6Addresses { | |
| [range (1, maxIpv6CountPerSoHAttribute)] UINT16 count; | |
| [size_is (count)] Ipv6Address *addresses; | |
| } v6AddressesVal; | |
| [case (sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)] ResultCodes codesVal; | |
| [case (sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)] FILETIME dateTimeVal; | |
| [case (sohAttributeTypeVendorSpecific)] struct tagVendorSpecific { | |
| UINT32 vendorId; | |
| [range (0, maxSoHAttributeSize - 4)] UINT16 size; | |
| [size_is (size)] BYTE *vendorSpecificData; | |
| } vendorSpecificVal; | |
| [case (sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory, sohAttributeTypeExtendedIsolationState)] UINT8 uint8Val; | |
| [default] struct tagOctetString { | |
| [range (0, maxSoHAttributeSize)] UINT16 size; | |
| [size_is (size)] BYTE *data; | |
| } octetStringVal; | |
| } SoHAttributeValue; | |
| }; | |
| [object, uuid (35298344-96a6-45e7-9b6b-62ecc6e09920), pointer_default (unique)] | |
| interface INapSoHConstructor : IUnknown { | |
| HRESULT Initialize ([in] SystemHealthEntityId id,[in] BOOL isRequest); | |
| HRESULT AppendAttribute ([in] SoHAttributeType type,[in, switch_is (type)] const SoHAttributeValue *value); | |
| HRESULT GetSoH ([out] SoH **soh); | |
| HRESULT Validate ([in] const SoH *soh,[in] BOOL isRequest); | |
| }; | |
| [object, uuid (FB2FA8B0-2cd5-457d-ABA8-4376f63ea1c0), pointer_default (unique)] | |
| interface INapSoHProcessor : IUnknown { | |
| HRESULT Initialize ([in] const SoH *soh,[in] BOOL isRequest,[out] SystemHealthEntityId *id); | |
| HRESULT FindNextAttribute ([in] UINT16 fromLocation,[in] SoHAttributeType type,[out] UINT16 *attributeLocation); | |
| HRESULT GetAttribute ([in] UINT16 attributeLocation,[out] SoHAttributeType *type,[out, switch_is (*type)] SoHAttributeValue **value); | |
| HRESULT GetNumberOfAttributes ([out] UINT16 *attributeCount); | |
| }; | |
| cpp_quote("EXTERN_C const CLSID CLSID_NapSoHConstructor;") | |
| cpp_quote("EXTERN_C const CLSID CLSID_NapSoHProcessor;") | |
| cpp_quote("#endif") |