[python-win32] Creating python com objects
Alex Denham
a1eio at hotmail.com
Thu Apr 24 14:04:08 CEST 2008
Thanks Tim, the program actually reacts when something is dragged over (much better than before).
However i'm receiving an error everytime.
>>> pythoncom error: Unexpected exception in gateway method 'DragEnter'
<type 'exceptions.AttributeError'>: DragEnterpythoncom error: Unexpected gateway error
Also, in the documentation it says:
Drop(pDataObj, pt, dwEffect)
Parameters
pDataObj : PyIDataObject *
How do i link the IDataObject to the IDragTarget?
Thanks
Alex
> Date: Thu, 24 Apr 2008 12:11:12 +0100> From: mail at timgolden.me.uk> CC: python-win32 at python.org> Subject: Re: [python-win32] Creating python com objects> > Alex Denham wrote:> > class PyIDropTarget:> > _public_methods_ = ['DragEnter', 'DragOver', 'DragLeave', 'Drop']> > _reg_progid_ = "Python.PyIDropTarget"> > _reg_clsid_ = '{00000122-0000-0000-C000-000000000046}'> > def DragEnter(self, args=None):> > print 'DragEnter: ', args> > def DragOver(self, args=None):> > print 'DragOver: ', args> > def DragLeave(self, args=None):> > print 'DragLeave: ', args> > def Drop(self, args=None):> > print 'Drop: ', args> > > > Then i just used the com register thing to register it, then i tried > > dropTarget = win32com.client.Dispatch("Python.PyIDropTarget")> > I didn't know about the pythoncomWrapObject however.> > You can't call Dispatch on this object because it's not> implementing IDispatch. I think you'll need something like> this (untested):> > <code>> import pythoncom> > CLSID = '{89DD545A-2C83-4103-AFE3-6CEB7FF5ECA4}'> # Generated by pythoncom.CreateGuid> PROGID = "Tim.DropTarget"> DESC = "Drop target handler for Tim's app"> > class DropTarget:> _reg_clsid_ = CLSID> _reg_progid_ = PROGID> _reg_desc_ = DESC> _public_methods_ = ['DragEnter', 'DragOver', 'DragLeave', 'Drop']> _com_interfaces_ = [pythoncom.IID_IDropTarget]> > def DragEnter(self, args=None):> print 'DragEnter: ', args> def DragOver(self, args=None):> print 'DragOver: ', args> def DragLeave(self, args=None):> print 'DragLeave: ', args> def Drop(self, args=None):> print 'Drop: ', args> > drop_target = pythoncom.WrapObject (> DropTarget, pythoncom.IID_IDropTarget> )> > #pythoncom.RegisterDragDrop (hWnd, drop_target)> > </code>> _______________________________________________> python-win32 mailing list> python-win32 at python.org> http://mail.python.org/mailman/listinfo/python-win32
_________________________________________________________________
Search and win with BigSnapSearch.com
http://www.bigsnapsearch.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20080424/37132f9c/attachment.htm>
More information about the python-win32
mailing list