// Copyright (c) 1997-2003 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2")
instance of __namespace{ name="ms_809";};
#pragma namespace("\\\\.\\root\\cimv2\\ms_809")

[Description("Instances of this class represent products as they are installed by MSI.  A product generally correlates to a single installation package.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_Product : CIM_Product
{
  [Description("The installed state of the product.") : Amended ToSubclass,Values{"Bad Configuration", "Invalid Argument", "Unknown Package", "Advertised", "Absent", "Installed"} : Amended ToSubclass] sint16 InstallState;
  [Description("The location of the locally cached package for this product.") : Amended ToSubclass] string PackageCache;
  [Description("The installation date.  The InstallDate property has been deprecated in favor of the InstallDate2 property which is of type DateTime rather than String. New implementations should use the InstallDate2 property.") : Amended ToSubclass] string InstallDate;
  [Description("The InstallDate2 property represents the installation date of the product.") : Amended ToSubclass] datetime InstallDate2;
  [Description("The language of the product.") : Amended ToSubclass] string Language;
  [Description("The transforms of the product.") : Amended ToSubclass] string Transforms;
  [Description("The location of the installed product.") : Amended ToSubclass] string InstallLocation;
  [Description("Assignment type of the product.") : Amended ToSubclass,Values{"Per-user", "Per-machine"} : Amended ToSubclass] uint16 AssignmentType;
  [Description("The owner registered to use the product.") : Amended ToSubclass] string RegOwner;
  [Description("The company registered to use the product.") : Amended ToSubclass] string RegCompany;
  [Description("The product ID.") : Amended ToSubclass] string ProductID;
  [Description("The installation source directory of the product.") : Amended ToSubclass] string InstallSource;
  [Description("The support link for the product.") : Amended ToSubclass] string HelpLink;
  [Description("The support telephone for the product.") : Amended ToSubclass] string HelpTelephone;
  [Description("The URL information for the product.") : Amended ToSubclass] string URLInfoAbout;
  [Description("The URL update information the product.") : Amended ToSubclass] string URLUpdateInfo;
  [Description("The identifier for the package from which this product was installed.") : Amended ToSubclass] string PackageCode;
  [Description("The location of the locally cached package for this product.") : Amended ToSubclass] string LocalPackage;
  [Description("The original package name for the product.") : Amended ToSubclass] string PackageName;
  [Description("Summary information word count for the product") : Amended ToSubclass] uint32 WordCount;
  [Description("This method Will install an associated Win32_Product using the installation package provided through PackageLocation and any command line options that are supplied. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Install([in,Description("The path to the package that is to be installed") : Amended ToSubclass] string PackageLocation,[in,Description("The command line options for the install.  These should be in the form of property=setting") : Amended ToSubclass] string Options,[in,Description("DEPRECATED. The AllUsers input parameter has been deprecated as the functionality implied is not supported. The operation will effect all users on the machine.  \nIndicates whether the operation should be applied to the current user (FALSE) or all users on the machine (TRUE).") : Amended ToSubclass] boolean AllUsers);
  [Description("This method will preform an administrative install of an associated Win32_Product using the installation package provided through PackageLocation and any command line options that are supplied. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Admin([in,Description("The path to the package that is to be admined") : Amended ToSubclass] string PackageLocation,[in,Description("The location for the administrative image to be installed at.") : Amended ToSubclass] string TargetLocation,[in,Description("The command line options for the upgrade.  These should be in the form of property=setting") : Amended ToSubclass] string Options);
  [Description("This method will advertise an associated Win32_Product using the installation package provided through PackageLocation and any command line options that are supplied. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Advertise([in,Description("The path to the package that is to be advertised") : Amended ToSubclass] string PackageLocation,[in,Description("The command line options for the advetisement.  These should be in the form of property=setting") : Amended ToSubclass] string Options,[in,Description("DEPRECATED. The AllUsers input parameter has been deprecated as the functionality implied is not supported. The operation will effect all users on the machine.  \nIndicates whether the operation should be applied to the current user (FALSE) or all users on the machine (TRUE).") : Amended ToSubclass] boolean AllUsers);
  [Description("This method will reinstall the associated instance of Win32_Product using the specified reinstallation mode. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Reinstall([In,Description("Specifies the reinstall mode") : Amended ToSubclass,Values{"FileMissing", "FileOlderVersion", "FileEqualVersion", "FileExact", "FileVerify", "FileReplace", "UserData", "MachineData", "Shortcut", "Package"} : Amended ToSubclass] uint16 ReinstallMode);
  [Description("This method will upgrade the associated Win32_Product using the upgrade package provided through PackageLocation and any command line options that are supplied. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Upgrade([in,Description("The path to the package that contains the upgrade") : Amended ToSubclass] string PackageLocation,[in,Description("The command line options for the upgrade.  These should be in the form of property=setting") : Amended ToSubclass] string Options);
  [Description("This method will configure the associated instance of Win32_Product to the specified install state and level. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Configure([in,Values{"Default", "Local", "Source"} : Amended ToSubclass] uint16 InstallState,[in,Values{"Default", "Minimum", "Maximum"} : Amended ToSubclass] uint16 InstallLevel,[in,Description("The command line options for configure. These should be in the form of property=setting") : Amended ToSubclass] string Options);
  [Description("This method will uninstall the associated instance of Win32_Product. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Uninstall();
};

[Description("SoftwareFeatures and SoftwareElements: A 'SoftwareFeature' is a distinct subset of a Product, consisting of one or more 'SoftwareElements'. Each SoftwareElement is defined in a Win32_SoftwareElement instance, and the association between a feature and its SoftwareFeature(s) is defined in the Win32_SoftwareFeatureSoftwareElement Association.  Any component can be 'shared' between two or more SoftwareFeatures. If two or more features reference the same component, that component will be selected for installation if any of these features are selected.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareFeature : CIM_SoftwareFeature
{
  [Description("Remote execution option, one of irsEnum: ifrsFavorLocal   = 0:  Install components locally, if possible ifrsFavorSource  = 1:  Install components to run from the source CD/Server, if possible ifrsFollowParent = 2:  Follow the remote execution option of the parent feature") : Amended ToSubclass] uint16 Attributes;
  [Description("The installed state of the software feature.") : Amended ToSubclass,Values{"Bad Configuration", "Invalid Argument", "Unknown Package", "Advertised", "Absent", "Local", "Source"} : Amended ToSubclass] sint16 InstallState;
  [Description("Number of times this SoftwareFeature has been used") : Amended ToSubclass] uint16 Accesses;
  [Description("Last time this SoftwareFeature was used") : Amended ToSubclass] datetime LastUse;
  [Description("This method will reinstall the associated instance of Win32_SoftwareFeature using the specified reinstallation mode. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Reinstall([in,Description("Specifies the reinstall mode") : Amended ToSubclass,Values{"FileMissing", "FileOlderVersion", "FileEqualVersion", "FileExact", "FileVerify", "FileReplace", "UserData", "MachineData", "Shortcut", "Package"} : Amended ToSubclass] uint16 ReinstallMode);
  [Description("This method will configure the associated instance of Win32_SoftwareFeature to the specified install state. The method can return the following values:\n0 - Success.\n2147549445 - RPC Server Fault Error. \nOther - For integer values other than those listed above, refer to the documentation on error codes returned by the Windows Installer API and the Win32 error codes.") : Amended ToSubclass,Values{"Success", "RPC Server Fault Error", "Other"} : Amended ToSubclass] uint32 Configure([in,Values{"Default", "Advertise", "Local", "Absent", "Source"} : Amended ToSubclass] uint16 InstallState);
};

[Description("SoftwareFeatures and SoftwareElements: A 'SoftwareFeature' is a distinct subset of a Product, consisting of one or more 'SoftwareElements'. Each SoftwareElement is defined in a Win32_SoftwareElement instance, and the association between a feature and its SoftwareFeature(s) is defined in the Win32_SoftwareFeatureSoftwareElement Association.  Any component can be 'shared' between two or more SoftwareFeatures. If two or more features reference the same component, that component will be selected for installation if any of these features are selected.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareElement : CIM_SoftwareElement
{
  [Description("A bit map containing the remote execution options for the software element.") : Amended ToSubclass] uint16 Attributes;
  [Description("The path to the installed software element. If the component is a registry key,the registry roots are represented numerically. For example, a registry path of \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\" would be returned as \"01:\\SOFTWARE\\Microsoft\". The registry roots returned are defined as follows:RootReturned Value\nHKEY_CLASSES_ROOT 00\nHKEY_CURRENT_USER 01\nHKEY_LOCAL_MACHINE 02\nHKEY_USERS 03") : Amended ToSubclass] string Path;
  [Description("The current installed state for the software element.") : Amended ToSubclass,values{"Not Used", "Bad Configuration", "Source Absent", "Error", "Absent", "Local", "Source"} : Amended ToSubclass] sint16 InstallState;
};

[Description("The Win32_ApplicationService class represents any installed or advertised components or applications available on the system. Instances of this class include all properly installed and instrumented executables.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ApplicationService : CIM_Service
{
};

[Description("The Win32_CommandLineAccess class represents the command line interface to a service or application. The name of the access point is always the full command line text.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_CommandLineAccess : CIM_ServiceAccessPoint
{
  [Description("The value of the Commandline property provides the string used to start the service.") : Amended ToSubclass] string CommandLine;
};

[Description("Instances of this class represent conditional checks that must be evaluated to TRUE before their associated Win32_SoftwareElement can be installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareElementCondition : CIM_Check
{
  [Description("A conditional statement which evaluates to TRUE or FALSE to determine whether the associated software element should is installed.") : Amended ToSubclass] string Condition;
};

[Description("The LaunchCondition class is used by the LaunchConditions action. It contains a list of conditions, all of which must be satisfied for the action to succeed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_LaunchCondition : CIM_Check
{
  [Description("A condition that must evaluate to TRUE for installation to begin.") : Amended ToSubclass] string Condition;
};

[Description("The Condition class can be used to modify the selection state of any entry in the Feature class, based on a conditional expression. If Condition evaluates to True, the corresponding Level value in the Feature class will be set to the value specified in the Condition class's Level column. Using this mechanism, any feature can be permanently disabled (by setting the Level to 0), set to be always installed (by setting the Level to 1), or set to a different install priority (by setting Level to an intermediate value). The Level may be set based upon any conditional statement, such as a test for platform, operating system, a particular property setting, etc.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_Condition : CIM_Check
{
  [Description("The install level for the associated software feature if condition evaluates to TRUE.") : Amended ToSubclass] uint16 Level;
  [Description("A conditional statement which evaluates to TRUE or FALSE to determine whether the Level value should be applied to the associated software feature.") : Amended ToSubclass] string Condition;
  [Description("The name of the feature within the associated product to which this condition applies.") : Amended ToSubclass] string Feature;
};

[Description("Each instance of this class represents a source file with it's various attributes, ordered by a unique, non-localized identifier.  For uncompressed files, the File property is ignored, and the FileName column is used for both the source and destination file name. You must set the 'Uncompressed' bit of the Attributes column for any file that is not compressed in a cabinet.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_FileSpecification : CIM_FileSpecification
{
  [Description("List of decimal language Ids, comma-separated if more than one.") : Amended ToSubclass] string Language;
  [Description("Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses).  See the remarks below for more information:       Bit 0:   Read Only (1)    Bit 1:   Hidden (2)     Bit 2:   System (4)     Bit 8:   Split (256) - the file is split between two or more compression cabinets    Bit 9:   Vital (512) - this file is vital for the proper operation of the component to which it belongs    Bit 12:  Permanent (4096) - the file will not be removed on uninstall    Bit 13:  Uncompressed (8192) - the file is uncompressed on the source media    Bit 14:  Patch (16384) (reserved for future use)    Bit 15:  PatchSourceIgnore (32768) - the file can be ignored during a patch upgrade if it is run-from-source") : Amended ToSubclass] uint16 Attributes;
  [Description("Sequence with respect to the media images; order must track cabinet order.") : Amended ToSubclass] uint16 Sequence;
  [Description("A unique key which identifies a file within the scope of a product.") : Amended ToSubclass] string FileID;
};

[Description("This class contains the .INI information that the application needs to set in an .INI file. The .INI file information is written out when the corresponding component has been selected to be installed, either locally or run from source.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_IniFileSpecification : CIM_FileSpecification
{
  [Description("The .ini file section.") : Amended ToSubclass] string Section;
  [Description("The .ini file key within the section.") : Amended ToSubclass] string Key;
  [Description("The value to be written.") : Amended ToSubclass] string Value;
  [Description("The type of modification made.\n Hexadecimal \n Decimal \n Modification \n\n0x000 \n 0 \n Creates or updates a .ini entry. \n\n0x001 \n 1 \n Creates a .ini entry only if the entry does not already exist. \n\n0x003 \n 3 \n Creates a new entry or appends a new comma-separated value to an existing entry.") : Amended ToSubclass] uint16 Action;
  [Description("A unique key identifying this ini file specification within its product.") : Amended ToSubclass] string IniFile;
};

[Description("This class represents the directory layout for the product. Each instance of the class represents a directory in both the source image and the destination image. Directory resolution is performed during the CostFinalize action and is done as follows: Root destination directories: Root directories entries are those with a null Directory_Parent value or a Directory_Parent value identical to the Directory value. The value in the Directory property is interpreted as the name of a property defining the location of the destination directory. If the property is defined, the destination directory is resolved to the property's value. If the property is undefined, the ROOTDRIVE property is used instead to resolve the path. Root source directorires: The value of the DefaultDir column for root entries is interpreted as the name of a property defining the source location of this directory. This property must be defined or an error will occur. Non-root destination directories: The Directory value for a non-root directory is also interpreted as the name of a property defining the location of the destination. If the property is defined, the destination directory is resolved to the property's value. If the property is not defined, the destination directory is resolved to a sub-directory beneath the resolved destination directory for the Directory_Parent entry. The DefaultDir value defines the name of the sub-directory.  Non-root source directories: The source directory for a non-root directory is resolved to a sub-directory of the resolved source directory for the Directory_Parent entry. Again, the DefaultDir value defines the name of the sub-directory.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_DirectorySpecification : CIM_DirectorySpecification
{
};

[Description("Instances of this class contain information about any environment variables that may need to be registered for their associated products installation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_EnvironmentSpecification : CIM_Check
{
  [Description("Token name for the environment specification within its package.") : Amended ToSubclass] string Environment;
  [Description("The value for this environment as a formatted string.") : Amended ToSubclass] string Value;
};

[Description("This optional class allows the author to 'reserve' a specified amount of disk space in any directory, depending on the installation state of a component. Reserving cost in this way could be useful for authors who want to ensure that a minimum amount of disk space will be available after the installation is completed. For example, this disk space might be reserved for user documents, or for application files (such as index files) that are created only after the application is launched following installation. The ReserveCost class also allows custom actions to specify an approximate cost for any files, registry entries, or other items, that the custom action might install.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ReserveCost : CIM_Check
{
  [Description("A unique key identifying this reserve cost item within its product.") : Amended ToSubclass] string ReserveKey;
  [Description("The name of the directory (as a path, reference to a directory specification or reference to a property) where the space is reserved.") : Amended ToSubclass] string ReserveFolder;
  [Description("The number of bytes of disk space reserved if the associated software element is installed to run locally.") : Amended ToSubclass] uint32 ReserveLocal;
  [Description("The number of bytes of disk space reserved if the associated software element is installed to run from source.") : Amended ToSubclass] uint32 ReserveSource;
};

[Description("This class represents any ODBC drivers that are to be installed as part of a particular product.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ODBCDriverSpecification : CIM_Check
{
  [Description("Token name for the driver within its package.") : Amended ToSubclass] string Driver;
  [Description("The FileID of the Win32_FileSpecification representing this driver.") : Amended ToSubclass] string File;
  [Description("The FileID of the Win32_FileSpecification representing this drivers setup dll.") : Amended ToSubclass] string SetupFile;
};

[Description("Instances of this class represent any ODBC Translators that are included as part of a products installation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ODBCTranslatorSpecification : CIM_Check
{
  [Description("Token name for the translator within its package.") : Amended ToSubclass] string Translator;
  [Description("The FileID of the Win32_FileSpecification representing this translator.") : Amended ToSubclass] string File;
  [Description("The FileID of the Win32_FileSpecification representing this translators setup dll.") : Amended ToSubclass] string SetupFile;
};

[Description("This class specifies any Data Sources (DSNs) that need to be registered as part of an installation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ODBCDataSourceSpecification : CIM_Check
{
  [Description("Token name for the data source within its package.") : Amended ToSubclass] string DataSource;
  [Description("The associated ODBC driver name.") : Amended ToSubclass] string DriverDescription;
  [Description(" The type of registration for this data source. \n ) indicates per machine, \n 1 indicates per user.") : Amended ToSubclass] string Registration;
};

[Description("Instances of this class represent the services that are to be installed along with an associated package.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ServiceSpecification : CIM_Check
{
  [Description("A unique key identifying this service specification item within its product.") : Amended ToSubclass] string ID;
  [Description("This property is the string that user interface programs use to identify the service.") : Amended ToSubclass] string DisplayName;
  [Description("This property is a set of bit flags that specify the type of service.\n One of the following service types must be specified in this column.\n Type of service\n Value \n Description \n\nSERVICE_WIN32_OWN_PROCESS \n 0x00000010 \n A Microsoft Win32® service that runs its own process.\n\nSERVICE_WIN32_SHARE_PROCESS \n0x00000020 \n A Win32 service that shares a process.\n\nSERVICE_INTERACTIVE_PROCESS \n 0x00000100A \n Win32 service that interacts with the desktop. This value cannot be used alone and must be added to one of the two previous types.\n\n\nThe following types of service are unsupported.\n Type of service \n Value \n Description \n\nSERVICE_KERNEL_DRIVER \n 0x00000001 \n A driver service.\n\nSERVICE_FILE_SYSTEM_DRIVER \n 0x00000002 \n A file system driver service.") : Amended ToSubclass] sint32 ServiceType;
  [Description("This property is a set of bit flags that specify when to start the service.\n One of the following types of service start must be specified in this column.\n Type of service start \n Value \n Description \n\nSERVICE_AUTO_START \n 0x00000002 \n A service start during startup of the system.\n\nSERVICE_DEMAND_START \n 0x00000003 \n A service start when the service control manager calls the StartService function.\n\nSERVICE_DISABLED \n 0x00000004 \n Specifies a service that can no longer be started.\n\nThe following types of service starts are valid only for driver services.\n Type of driver service start\n ValueDescription \n\nSERVICE_BOOT_START \n 0x00000000 \n A device driver started by the operating system loader.\n\nSERVICE_SYSTEM_START \n 0x00000001 \n A device driver started by calling the IoInitSystem function. Use this in the ServiceControl Table, with the StartServices action put after the InstallServices action, to start a driver service during an install.") : Amended ToSubclass] sint32 StartType;
  [Description("This column specifies the action taken by the startup program if the service fails to start during startup. One of the following error control flags must be specified in this column.\n Adding the value 0x08000 to the flags in the following table specifies that the overall install will fail if the service cannot be installed into the system.\n\n Value \nStartup program's action \n\n0x00000000 \nLogs the error and continues with the startup operation.\n\n0x00000001 \nLogs the error, displays a message box and continues the startup operation.\n\n0x00000003 \nLogs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails.") : Amended ToSubclass] sint32 ErrorControl;
  [Description("This property contains the string that names the load ordering group of which this service is a member.") : Amended ToSubclass] string LoadOrderGroup;
  [Description("This column is a list of names of services or load ordering groups that the system must start before this service. Names in the list are separated by Nulls. If the service has no dependencies, then Null or an empty string is returned. Dependency on a group means that this service can run if at least one member of the group is running after an attempt to start all members of the group.") : Amended ToSubclass] string Dependencies;
  [Description("The account name used to start this service.") : Amended ToSubclass] string StartName;
  [Description("The password associated with StratName.") : Amended ToSubclass] string Password;
};

[Description("Instances of this class represent and ProgIDs that need to be registered durring a given installation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ProgIDSpecification : CIM_Check
{
  [Description("Contains the ProgID for any version independent programs.") : Amended ToSubclass] string Parent;
};

[Description("The WriteRegistryValues action sets up registry information that the application desires in the system Registry. The registry information is gated by the Component class. A registry value is written to the system registry if the corresponding component has been set to be installed either locally or run from source.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_RegistryAction : CIM_Action
{
  [Description("The registry value name.     If the Value column is null, then the following strings in the Name column have special significance.    +  The key is to be created, if absent upon the installation of the component.    -  The key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component.     *  The key is to be created, if absent upon the installation of the component AND the key is to be deleted, if present, with all its values and subkeys upon the uninstallation of the component.") : Amended ToSubclass] string Registry;
  [Description("This property contains the registry value name. If this is Null, then the data entered into the Value proeprty are written to the default registry key.") : Amended ToSubclass] string EntryName;
  [Description("This property is the registry value.") : Amended ToSubclass] string EntryValue;
  [Values{"HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE", "HKEY_CLASSES_ROOT", "HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE", "HKEY_USERS"} : Amended ToSubclass] sint16 Root;
  [Description("The key for the registry value.") : Amended ToSubclass] string Key;
};

[Description("The RemoveIniValues action deletes .INI file information that the application desires to delete from .INI files. The deletion of the information is gated by the Component class. A .INI value is deleted if the corresponding component has been set to be installed either locally or run from source.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_RemoveIniAction : CIM_Action
{
  [Description("The .ini file section.") : Amended ToSubclass] string Section;
  [Description("The .ini file key below the section.") : Amended ToSubclass] string Key;
  [Description("The value to be deleted.") : Amended ToSubclass] string Value;
  [Description("The type of modification made.\n Hexadecimal \n Decimal \n Meaning\n\n0x002 \n 2 \n Deletes .ini entry. \n\n0x004 \n 4 \n Deletes a tag from a .ini entry.") : Amended ToSubclass] uint16 Action;
};

[Description("The MoveFiles action allows the author to locate files that already exist on the user's machine, and move or copy those files to a new location.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_MoveFileAction : CIM_FileAction
{
  [Description("This property contains the name of the source files to be moved or copied.\n This property may be left blank. See the description of the SourceFolder property. This field may contain wildcard characters (* and ?).") : Amended ToSubclass] string SourceName;
  [Description("This property contains the name to be given to the original file after it is moved or copied. If this field is blank, then the destination file is given the same name as the source file.") : Amended ToSubclass] string DestName;
  [Description("This property contains the name of a Win32_Property having a value that resolves to the full path to the source directory. If the SourceName property is left blank, then the property named in the SourceFolder property is assumed to contain the full path to the source file itself (including the file name).") : Amended ToSubclass] string SourceFolder;
  [Description("The name of a win32_Property whose value resolves to the full path to the destination directory.") : Amended ToSubclass] string DestFolder;
  [Description("Integer value specifying the operating mode.  ) indicates a copy, 1 indicates a move.") : Amended ToSubclass] uint16 Options;
  [Description("A unique key identifying this move file action within its product.") : Amended ToSubclass] string FileKey;
};

[Description("The RegisterClassInfo action manages the registration of COM class information with the system. In the Advertise mode the action registers all COM classes for which the corresponding feature is enabled. Else the action registers COM classes for which the corresponding feature is currently selected to be installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ClassInfoAction : CIM_Action
{
  [Description("The class identifier of a COM server") : Amended ToSubclass] string CLSID;
  [Description("The default Program ID associated with this Class ID.") : Amended ToSubclass] string ProgID;
  [Description("The VI Program ID associated with this Class ID.") : Amended ToSubclass] string VIProgID;
  [Description("An indicator as to whether this object is insertable or not.") : Amended ToSubclass] uint16 Insertable;
  [Description("Application ID containing DCOM information for the associated application (string GUID).") : Amended ToSubclass] string AppID;
  [Description("Contains information for the HKCR (this CLSID) key.  If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys are generated: 0, 1, 2.") : Amended ToSubclass] string FileTypeMask;
  [Description("This property is optional only when the Context property is set to the LocalServer or LocalServer32 server context. The text is registered as the argument against the OLE server and is used by OLE for invoking the server.") : Amended ToSubclass] string Argument;
  [Description(" Default inproc handler.   May be optionally provided only for Context = LocalServer or LocalServer32. A non-numeric value is treated as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). \n Value \n Meaning \n\n 1 = default (system) \n 16-bit InprocHandler (appearing as the InprocHandler value) \n\n2 = default (system) \n 32-bit InprocHandler (appearing as the InprocHandler32 value) \n\n3 = default (system) \n 16-bit as well as 32-bit InprocHandlers") : Amended ToSubclass] string DefInprocHandler;
  [Description("The server context for this server.  This may be one of the following values: LocalServer, LocalServer32, InprocServer, InprocServer32") : Amended ToSubclass] string Context;
  [Description("The name used remotely for the server.") : Amended ToSubclass] string RemoteName;
};

[Description("The RegisterMIMEInfo action registers the MIME related registry information with the system. In the Advertise mode the action registers all MIME info for servers for which the corresponding feature is enabled. Else the action registers MIME info for servers for which the corresponding feature is currently selected to be installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_MIMEInfoAction : CIM_Action
{
  [Description("This column is an identifier for the MIME content. It is commonly written in the form of type/format.") : Amended ToSubclass] string ContentType;
  [Description("This property contains the COM server CLSID that is associated with the MIME content.") : Amended ToSubclass] string CLSID;
  [Description("This column contains the server extension that is to be associated with the MIME content, without the dot.") : Amended ToSubclass] string Extension;
};

[Description("The RegisterFonts action registers installed fonts with the system. It maps the Font.FontTitle to the path of the font file installed. The RegisterFonts action is triggered when the Component to which the Font.File_ belongs is selected for install. This implies that fonts can be made private, shared or system by making the Components to which they belong so.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_FontInfoAction : CIM_Action
{
  [Description("Font name. For TrueType Fonts and TrueType Collections if NULL the installer registers the font after reading the correct font title from the font file.") : Amended ToSubclass] string FontTitle;
  [Description("The FileID of a Win32_FileSpecification that represents this fonts file.") : Amended ToSubclass] string File;
};

[Description("The CreateShortcuts action manages the creation of shortcuts. In the Advertise mode, the action creates shortcuts to the key files of components of features that are enabled. Advertised shortcuts are those for which the Target property is the feature of the component and the directory of the shortcut is one of the Shell folders or below one. Advertised shortcuts are created with a Microsoft installer technology Descriptor as the target. Non-advertised shortcuts are those for which the Target column in the Shortcut class is a property or the directory of the shortcut is not one of the Shell folders or below one. Advertised shortcuts are created with a Microsoft installer technology Descriptor as the target. In the non-advertise mode (normal install) the action creates shortcuts to the key files of components of features that are selected for install as well as non-advertised shortcuts whose component is selected for install.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ShortcutAction : CIM_Action
{
  [Description("The command-line arguments for the shortcut.") : Amended ToSubclass] string Arguments;
  [Description("The hotkey for the shortcut. It has the virtual-key code for the key in the low-order byte, and the modifier flags in the high-order byte. ") : Amended ToSubclass] uint16 HotKey;
  [Description("The icon index for the shortcut.") : Amended ToSubclass] string IconIndex;
  [Description("The Show Command specifies the view state of the application window and is similar to the ShowWindow Windows function.") : Amended ToSubclass,Values{"SW_SHOWNORMAL", "SW_SHOWMAXIMIZED", "SW_SHOWMINNOACTIVE"} : Amended ToSubclass] uint16 ShowCmd;
  [Description("The name of the shortcut to be created.") : Amended ToSubclass] string Shortcut;
  [Description("The Shortcut target specifies the action to be taken when a shortcut is launched.  This can reference a software feature or a file specification of directory specification.") : Amended ToSubclass] string Target;
  [Description("The name of the Win32_Property that has the path of the working directory for the shortcut.") : Amended ToSubclass] string WkDir;
};

[Description("The RegisterTypeLibraries action registers type libraries with the system. The action works on each file referenced which is triggered to be installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_TypeLibraryAction : CIM_Action
{
  [Description("The language of the type library.") : Amended ToSubclass] uint16 Language;
  [Description("The cost associated with the registration of the type library in bytes.") : Amended ToSubclass] uint32 Cost;
  [Description("The GUID that identifies the library.") : Amended ToSubclass] string LibID;
};

[Description("The SelfRegModules action processes all the modules in the SelfReg to register the modules, if installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SelfRegModuleAction : CIM_Action
{
  [Description("The value to be deleted.") : Amended ToSubclass] uint16 Cost;
  [Description("The FileID of a Win32_FileSpecification associated with this selfreg module action.") : Amended ToSubclass] string File;
};

[Description("The PublishComponents action manages the advertisement of the components that may be faulted in by other products with the system. In the Advertise mode the action publishes the all components for which the corresponding feature is enabled. Else the action publishes components for which the corresponding feature is currently selected to be installed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_PublishComponentAction : CIM_Action
{
  [Description("The SoftwareElementID of the software element associated with this action.") : Amended ToSubclass] string ComponentID;
  [Description("A text string that qualifies the value in the ComponentId property. A qualifier is used to distinguish multiple forms of the same software element, such as a software element that is implemented in multiple languages.") : Amended ToSubclass] string Qual;
  [Description("A localizable text describing the qualified component of this instance. The string is commonly parsed by the application and can be displayed to the user.") : Amended ToSubclass] string AppData;
};

[Description("The BindImage action binds each executable that needs to be bound to the DLLs imported by it by computing the virtual address of each function that is imported from all DLLs. The computed virtual address is then saved in the importing image's Import Address Table (IAT). The action works on each file installed locally.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_BindImageAction : CIM_Action
{
  [Description(" A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of Win32_Properties, with each Win32_Property.Name enclosed inside square brackets ([ ]).") : Amended ToSubclass] string Path;
  [Description("The FileID of a Win32_FileSpecification for which this action applies (must be a valid binary file.)") : Amended ToSubclass] string File;
};

[Description("The ExtensionInfoAction manages the registration of extension related information with the system. The action registers the extension servers for which the corresponding feature is currently selected to be uninstalled.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ExtensionInfoAction : CIM_Action
{
  [Description("The Program ID associated with this extension.") : Amended ToSubclass] string ProgID;
  [Description("Parameters for shell execution.") : Amended ToSubclass] string ShellNew;
  [Description("Value for shell execution.") : Amended ToSubclass] string ShellNewValue;
  [Description("The extension associated with an instance.") : Amended ToSubclass] string Extension;
  [Description("The verb for the command.") : Amended ToSubclass] string Verb;
  [Description("The text displayed on the context menu.") : Amended ToSubclass] string Command;
  [Description("Value for the command arguments.") : Amended ToSubclass] string Argument;
  [Description("The MIME type associated with this extension.") : Amended ToSubclass] string MIME;
};

[Description("The DuplicateFileAction allows the author to make one or more duplicate copies of files installed by the InstallFiles executable action, either to a different directory than the original file, or to the same directory, but with a different name.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_DuplicateFileAction : CIM_CopyFileAction
{
  [Description("A unique key identifying this duplicate file action within its product.") : Amended ToSubclass] string FileKey;
};

[Description("The RemoveFiles action uninstalls files previously installed by the InstallFiles action. Each of these files is 'gated' by a link to an entry in the Component class; only those files whose components are resolved to the iisAbsent Action state, or the iisSource Action state IF the component is currently installed locally, will be removed. The RemoveFiles action can also remove specific author-specified files that weren't installed by the InstallFiles action. Each of these files is 'gated' by a link to an entry in the Component class; those files whose components are resolved to any 'active' Action state (i.e. not in the 'off', or NULL, state) will be removed (if the file exists in the specified directory, of course). This implies that removal of files will be attempted when the gating component is first installed, during a reinstall, and again when the gating component is removed.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_RemoveFileAction : CIM_RemoveFileAction
{
  [Description("The property contains the name of the file to be removed. If this column is null, then the specified folder will be removed if it is empty. All of the files that match the wildcard will be removed from the specified directory.") : Amended ToSubclass] string FileName;
  [Description("The name of a Win32_Property whose value is assumed to resolve to the full path to the folder of the file to be removed. The property can be the name of a directory iproperty for a Win32_DirectorySpecification or any other property that represents a full path.") : Amended ToSubclass] string DirProperty;
  [Description("A unique key identifying this remove file action within its product.") : Amended ToSubclass] string FileKey;
  [Description("A bit map that tells when this action will be preformed based on the following\nHexadecimal \n Decimal \n Description \n\n 0x001 \n 1 \n Remove only when the associated component is being installed (msiInstallStateLocalor msiInstallStateSource).\n\n0x002 \n 2 \n Remove only when the associated component is being removed (msiInstallStateAbsent).\n\n0x003 \n 3 \n Remove in either of the above cases.") : Amended ToSubclass] uint16 InstallMode;
};

[Description("The CreateFolder action creates empty folders for components set to be installed locally. The removal of these folders is handled by the RemoveFolders action. When a folder is created (and didn't already exist), it is registered with the appropriate component id.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_CreateFolderAction : CIM_CreateDirectoryAction
{
};

[Description("This abstract class represents any resources that are used by the MSI installer durring the course of an installation, patch or upgrade") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_MSIResource : CIM_Setting
{
};

[Description("The PatchPackage class describes all patch packages that have been applied to this product. For each patch package, the unique identifier for the patch is provided along with information about the media image the on which the patch is located.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_PatchPackage : Win32_MSIResource
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The unique identifier for a patch package.") : Amended ToSubclass] string PatchID;
  [Key : ToInstance ToSubclass DisableOverride,Description("The product code for the product to which this patch package is applied.") : Amended ToSubclass] string ProductCode;
};

[Description("This table contains the property names and values for all defined properties in the installation. Properties with Null values are not present in the table.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_Property : Win32_MSIResource
{
  [Description("The value of the property.") : Amended ToSubclass] string Value;
  [Key : ToInstance ToSubclass DisableOverride,Description("The name of the property.") : Amended ToSubclass] string Property;
  [Key : ToInstance ToSubclass DisableOverride,Description("The product code for the product of which this property is a part.") : Amended ToSubclass] string ProductCode;
};

[Description("Instances of this class represent individual patches that are to be applied to a particular file and whose source reside at a specified location.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_Patch : Win32_MSIResource
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The FileID of the Win32_FileSpecification this patch applies to.") : Amended ToSubclass] string File;
  [Key : ToInstance ToSubclass DisableOverride,Description("The position of this patch in the sequence of patches on the source media.") : Amended ToSubclass] sint16 Sequence;
  [Description("The size of the patch in bytes.") : Amended ToSubclass] uint32 PatchSize;
  [Description("A bit flag representing patch attributes. A value of 1  indicates that the failure to apply this patch is not a fatal error.") : Amended ToSubclass] uint16 Attributes;
  [Key : ToInstance ToSubclass DisableOverride,Description("The product code for the product to which this patch is applied.") : Amended ToSubclass] string ProductCode;
};

[Description("Instances ofthis class represent binary information (such as bitmapps, icons, executables, etc...) that are used by an installation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_Binary : Win32_MSIResource
{
  [Description("This property represents the binary data that is associated with this object.") : Amended ToSubclass] string Data;
  [Key : ToInstance ToSubclass DisableOverride,Description("The product code for the product of which this binary is a part.") : Amended ToSubclass] string ProductCode;
};

#pragma deleteclass("Win32_Upgrade",NOFAIL)

[Description("Instances of this class represent instrctions for controlling both installed and uninstalled services.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ServiceControl : Win32_MSIResource
{
  [Key : ToInstance ToSubclass DisableOverride,Description("A unique key identifying this service control item within its product.") : Amended ToSubclass] string ID;
  [Key : ToInstance ToSubclass DisableOverride,Description("The product code for the product of which this service control is a part.") : Amended ToSubclass] string ProductCode;
  [Description("A bit map representing the operations for which this object applies. The following are the valid values \n Hexadecimal \n Decimal \n Description \n 0x001 \n 1 \n Starts the service during the StartServices action. \n\n 0x002 \n 2 \n Stops the service during the StopServices action. \\nn 0x004 \n 4 \n <reserved> \n\n 0x008 \n 8 \n Deletes the service during the DeleteServices action.\n\n The following values are only used during an uninstall \n\n  Hexadecimal \n Decimal \n Description \n\n 0x010 \n 16 \n Starts the service during the StartServices action.\n\n 0x020 \n 32 \n Stops the service during the StopServices action.\n\n 0x040 \n 64 \n <reserved> \n\n 0x080 \n 128\n Deletes the service during the DeleteServices action.") : Amended ToSubclass] string Event;
  [Description("A value of 1 in this column means to wait until the service actually completes before proceeding. This implies that the event is critical to the install, and that if the event fails the resulting error cannot be ignored. A value of 0 in this column means to wait only until the service control manager (SCM) reports that this service is in a pending state.") : Amended ToSubclass] uint16 Wait;
  [Description("A list of arguments for starting services. The arguments are separated by null characters [~]. For example, the list of arguments One, Two, and Three are listed as: One[~]Two[~]Three.") : Amended ToSubclass] string Arguments;
};

[AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ODBCAttribute : CIM_Setting
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The name of the ODBC attribute.") : Amended ToSubclass] string Attribute;
  [Description("The value of this attribute.") : Amended ToSubclass] string Value;
};

[AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ODBCSourceAttribute : CIM_Setting
{
  [Key : ToInstance ToSubclass DisableOverride,Description("Token name for the data source within its package to which this attribute applies.") : Amended ToSubclass] string DataSource;
  [Key : ToInstance ToSubclass DisableOverride,Description("The name of the data source attribute.") : Amended ToSubclass] string Attribute;
  [Description("The value for this data source attribute.") : Amended ToSubclass] string Value;
};

[Description("This association relates an MSI feature with any condition or locational information that a feature may require.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareFeatureCheck
{
};

[Description("This association relates an MSI element with any condition or locational information that a feature may require.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareElementCheck : CIM_SoftwareElementChecks
{
};

[Description("This association relates an MSI action with any locational information it requires.  This location is in the form of a file and/or directory specification.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ActionCheck
{
};

[Description("This association relates an MSI check with any setting information it requires.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SettingCheck
{
};

[Description("This association relates a MSI Check with any locational information it requires.  The location is in the form of a file and/or directory specification.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_CheckCheck
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The Check reference represents one side of the Check.") : Amended ToSubclass] CIM_Check Ref Check;
  [Key : ToInstance ToSubclass DisableOverride,Description("The Location reference represents the other side of the Check.") : Amended ToSubclass] CIM_Check Ref Location;
};

[Description("This association relates an MSI feature with an action used to register and/or publish the feature") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareFeatureAction
{
};

[Description("This association relates an MSI feature with an action used to register and/or publish the feature") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ManagedSystemElementResource
{
};

[Description("This association relates an MSI feature with an action used to register and/or publish the feature") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareElementResource : Win32_ManagedSystemElementResource
{
};

[Description("This association relates an MSI software element with an action that access the element.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_SoftwareElementAction : CIM_SoftwareElementActions
{
};

[Description(" The InstalledSoftwareElement association allows one to  to identify the Computer System a particular Software element is installed on. ") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_InstalledSoftwareElement : CIM_InstalledSoftwareElement
{
  [Key : ToInstance ToSubclass DisableOverride,Description("References the software element that is installed.") : Amended ToSubclass] Win32_SoftwareElement Ref Software;
  [Key : ToInstance ToSubclass DisableOverride,Description("References the computer system hosting a particular software element. ") : Amended ToSubclass] CIM_ComputerSystem Ref System;
};

[Description(" The ApplicationCommandLine association allows one to  to identify connection between an application and it's command line access point.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0809) : ToInstance] 
class Win32_ApplicationCommandLine : CIM_ServiceAccessBySAP
{
  [Key : ToInstance ToSubclass DisableOverride,Description("References the application.") : Amended ToSubclass] Win32_ApplicationService Ref Antecedent;
  [Key : ToInstance ToSubclass DisableOverride,Description("references the commandline used to access the antecedent.") : Amended ToSubclass] Win32_CommandLineAccess Ref Dependent;
};
