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