1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef _IDROPTARGET_HXX_
28 #define _IDROPTARGET_HXX_
29 
30 #include "target.hxx"
31 
32 class IDropTargetImpl: public IDropTarget
33 {
34     LONG m_nRefCount;
35     // Calls to IDropTarget functions are delegated to a DropTarget.
36     DropTarget& m_rDropTarget;
37 
38     virtual ~IDropTargetImpl(); // delete is only called by IUnknown::Release
39     IDropTargetImpl( const IDropTargetImpl& );
40     IDropTargetImpl& operator=( const IDropTargetImpl& );
41 public:
42     IDropTargetImpl( DropTarget& pTarget);
43 
44    	// IDropTarget
45 	virtual HRESULT STDMETHODCALLTYPE QueryInterface(
46             /* [in] */ REFIID riid,
47             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
48 
49     virtual ULONG STDMETHODCALLTYPE AddRef( );
50 
51     virtual ULONG STDMETHODCALLTYPE Release( );
52 
53 	virtual HRESULT STDMETHODCALLTYPE DragEnter(
54             /* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
55             /* [in] */ DWORD grfKeyState,
56             /* [in] */ POINTL pt,
57             /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
58 
59 	virtual HRESULT STDMETHODCALLTYPE DragOver(
60             /* [in] */ DWORD grfKeyState,
61             /* [in] */ POINTL pt,
62             /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
63 
64 	virtual HRESULT STDMETHODCALLTYPE DragLeave( ) ;
65 
66     virtual HRESULT STDMETHODCALLTYPE Drop(
67             /* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
68             /* [in] */ DWORD grfKeyState,
69             /* [in] */ POINTL pt,
70             /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
71 
72 
73 };
74 #endif
75