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