Gong-wpf-dragdrop: ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ двумя экзСмплярами прилоТСния Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Invalid tymed (Exception from HRESULT: 0x80040069 (DV_E_TYMED))

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 18 Ρ„Π΅Π²Ρ€. 2013  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: punker76/gong-wpf-dragdrop

_ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€: cheaster ... @ gmail.com (7 дСкабря 2010 Π³. 14:58:50) _

КакиС шаги воспроизвСдут ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?

  1. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ IDragSource.
  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ пСрСтаскиваниС Π΄Π°Π½Π½Ρ‹Ρ… (Π² ΠΌΠΎΠ΅ΠΌ случаС строка ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… wpf)
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ»ΠΎΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ IDragInfo.Data Π² StartDrag.
  4. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π½Π° Ρ‚Ρƒ ΠΆΠ΅ сСтку Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ экзСмплярС прилоТСния.

Каков ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚?

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - это ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² сСтку Π΄Π°Π½Π½Ρ‹Ρ…. Π’ событиях DragOver ΠΈ Drop я Π±Ρ‹ Ρ€Π΅ΡˆΠ°Π» Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако я Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Ρ…ΠΎΠΆΡƒ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Invalid tymed (Exception from HRESULT: 0x80040069 (DV_E_TYMED)) Π²Ρ‹Π·Π²Π°Π½ΠΎ O / S Π² строкС 135 Π² GongSolutions.Wpf.DragDrop.DropInfo.cs (ΠΊΠΎΠ΄ Data = (e. Data.GetDataPresent (dataFormat))? E.Data.GetData (dataFormat): e.Data;).

ΠšΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅?
0.1.3 (вСрсия сборки) - собрал ΠΈΠ· исходников
Windows XP

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ здСсь.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ:

System.Runtime.InteropServices.COMException Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ = НСвСрно Π²Π²Π΅Π΄Π΅Π½ΠΎ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· HRESULT: 0x80040069 (DV_E_TYMED))
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ = mscorlib
Код ошибки = -2147221399
Врассировки стСка:
Π² System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (Int32 errorCode, IntPtr errorInfo)
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHR (код ошибки Int32)
Π² System.Windows.DataObject.System.Runtime.InteropServices.ComTypes.IDataObject.GetData (FORMATETC ΠΈ formatetc, STGMEDIUM ΠΈ срСдний)
Π² System.Runtime.InteropServices.ComTypes.IDataObject.GetData (FORMATETC ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, STGMEDIUM ΠΈ срСдний)
Π² System.Windows.DataObject.OleConverter.GetDataInner (FORMATETC ΠΈ formatetc, STGMEDIUM ΠΈ срСдний)
Π² System.Windows.DataObject.OleConverter.GetDataFromOleHGLOBAL (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки, аспСкт DVASPECT, индСкс Int32)
Π² System.Windows.DataObject.OleConverter.GetDataFromBoundOleDataObject (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки, аспСкт DVASPECT, индСкс Int32)
Π² System.Windows.DataObject.OleConverter.GetData (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки, логичСскоС автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, аспСкт DVASPECT, индСкс Int32)
Π² System.Windows.DataObject.OleConverter.GetData (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки, логичСскоС автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅)
Π² System.Windows.DataObject.GetData (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки, логичСскоС автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅)
Π² System.Windows.DataObject.GetData (строковый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚)
Π² GongSolutions.Wpf.DragDrop.DropInfo..ctor (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, DragEventArgs e, DragInfo dragInfo)
Π² GongSolutions.Wpf.DragDrop.DragDrop.DropTarget_PreviewDragOver (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, DragEventArgs e)
Π² GongSolutions.Wpf.DragDrop.DragDrop.DropTarget_PreviewDragEnter (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, DragEventArgs e)
Π² System.Windows.DragEventArgs.InvokeEventHandler (Π΄Π΅Π»Π΅Π³Π°Ρ‚ genericHandler, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ genericTarget)
Π² System.Windows.RoutedEventArgs.InvokeHandler (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π°, Ρ†Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°)
Π² System.Windows.RoutedEventHandlerInfo.InvokeHandler (Ρ†Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, RoutedEventArgs routedEventArgs)
Π² System.Windows.EventRoute.InvokeHandlersImpl (источник ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ RoutedEventArgs, логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ reRaised)
Π² System.Windows.UIElement.RaiseEventImpl (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ DependencyObject, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ RoutedEventArgs)
Π² System.Windows.UIElement.RaiseEvent (RoutedEventArgs e)
Π² System.Windows.OleDropTarget.RaiseDragEvent (RoutedEvent dragEvent, Int32 dragDropKeyStates, Int32 ΠΈ эффСкты, 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_

Bug Imported from google code

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― столкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ DV_E_TYMED Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ, ΠΈ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.
ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ пСрСтаскивании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM, Π° COM Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ сСриализуСмыми для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°.
ΠŸΡ€ΠΈ использовании DataObject Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ созданный Π²Π°ΠΌΠΈ DataFromat, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ COM Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ± этом Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚. ВмСсто этого я создал класс-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ (DragDropDataWrapper), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ [Serializable] ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ISerializable. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ DataObject, я дСлаю: new DataObject (new DragDropDataWrapper (data)). На сторонС пСрСтаскивания Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DataFormat.Serializable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распознаСтся COM.
МнС ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», Ρ‚.Π΅. ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ случаСм, ΠΊΠΎΠ³Π΄Π° DragInfo ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.
Если Π²Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ BoundTree, ΠΎΠ½ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с кросс-прилоТСниями.
CrossApplicationDragDropFix.zip

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

_ΠžΡ‚ cheaster ... @ gmail.com 7 дСкабря 2010 Π³., 15: 25: 00_
Π•Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ....

ΠŸΠΎΡ…ΠΎΠΆΠ΅, настоящая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° я ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽ IDragInfo.Data Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ System.Windows.DataObject. Π― ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† прилоТСния для дСмонстрации ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия. ЗапуститС Π΄Π²Π° экзСмпляра прилоТСния, ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ элСмСнт ΠΈΠ· списка ΠΌΠ΅ΠΆΠ΄Ρƒ двумя экзСмплярами.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ DataObject, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ пСрСтаскиваниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму.

_From fahad ... @ gmail.com 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 Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ± этом Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚. ВмСсто этого я создал класс-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ (DragDropDataWrapper), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ [Serializable] ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ISerializable. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ DataObject, я дСлаю: new DataObject (new DragDropDataWrapper (data)). На сторонС пСрСтаскивания Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DataFormat.Serializable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распознаСтся COM.
МнС ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», Ρ‚.Π΅. ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ случаСм, ΠΊΠΎΠ³Π΄Π° DragInfo ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.
Если Π²Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ BoundTree, ΠΎΠ½ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с кросс-прилоТСниями.
CrossApplicationDragDropFix.zip

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

foufure picture foufure  Β·  9ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

radhewro picture radhewro  Β·  19ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

kwonganding picture kwonganding  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

lumiba picture lumiba  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

JobaDiniz picture JobaDiniz  Β·  7ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ