| 1 | /** | 
 
 
 
 
 | 2 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 3 | * No warranty is given; refer to the file DISCLAIMER within this package. | 
 
 
 
 
 | 4 | */ | 
 
 
 
 
 | 5 |  | 
 
 
 
 
 | 6 | import "naptypes.idl"; | 
 
 
 
 
 | 7 | import "unknwn.idl"; | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | cpp_quote("#include <winapifamily.h>") | 
 
 
 
 
 | 10 | cpp_quote("") | 
 
 
 
 
 | 11 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | [pointer_default (unique)] | 
 
 
 
 
 | 14 | interface INapSoHTypes { | 
 
 
 
 
 | 15 | typedef enum tagSoHAttributeType { | 
 
 
 
 
 | 16 | sohAttributeTypeSystemHealthId = 2, | 
 
 
 
 
 | 17 | sohAttributeTypeIpv4FixupServers = 3, | 
 
 
 
 
 | 18 | sohAttributeTypeComplianceResultCodes = 4, | 
 
 
 
 
 | 19 | sohAttributeTypeTimeOfLastUpdate = 5, | 
 
 
 
 
 | 20 | sohAttributeTypeClientId = 6, | 
 
 
 
 
 | 21 | sohAttributeTypeVendorSpecific = 7, | 
 
 
 
 
 | 22 | sohAttributeTypeHealthClass = 8, | 
 
 
 
 
 | 23 | sohAttributeTypeSoftwareVersion = 9, | 
 
 
 
 
 | 24 | sohAttributeTypeProductName = 10, | 
 
 
 
 
 | 25 | sohAttributeTypeHealthClassStatus = 11, | 
 
 
 
 
 | 26 | sohAttributeTypeSoHGenerationTime = 12, | 
 
 
 
 
 | 27 | sohAttributeTypeErrorCodes = 13, | 
 
 
 
 
 | 28 | sohAttributeTypeFailureCategory = 14, | 
 
 
 
 
 | 29 | sohAttributeTypeIpv6FixupServers = 15, | 
 
 
 
 
 | 30 | sohAttributeTypeExtendedIsolationState = 16 | 
 
 
 
 
 | 31 | } SoHAttributeType; | 
 
 
 
 
 | 32 |  | 
 
 
 
 
 | 33 | typedef enum tagHealthClassValue { | 
 
 
 
 
 | 34 | healthClassFirewall = 0, | 
 
 
 
 
 | 35 | healthClassPatchLevel = 1, | 
 
 
 
 
 | 36 | healthClassAntiVirus = 2, | 
 
 
 
 
 | 37 | healthClassCriticalUpdate = 3, | 
 
 
 
 
 | 38 | healthClassReserved = 128 | 
 
 
 
 
 | 39 | } HealthClassValue; | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 | typedef [switch_type (SoHAttributeType)] union tagSoHAttributeValue { | 
 
 
 
 
 | 42 | [case (sohAttributeTypeSystemHealthId)] SystemHealthEntityId idVal; | 
 
 
 
 
 | 43 | [case (sohAttributeTypeIpv4FixupServers)] struct tagIpv4Addresses { | 
 
 
 
 
 | 44 | [range (1, maxIpv4CountPerSoHAttribute)] UINT16 count; | 
 
 
 
 
 | 45 | [size_is (count)] Ipv4Address *addresses; | 
 
 
 
 
 | 46 | } v4AddressesVal; | 
 
 
 
 
 | 47 | [case (sohAttributeTypeIpv6FixupServers)] struct tagIpv6Addresses { | 
 
 
 
 
 | 48 | [range (1, maxIpv6CountPerSoHAttribute)] UINT16 count; | 
 
 
 
 
 | 49 | [size_is (count)] Ipv6Address *addresses; | 
 
 
 
 
 | 50 | } v6AddressesVal; | 
 
 
 
 
 | 51 | [case (sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)] ResultCodes codesVal; | 
 
 
 
 
 | 52 | [case (sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)] FILETIME dateTimeVal; | 
 
 
 
 
 | 53 | [case (sohAttributeTypeVendorSpecific)] struct tagVendorSpecific { | 
 
 
 
 
 | 54 | UINT32 vendorId; | 
 
 
 
 
 | 55 | [range (0, maxSoHAttributeSize - 4)] UINT16 size; | 
 
 
 
 
 | 56 | [size_is (size)] BYTE *vendorSpecificData; | 
 
 
 
 
 | 57 | } vendorSpecificVal; | 
 
 
 
 
 | 58 | [case (sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory, sohAttributeTypeExtendedIsolationState)] UINT8 uint8Val; | 
 
 
 
 
 | 59 | [default] struct tagOctetString { | 
 
 
 
 
 | 60 | [range (0, maxSoHAttributeSize)] UINT16 size; | 
 
 
 
 
 | 61 | [size_is (size)] BYTE *data; | 
 
 
 
 
 | 62 | } octetStringVal; | 
 
 
 
 
 | 63 | } SoHAttributeValue; | 
 
 
 
 
 | 64 | }; | 
 
 
 
 
 | 65 |  | 
 
 
 
 
 | 66 | [object, uuid (35298344-96a6-45e7-9b6b-62ecc6e09920), pointer_default (unique)] | 
 
 
 
 
 | 67 | interface INapSoHConstructor : IUnknown { | 
 
 
 
 
 | 68 | HRESULT Initialize ([in] SystemHealthEntityId id,[in] BOOL isRequest); | 
 
 
 
 
 | 69 | HRESULT AppendAttribute ([in] SoHAttributeType type,[in, switch_is (type)] const SoHAttributeValue *value); | 
 
 
 
 
 | 70 | HRESULT GetSoH ([out] SoH **soh); | 
 
 
 
 
 | 71 | HRESULT Validate ([in] const SoH *soh,[in] BOOL isRequest); | 
 
 
 
 
 | 72 | }; | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | [object, uuid (FB2FA8B0-2cd5-457d-ABA8-4376f63ea1c0), pointer_default (unique)] | 
 
 
 
 
 | 75 | interface INapSoHProcessor : IUnknown { | 
 
 
 
 
 | 76 | HRESULT Initialize ([in] const SoH *soh,[in] BOOL isRequest,[out] SystemHealthEntityId *id); | 
 
 
 
 
 | 77 | HRESULT FindNextAttribute ([in] UINT16 fromLocation,[in] SoHAttributeType type,[out] UINT16 *attributeLocation); | 
 
 
 
 
 | 78 | HRESULT GetAttribute ([in] UINT16 attributeLocation,[out] SoHAttributeType *type,[out, switch_is (*type)] SoHAttributeValue **value); | 
 
 
 
 
 | 79 | HRESULT GetNumberOfAttributes ([out] UINT16 *attributeCount); | 
 
 
 
 
 | 80 | }; | 
 
 
 
 
 | 81 |  | 
 
 
 
 
 | 82 | cpp_quote("EXTERN_C const CLSID CLSID_NapSoHConstructor;") | 
 
 
 
 
 | 83 | cpp_quote("EXTERN_C const CLSID CLSID_NapSoHProcessor;") | 
 
 
 
 
 | 84 | cpp_quote("#endif") |