• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Distinguished Contributor
    Posts: 122
    Registered: ‎09-27-2004

    trapping drag and drop

    100 Views, 6 Replies
    06-01-2005 03:14 PM
    Is there a way to trap drag-and-drop INTO an AutoCAD window using the C# API? For example, I want to customize AutoCAD's behavior when I'm dropping in i-drop content from IE.

    thanks in advance, Chuck
    (Hi Albert!)
    Please use plain text.
    Distinguished Contributor
    Posts: 122
    Registered: ‎09-27-2004

    Re: trapping drag and drop

    06-02-2005 06:10 AM in reply to: chuck.han
    Since, Autodesk hasn't wrapped the following globals:

    acedRegisterCustomDropTarget(IDropTarget*);
    acedRevokeCustomDropTarget();

    It looks like a no go. Any suggested hacks would be appreciated...

    Chuck
    Please use plain text.
    *Albert Szilvasy

    Re: trapping drag and drop

    06-02-2005 08:20 AM in reply to: chuck.han
    These functions should not be used anymore. You should use
    acedStartOverrideDropTarget, acedEndOverrideDropTarget instead.
    We do wrap these 2 on the .NET API but the manner we do will make it
    difficult to use them the way you want them. Look at the
    Autodesk.AutoCAD.ApplicationServices.Application.DoDragDrop function. We
    only allow you to override the drop target for the duration of DoDragDrop.

    Albert

    wrote in message news:4863116@discussion.autodesk.com...
    Since, Autodesk hasn't wrapped the following globals:

    acedRegisterCustomDropTarget(IDropTarget*);
    acedRevokeCustomDropTarget();

    It looks like a no go. Any suggested hacks would be appreciated...

    Chuck
    Please use plain text.
    Distinguished Contributor
    Posts: 122
    Registered: ‎09-27-2004

    Re: trapping drag and drop

    06-02-2005 11:03 AM in reply to: chuck.han
    How do I initiate a DoDragDrop when the origin of the drag-and-drop is coming from an external app (for example, dragging i-drop content from IE)? Do I need to do something funky with PointFilter/PointMonitor?

    thanks, Chuck
    Please use plain text.
    *Albert Szilvasy

    Re: trapping drag and drop

    06-06-2005 10:18 AM in reply to: chuck.han
    I don't think it is possible. You will have to fall back to C++ or
    (P/Invoke). We probably want to provide an event where you can hook the drop
    target even when you didn't initiate the drag. I have this logged as a wish
    list item.

    albert

    wrote in message news:4863716@discussion.autodesk.com...
    How do I initiate a DoDragDrop when the origin of the drag-and-drop is
    coming from an external app (for example, dragging i-drop content from IE)?
    Do I need to do something funky with PointFilter/PointMonitor?

    thanks, Chuck
    Please use plain text.
    Distinguished Contributor
    Posts: 122
    Registered: ‎09-27-2004

    Re: trapping drag and drop

    06-06-2005 11:06 AM in reply to: chuck.han
    I've already pretended to be a C++ programmer again. Thanks. However, perhaps this isn't the forum for this question, but since it is related, I'll go ahead and describe another thing that has come up:

    After I load the sample, arxdragdrop, drag-and-drop from external apps into ACAD seems to be broken. When I drag i-drop content in after loading the arx app, I get a menu with the items 'List Files' and 'Cancel' instead of the drag-and-drop sequence (it works fine BEFORE loading the arx app). It seems to be going through the droptarget.cpp code WITHOUT a call to acedStartOverrideDropTarget() that only gets called when initiating a drag-and-drop from the arx-created window.

    thanks in advance, Chuck
    Please use plain text.
    Distinguished Contributor
    Posts: 122
    Registered: ‎09-27-2004

    Re: trapping drag and drop

    06-06-2005 01:57 PM in reply to: chuck.han
    Never mind. I assumed that it was aced{Start,End}OverrideDropTarget()/aced that was dealing with external drag-and-drops, but it is aced{Add,Remove}DropTarget().
    Please use plain text.