/** * 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 ") 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")