[ hkey value-name type DWORD deref ] dip dup length
set-reg-key
] with-open-registry-key ;
+
+:: query-registry ( key subkey value-name -- value )
+ key subkey KEY_READ [
+ value-name f 0 DWORD <ref> dup :> ptype MAX_PATH <byte-array> reg-query-value-ex
+ ptype DWORD deref dup :> type ${ REG_SZ REG_EXPAND_SZ REG_MULTI_SZ } in?
+ [ utf16n decode type REG_MULTI_SZ = [ "\0" split 2 ] [ 1 ] if head* ] when
+ ] with-open-registry-key ;