#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\Root\\cimv2")

[Dynamic,Provider("InvProv"),UUID("{455C66F5-2F69-4113-AF2F-ED22F1473B28}")] 
class Win32_InstalledWin32Program
{
  [Key,Read] string ProgramId;
  [Read] string Name;
  [Read] string Vendor;
  [Read] string Version;
  [Read] string Language;
  [Read] string MsiPackageCode;
  [Read] string MsiProductCode;
};

[Dynamic,Provider("InvProv"),UUID("{13DAD3AD-9F41-4722-8DEB-7D151C1E4F9B}")] 
class Win32_InstalledStoreProgram
{
  [Key,Read] string ProgramId;
  [Read] string Name;
  [Read] string Vendor;
  [Read] string Version;
  [Read] string Language;
  [Read] string Architecture;
};

[Dynamic,Provider("InvProv"),UUID("{17087075-EB55-4FCC-ADAB-79B04E16ED04}")] 
class Win32_InstalledProgramFramework
{
  [Key,Read] string FrameworkName;
  [Key,Read] string FrameworkPublisher;
  [Key,Read] string FrameworkVersion;
  [Key,Read] string FrameworkVersionActual;
  [Key,Read] string ProgramId;
  [Read] boolean IsPrivate;
};

Instance of __Win32Provider as $prov
{
  Name = "InvProv";
  ClsId = "{F4BA59CC-2506-45AE-84C8-78EA8D7F9B3E}";
  ImpersonationLevel = 1;
  HostingModel = "LocalSystemHost";
  version = 1;
};

Instance of __InstanceProviderRegistration
{
  Provider = $prov;
  supportsGet = FALSE;
  supportsPut = FALSE;
  supportsDelete = FALSE;
  supportsEnumeration = TRUE;
};
