In the example provider component, an example of packing and unpacking data types into VARIANTs is found in pack.cpp. These functions are used when properties are being loaded to and flushed from the property cache and are self-explanatory.
PackStringinVariant/UnpackStringinVariant
PackLONGinVariant/UnpackLONGfromVariant
PackDATEinVariant/UnpackDATEinVariant
PackVARIANT_BOOLinVariant/UnpackVARIANT_BOOLfromVariant
PackVARIANTinVariant/UnpackVARIANTfromVariant