[1166] | 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")
|
---|