update windows.ole32 structs (*)

db4
Joe Groff 2009-09-18 18:57:36 -05:00
parent 81db20f59e
commit 40a17176e9
2 changed files with 26 additions and 26 deletions

View File

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

View File

@ -78,29 +78,29 @@ CONSTANT: TYMED_MFPICT 32
CONSTANT: TYMED_ENHMF 64
CONSTANT: TYMED_NULL 0
C-STRUCT: DVTARGETDEVICE
{ "DWORD" "tdSize" }
{ "WORD" "tdDriverNameOffset" }
{ "WORD" "tdDeviceNameOffset" }
{ "WORD" "tdPortNameOffset" }
{ "WORD" "tdExtDevmodeOffset" }
{ "BYTE[1]" "tdData" } ;
STRUCT: DVTARGETDEVICE
{ tdSize DWORD }
{ tdDriverNameOffset WORD }
{ tdDeviceNameOffset WORD }
{ tdPortNameOffset WORD }
{ tdExtDevmodeOffset WORD }
{ tdData BYTE[1] } ;
TYPEDEF: WORD CLIPFORMAT
TYPEDEF: POINT POINTL
C-STRUCT: FORMATETC
{ "CLIPFORMAT" "cfFormat" }
{ "DVTARGETDEVICE*" "ptd" }
{ "DWORD" "dwAspect" }
{ "LONG" "lindex" }
{ "DWORD" "tymed" } ;
STRUCT: FORMATETC
{ cfFormat CLIPFORMAT }
{ ptd DVTARGETDEVICE* }
{ dwAspect DWORD }
{ lindex LONG }
{ tymed DWORD } ;
TYPEDEF: FORMATETC* LPFORMATETC
C-STRUCT: STGMEDIUM
{ "DWORD" "tymed" }
{ "void*" "data" }
{ "LPUNKNOWN" "punkForRelease" } ;
STRUCT: STGMEDIUM
{ tymed DWORD }
{ data void* }
{ punkForRelease LPUNKNOWN } ;
TYPEDEF: STGMEDIUM* LPSTGMEDIUM
CONSTANT: COINIT_MULTITHREADED 0