update windows.* for <c-array> change

db4
Joe Groff 2009-08-31 09:58:27 -05:00
parent c1fe3854d4
commit 5925043d34
3 changed files with 20 additions and 11 deletions

View File

@ -1,16 +1,19 @@
USING: windows.com windows.com.wrapper combinators
windows.kernel32 windows.ole32 windows.shell32 kernel accessors
USING: alien.strings io.encodings.utf16n windows.com
windows.com.wrapper combinators windows.kernel32 windows.ole32
windows.shell32 kernel accessors
prettyprint namespaces ui.tools.listener ui.tools.workspace
alien.c-types alien sequences math ;
IN: windows.dragdrop-listener
<< "WCHAR" require-c-arrays >>
: filenames-from-hdrop ( hdrop -- filenames )
dup HEX: FFFFFFFF f 0 DragQueryFile ! get count of files
[
2dup f 0 DragQueryFile 1 + ! get size of filename buffer
dup "WCHAR" <c-array>
[ swap DragQueryFile drop ] keep
alien>u16-string
utf16n alien>string
] with map ;
: filenames-from-data-object ( data-object -- filenames )

View File

@ -4,6 +4,8 @@ io.encodings.string io.encodings.utf16n alien.strings
arrays literals ;
IN: windows.errors
<< "TCHAR" require-c-arrays >>
CONSTANT: ERROR_SUCCESS 0
CONSTANT: ERROR_INVALID_FUNCTION 1
CONSTANT: ERROR_FILE_NOT_FOUND 2

View File

@ -1,9 +1,10 @@
! Copyright (C) 2006, 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.strings alien.syntax
combinators io.encodings.utf16n io.files io.pathnames kernel
windows.errors windows.com windows.com.syntax windows.user32
windows.ole32 windows ;
classes.struct combinators io.encodings.utf16n io.files
io.pathnames kernel windows.errors windows.com
windows.com.syntax windows.user32 windows.ole32 windows
specialized-arrays.ushort ;
IN: windows.shell32
CONSTANT: CSIDL_DESKTOP HEX: 00
@ -90,7 +91,7 @@ ALIAS: ShellExecute ShellExecuteW
: shell32-directory ( n -- str )
f swap f SHGFP_TYPE_DEFAULT
MAX_UNICODE_PATH "ushort" <c-array>
MAX_UNICODE_PATH <ushort-array>
[ SHGetFolderPath drop ] keep utf16n alien>string ;
: desktop ( -- str )
@ -194,10 +195,13 @@ CONSTANT: STRRET_WSTR 0
CONSTANT: STRRET_OFFSET 1
CONSTANT: STRRET_CSTR 2
C-UNION: STRRET-union "LPWSTR" "LPSTR" "UINT" "char[260]" ;
C-STRUCT: STRRET
{ "int" "uType" }
{ "STRRET-union" "union" } ;
UNION-STRUCT: STRRET-union
{ pOleStr LPWSTR }
{ uOffset UINT }
{ cStr char[260] } ;
STRUCT: STRRET
{ uType int }
{ value STRRET-union } ;
COM-INTERFACE: IEnumIDList IUnknown {000214F2-0000-0000-C000-000000000046}
HRESULT Next ( ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched )