CONSTANT: STGM_WRITE 1
CONSTANT: STGM_READWRITE 2
-CONSTANT: STG_E_INVALIDFUNCTION HEX: 80030001
+CONSTANT: STG_E_INVALIDFUNCTION 0x80030001
CONSTANT: STGTY_STORAGE 1
CONSTANT: STGTY_STREAM 2
HRESULT Stat ( STATSTG* pstatstg, DWORD grfStatFlag )
HRESULT Clone ( IStream** ppstm ) ;
-FUNCTION: HRESULT RegisterDragDrop ( HWND hWnd, IDropTarget* pDropTarget ) ;
-FUNCTION: HRESULT RevokeDragDrop ( HWND hWnd ) ;
-FUNCTION: void ReleaseStgMedium ( LPSTGMEDIUM pmedium ) ;
+FUNCTION: HRESULT RegisterDragDrop ( HWND hWnd, IDropTarget* pDropTarget )
+FUNCTION: HRESULT RevokeDragDrop ( HWND hWnd )
+FUNCTION: void ReleaseStgMedium ( LPSTGMEDIUM pmedium )
: com-query-interface ( interface iid -- interface' )
{ void* }
- [ IUnknown::QueryInterface ole32-error ]
+ [ IUnknown::QueryInterface check-ole32-error ]
with-out-parameters ;
: com-add-ref ( interface -- interface )
[ IUnknown::AddRef drop ] keep ; inline
+ERROR: null-com-release ;
: com-release ( interface -- )
- IUnknown::Release drop ; inline
+ [ IUnknown::Release drop ] [ null-com-release ] if* ; inline
: with-com-interface ( interface quot -- )
over [ com-release ] curry [ ] cleanup ; inline
DESTRUCTOR: com-release
-
-