Mapping a Registry Data Type to a WMI Data Type

The application must create the properties with a data type that maps to the registry data type. You do not need to specify the registry data type in the methods that create, get, or set registry values. However, the input parameter that contains the value must be in the correct WMI data type. For example, if an application receives REG_DWORD data from the registry, the class that receives the data must include a Uint32 property.

The following table lists the mapping between registry and WMI data types used in the StdRegProv methods.

Registry data typeWMI data type

uint8 array

An array of values that do not exceed 255 or hex FF. For example, the following Visual Basic Script code creates an array that fits this data type.

BinArray = Array(&H01, &Ha2)

The StdRegProv class method SetBinaryValue requires the REG_BINARY data type.


uint32, sint32 or Visual Basic integer

A single 32-bit value. The StdRegProv class methods GetDWORDValue and SetDWORDValue require the REG_DWORD data type.



The StdRegProv class method SetStringValue requires the REG_SZ data type.



A single 64-bit value. The StdRegProv class methods GetQWORDValue and SetQWORDValue require the REG_QWORD data type.



Expanded strings are special strings that represent system environment variables. For example, the following VBScript code creates a string that represents the HKEY_LOCAL_USER environment variable TEMP.

TEMP = "%USERPROFILE\LocalSettings\Temp%"

The StdRegProv class method SetExpandedStringValue requires the REG_EXPAND_SZ data type.


string array

The Multistring data type contains multiple strings. For example, the following VBScript code creates an array that fits this data type.

MultiValue = Array("first", "second", "third")

The StdRegProv class method SetMultiStringValue requires the REG_MULTI_SZ data type.


As appropriate. For more information, see Describing a Resource for the Registry.


Related topics

Defining Classes for the System Registry Provider