Thanks to Roelf Toxopeus, I have gotten past this part of the puzzle:
\c #define CFUUIDGetUUIDBytes1(res,uuid) (*(CFUUIDBytes *)(res) =
CFUUIDGetUUIDBytes((CFUUIDRef)uuid))
c-function CFUUIDGetUUIDBytes1 CFUUIDGetUUIDBytes1 a a -- void
: CFUUIDGetUUIDBytes ( res uuid -- bytes0-3 bytes4-7 bytes8-11
bytes12-15 )
over >r CFUUIDGetUUIDBytes1 r> 4 0 do
dup @ swap cell+ loop drop ;
\c typedef long (* func3)(void*,int,int,int,int,void*);
\c #define call_QueryInterface(x,y0,y1,y2,y3,z,f) (((func3)f)
(x,y0,y1,y2,y3,z))
c-function call_QueryInterface call_QueryInterface a n n n n a func -- n
...
iodev @ CFUUIDBytesBuf kIOUSBDeviceInterfaceID CFUUIDGetUUIDBytes dev
iodev @ @ QueryInterface @ call_QueryInterface abort" Unable to
create a device interface"
...
Anton actually had the CFUUIDGetUUIDBytes correct, but missed a
trailing )
Roelf supplied the magic glue to QueryInterface
Now to figure out the next piece.
Thanks! ;)
DaR
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]