source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/napprotocol.idl@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.5 KB
Line 
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
6import "naptypes.idl";
7import "unknwn.idl";
8
9cpp_quote("#include <winapifamily.h>")
10cpp_quote("")
11cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
12
13[pointer_default (unique)]
14interface 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)]
67interface 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)]
75interface 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
82cpp_quote("EXTERN_C const CLSID CLSID_NapSoHConstructor;")
83cpp_quote("EXTERN_C const CLSID CLSID_NapSoHProcessor;")
84cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.