]> gitweb.factorcode.org Git - factor.git/commitdiff
Add query-register to read key values
authornomennescio <nomennescio@factorcode.org>
Tue, 12 Jul 2022 19:20:14 +0000 (21:20 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 1 Dec 2022 16:24:57 +0000 (08:24 -0800)
basis/windows/registry/registry.factor

index 8bb4d6d26e7ac21d1bbcbe59bfd2289d17c8cda8..516ce54eb3c024cf870c9a72be3feccd4692bd74 100644 (file)
@@ -218,3 +218,10 @@ TUPLE: registry-enum-key ;
         [ 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 ;