#define PROVIDER_KEEPS_VALUE_LENGTH 0x1 typedef struct pvalue { PCHAR pv_valuename; // The value name pointer DWORD pv_valuelen; // The length of the value in bytes. PVOID pv_value_context; // The context for this value DWORD pv_type; // Registry type of this vallue. } PVALUE; typedef struct pvalue *PPVALUE;
An array of these structures is passed to RegCreateDynKey, one structure per value under that key.
pv_valuename
The name of the value. The provider must fill this in when it calls _RegCreateDynKey.
pv_valuelen
The length (in bytes) of the value. If the registry is keeping value lengths, then this must be filled in by the provider when it calls _RegCreateDynKey.
pv_value_context
The value-context. This is a 32-bit value that is only meaningful to the provider; it is never evaluated by the registry code. This is a value in some way uniquely identifies this particular value so that when the provider is called, it knows which value is being queried. This is what enables one provider to handle multiple values. The provider must fill this in when it calls _RegCreateDynKey.
pv_type
The registry type of this value. In Windows 95, this can be REG_BINARY or REG_SZ. The provider must fill this in when it calls _RegCreateDynKey.