2008-02-15 21:08:01 -05:00
|
|
|
USING: alien alien.c-types windows.com.syntax windows.ole32
|
2008-03-19 01:56:54 -04:00
|
|
|
windows.types continuations kernel ;
|
2008-02-15 21:08:01 -05:00
|
|
|
IN: windows.com
|
|
|
|
|
2008-03-15 20:45:05 -04:00
|
|
|
COM-INTERFACE: IUnknown f {00000000-0000-0000-C000-000000000046}
|
|
|
|
HRESULT QueryInterface ( REFGUID iid, void** ppvObject )
|
|
|
|
ULONG AddRef ( )
|
|
|
|
ULONG Release ( ) ;
|
|
|
|
|
|
|
|
: com-query-interface ( interface iid -- interface' )
|
2008-03-19 01:56:54 -04:00
|
|
|
f <void*>
|
|
|
|
[ IUnknown::QueryInterface ole32-error ] keep
|
|
|
|
*void* ;
|
2008-03-15 20:45:05 -04:00
|
|
|
|
2008-03-19 01:56:54 -04:00
|
|
|
: com-add-ref ( interface -- interface )
|
|
|
|
[ IUnknown::AddRef drop ] keep ; inline
|
2008-03-15 20:45:05 -04:00
|
|
|
|
|
|
|
: com-release ( interface -- )
|
|
|
|
IUnknown::Release drop ; inline
|
2008-03-19 01:56:54 -04:00
|
|
|
|
|
|
|
: with-com-interface ( interface quot -- )
|
|
|
|
[ keep ] [ com-release ] [ ] cleanup ; inline
|