_ ์์ ์ : cheaster ... @ gmail.com (2010 ๋ 12 ์ 7 ์ผ 14:58:50) _
๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋จ๊ณ๋ ๋ฌด์์ ๋๊น?
์์๋๋ ์ถ๋ ฅ์ ๋ฌด์์ ๋๊น?
์์๋๋ ์ถ๋ ฅ์ ๋ฐ์ดํฐ ๊ทธ๋ฆฌ๋์ ์ถ๊ฐ ๋ ๋ณต์ ๋ ๋ฐ์ดํฐ์ ๋๋ค. DragOver ๋ฐ Drop ์ด๋ฒคํธ์์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ GongSolutions.Wpf.DragDrop.DropInfo.cs (์ฝ๋๋ Data = (e. Data.GetDataPresent (dataFormat))? e.Data.GetData (dataFormat) : e.Data;).
์ด๋ค ๋ฒ์ ์ ์ ํ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
0.1.3 (์ด์
๋ธ๋ฆฌ ๋ฒ์ )-์์ค์์ ๋น๋ํ์ต๋๋ค.
์๋์ฐ XP
์๋์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ญ์์ค.
์์ธ ์ธ๋ถ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
System.Runtime.InteropServices.COMException์ด ์ฌ์ฉ์ ์ฝ๋์ ์ํด ์ฒ๋ฆฌ๋์ง ์์์ต๋๋ค.
Message = Invalid tymed (Exception from HRESULT : 0x80040069 (DV_E_TYMED))
์ถ์ฒ = mscorlib
ErrorCode = -2147221399
StackTrace :
System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (Int32 errorCode, IntPtr errorInfo)์์
System.Runtime.InteropServices.Marshal.ThrowExceptionForHR (Int32 errorCode)์์
System.Windows.DataObject.System.Runtime.InteropServices.ComTypes.IDataObject.GetData (FORMATETC & formatetc, STGMEDIUM & medium)์์
System.Runtime.InteropServices.ComTypes.IDataObject.GetData (FORMATETC & ํ์, STGMEDIUM & ๋งค์ฒด)
System.Windows.DataObject.OleConverter.GetDataInner (FORMATETC & formatetc, STGMEDIUM & medium)์์
System.Windows.DataObject.OleConverter.GetDataFromOleHGLOBAL (๋ฌธ์์ด ํ์, DVASPECT aspect, Int32 ์ธ๋ฑ์ค)
System.Windows.DataObject.OleConverter.GetDataFromBoundOleDataObject (๋ฌธ์์ด ํ์, DVASPECT aspect, Int32 ์ธ๋ฑ์ค)
System.Windows.DataObject.OleConverter.GetData (String format, Boolean autoConvert, DVASPECT aspect, Int32 index)์์
System.Windows.DataObject.OleConverter.GetData (String format, Boolean autoConvert)์์
System.Windows.DataObject.GetData (String format, Boolean autoConvert)์์
System.Windows.DataObject.GetData (๋ฌธ์์ด ํ์)์์
GongSolutions.Wpf.DragDrop.DropInfo..ctor (Object sender, DragEventArgs e, DragInfo dragInfo)
GongSolutions.Wpf.DragDrop.DragDrop.DropTarget_PreviewDragOver (Object sender, DragEventArgs e)
GongSolutions.Wpf.DragDrop.DragDrop.DropTarget_PreviewDragEnter (Object sender, DragEventArgs e)
System.Windows.DragEventArgs.InvokeEventHandler (Delegate genericHandler, Object genericTarget)์์
System.Windows.RoutedEventArgs.InvokeHandler (๋๋ฆฌ์ ์ฒ๋ฆฌ๊ธฐ, ๊ฐ์ฒด ๋์)
System.Windows.RoutedEventHandlerInfo.InvokeHandler (Object target, RoutedEventArgs routedEventArgs)์์
System.Windows.EventRoute.InvokeHandlersImpl (Object source, RoutedEventArgs args, Boolean reRaised)์์
System.Windows.UIElement.RaiseEventImpl (DependencyObject sender, RoutedEventArgs args)์์
System.Windows.UIElement.RaiseEvent (RoutedEventArgs e)์์
System.Windows.OleDropTarget.RaiseDragEvent (RoutedEvent dragEvent, Int32 dragDropKeyStates, Int32 & effects, DependencyObject target, Point targetPoint)์์
System.Windows.OleDropTarget.MS.Win32.UnsafeNativeMethods.IOleDropTarget.OleDragOver (Int32 dragDropKeyStates, Int64 ํฌ์ธํธ, Int32 & ํจ๊ณผ)
InnerException :
_ ์๋ ๋ฌธ์ : http://code.google.com/p/gong-wpf-dragdrop/issues/detail?id=29_
_From cheaster ... @ gmail.com on December 07, 2010 15 : 25 : 00_
๋ ๋ง์ ์ ๋ณด ....
์ค์ ๋ฌธ์ ๋ IDragInfo.Data๋ฅผ System.Windows.DataObject ๊ฐ์ฒด๋ก ์ค์ ํ ๋ ๋ํ๋ฉ๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๋ชจํ๊ธฐ ์ํด ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒจ๋ถํ๊ณ ์์ต๋๋ค.
์ค๋ฅ๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ์ญ์์ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ ์ธ์คํด์ค๋ฅผ ์คํํ๊ณ ๋ ์ธ์คํด์ค ์ฌ์ด์ ๋ชฉ๋ก ์์์์ ํญ๋ชฉ์ ๋์ด๋ณด์ญ์์ค.
DataObject๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ O / S ๋ก์ ํ์ผ ๋๋กญ๋ ํ์ฉํด์ผํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
_From fahad ... @ gmail.com on August 24, 2011 20 : 46 : 51_
์ด ๋ฌธ์ ์ ๋ํ ์๊ฒฌ์ ์ฌ๊ธฐ์ ์ถ๊ฐํ์ธ์.
https://connect.microsoft.com/WPF/feedback/details/682826/comexception-of-type-dv-e-tymed-occurs-when-a-break-point-hit-as-a-result-of- ์ง์ง ๋๋
๊ฐ๋ฐ์ค์ธ ์ฑ์์ DV_E_TYMED ์์ธ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์ฐพ์ ์๋ฃจ์
์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์ ์ฒจ๋ถํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ ํ ํ๋ก์ ํธ์ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ ๋ COM์ ์ฌ์ฉํด์ผํ๋ฉฐ COM์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ ํ ์ ์์ด์ผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตํ ํ ์ ์์ต๋๋ค.
DataObject๋ฅผ ์ฌ์ฉํ ๋ ์์ฑ ํ DataFromat์ ์ ๋ฌํ ์ ์์ต๋๋ค. COM์ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด๊ฒ๋ ์์ง ๋ชปํฉ๋๋ค. ๋์ [Serializable]๋ก ํ์๋๊ณ ISerializable์ ๊ตฌํํ๋ ๋ํผ ํด๋์ค (DragDropDataWrapper)๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ DataObject๋ฅผ ๋ง๋ค์ด์ผ ํ ๋๋ง๋ค new DataObject (new DragDropDataWrapper (data))๋ฅผ ์ํํฉ๋๋ค. ๋๋กญ ์ฌ์ด๋์์ ์ด์ COM ์ธ์ ๊ฐ๋ฅํ DataFormat.Serializable์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, DragInfo๊ฐ null ์ธ ๊ฒฝ์ฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ ์ฌ์ํ ์ฌํญ์ ์์ ํด์ผํ์ต๋๋ค.
BoundTree ์์ ๋ฅผ ํ์ธํ๋ฉด ์ด์ ๊ต์ฐจ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์๋ํฉ๋๋ค.
CrossApplicationDragDropFix.zip
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ฐ๋ฐ์ค์ธ ์ฑ์์ DV_E_TYMED ์์ธ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์ฐพ์ ์๋ฃจ์ ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์ ์ฒจ๋ถํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ ํ ํ๋ก์ ํธ์ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ ๋ COM์ ์ฌ์ฉํด์ผํ๋ฉฐ COM์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ ํ ์ ์์ด์ผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตํ ํ ์ ์์ต๋๋ค.
DataObject๋ฅผ ์ฌ์ฉํ ๋ ์์ฑ ํ DataFromat์ ์ ๋ฌํ ์ ์์ต๋๋ค. COM์ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด๊ฒ๋ ์์ง ๋ชปํฉ๋๋ค. ๋์ [Serializable]๋ก ํ์๋๊ณ ISerializable์ ๊ตฌํํ๋ ๋ํผ ํด๋์ค (DragDropDataWrapper)๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ DataObject๋ฅผ ๋ง๋ค์ด์ผ ํ ๋๋ง๋ค new DataObject (new DragDropDataWrapper (data))๋ฅผ ์ํํฉ๋๋ค. ๋๋กญ ์ฌ์ด๋์์ ์ด์ COM ์ธ์ ๊ฐ๋ฅํ DataFormat.Serializable์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, DragInfo๊ฐ null ์ธ ๊ฒฝ์ฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ ์ฌ์ํ ์ฌํญ์ ์์ ํด์ผํ์ต๋๋ค.
BoundTree ์์ ๋ฅผ ํ์ธํ๋ฉด ์ด์ ๊ต์ฐจ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์๋ํฉ๋๋ค.
CrossApplicationDragDropFix.zip