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