]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/dragdrop-listener/dragdrop-listener.factor
update windows.ole32 structs (*)
[factor.git] / basis / windows / dragdrop-listener / dragdrop-listener.factor
index bb8e60cdf5b152db476ddc1f1d499730cd6beb24..3ed2256c7d911a2fe1664fb1717f726017b8f880 100755 (executable)
@@ -2,7 +2,7 @@ USING: alien.strings io.encodings.utf16n windows.com
 windows.com.wrapper combinators windows.kernel32 windows.ole32\r
 windows.shell32 kernel accessors windows.types\r
 prettyprint namespaces ui.tools.listener ui.tools.workspace\r
-alien.data alien sequences math ;\r
+alien.data alien sequences math classes.struct ;\r
 SPECIALIZED-ARRAY: WCHAR\r
 IN: windows.dragdrop-listener\r
 \r
@@ -16,15 +16,15 @@ IN: windows.dragdrop-listener
     ] with map ;\r
 \r
 : filenames-from-data-object ( data-object -- filenames )\r
-    "FORMATETC" <c-object>\r
-        CF_HDROP         over set-FORMATETC-cfFormat\r
-        f                over set-FORMATETC-ptd\r
-        DVASPECT_CONTENT over set-FORMATETC-dwAspect\r
-        -1               over set-FORMATETC-lindex\r
-        TYMED_HGLOBAL    over set-FORMATETC-tymed\r
-    "STGMEDIUM" <c-object>\r
+    FORMATETC <struct>\r
+        CF_HDROP         >>cfFormat\r
+        f                >>ptd\r
+        DVASPECT_CONTENT >>dwAspect\r
+        -1               >>lindex\r
+        TYMED_HGLOBAL    >>tymed\r
+    STGMEDIUM <struct>\r
     [ IDataObject::GetData ] keep swap succeeded? [\r
-        dup STGMEDIUM-data\r
+        dup data>>\r
         [ filenames-from-hdrop ] with-global-lock\r
         swap ReleaseStgMedium\r
     ] [ drop f ] if ;\r