//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (281)
//--------------------------------------------------------------------------------
pub const FD_EVENTID_PRIVATE = @as(u32, 100);
pub const FD_EVENTID = @as(u32, 1000);
pub const FD_EVENTID_SEARCHCOMPLETE = @as(u32, 1000);
pub const FD_EVENTID_ASYNCTHREADEXIT = @as(u32, 1001);
pub const FD_EVENTID_SEARCHSTART = @as(u32, 1002);
pub const FD_EVENTID_IPADDRESSCHANGE = @as(u32, 1003);
pub const FD_EVENTID_QUERYREFRESH = @as(u32, 1004);
pub const SID_PnpProvider = Guid.initString("8101368e-cabb-4426-acff-96c410812000");
pub const SID_UPnPActivator = Guid.initString("0d0d66eb-cf74-4164-b52f-08344672dd46");
pub const SID_EnumInterface = Guid.initString("40eab0b9-4d7f-4b53-a334-1581dd9041f4");
pub const SID_PNPXPropertyStore = Guid.initString("a86530b1-542f-439f-b71c-b0756b13677a");
pub const SID_PNPXAssociation = Guid.initString("cee8ccc9-4f6b-4469-a235-5a22869eef03");
pub const SID_PNPXServiceCollection = Guid.initString("439e80ee-a217-4712-9fa6-deabd9c2a727");
pub const SID_FDPairingHandler = Guid.initString("383b69fa-5486-49da-91f5-d63c24c8e9d0");
pub const SID_EnumDeviceFunction = Guid.initString("13e0e9e2-c3fa-4e3c-906e-64502fa4dc95");
pub const SID_UnpairProvider = Guid.initString("89a502fc-857b-4698-a0b7-027192002f9e");
pub const SID_DeviceDisplayStatusManager = Guid.initString("f59aa553-8309-46ca-9736-1ac3c62d6031");
pub const SID_FunctionDiscoveryProviderRefresh = Guid.initString("2b4cbdc9-31c4-40d4-a62d-772aa174ed52");
pub const SID_UninstallDeviceFunction = Guid.initString("c920566e-5671-4496-8025-bf0b89bd44cd");
pub const PKEY_FunctionInstance = PROPERTYKEY{ .fmtid = Guid.initString("08c0c253-a154-4746-9005-82de5317148b"), .pid = 1 };
pub const FMTID_FD = Guid.initString("904b03a2-471d-423c-a584-f3483238a146");
pub const FD_Visibility_Default = @as(u32, 0);
pub const FD_Visibility_Hidden = @as(u32, 1);
pub const FMTID_Device = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57");
pub const FMTID_DeviceInterface = Guid.initString("53808008-07bb-4661-bc3c-b5953e708560");
pub const PKEY_DeviceDisplay_Address = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 51 };
pub const PKEY_DeviceDisplay_DiscoveryMethod = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 52 };
pub const PKEY_DeviceDisplay_IsEncrypted = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 53 };
pub const PKEY_DeviceDisplay_IsAuthenticated = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 54 };
pub const PKEY_DeviceDisplay_IsConnected = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 55 };
pub const PKEY_DeviceDisplay_IsPaired = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 56 };
pub const PKEY_DeviceDisplay_Icon = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 57 };
pub const PKEY_DeviceDisplay_Version = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 65 };
pub const PKEY_DeviceDisplay_Last_Seen = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 66 };
pub const PKEY_DeviceDisplay_Last_Connected = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 67 };
pub const PKEY_DeviceDisplay_IsShowInDisconnectedState = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 68 };
pub const PKEY_DeviceDisplay_IsLocalMachine = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 70 };
pub const PKEY_DeviceDisplay_MetadataPath = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 71 };
pub const PKEY_DeviceDisplay_IsMetadataSearchInProgress = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 72 };
pub const PKEY_DeviceDisplay_MetadataChecksum = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 73 };
pub const PKEY_DeviceDisplay_IsNotInterestingForDisplay = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 74 };
pub const PKEY_DeviceDisplay_LaunchDeviceStageOnDeviceConnect = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 76 };
pub const PKEY_DeviceDisplay_LaunchDeviceStageFromExplorer = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 77 };
pub const PKEY_DeviceDisplay_BaselineExperienceId = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 78 };
pub const PKEY_DeviceDisplay_IsDeviceUniquelyIdentifiable = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 79 };
pub const PKEY_DeviceDisplay_AssociationArray = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 80 };
pub const PKEY_DeviceDisplay_DeviceDescription1 = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 81 };
pub const PKEY_DeviceDisplay_DeviceDescription2 = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 82 };
pub const PKEY_DeviceDisplay_IsNotWorkingProperly = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 83 };
pub const PKEY_DeviceDisplay_IsSharedDevice = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 84 };
pub const PKEY_DeviceDisplay_IsNetworkDevice = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 85 };
pub const PKEY_DeviceDisplay_IsDefaultDevice = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 86 };
pub const PKEY_DeviceDisplay_MetadataCabinet = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 87 };
pub const PKEY_DeviceDisplay_RequiresPairingElevation = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 88 };
pub const PKEY_DeviceDisplay_ExperienceId = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 89 };
pub const PKEY_DeviceDisplay_Category = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 90 };
pub const PKEY_DeviceDisplay_Category_Desc_Singular = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 91 };
pub const PKEY_DeviceDisplay_Category_Desc_Plural = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 92 };
pub const PKEY_DeviceDisplay_Category_Icon = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 93 };
pub const PKEY_DeviceDisplay_CategoryGroup_Desc = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 94 };
pub const PKEY_DeviceDisplay_CategoryGroup_Icon = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 95 };
pub const PKEY_DeviceDisplay_PrimaryCategory = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 97 };
pub const PKEY_DeviceDisplay_UnpairUninstall = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 98 };
pub const PKEY_DeviceDisplay_RequiresUninstallElevation = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 99 };
pub const PKEY_DeviceDisplay_DeviceFunctionSubRank = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 100 };
pub const PKEY_DeviceDisplay_AlwaysShowDeviceAsConnected = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 101 };
pub const PKEY_DeviceDisplay_FriendlyName = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12288 };
pub const PKEY_DeviceDisplay_Manufacturer = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8192 };
pub const PKEY_DeviceDisplay_ModelName = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8194 };
pub const PKEY_DeviceDisplay_ModelNumber = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8195 };
pub const PKEY_DeviceDisplay_InstallInProgress = PROPERTYKEY{ .fmtid = Guid.initString("83da6326-97a6-4088-9453-a1923f573b29"), .pid = 9 };
pub const FMTID_Pairing = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc");
pub const PKEY_Pairing_ListItemText = PROPERTYKEY{ .fmtid = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc"), .pid = 1 };
pub const PKEY_Pairing_ListItemDescription = PROPERTYKEY{ .fmtid = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc"), .pid = 2 };
pub const PKEY_Pairing_ListItemIcon = PROPERTYKEY{ .fmtid = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc"), .pid = 3 };
pub const PKEY_Pairing_ListItemDefault = PROPERTYKEY{ .fmtid = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc"), .pid = 4 };
pub const PKEY_Pairing_IsWifiOnlyDevice = PROPERTYKEY{ .fmtid = Guid.initString("8807cae6-7db6-4f10-8ee4-435eaa1392bc"), .pid = 16 };
pub const PKEY_Device_BIOSVersion = PROPERTYKEY{ .fmtid = Guid.initString("eaee7f1d-6a33-44d1-9441-5f46def23198"), .pid = 9 };
pub const FMTID_WSD = Guid.initString("92506491-ff95-4724-a05a-5b81885a7c92");
pub const FMTID_PNPX = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd");
pub const PKEY_PNPX_GlobalIdentity = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4096 };
pub const PKEY_PNPX_Types = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4097 };
pub const PKEY_PNPX_Scopes = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4098 };
pub const PKEY_PNPX_XAddrs = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4099 };
pub const PKEY_PNPX_MetadataVersion = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4100 };
pub const PKEY_PNPX_ID = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4101 };
pub const PKEY_PNPX_RemoteAddress = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4102 };
pub const PKEY_PNPX_RootProxy = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 4103 };
pub const PKEY_PNPX_ManufacturerUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8193 };
pub const PKEY_PNPX_ModelUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8196 };
pub const PKEY_PNPX_Upc = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8197 };
pub const PKEY_PNPX_PresentationUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 8198 };
pub const PKEY_PNPX_FirmwareVersion = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12289 };
pub const PKEY_PNPX_SerialNumber = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12290 };
pub const PKEY_PNPX_DeviceCategory = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12292 };
pub const PKEY_PNPX_SecureChannel = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 28673 };
pub const PKEY_PNPX_CompactSignature = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 28674 };
pub const PKEY_PNPX_DeviceCertHash = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 28675 };
pub const PKEY_PNPX_DeviceCategory_Desc = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12293 };
pub const PKEY_PNPX_Category_Desc_NonPlural = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12304 };
pub const PKEY_PNPX_PhysicalAddress = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12294 };
pub const PKEY_PNPX_NetworkInterfaceLuid = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12295 };
pub const PKEY_PNPX_NetworkInterfaceGuid = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12296 };
pub const PKEY_PNPX_IpAddress = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 12297 };
pub const PKEY_PNPX_ServiceAddress = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16384 };
pub const PKEY_PNPX_ServiceId = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16385 };
pub const PKEY_PNPX_ServiceTypes = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16386 };
pub const PKEY_PNPX_ServiceControlUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16388 };
pub const PKEY_PNPX_ServiceDescUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16389 };
pub const PKEY_PNPX_ServiceEventSubUrl = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 16390 };
pub const PKEY_PNPX_DomainName = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 20480 };
pub const PKEY_PNPX_ShareName = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 20482 };
pub const PKEY_SSDP_AltLocationInfo = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 24576 };
pub const PKEY_SSDP_DevLifeTime = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 24577 };
pub const PKEY_SSDP_NetworkInterface = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 24578 };
pub const FMTID_PNPXDynamicProperty = Guid.initString("4fc5077e-b686-44be-93e3-86cafe368ccd");
pub const PKEY_PNPX_Installable = PROPERTYKEY{ .fmtid = Guid.initString("4fc5077e-b686-44be-93e3-86cafe368ccd"), .pid = 1 };
pub const PKEY_PNPX_Associated = PROPERTYKEY{ .fmtid = Guid.initString("4fc5077e-b686-44be-93e3-86cafe368ccd"), .pid = 2 };
pub const PKEY_PNPX_CompatibleTypes = PROPERTYKEY{ .fmtid = Guid.initString("4fc5077e-b686-44be-93e3-86cafe368ccd"), .pid = 3 };
pub const PKEY_PNPX_InstallState = PROPERTYKEY{ .fmtid = Guid.initString("4fc5077e-b686-44be-93e3-86cafe368ccd"), .pid = 4 };
pub const PNPX_INSTALLSTATE_NOTINSTALLED = @as(u32, 0);
pub const PNPX_INSTALLSTATE_INSTALLED = @as(u32, 1);
pub const PNPX_INSTALLSTATE_INSTALLING = @as(u32, 2);
pub const PNPX_INSTALLSTATE_FAILED = @as(u32, 3);
pub const PKEY_PNPX_Removable = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 28672 };
pub const PKEY_PNPX_IPBusEnumerated = PROPERTYKEY{ .fmtid = Guid.initString("656a3bb3-ecc0-43fd-8477-4ae0404a96cd"), .pid = 28688 };
pub const PKEY_WNET_Scope = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 1 };
pub const PKEY_WNET_Type = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 2 };
pub const PKEY_WNET_DisplayType = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 3 };
pub const PKEY_WNET_Usage = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 4 };
pub const PKEY_WNET_LocalName = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 5 };
pub const PKEY_WNET_RemoteName = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 6 };
pub const PKEY_WNET_Comment = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 7 };
pub const PKEY_WNET_Provider = PROPERTYKEY{ .fmtid = Guid.initString("debda43a-37b3-4383-91e7-4498da2995ab"), .pid = 8 };
pub const PKEY_WCN_Version = PROPERTYKEY{ .fmtid = Guid.initString("88190b80-4684-11da-a26a-0002b3988e81"), .pid = 1 };
pub const PKEY_WCN_RequestType = PROPERTYKEY{ .fmtid = Guid.initString("88190b81-4684-11da-a26a-0002b3988e81"), .pid = 2 };
pub const PKEY_WCN_AuthType = PROPERTYKEY{ .fmtid = Guid.initString("88190b82-4684-11da-a26a-0002b3988e81"), .pid = 3 };
pub const PKEY_WCN_EncryptType = PROPERTYKEY{ .fmtid = Guid.initString("88190b83-4684-11da-a26a-0002b3988e81"), .pid = 4 };
pub const PKEY_WCN_ConnType = PROPERTYKEY{ .fmtid = Guid.initString("88190b84-4684-11da-a26a-0002b3988e81"), .pid = 5 };
pub const PKEY_WCN_ConfigMethods = PROPERTYKEY{ .fmtid = Guid.initString("88190b85-4684-11da-a26a-0002b3988e81"), .pid = 6 };
pub const PKEY_WCN_RfBand = PROPERTYKEY{ .fmtid = Guid.initString("88190b87-4684-11da-a26a-0002b3988e81"), .pid = 8 };
pub const PKEY_WCN_AssocState = PROPERTYKEY{ .fmtid = Guid.initString("88190b88-4684-11da-a26a-0002b3988e81"), .pid = 9 };
pub const PKEY_WCN_ConfigError = PROPERTYKEY{ .fmtid = Guid.initString("88190b89-4684-11da-a26a-0002b3988e81"), .pid = 10 };
pub const PKEY_WCN_ConfigState = PROPERTYKEY{ .fmtid = Guid.initString("88190b89-4684-11da-a26a-0002b3988e81"), .pid = 11 };
pub const PKEY_WCN_DevicePasswordId = PROPERTYKEY{ .fmtid = Guid.initString("88190b89-4684-11da-a26a-0002b3988e81"), .pid = 12 };
pub const PKEY_WCN_OSVersion = PROPERTYKEY{ .fmtid = Guid.initString("88190b89-4684-11da-a26a-0002b3988e81"), .pid = 13 };
pub const PKEY_WCN_VendorExtension = PROPERTYKEY{ .fmtid = Guid.initString("88190b8a-4684-11da-a26a-0002b3988e81"), .pid = 14 };
pub const PKEY_WCN_RegistrarType = PROPERTYKEY{ .fmtid = Guid.initString("88190b8b-4684-11da-a26a-0002b3988e81"), .pid = 15 };
pub const PKEY_Hardware_Devinst = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 4097 };
pub const PKEY_Hardware_DisplayAttribute = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 5 };
pub const PKEY_Hardware_DriverDate = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 11 };
pub const PKEY_Hardware_DriverProvider = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 10 };
pub const PKEY_Hardware_DriverVersion = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 9 };
pub const PKEY_Hardware_Function = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 4099 };
pub const PKEY_Hardware_Icon = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 3 };
pub const PKEY_Hardware_Image = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 4098 };
pub const PKEY_Hardware_Manufacturer = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 6 };
pub const PKEY_Hardware_Model = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 7 };
pub const PKEY_Hardware_Name = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 2 };
pub const PKEY_Hardware_SerialNumber = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 8 };
pub const PKEY_Hardware_ShellAttributes = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 4100 };
pub const PKEY_Hardware_Status = PROPERTYKEY{ .fmtid = Guid.initString("5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953"), .pid = 4096 };
pub const PKEY_NAME = PROPERTYKEY{ .fmtid = Guid.initString("b725f130-47ef-101a-a5f1-02608c9eebac"), .pid = 10 };
pub const PKEY_Device_DeviceDesc = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 2 };
pub const PKEY_Device_HardwareIds = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 3 };
pub const PKEY_Device_CompatibleIds = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 4 };
pub const PKEY_Device_Service = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 6 };
pub const PKEY_Device_Class = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 9 };
pub const PKEY_Device_ClassGuid = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 10 };
pub const PKEY_Device_Driver = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 11 };
pub const PKEY_Device_ConfigFlags = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 12 };
pub const PKEY_Device_Manufacturer = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 13 };
pub const PKEY_Device_FriendlyName = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 14 };
pub const PKEY_Device_LocationInfo = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 15 };
pub const PKEY_Device_PDOName = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 16 };
pub const PKEY_Device_Capabilities = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 17 };
pub const PKEY_Device_UINumber = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 18 };
pub const PKEY_Device_UpperFilters = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 19 };
pub const PKEY_Device_LowerFilters = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 20 };
pub const PKEY_Device_BusTypeGuid = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 21 };
pub const PKEY_Device_LegacyBusType = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 22 };
pub const PKEY_Device_BusNumber = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 23 };
pub const PKEY_Device_EnumeratorName = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 24 };
pub const PKEY_Device_Security = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 25 };
pub const PKEY_Device_SecuritySDS = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 26 };
pub const PKEY_Device_DevType = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 27 };
pub const PKEY_Device_Exclusive = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 28 };
pub const PKEY_Device_Characteristics = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 29 };
pub const PKEY_Device_Address = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 30 };
pub const PKEY_Device_UINumberDescFormat = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 31 };
pub const PKEY_Device_PowerData = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 32 };
pub const PKEY_Device_RemovalPolicy = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 33 };
pub const PKEY_Device_RemovalPolicyDefault = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 34 };
pub const PKEY_Device_RemovalPolicyOverride = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 35 };
pub const PKEY_Device_InstallState = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 36 };
pub const PKEY_Device_LocationPaths = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 37 };
pub const PKEY_Device_BaseContainerId = PROPERTYKEY{ .fmtid = Guid.initString("a45c254e-df1c-4efd-8020-67d146a850e0"), .pid = 38 };
pub const PKEY_Device_DevNodeStatus = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 2 };
pub const PKEY_Device_ProblemCode = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 3 };
pub const PKEY_Device_EjectionRelations = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 4 };
pub const PKEY_Device_RemovalRelations = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 5 };
pub const PKEY_Device_PowerRelations = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 6 };
pub const PKEY_Device_BusRelations = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 7 };
pub const PKEY_Device_Parent = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 8 };
pub const PKEY_Device_Children = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 9 };
pub const PKEY_Device_Siblings = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 10 };
pub const PKEY_Device_TransportRelations = PROPERTYKEY{ .fmtid = Guid.initString("4340a6c5-93fa-4706-972c-7b648008a5a7"), .pid = 11 };
pub const PKEY_Device_Reported = PROPERTYKEY{ .fmtid = Guid.initString("80497100-8c73-48b9-aad9-ce387e19c56e"), .pid = 2 };
pub const PKEY_Device_Legacy = PROPERTYKEY{ .fmtid = Guid.initString("80497100-8c73-48b9-aad9-ce387e19c56e"), .pid = 3 };
pub const PKEY_Device_InstanceId = PROPERTYKEY{ .fmtid = Guid.initString("78c34fc8-104a-4aca-9ea4-524d52996e57"), .pid = 256 };
pub const PKEY_Device_ContainerId = PROPERTYKEY{ .fmtid = Guid.initString("8c7ed206-3f8a-4827-b3ab-ae9e1faefc6c"), .pid = 2 };
pub const PKEY_Device_ModelId = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 2 };
pub const PKEY_Device_FriendlyNameAttributes = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 3 };
pub const PKEY_Device_ManufacturerAttributes = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 4 };
pub const PKEY_Device_PresenceNotForDevice = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 5 };
pub const PKEY_Device_SignalStrength = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 6 };
pub const PKEY_Device_IsAssociateableByUserAction = PROPERTYKEY{ .fmtid = Guid.initString("80d81ea6-7473-4b0c-8216-efc11a2c4c8b"), .pid = 7 };
pub const PKEY_Numa_Proximity_Domain = PROPERTYKEY{ .fmtid = Guid.initString("540b947e-8b40-45bc-a8a2-6a0b894cbda2"), .pid = 1 };
pub const PKEY_Device_DHP_Rebalance_Policy = PROPERTYKEY{ .fmtid = Guid.initString("540b947e-8b40-45bc-a8a2-6a0b894cbda2"), .pid = 2 };
pub const PKEY_Device_Numa_Node = PROPERTYKEY{ .fmtid = Guid.initString("540b947e-8b40-45bc-a8a2-6a0b894cbda2"), .pid = 3 };
pub const PKEY_Device_BusReportedDeviceDesc = PROPERTYKEY{ .fmtid = Guid.initString("540b947e-8b40-45bc-a8a2-6a0b894cbda2"), .pid = 4 };
pub const PKEY_Device_InstallInProgress = PROPERTYKEY{ .fmtid = Guid.initString("83da6326-97a6-4088-9453-a1923f573b29"), .pid = 9 };
pub const PKEY_Device_DriverDate = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 2 };
pub const PKEY_Device_DriverVersion = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 3 };
pub const PKEY_Device_DriverDesc = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 4 };
pub const PKEY_Device_DriverInfPath = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 5 };
pub const PKEY_Device_DriverInfSection = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 6 };
pub const PKEY_Device_DriverInfSectionExt = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 7 };
pub const PKEY_Device_MatchingDeviceId = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 8 };
pub const PKEY_Device_DriverProvider = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 9 };
pub const PKEY_Device_DriverPropPageProvider = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 10 };
pub const PKEY_Device_DriverCoInstallers = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 11 };
pub const PKEY_Device_ResourcePickerTags = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 12 };
pub const PKEY_Device_ResourcePickerExceptions = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 13 };
pub const PKEY_Device_DriverRank = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 14 };
pub const PKEY_Device_DriverLogoLevel = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 15 };
pub const PKEY_Device_NoConnectSound = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 17 };
pub const PKEY_Device_GenericDriverInstalled = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 18 };
pub const PKEY_Device_AdditionalSoftwareRequested = PROPERTYKEY{ .fmtid = Guid.initString("a8b865dd-2e3d-4094-ad97-e593a70c75d6"), .pid = 19 };
pub const PKEY_Device_SafeRemovalRequired = PROPERTYKEY{ .fmtid = Guid.initString("afd97640-86a3-4210-b67c-289c41aabe55"), .pid = 2 };
pub const PKEY_Device_SafeRemovalRequiredOverride = PROPERTYKEY{ .fmtid = Guid.initString("afd97640-86a3-4210-b67c-289c41aabe55"), .pid = 3 };
pub const PKEY_DrvPkg_Model = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 2 };
pub const PKEY_DrvPkg_VendorWebSite = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 3 };
pub const PKEY_DrvPkg_DetailedDescription = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 4 };
pub const PKEY_DrvPkg_DocumentationLink = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 5 };
pub const PKEY_DrvPkg_Icon = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 6 };
pub const PKEY_DrvPkg_BrandingIcon = PROPERTYKEY{ .fmtid = Guid.initString("cf73bb51-3abf-44a2-85e0-9a3dc7a12132"), .pid = 7 };
pub const PKEY_DeviceClass_UpperFilters = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 19 };
pub const PKEY_DeviceClass_LowerFilters = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 20 };
pub const PKEY_DeviceClass_Security = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 25 };
pub const PKEY_DeviceClass_SecuritySDS = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 26 };
pub const PKEY_DeviceClass_DevType = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 27 };
pub const PKEY_DeviceClass_Exclusive = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 28 };
pub const PKEY_DeviceClass_Characteristics = PROPERTYKEY{ .fmtid = Guid.initString("4321918b-f69e-470d-a5de-4d88c75ad24b"), .pid = 29 };
pub const PKEY_DeviceClass_Name = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 2 };
pub const PKEY_DeviceClass_ClassName = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 3 };
pub const PKEY_DeviceClass_Icon = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 4 };
pub const PKEY_DeviceClass_ClassInstaller = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 5 };
pub const PKEY_DeviceClass_PropPageProvider = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 6 };
pub const PKEY_DeviceClass_NoInstallClass = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 7 };
pub const PKEY_DeviceClass_NoDisplayClass = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 8 };
pub const PKEY_DeviceClass_SilentInstall = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 9 };
pub const PKEY_DeviceClass_NoUseClass = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 10 };
pub const PKEY_DeviceClass_DefaultService = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 11 };
pub const PKEY_DeviceClass_IconPath = PROPERTYKEY{ .fmtid = Guid.initString("259abffc-50a7-47ce-af08-68c9a7d73366"), .pid = 12 };
pub const PKEY_DeviceClass_ClassCoInstallers = PROPERTYKEY{ .fmtid = Guid.initString("713d1703-a2e2-49f5-9214-56472ef3da5c"), .pid = 2 };
pub const PKEY_DeviceInterface_FriendlyName = PROPERTYKEY{ .fmtid = Guid.initString("026e516e-b814-414b-83cd-856d6fef4822"), .pid = 2 };
pub const PKEY_DeviceInterface_Enabled = PROPERTYKEY{ .fmtid = Guid.initString("026e516e-b814-414b-83cd-856d6fef4822"), .pid = 3 };
pub const PKEY_DeviceInterface_ClassGuid = PROPERTYKEY{ .fmtid = Guid.initString("026e516e-b814-414b-83cd-856d6fef4822"), .pid = 4 };
pub const PKEY_DeviceInterfaceClass_DefaultInterface = PROPERTYKEY{ .fmtid = Guid.initString("14c83a99-0b3f-44b7-be4c-a178d3990564"), .pid = 2 };
pub const FD_LONGHORN = @as(u32, 1);
pub const MAX_FDCONSTRAINTNAME_LENGTH = @as(u32, 100);
pub const MAX_FDCONSTRAINTVALUE_LENGTH = @as(u32, 1000);
pub const E_FDPAIRING_NOCONNECTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193919));
pub const E_FDPAIRING_HWFAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193918));
pub const E_FDPAIRING_AUTHFAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193917));
pub const E_FDPAIRING_CONNECTTIMEOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193916));
pub const E_FDPAIRING_TOOMANYCONNECTIONS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193915));
pub const E_FDPAIRING_AUTHNOTALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193914));
pub const E_FDPAIRING_IPBUSDISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193913));
pub const E_FDPAIRING_NOPROFILES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1882193912));

//--------------------------------------------------------------------------------
// Section: Types (27)
//--------------------------------------------------------------------------------
pub const PropertyConstraint = enum(i32) {
    EQUALS = 0,
    NOTEQUAL = 1,
    LESSTHAN = 2,
    LESSTHANOREQUAL = 3,
    GREATERTHAN = 4,
    GREATERTHANOREQUAL = 5,
    STARTSWITH = 6,
    EXISTS = 7,
    DOESNOTEXIST = 8,
    CONTAINS = 9,
};
pub const QC_EQUALS = PropertyConstraint.EQUALS;
pub const QC_NOTEQUAL = PropertyConstraint.NOTEQUAL;
pub const QC_LESSTHAN = PropertyConstraint.LESSTHAN;
pub const QC_LESSTHANOREQUAL = PropertyConstraint.LESSTHANOREQUAL;
pub const QC_GREATERTHAN = PropertyConstraint.GREATERTHAN;
pub const QC_GREATERTHANOREQUAL = PropertyConstraint.GREATERTHANOREQUAL;
pub const QC_STARTSWITH = PropertyConstraint.STARTSWITH;
pub const QC_EXISTS = PropertyConstraint.EXISTS;
pub const QC_DOESNOTEXIST = PropertyConstraint.DOESNOTEXIST;
pub const QC_CONTAINS = PropertyConstraint.CONTAINS;

pub const SystemVisibilityFlags = enum(i32) {
    SYSTEM = 0,
    USER = 1,
};
pub const SVF_SYSTEM = SystemVisibilityFlags.SYSTEM;
pub const SVF_USER = SystemVisibilityFlags.USER;

pub const QueryUpdateAction = enum(i32) {
    ADD = 0,
    REMOVE = 1,
    CHANGE = 2,
};
pub const QUA_ADD = QueryUpdateAction.ADD;
pub const QUA_REMOVE = QueryUpdateAction.REMOVE;
pub const QUA_CHANGE = QueryUpdateAction.CHANGE;

pub const QueryCategoryType = enum(i32) {
    PROVIDER = 0,
    LAYERED = 1,
};
pub const QCT_PROVIDER = QueryCategoryType.PROVIDER;
pub const QCT_LAYERED = QueryCategoryType.LAYERED;

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscoveryNotification_Value = Guid.initString("5f6c1ba8-5330-422e-a368-572b244d3f87");
pub const IID_IFunctionDiscoveryNotification = &IID_IFunctionDiscoveryNotification_Value;
pub const IFunctionDiscoveryNotification = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        OnUpdate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryNotification,
                enumQueryUpdateAction: QueryUpdateAction,
                fdqcQueryContext: u64,
                pIFunctionInstance: ?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryNotification,
                enumQueryUpdateAction: QueryUpdateAction,
                fdqcQueryContext: u64,
                pIFunctionInstance: ?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        OnError: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryNotification,
                hr: HRESULT,
                fdqcQueryContext: u64,
                pszProvider: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryNotification,
                hr: HRESULT,
                fdqcQueryContext: u64,
                pszProvider: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        OnEvent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryNotification,
                dwEventID: u32,
                fdqcQueryContext: u64,
                pszProvider: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryNotification,
                dwEventID: u32,
                fdqcQueryContext: u64,
                pszProvider: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryNotification_OnUpdate(self: *const T, enumQueryUpdateAction: QueryUpdateAction, fdqcQueryContext: u64, pIFunctionInstance: ?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionDiscoveryNotification.VTable, @ptrCast(self.vtable)).OnUpdate(@as(*const IFunctionDiscoveryNotification, @ptrCast(self)), enumQueryUpdateAction, fdqcQueryContext, pIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryNotification_OnError(self: *const T, hr: HRESULT, fdqcQueryContext: u64, pszProvider: ?[*:0]const u16) HRESULT {
                return @as(*const IFunctionDiscoveryNotification.VTable, @ptrCast(self.vtable)).OnError(@as(*const IFunctionDiscoveryNotification, @ptrCast(self)), hr, fdqcQueryContext, pszProvider);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryNotification_OnEvent(self: *const T, dwEventID: u32, fdqcQueryContext: u64, pszProvider: ?[*:0]const u16) HRESULT {
                return @as(*const IFunctionDiscoveryNotification.VTable, @ptrCast(self.vtable)).OnEvent(@as(*const IFunctionDiscoveryNotification, @ptrCast(self)), dwEventID, fdqcQueryContext, pszProvider);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscovery_Value = Guid.initString("4df99b70-e148-4432-b004-4c9eeb535a5e");
pub const IID_IFunctionDiscovery = &IID_IFunctionDiscovery_Value;
pub const IFunctionDiscovery = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetInstanceCollection: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                fIncludeAllSubCategories: BOOL,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                fIncludeAllSubCategories: BOOL,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                pszFunctionInstanceIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                pszFunctionInstanceIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        CreateInstanceCollectionQuery: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                fIncludeAllSubCategories: BOOL,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                pfdqcQueryContext: ?*u64,
                ppIFunctionInstanceCollectionQuery: ?*?*IFunctionInstanceCollectionQuery,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                fIncludeAllSubCategories: BOOL,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                pfdqcQueryContext: ?*u64,
                ppIFunctionInstanceCollectionQuery: ?*?*IFunctionInstanceCollectionQuery,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        CreateInstanceQuery: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                pszFunctionInstanceIdentity: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                pfdqcQueryContext: ?*u64,
                ppIFunctionInstanceQuery: ?*?*IFunctionInstanceQuery,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                pszFunctionInstanceIdentity: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                pfdqcQueryContext: ?*u64,
                ppIFunctionInstanceQuery: ?*?*IFunctionInstanceQuery,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AddInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                enumSystemVisibility: SystemVisibilityFlags,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                pszCategoryIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                enumSystemVisibility: SystemVisibilityFlags,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                pszCategoryIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        RemoveInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscovery,
                enumSystemVisibility: SystemVisibilityFlags,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                pszCategoryIdentity: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscovery,
                enumSystemVisibility: SystemVisibilityFlags,
                pszCategory: ?[*:0]const u16,
                pszSubCategory: ?[*:0]const u16,
                pszCategoryIdentity: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_GetInstanceCollection(self: *const T, pszCategory: ?[*:0]const u16, pszSubCategory: ?[*:0]const u16, fIncludeAllSubCategories: BOOL, ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).GetInstanceCollection(@as(*const IFunctionDiscovery, @ptrCast(self)), pszCategory, pszSubCategory, fIncludeAllSubCategories, ppIFunctionInstanceCollection);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_GetInstance(self: *const T, pszFunctionInstanceIdentity: ?[*:0]const u16, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).GetInstance(@as(*const IFunctionDiscovery, @ptrCast(self)), pszFunctionInstanceIdentity, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_CreateInstanceCollectionQuery(self: *const T, pszCategory: ?[*:0]const u16, pszSubCategory: ?[*:0]const u16, fIncludeAllSubCategories: BOOL, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification, pfdqcQueryContext: ?*u64, ppIFunctionInstanceCollectionQuery: ?*?*IFunctionInstanceCollectionQuery) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).CreateInstanceCollectionQuery(@as(*const IFunctionDiscovery, @ptrCast(self)), pszCategory, pszSubCategory, fIncludeAllSubCategories, pIFunctionDiscoveryNotification, pfdqcQueryContext, ppIFunctionInstanceCollectionQuery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_CreateInstanceQuery(self: *const T, pszFunctionInstanceIdentity: ?[*:0]const u16, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification, pfdqcQueryContext: ?*u64, ppIFunctionInstanceQuery: ?*?*IFunctionInstanceQuery) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).CreateInstanceQuery(@as(*const IFunctionDiscovery, @ptrCast(self)), pszFunctionInstanceIdentity, pIFunctionDiscoveryNotification, pfdqcQueryContext, ppIFunctionInstanceQuery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_AddInstance(self: *const T, enumSystemVisibility: SystemVisibilityFlags, pszCategory: ?[*:0]const u16, pszSubCategory: ?[*:0]const u16, pszCategoryIdentity: ?[*:0]const u16, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).AddInstance(@as(*const IFunctionDiscovery, @ptrCast(self)), enumSystemVisibility, pszCategory, pszSubCategory, pszCategoryIdentity, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscovery_RemoveInstance(self: *const T, enumSystemVisibility: SystemVisibilityFlags, pszCategory: ?[*:0]const u16, pszSubCategory: ?[*:0]const u16, pszCategoryIdentity: ?[*:0]const u16) HRESULT {
                return @as(*const IFunctionDiscovery.VTable, @ptrCast(self.vtable)).RemoveInstance(@as(*const IFunctionDiscovery, @ptrCast(self)), enumSystemVisibility, pszCategory, pszSubCategory, pszCategoryIdentity);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionInstance_Value = Guid.initString("33591c10-0bed-4f02-b0ab-1530d5533ee9");
pub const IID_IFunctionInstance = &IID_IFunctionInstance_Value;
pub const IFunctionInstance = extern struct {
    pub const VTable = extern struct {
        base: IServiceProvider.VTable,
        GetID: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstance,
                ppszCoMemIdentity: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstance,
                ppszCoMemIdentity: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetProviderInstanceID: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstance,
                ppszCoMemProviderInstanceIdentity: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstance,
                ppszCoMemProviderInstanceIdentity: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        OpenPropertyStore: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstance,
                dwStgAccess: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstance,
                dwStgAccess: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetCategory: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstance,
                ppszCoMemCategory: ?*?*u16,
                ppszCoMemSubCategory: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstance,
                ppszCoMemCategory: ?*?*u16,
                ppszCoMemSubCategory: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IServiceProvider.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstance_GetID(self: *const T, ppszCoMemIdentity: ?*?*u16) HRESULT {
                return @as(*const IFunctionInstance.VTable, @ptrCast(self.vtable)).GetID(@as(*const IFunctionInstance, @ptrCast(self)), ppszCoMemIdentity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstance_GetProviderInstanceID(self: *const T, ppszCoMemProviderInstanceIdentity: ?*?*u16) HRESULT {
                return @as(*const IFunctionInstance.VTable, @ptrCast(self.vtable)).GetProviderInstanceID(@as(*const IFunctionInstance, @ptrCast(self)), ppszCoMemProviderInstanceIdentity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstance_OpenPropertyStore(self: *const T, dwStgAccess: u32, ppIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IFunctionInstance.VTable, @ptrCast(self.vtable)).OpenPropertyStore(@as(*const IFunctionInstance, @ptrCast(self)), dwStgAccess, ppIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstance_GetCategory(self: *const T, ppszCoMemCategory: ?*?*u16, ppszCoMemSubCategory: ?*?*u16) HRESULT {
                return @as(*const IFunctionInstance.VTable, @ptrCast(self.vtable)).GetCategory(@as(*const IFunctionInstance, @ptrCast(self)), ppszCoMemCategory, ppszCoMemSubCategory);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionInstanceCollection_Value = Guid.initString("f0a3d895-855c-42a2-948d-2f97d450ecb1");
pub const IID_IFunctionInstanceCollection = &IID_IFunctionInstanceCollection_Value;
pub const IFunctionInstanceCollection = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetCount: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Get: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                pszInstanceIdentity: ?[*:0]const u16,
                pdwIndex: ?*u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                pszInstanceIdentity: ?[*:0]const u16,
                pdwIndex: ?*u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Item: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Add: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                pIFunctionInstance: ?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                pIFunctionInstance: ?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Remove: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
                dwIndex: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        DeleteAll: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_GetCount(self: *const T, pdwCount: ?*u32) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IFunctionInstanceCollection, @ptrCast(self)), pdwCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_Get(self: *const T, pszInstanceIdentity: ?[*:0]const u16, pdwIndex: ?*u32, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).Get(@as(*const IFunctionInstanceCollection, @ptrCast(self)), pszInstanceIdentity, pdwIndex, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_Item(self: *const T, dwIndex: u32, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).Item(@as(*const IFunctionInstanceCollection, @ptrCast(self)), dwIndex, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_Add(self: *const T, pIFunctionInstance: ?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).Add(@as(*const IFunctionInstanceCollection, @ptrCast(self)), pIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_Remove(self: *const T, dwIndex: u32, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).Remove(@as(*const IFunctionInstanceCollection, @ptrCast(self)), dwIndex, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_Delete(self: *const T, dwIndex: u32) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).Delete(@as(*const IFunctionInstanceCollection, @ptrCast(self)), dwIndex);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollection_DeleteAll(self: *const T) HRESULT {
                return @as(*const IFunctionInstanceCollection.VTable, @ptrCast(self.vtable)).DeleteAll(@as(*const IFunctionInstanceCollection, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IPropertyStoreCollection_Value = Guid.initString("d14d9c30-12d2-42d8-bce4-c60c2bb226fa");
pub const IID_IPropertyStoreCollection = &IID_IPropertyStoreCollection_Value;
pub const IPropertyStoreCollection = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetCount: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Get: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                pszInstanceIdentity: ?[*:0]const u16,
                pdwIndex: ?*u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                pszInstanceIdentity: ?[*:0]const u16,
                pdwIndex: ?*u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Item: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Add: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                pIPropertyStore: ?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                pIPropertyStore: ?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Remove: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
                pIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
                pIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
                dwIndex: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        DeleteAll: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPropertyStoreCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPropertyStoreCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_GetCount(self: *const T, pdwCount: ?*u32) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IPropertyStoreCollection, @ptrCast(self)), pdwCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_Get(self: *const T, pszInstanceIdentity: ?[*:0]const u16, pdwIndex: ?*u32, ppIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).Get(@as(*const IPropertyStoreCollection, @ptrCast(self)), pszInstanceIdentity, pdwIndex, ppIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_Item(self: *const T, dwIndex: u32, ppIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).Item(@as(*const IPropertyStoreCollection, @ptrCast(self)), dwIndex, ppIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_Add(self: *const T, pIPropertyStore: ?*IPropertyStore) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).Add(@as(*const IPropertyStoreCollection, @ptrCast(self)), pIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_Remove(self: *const T, dwIndex: u32, pIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).Remove(@as(*const IPropertyStoreCollection, @ptrCast(self)), dwIndex, pIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_Delete(self: *const T, dwIndex: u32) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).Delete(@as(*const IPropertyStoreCollection, @ptrCast(self)), dwIndex);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPropertyStoreCollection_DeleteAll(self: *const T) HRESULT {
                return @as(*const IPropertyStoreCollection.VTable, @ptrCast(self.vtable)).DeleteAll(@as(*const IPropertyStoreCollection, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionInstanceQuery_Value = Guid.initString("6242bc6b-90ec-4b37-bb46-e229fd84ed95");
pub const IID_IFunctionInstanceQuery = &IID_IFunctionInstanceQuery_Value;
pub const IFunctionInstanceQuery = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        Execute: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceQuery,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceQuery,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceQuery_Execute(self: *const T, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionInstanceQuery.VTable, @ptrCast(self.vtable)).Execute(@as(*const IFunctionInstanceQuery, @ptrCast(self)), ppIFunctionInstance);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionInstanceCollectionQuery_Value = Guid.initString("57cc6fd2-c09a-4289-bb72-25f04142058e");
pub const IID_IFunctionInstanceCollectionQuery = &IID_IFunctionInstanceCollectionQuery_Value;
pub const IFunctionInstanceCollectionQuery = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        AddQueryConstraint: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollectionQuery,
                pszConstraintName: ?[*:0]const u16,
                pszConstraintValue: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollectionQuery,
                pszConstraintName: ?[*:0]const u16,
                pszConstraintValue: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AddPropertyConstraint: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollectionQuery,
                Key: ?*const PROPERTYKEY,
                pv: ?*const PROPVARIANT,
                enumPropertyConstraint: PropertyConstraint,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollectionQuery,
                Key: ?*const PROPERTYKEY,
                pv: ?*const PROPVARIANT,
                enumPropertyConstraint: PropertyConstraint,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Execute: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionInstanceCollectionQuery,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionInstanceCollectionQuery,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollectionQuery_AddQueryConstraint(self: *const T, pszConstraintName: ?[*:0]const u16, pszConstraintValue: ?[*:0]const u16) HRESULT {
                return @as(*const IFunctionInstanceCollectionQuery.VTable, @ptrCast(self.vtable)).AddQueryConstraint(@as(*const IFunctionInstanceCollectionQuery, @ptrCast(self)), pszConstraintName, pszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollectionQuery_AddPropertyConstraint(self: *const T, Key: ?*const PROPERTYKEY, pv: ?*const PROPVARIANT, enumPropertyConstraint: PropertyConstraint) HRESULT {
                return @as(*const IFunctionInstanceCollectionQuery.VTable, @ptrCast(self.vtable)).AddPropertyConstraint(@as(*const IFunctionInstanceCollectionQuery, @ptrCast(self)), Key, pv, enumPropertyConstraint);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionInstanceCollectionQuery_Execute(self: *const T, ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection) HRESULT {
                return @as(*const IFunctionInstanceCollectionQuery.VTable, @ptrCast(self.vtable)).Execute(@as(*const IFunctionInstanceCollectionQuery, @ptrCast(self)), ppIFunctionInstanceCollection);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscoveryProvider_Value = Guid.initString("dcde394f-1478-4813-a402-f6fb10657222");
pub const IID_IFunctionDiscoveryProvider = &IID_IFunctionDiscoveryProvider_Value;
pub const IFunctionDiscoveryProvider = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        Initialize: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionDiscoveryProviderFactory: ?*IFunctionDiscoveryProviderFactory,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                lcidUserDefault: u32,
                pdwStgAccessCapabilities: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionDiscoveryProviderFactory: ?*IFunctionDiscoveryProviderFactory,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
                lcidUserDefault: u32,
                pdwStgAccessCapabilities: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Query: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionDiscoveryProviderQuery: ?*IFunctionDiscoveryProviderQuery,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionDiscoveryProviderQuery: ?*IFunctionDiscoveryProviderQuery,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EndQuery: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        InstancePropertyStoreValidateAccess: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwStgAccess: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwStgAccess: u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        InstancePropertyStoreOpen: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwStgAccess: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwStgAccess: u32,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        InstancePropertyStoreFlush: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        InstanceQueryService: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                guidService: ?*const Guid,
                riid: ?*const Guid,
                ppIUnknown: ?*?*IUnknown,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                guidService: ?*const Guid,
                riid: ?*const Guid,
                ppIUnknown: ?*?*IUnknown,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        InstanceReleased: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_Initialize(self: *const T, pIFunctionDiscoveryProviderFactory: ?*IFunctionDiscoveryProviderFactory, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification, lcidUserDefault: u32, pdwStgAccessCapabilities: ?*u32) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionDiscoveryProviderFactory, pIFunctionDiscoveryNotification, lcidUserDefault, pdwStgAccessCapabilities);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_Query(self: *const T, pIFunctionDiscoveryProviderQuery: ?*IFunctionDiscoveryProviderQuery, ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).Query(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionDiscoveryProviderQuery, ppIFunctionInstanceCollection);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_EndQuery(self: *const T) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).EndQuery(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_InstancePropertyStoreValidateAccess(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, dwStgAccess: u32) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).InstancePropertyStoreValidateAccess(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, dwStgAccess);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_InstancePropertyStoreOpen(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, dwStgAccess: u32, ppIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).InstancePropertyStoreOpen(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, dwStgAccess, ppIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_InstancePropertyStoreFlush(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).InstancePropertyStoreFlush(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_InstanceQueryService(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, guidService: ?*const Guid, riid: ?*const Guid, ppIUnknown: ?*?*IUnknown) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).InstanceQueryService(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, guidService, riid, ppIUnknown);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProvider_InstanceReleased(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize) HRESULT {
                return @as(*const IFunctionDiscoveryProvider.VTable, @ptrCast(self.vtable)).InstanceReleased(@as(*const IFunctionDiscoveryProvider, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IProviderProperties_Value = Guid.initString("cf986ea6-3b5f-4c5f-b88a-2f8b20ceef17");
pub const IID_IProviderProperties = &IID_IProviderProperties_Value;
pub const IProviderProperties = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetCount: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetAt: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwIndex: u32,
                pKey: ?*PROPERTYKEY,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                dwIndex: u32,
                pKey: ?*PROPERTYKEY,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetValue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                Key: ?*const PROPERTYKEY,
                ppropVar: ?*PROPVARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                Key: ?*const PROPERTYKEY,
                ppropVar: ?*PROPVARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        SetValue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                Key: ?*const PROPERTYKEY,
                ppropVar: ?*const PROPVARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderProperties,
                pIFunctionInstance: ?*IFunctionInstance,
                iProviderInstanceContext: isize,
                Key: ?*const PROPERTYKEY,
                ppropVar: ?*const PROPVARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderProperties_GetCount(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, pdwCount: ?*u32) HRESULT {
                return @as(*const IProviderProperties.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IProviderProperties, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, pdwCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderProperties_GetAt(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, dwIndex: u32, pKey: ?*PROPERTYKEY) HRESULT {
                return @as(*const IProviderProperties.VTable, @ptrCast(self.vtable)).GetAt(@as(*const IProviderProperties, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, dwIndex, pKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderProperties_GetValue(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, Key: ?*const PROPERTYKEY, ppropVar: ?*PROPVARIANT) HRESULT {
                return @as(*const IProviderProperties.VTable, @ptrCast(self.vtable)).GetValue(@as(*const IProviderProperties, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, Key, ppropVar);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderProperties_SetValue(self: *const T, pIFunctionInstance: ?*IFunctionInstance, iProviderInstanceContext: isize, Key: ?*const PROPERTYKEY, ppropVar: ?*const PROPVARIANT) HRESULT {
                return @as(*const IProviderProperties.VTable, @ptrCast(self.vtable)).SetValue(@as(*const IProviderProperties, @ptrCast(self)), pIFunctionInstance, iProviderInstanceContext, Key, ppropVar);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IProviderPublishing_Value = Guid.initString("cd1b9a04-206c-4a05-a0c8-1635a21a2b7c");
pub const IID_IProviderPublishing = &IID_IProviderPublishing_Value;
pub const IProviderPublishing = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        CreateInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPublishing,
                enumVisibilityFlags: SystemVisibilityFlags,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPublishing,
                enumVisibilityFlags: SystemVisibilityFlags,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        RemoveInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPublishing,
                enumVisibilityFlags: SystemVisibilityFlags,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPublishing,
                enumVisibilityFlags: SystemVisibilityFlags,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPublishing_CreateInstance(self: *const T, enumVisibilityFlags: SystemVisibilityFlags, pszSubCategory: ?[*:0]const u16, pszProviderInstanceIdentity: ?[*:0]const u16, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IProviderPublishing.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IProviderPublishing, @ptrCast(self)), enumVisibilityFlags, pszSubCategory, pszProviderInstanceIdentity, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPublishing_RemoveInstance(self: *const T, enumVisibilityFlags: SystemVisibilityFlags, pszSubCategory: ?[*:0]const u16, pszProviderInstanceIdentity: ?[*:0]const u16) HRESULT {
                return @as(*const IProviderPublishing.VTable, @ptrCast(self.vtable)).RemoveInstance(@as(*const IProviderPublishing, @ptrCast(self)), enumVisibilityFlags, pszSubCategory, pszProviderInstanceIdentity);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscoveryProviderFactory_Value = Guid.initString("86443ff0-1ad5-4e68-a45a-40c2c329de3b");
pub const IID_IFunctionDiscoveryProviderFactory = &IID_IFunctionDiscoveryProviderFactory_Value;
pub const IFunctionDiscoveryProviderFactory = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        CreatePropertyStore: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderFactory,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderFactory,
                ppIPropertyStore: ?*?*IPropertyStore,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        CreateInstance: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderFactory,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
                iProviderInstanceContext: isize,
                pIPropertyStore: ?*IPropertyStore,
                pIFunctionDiscoveryProvider: ?*IFunctionDiscoveryProvider,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderFactory,
                pszSubCategory: ?[*:0]const u16,
                pszProviderInstanceIdentity: ?[*:0]const u16,
                iProviderInstanceContext: isize,
                pIPropertyStore: ?*IPropertyStore,
                pIFunctionDiscoveryProvider: ?*IFunctionDiscoveryProvider,
                ppIFunctionInstance: ?*?*IFunctionInstance,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        CreateFunctionInstanceCollection: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderFactory,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderFactory,
                ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderFactory_CreatePropertyStore(self: *const T, ppIPropertyStore: ?*?*IPropertyStore) HRESULT {
                return @as(*const IFunctionDiscoveryProviderFactory.VTable, @ptrCast(self.vtable)).CreatePropertyStore(@as(*const IFunctionDiscoveryProviderFactory, @ptrCast(self)), ppIPropertyStore);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderFactory_CreateInstance(self: *const T, pszSubCategory: ?[*:0]const u16, pszProviderInstanceIdentity: ?[*:0]const u16, iProviderInstanceContext: isize, pIPropertyStore: ?*IPropertyStore, pIFunctionDiscoveryProvider: ?*IFunctionDiscoveryProvider, ppIFunctionInstance: ?*?*IFunctionInstance) HRESULT {
                return @as(*const IFunctionDiscoveryProviderFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IFunctionDiscoveryProviderFactory, @ptrCast(self)), pszSubCategory, pszProviderInstanceIdentity, iProviderInstanceContext, pIPropertyStore, pIFunctionDiscoveryProvider, ppIFunctionInstance);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderFactory_CreateFunctionInstanceCollection(self: *const T, ppIFunctionInstanceCollection: ?*?*IFunctionInstanceCollection) HRESULT {
                return @as(*const IFunctionDiscoveryProviderFactory.VTable, @ptrCast(self.vtable)).CreateFunctionInstanceCollection(@as(*const IFunctionDiscoveryProviderFactory, @ptrCast(self)), ppIFunctionInstanceCollection);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscoveryProviderQuery_Value = Guid.initString("6876ea98-baec-46db-bc20-75a76e267a3a");
pub const IID_IFunctionDiscoveryProviderQuery = &IID_IFunctionDiscoveryProviderQuery_Value;
pub const IFunctionDiscoveryProviderQuery = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        IsInstanceQuery: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderQuery,
                pisInstanceQuery: ?*BOOL,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderQuery,
                pisInstanceQuery: ?*BOOL,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        IsSubcategoryQuery: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderQuery,
                pisSubcategoryQuery: ?*BOOL,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderQuery,
                pisSubcategoryQuery: ?*BOOL,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetQueryConstraints: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderQuery,
                ppIProviderQueryConstraints: ?*?*IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderQuery,
                ppIProviderQueryConstraints: ?*?*IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        GetPropertyConstraints: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryProviderQuery,
                ppIProviderPropertyConstraints: ?*?*IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryProviderQuery,
                ppIProviderPropertyConstraints: ?*?*IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderQuery_IsInstanceQuery(self: *const T, pisInstanceQuery: ?*BOOL, ppszConstraintValue: ?*?*u16) HRESULT {
                return @as(*const IFunctionDiscoveryProviderQuery.VTable, @ptrCast(self.vtable)).IsInstanceQuery(@as(*const IFunctionDiscoveryProviderQuery, @ptrCast(self)), pisInstanceQuery, ppszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderQuery_IsSubcategoryQuery(self: *const T, pisSubcategoryQuery: ?*BOOL, ppszConstraintValue: ?*?*u16) HRESULT {
                return @as(*const IFunctionDiscoveryProviderQuery.VTable, @ptrCast(self.vtable)).IsSubcategoryQuery(@as(*const IFunctionDiscoveryProviderQuery, @ptrCast(self)), pisSubcategoryQuery, ppszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderQuery_GetQueryConstraints(self: *const T, ppIProviderQueryConstraints: ?*?*IProviderQueryConstraintCollection) HRESULT {
                return @as(*const IFunctionDiscoveryProviderQuery.VTable, @ptrCast(self.vtable)).GetQueryConstraints(@as(*const IFunctionDiscoveryProviderQuery, @ptrCast(self)), ppIProviderQueryConstraints);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryProviderQuery_GetPropertyConstraints(self: *const T, ppIProviderPropertyConstraints: ?*?*IProviderPropertyConstraintCollection) HRESULT {
                return @as(*const IFunctionDiscoveryProviderQuery.VTable, @ptrCast(self.vtable)).GetPropertyConstraints(@as(*const IFunctionDiscoveryProviderQuery, @ptrCast(self)), ppIProviderPropertyConstraints);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IProviderQueryConstraintCollection_Value = Guid.initString("9c243e11-3261-4bcd-b922-84a873d460ae");
pub const IID_IProviderQueryConstraintCollection = &IID_IProviderQueryConstraintCollection_Value;
pub const IProviderQueryConstraintCollection = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetCount: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Get: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
                pszConstraintName: ?[*:0]const u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
                pszConstraintName: ?[*:0]const u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Item: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
                dwIndex: u32,
                ppszConstraintName: ?*?*u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
                dwIndex: u32,
                ppszConstraintName: ?*?*u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
                ppszConstraintName: ?*?*u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
                ppszConstraintName: ?*?*u16,
                ppszConstraintValue: ?*?*u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Skip: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderQueryConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_GetCount(self: *const T, pdwCount: ?*u32) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)), pdwCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_Get(self: *const T, pszConstraintName: ?[*:0]const u16, ppszConstraintValue: ?*?*u16) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).Get(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)), pszConstraintName, ppszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_Item(self: *const T, dwIndex: u32, ppszConstraintName: ?*?*u16, ppszConstraintValue: ?*?*u16) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).Item(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)), dwIndex, ppszConstraintName, ppszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_Next(self: *const T, ppszConstraintName: ?*?*u16, ppszConstraintValue: ?*?*u16) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).Next(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)), ppszConstraintName, ppszConstraintValue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_Skip(self: *const T) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).Skip(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderQueryConstraintCollection_Reset(self: *const T) HRESULT {
                return @as(*const IProviderQueryConstraintCollection.VTable, @ptrCast(self.vtable)).Reset(@as(*const IProviderQueryConstraintCollection, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IProviderPropertyConstraintCollection_Value = Guid.initString("f4fae42f-5778-4a13-8540-b5fd8c1398dd");
pub const IID_IProviderPropertyConstraintCollection = &IID_IProviderPropertyConstraintCollection_Value;
pub const IProviderPropertyConstraintCollection = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        GetCount: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
                pdwCount: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Get: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
                Key: ?*const PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
                Key: ?*const PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Item: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
                dwIndex: u32,
                pKey: ?*PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
                dwIndex: u32,
                pKey: ?*PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
                pKey: ?*PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
                pKey: ?*PROPERTYKEY,
                pPropVar: ?*PROPVARIANT,
                pdwPropertyConstraint: ?*u32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Skip: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IProviderPropertyConstraintCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_GetCount(self: *const T, pdwCount: ?*u32) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)), pdwCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_Get(self: *const T, Key: ?*const PROPERTYKEY, pPropVar: ?*PROPVARIANT, pdwPropertyConstraint: ?*u32) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).Get(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)), Key, pPropVar, pdwPropertyConstraint);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_Item(self: *const T, dwIndex: u32, pKey: ?*PROPERTYKEY, pPropVar: ?*PROPVARIANT, pdwPropertyConstraint: ?*u32) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).Item(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)), dwIndex, pKey, pPropVar, pdwPropertyConstraint);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_Next(self: *const T, pKey: ?*PROPERTYKEY, pPropVar: ?*PROPVARIANT, pdwPropertyConstraint: ?*u32) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).Next(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)), pKey, pPropVar, pdwPropertyConstraint);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_Skip(self: *const T) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).Skip(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IProviderPropertyConstraintCollection_Reset(self: *const T) HRESULT {
                return @as(*const IProviderPropertyConstraintCollection.VTable, @ptrCast(self.vtable)).Reset(@as(*const IProviderPropertyConstraintCollection, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IFunctionDiscoveryServiceProvider_Value = Guid.initString("4c81ed02-1b04-43f2-a451-69966cbcd1c2");
pub const IID_IFunctionDiscoveryServiceProvider = &IID_IFunctionDiscoveryServiceProvider_Value;
pub const IFunctionDiscoveryServiceProvider = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        Initialize: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IFunctionDiscoveryServiceProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                riid: ?*const Guid,
                ppv: ?*?*anyopaque,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IFunctionDiscoveryServiceProvider,
                pIFunctionInstance: ?*IFunctionInstance,
                riid: ?*const Guid,
                ppv: ?*?*anyopaque,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IFunctionDiscoveryServiceProvider_Initialize(self: *const T, pIFunctionInstance: ?*IFunctionInstance, riid: ?*const Guid, ppv: ?*?*anyopaque) HRESULT {
                return @as(*const IFunctionDiscoveryServiceProvider.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IFunctionDiscoveryServiceProvider, @ptrCast(self)), pIFunctionInstance, riid, ppv);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const CLSID_PNPXAssociation_Value = Guid.initString("cee8ccc9-4f6b-4469-a235-5a22869eef03");
pub const CLSID_PNPXAssociation = &CLSID_PNPXAssociation_Value;

const CLSID_PNPXPairingHandler_Value = Guid.initString("b8a27942-ade7-4085-aa6e-4fadc7ada1ef");
pub const CLSID_PNPXPairingHandler = &CLSID_PNPXPairingHandler_Value;

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IPNPXAssociation_Value = Guid.initString("0bd7e521-4da6-42d5-81ba-1981b6b94075");
pub const IID_IPNPXAssociation = &IID_IPNPXAssociation_Value;
pub const IPNPXAssociation = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        Associate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Unassociate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXAssociation,
                pszSubcategory: ?[*:0]const u16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXAssociation_Associate(self: *const T, pszSubcategory: ?[*:0]const u16) HRESULT {
                return @as(*const IPNPXAssociation.VTable, @ptrCast(self.vtable)).Associate(@as(*const IPNPXAssociation, @ptrCast(self)), pszSubcategory);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXAssociation_Unassociate(self: *const T, pszSubcategory: ?[*:0]const u16) HRESULT {
                return @as(*const IPNPXAssociation.VTable, @ptrCast(self.vtable)).Unassociate(@as(*const IPNPXAssociation, @ptrCast(self)), pszSubcategory);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXAssociation_Delete(self: *const T, pszSubcategory: ?[*:0]const u16) HRESULT {
                return @as(*const IPNPXAssociation.VTable, @ptrCast(self.vtable)).Delete(@as(*const IPNPXAssociation, @ptrCast(self)), pszSubcategory);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IPNPXDeviceAssociation_Value = Guid.initString("eed366d0-35b8-4fc5-8d20-7e5bd31f6ded");
pub const IID_IPNPXDeviceAssociation = &IID_IPNPXDeviceAssociation_Value;
pub const IPNPXDeviceAssociation = extern struct {
    pub const VTable = extern struct {
        base: IUnknown.VTable,
        Associate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXDeviceAssociation,
                pszSubCategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXDeviceAssociation,
                pszSubCategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Unassociate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXDeviceAssociation,
                pszSubCategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXDeviceAssociation,
                pszSubCategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IPNPXDeviceAssociation,
                pszSubcategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IPNPXDeviceAssociation,
                pszSubcategory: ?[*:0]const u16,
                pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IUnknown.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXDeviceAssociation_Associate(self: *const T, pszSubCategory: ?[*:0]const u16, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification) HRESULT {
                return @as(*const IPNPXDeviceAssociation.VTable, @ptrCast(self.vtable)).Associate(@as(*const IPNPXDeviceAssociation, @ptrCast(self)), pszSubCategory, pIFunctionDiscoveryNotification);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXDeviceAssociation_Unassociate(self: *const T, pszSubCategory: ?[*:0]const u16, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification) HRESULT {
                return @as(*const IPNPXDeviceAssociation.VTable, @ptrCast(self.vtable)).Unassociate(@as(*const IPNPXDeviceAssociation, @ptrCast(self)), pszSubCategory, pIFunctionDiscoveryNotification);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IPNPXDeviceAssociation_Delete(self: *const T, pszSubcategory: ?[*:0]const u16, pIFunctionDiscoveryNotification: ?*IFunctionDiscoveryNotification) HRESULT {
                return @as(*const IPNPXDeviceAssociation.VTable, @ptrCast(self.vtable)).Delete(@as(*const IPNPXDeviceAssociation, @ptrCast(self)), pszSubcategory, pIFunctionDiscoveryNotification);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const CLSID_FunctionDiscovery_Value = Guid.initString("c72be2ec-8e90-452c-b29a-ab8ff1c071fc");
pub const CLSID_FunctionDiscovery = &CLSID_FunctionDiscovery_Value;

const CLSID_PropertyStore_Value = Guid.initString("e4796550-df61-448b-9193-13fc1341b163");
pub const CLSID_PropertyStore = &CLSID_PropertyStore_Value;

const CLSID_FunctionInstanceCollection_Value = Guid.initString("ba818ce5-b55f-443f-ad39-2fe89be6191f");
pub const CLSID_FunctionInstanceCollection = &CLSID_FunctionInstanceCollection_Value;

const CLSID_PropertyStoreCollection_Value = Guid.initString("edd36029-d753-4862-aa5b-5bccad2a4d29");
pub const CLSID_PropertyStoreCollection = &CLSID_PropertyStoreCollection_Value;

//--------------------------------------------------------------------------------
// Section: Functions (0)
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
    .ansi => struct {},
    .wide => struct {},
    .unspecified => if (@import("builtin").is_test) struct {} else struct {},
};
//--------------------------------------------------------------------------------
// Section: Imports (9)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const HRESULT = @import("../foundation.zig").HRESULT;
const IPropertyStore = @import("../ui/shell/properties_system.zig").IPropertyStore;
const IServiceProvider = @import("../system/com.zig").IServiceProvider;
const IUnknown = @import("../system/com.zig").IUnknown;
const PROPERTYKEY = @import("../ui/shell/properties_system.zig").PROPERTYKEY;
const PROPVARIANT = @import("../system/com/structured_storage.zig").PROPVARIANT;
const PWSTR = @import("../foundation.zig").PWSTR;

test {
    @setEvalBranchQuota(comptime @import("std").meta.declarations(@This()).len * 3);

    // reference all the pub declarations
    if (!@import("builtin").is_test) return;
    inline for (comptime @import("std").meta.declarations(@This())) |decl| {
        if (decl.is_pub) {
            _ = @field(@This(), decl.name);
        }
    }
}
