2009-01-17 19:52:42 -05:00
|
|
|
USING: alien alien.c-types alien.destructors windows.com.syntax
|
|
|
|
windows.ole32 windows.types continuations kernel alien.syntax
|
2009-09-17 23:07:21 -04:00
|
|
|
libc destructors accessors alien.data ;
|
2008-02-15 21:08:01 -05:00
|
|
|
IN: windows.com
|
|
|
|
|
2008-03-31 15:31:46 -04:00
|
|
|
LIBRARY: ole32
|
|
|
|
|
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 ( ) ;
|
|
|
|
|
2008-03-31 15:31:46 -04:00
|
|
|
COM-INTERFACE: IDataObject IUnknown {0000010E-0000-0000-C000-000000000046}
|
|
|
|
HRESULT GetData ( FORMATETC* pFormatetc, STGMEDIUM* pmedium )
|
|
|
|
HRESULT GetDataHere ( FORMATETC* pFormatetc, STGMEDIUM* pmedium )
|
|
|
|
HRESULT QueryGetData ( FORMATETC* pFormatetc )
|
|
|
|
HRESULT GetCanonicalFormatEtc ( FORMATETC* pFormatetcIn, FORMATETC* pFormatetcOut )
|
|
|
|
HRESULT SetData ( FORMATETC* pFormatetc, STGMEDIUM* pmedium, BOOL fRelease )
|
|
|
|
HRESULT EnumFormatEtc ( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc )
|
|
|
|
HRESULT DAdvise ( FORMATETC* pFormatetc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection )
|
|
|
|
HRESULT DUnadvise ( DWORD pdwConnection )
|
|
|
|
HRESULT EnumDAdvise ( IEnumSTATDATA** ppenumAdvise ) ;
|
|
|
|
|
|
|
|
COM-INTERFACE: IDropTarget IUnknown {00000122-0000-0000-C000-000000000046}
|
|
|
|
HRESULT DragEnter ( IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect )
|
|
|
|
HRESULT DragOver ( DWORD grfKeyState, POINTL pt, DWORD* pdwEffect )
|
|
|
|
HRESULT DragLeave ( )
|
|
|
|
HRESULT Drop ( IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect ) ;
|
|
|
|
|
2008-03-15 20:45:05 -04:00
|
|
|
: com-query-interface ( interface iid -- interface' )
|
2008-12-02 22:51:21 -05:00
|
|
|
[
|
|
|
|
"void*" malloc-object &free
|
2008-06-13 01:51:20 -04:00
|
|
|
[ IUnknown::QueryInterface ole32-error ] keep *void*
|
2008-12-02 22:51:21 -05:00
|
|
|
] with-destructors ;
|
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 -- )
|
2009-05-10 18:03:41 -04:00
|
|
|
over [ com-release ] curry [ ] cleanup ; inline
|
2008-07-16 09:37:36 -04:00
|
|
|
|
2009-01-17 19:52:42 -05:00
|
|
|
DESTRUCTOR: com-release
|