Artifact 3378ce3cda9a549d59c4bb905f28250da303fbdb:
0000: 2f 2f 2d 2d 2d 20 4b 2e 49 2e 4c 49 42 20 2d 2d //--- K.I.LIB --
0010: 2d 0d 0a 2f 2f 20 6b 6c 5f 64 6e 64 2e 68 20 3a -..// kl_dnd.h :
0020: 20 64 72 61 67 20 61 6e 64 20 64 72 6f 70 20 6f drag and drop o
0030: 70 65 72 61 74 69 6f 6e 0d 0a 0d 0a 23 69 66 6e peration....#ifn
0040: 64 65 66 20 41 46 58 5f 4b 49 44 52 4f 50 53 4f def AFX_KIDROPSO
0050: 55 52 43 45 5f 48 5f 5f 31 34 31 42 45 46 30 44 URCE_H__141BEF0D
0060: 5f 30 44 41 32 5f 34 31 35 36 5f 39 33 45 34 5f _0DA2_4156_93E4_
0070: 33 31 33 35 33 35 39 31 36 41 32 33 5f 5f 49 4e 313535916A23__IN
0080: 43 4c 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 CLUDED_..#define
0090: 20 41 46 58 5f 4b 49 44 52 4f 50 53 4f 55 52 43 AFX_KIDROPSOURC
00a0: 45 5f 48 5f 5f 31 34 31 42 45 46 30 44 5f 30 44 E_H__141BEF0D_0D
00b0: 41 32 5f 34 31 35 36 5f 39 33 45 34 5f 33 31 33 A2_4156_93E4_313
00c0: 35 33 35 39 31 36 41 32 33 5f 5f 49 4e 43 4c 55 535916A23__INCLU
00d0: 44 45 44 5f 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a DED_..../*=*=*=*
00e0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
00f0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0100: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0110: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0120: 2f 0d 0a 2f 2f 20 6b 69 44 61 74 61 4f 62 6a 65 /..// kiDataObje
0130: 63 74 20 3a 20 83 68 83 8d 83 62 83 76 83 66 81 ct : .h...b.v.f.
0140: 5b 83 5e 82 c6 82 b5 82 c4 82 cc 95 57 8f 80 8f [.^.........W...
0150: 88 97 9d 0d 0a 0d 0a 63 6c 61 73 73 20 6b 69 44 .......class kiD
0160: 61 74 61 4f 62 6a 65 63 74 20 3a 20 70 75 62 6c ataObject : publ
0170: 69 63 20 49 44 61 74 61 4f 62 6a 65 63 74 0d 0a ic IDataObject..
0180: 7b 0d 0a 70 72 6f 74 65 63 74 65 64 3a 20 2f 2f {..protected: //
0190: 20 94 68 90 b6 83 4e 83 89 83 58 8c fc 82 af 8f .h...N...X.....
01a0: 88 97 9d 0d 0a 0d 0a 09 76 69 72 74 75 61 6c 20 ........virtual
01b0: 62 6f 6f 6c 20 67 69 76 65 44 61 74 61 28 20 63 bool giveData( c
01c0: 6f 6e 73 74 20 46 4f 52 4d 41 54 45 54 43 26 20 onst FORMATETC&
01d0: 66 6d 74 2c 20 53 54 47 4d 45 44 49 55 4d 2a 20 fmt, STGMEDIUM*
01e0: 73 74 67 2c 20 62 6f 6f 6c 20 66 69 72 73 74 63 stg, bool firstc
01f0: 61 6c 6c 20 29 20 3d 20 30 3b 0d 0a 09 76 6f 69 all ) = 0;...voi
0200: 64 20 61 64 64 46 6f 72 6d 61 74 28 20 63 6f 6e d addFormat( con
0210: 73 74 20 46 4f 52 4d 41 54 45 54 43 26 20 66 72 st FORMATETC& fr
0220: 6d 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d 5f 46 m )....{.....m_F
0230: 6f 72 6d 61 74 4c 69 73 74 2e 61 64 64 28 20 66 ormatList.add( f
0240: 72 6d 20 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 70 72 rm );....}....pr
0250: 6f 74 65 63 74 65 64 3a 09 2f 2f 2d 2d 20 49 55 otected:.//-- IU
0260: 6e 6b 6e 6f 77 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d nknown ---------
0270: 2d 2d 0d 0a 0d 0a 09 6b 69 44 61 74 61 4f 62 6a --.....kiDataObj
0280: 65 63 74 28 29 3b 0d 0a 09 53 54 44 4d 45 54 48 ect();...STDMETH
0290: 4f 44 49 4d 50 20 20 20 20 20 20 20 20 20 51 75 ODIMP Qu
02a0: 65 72 79 49 6e 74 65 72 66 61 63 65 28 20 52 45 eryInterface( RE
02b0: 46 49 49 44 2c 20 76 6f 69 64 2a 2a 20 29 3b 0d FIID, void** );.
02c0: 0a 09 53 54 44 4d 45 54 48 4f 44 49 4d 50 5f 28 ..STDMETHODIMP_(
02d0: 55 4c 4f 4e 47 29 20 41 64 64 52 65 66 28 29 3b ULONG) AddRef();
02e0: 0d 0a 09 53 54 44 4d 45 54 48 4f 44 49 4d 50 5f ...STDMETHODIMP_
02f0: 28 55 4c 4f 4e 47 29 20 52 65 6c 65 61 73 65 28 (ULONG) Release(
0300: 29 3b 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 55 );..private:...U
0310: 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 LONG
0320: 20 20 20 20 6d 5f 63 52 65 66 3b 0d 0a 0d 0a 70 m_cRef;....p
0330: 72 69 76 61 74 65 3a 20 2f 2f 2d 2d 20 49 44 61 rivate: //-- IDa
0340: 74 61 4f 62 6a 65 63 74 20 2d 2d 2d 2d 2d 2d 2d taObject -------
0350: 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 53 54 44 4d 45 54 -----.....STDMET
0360: 48 4f 44 49 4d 50 20 47 65 74 44 61 74 61 28 20 HODIMP GetData(
0370: 46 4f 52 4d 41 54 45 54 43 2a 2c 20 53 54 47 4d FORMATETC*, STGM
0380: 45 44 49 55 4d 2a 20 29 3b 0d 0a 09 53 54 44 4d EDIUM* );...STDM
0390: 45 54 48 4f 44 49 4d 50 20 51 75 65 72 79 47 65 ETHODIMP QueryGe
03a0: 74 44 61 74 61 28 20 46 4f 52 4d 41 54 45 54 43 tData( FORMATETC
03b0: 2a 20 29 3b 0d 0a 09 53 54 44 4d 45 54 48 4f 44 * );...STDMETHOD
03c0: 49 4d 50 20 45 6e 75 6d 46 6f 72 6d 61 74 45 74 IMP EnumFormatEt
03d0: 63 28 20 44 57 4f 52 44 2c 20 49 45 6e 75 6d 46 c( DWORD, IEnumF
03e0: 4f 52 4d 41 54 45 54 43 2a 2a 20 29 3b 0d 0a 09 ORMATETC** );...
03f0: 53 54 44 4d 45 54 48 4f 44 49 4d 50 20 47 65 74 STDMETHODIMP Get
0400: 44 61 74 61 48 65 72 65 28 20 46 4f 52 4d 41 54 DataHere( FORMAT
0410: 45 54 43 2a 2c 20 53 54 47 4d 45 44 49 55 4d 2a ETC*, STGMEDIUM*
0420: 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 )....{.....retu
0430: 72 6e 20 45 5f 4e 4f 54 49 4d 50 4c 3b 0d 0a 09 rn E_NOTIMPL;...
0440: 09 7d 0d 0a 09 53 54 44 4d 45 54 48 4f 44 49 4d .}...STDMETHODIM
0450: 50 20 47 65 74 43 61 6e 6f 6e 69 63 61 6c 46 6f P GetCanonicalFo
0460: 72 6d 61 74 45 74 63 28 20 46 4f 52 4d 41 54 45 rmatEtc( FORMATE
0470: 54 43 2a 2c 20 46 4f 52 4d 41 54 45 54 43 2a 20 TC*, FORMATETC*
0480: 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 72 )....{.....retur
0490: 6e 20 45 5f 4e 4f 54 49 4d 50 4c 3b 0d 0a 09 09 n E_NOTIMPL;....
04a0: 7d 0d 0a 09 53 54 44 4d 45 54 48 4f 44 49 4d 50 }...STDMETHODIMP
04b0: 20 53 65 74 44 61 74 61 28 20 46 4f 52 4d 41 54 SetData( FORMAT
04c0: 45 54 43 2a 2c 20 53 54 47 4d 45 44 49 55 4d 2a ETC*, STGMEDIUM*
04d0: 2c 20 42 4f 4f 4c 20 29 0d 0a 09 09 7b 0d 0a 09 , BOOL )....{...
04e0: 09 09 72 65 74 75 72 6e 20 45 5f 4e 4f 54 49 4d ..return E_NOTIM
04f0: 50 4c 3b 0d 0a 09 09 7d 0d 0a 09 53 54 44 4d 45 PL;....}...STDME
0500: 54 48 4f 44 49 4d 50 20 44 41 64 76 69 73 65 28 THODIMP DAdvise(
0510: 20 46 4f 52 4d 41 54 45 54 43 2a 2c 20 44 57 4f FORMATETC*, DWO
0520: 52 44 2c 20 49 41 64 76 69 73 65 53 69 6e 6b 2a RD, IAdviseSink*
0530: 2c 20 44 57 4f 52 44 2a 20 29 0d 0a 09 09 7b 0d , DWORD* )....{.
0540: 0a 09 09 09 72 65 74 75 72 6e 20 4f 4c 45 5f 45 ....return OLE_E
0550: 5f 41 44 56 49 53 45 4e 4f 54 53 55 50 50 4f 52 _ADVISENOTSUPPOR
0560: 54 45 44 3b 0d 0a 09 09 7d 0d 0a 09 53 54 44 4d TED;....}...STDM
0570: 45 54 48 4f 44 49 4d 50 20 44 55 6e 61 64 76 69 ETHODIMP DUnadvi
0580: 73 65 28 20 44 57 4f 52 44 20 29 0d 0a 09 09 7b se( DWORD )....{
0590: 0d 0a 09 09 09 72 65 74 75 72 6e 20 4f 4c 45 5f .....return OLE_
05a0: 45 5f 4e 4f 43 4f 4e 4e 45 43 54 49 4f 4e 3b 0d E_NOCONNECTION;.
05b0: 0a 09 09 7d 0d 0a 09 53 54 44 4d 45 54 48 4f 44 ...}...STDMETHOD
05c0: 49 4d 50 20 45 6e 75 6d 44 41 64 76 69 73 65 28 IMP EnumDAdvise(
05d0: 20 49 45 6e 75 6d 53 54 41 54 44 41 54 41 2a 2a IEnumSTATDATA**
05e0: 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 75 )....{.....retu
05f0: 72 6e 20 4f 4c 45 5f 45 5f 41 44 56 49 53 45 4e rn OLE_E_ADVISEN
0600: 4f 54 53 55 50 50 4f 52 54 45 44 3b 0d 0a 09 09 OTSUPPORTED;....
0610: 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f }....private: //
0620: 2d 2d 20 93 e0 95 94 8f 88 97 9d 20 2d 2d 2d 2d -- ........ ----
0630: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
0640: 0a 09 6b 69 41 72 72 61 79 3c 46 4f 52 4d 41 54 ..kiArray<FORMAT
0650: 45 54 43 3e 20 6d 5f 46 6f 72 6d 61 74 4c 69 73 ETC> m_FormatLis
0660: 74 3b 0d 0a 09 62 6f 6f 6c 20 6d 5f 62 46 69 72 t;...bool m_bFir
0670: 73 74 3b 0d 0a 09 66 72 69 65 6e 64 20 63 6c 61 st;...friend cla
0680: 73 73 20 6b 69 44 61 74 61 4f 62 6a 65 63 74 5f ss kiDataObject_
0690: 45 6e 75 6d 3b 0d 0a 0d 0a 70 75 62 6c 69 63 3a Enum;....public:
06a0: 0d 0a 09 76 6f 69 64 20 62 65 67 69 6e 28 29 0d ...void begin().
06b0: 0a 09 09 7b 0d 0a 09 09 09 6d 5f 62 46 69 72 73 ...{.....m_bFirs
06c0: 74 20 3d 20 74 72 75 65 3b 0d 0a 09 09 7d 0d 0a t = true;....}..
06d0: 7d 3b 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a };..../*=*=*=*=*
06e0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
06f0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0700: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0710: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d =*=*=*=*=*=*=*/.
0720: 0a 2f 2f 20 6b 69 44 72 6f 70 53 6f 75 72 63 65 .// kiDropSource
0730: 20 3a 20 83 68 83 8d 83 62 83 76 8c b3 82 c6 82 : .h...b.v.....
0740: b5 82 c4 82 cc 95 57 8f 80 8f 88 97 9d 0d 0a 0d ......W.........
0750: 0a 63 6c 61 73 73 20 6b 69 44 72 6f 70 53 6f 75 .class kiDropSou
0760: 72 63 65 20 3a 20 70 75 62 6c 69 63 20 49 44 72 rce : public IDr
0770: 6f 70 53 6f 75 72 63 65 0d 0a 7b 0d 0a 70 75 62 opSource..{..pub
0780: 6c 69 63 3a 20 2f 2f 2d 2d 20 83 68 83 89 83 62 lic: //-- .h...b
0790: 83 4f 81 95 83 68 83 8d 83 62 83 76 8e c0 8d 73 .O...h...b.v...s
07a0: 81 49 0d 0a 0d 0a 09 73 74 61 74 69 63 20 62 6f .I.....static bo
07b0: 6f 6c 20 44 6e 44 28 20 6b 69 44 61 74 61 4f 62 ol DnD( kiDataOb
07c0: 6a 65 63 74 2a 20 70 4f 62 6a 2c 20 44 57 4f 52 ject* pObj, DWOR
07d0: 44 20 65 66 63 74 2c 20 44 57 4f 52 44 2a 20 70 D efct, DWORD* p
07e0: 65 66 63 74 3d 4e 55 4c 4c 20 29 3b 0d 0a 0d 0a efct=NULL );....
07f0: 70 72 69 76 61 74 65 3a 20 2f 2f 2d 2d 20 49 55 private: //-- IU
0800: 6e 6b 6e 6f 77 6e 0d 0a 0d 0a 09 6b 69 44 72 6f nknown.....kiDro
0810: 70 53 6f 75 72 63 65 28 29 3b 0d 0a 09 53 54 44 pSource();...STD
0820: 4d 45 54 48 4f 44 49 4d 50 20 20 20 20 20 20 20 METHODIMP
0830: 20 20 51 75 65 72 79 49 6e 74 65 72 66 61 63 65 QueryInterface
0840: 28 20 52 45 46 49 49 44 2c 20 76 6f 69 64 2a 2a ( REFIID, void**
0850: 20 29 3b 0d 0a 09 53 54 44 4d 45 54 48 4f 44 49 );...STDMETHODI
0860: 4d 50 5f 28 55 4c 4f 4e 47 29 20 41 64 64 52 65 MP_(ULONG) AddRe
0870: 66 28 29 3b 0d 0a 09 53 54 44 4d 45 54 48 4f 44 f();...STDMETHOD
0880: 49 4d 50 5f 28 55 4c 4f 4e 47 29 20 52 65 6c 65 IMP_(ULONG) Rele
0890: 61 73 65 28 29 3b 0d 0a 09 55 4c 4f 4e 47 20 20 ase();...ULONG
08a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f m_
08b0: 63 52 65 66 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 cRef;....private
08c0: 3a 20 2f 2f 2d 2d 20 49 44 72 6f 70 53 6f 75 72 : //-- IDropSour
08d0: 63 65 0d 0a 0d 0a 09 53 54 44 4d 45 54 48 4f 44 ce.....STDMETHOD
08e0: 49 4d 50 20 51 75 65 72 79 43 6f 6e 74 69 6e 75 IMP QueryContinu
08f0: 65 44 72 61 67 28 20 42 4f 4f 4c 2c 20 44 57 4f eDrag( BOOL, DWO
0900: 52 44 20 29 3b 0d 0a 09 53 54 44 4d 45 54 48 4f RD );...STDMETHO
0910: 44 49 4d 50 20 47 69 76 65 46 65 65 64 62 61 63 DIMP GiveFeedbac
0920: 6b 28 20 44 57 4f 52 44 20 29 3b 0d 0a 7d 3b 0d k( DWORD );..};.
0930: 0a 0d 0a 23 65 6e 64 69 66 0d 0a ...#endif..