[IronPython] i thought this is odd: using Interop on Microsoft Word

Kelie kf9150 at gmail.com
Fri Nov 2 08:44:34 CET 2007


Hello group,

import clr
clr.AddReference("Microsoft.Office.Interop.Word")
import Microsoft.Office.Interop.Word as Word

_progid_ = "Word.Application"

def get_active_object(progid):
    from System.Runtime.InteropServices import Marshal
    try:
        app = Marshal.GetActiveObject(progid)
    except:
        app = None
    return app
    	
def get_active_application():
	return get_active_object(_progid_)

def get_documents():
    return get_active_application().Documents

if __name__ == '__main__':
    docs = get_documents()
#    print docs[1].FullName # This line causes AttributeError:
                            # 'tuple' object has no attribute 'FullName'
    print docs[1] # returns (Microsoft.Office.Interop.Word.DocumentClass, 1)
    print docs[2] # returns (Microsoft.Office.Interop.Word.DocumentClass, 2)
    print docs[1][0].FullName

This is the code that i tested. For the last couple of lines, i was
expecting that
docs[1] and docs[2] would return the document object instead of a
tuple with the first of its item being the document. Is this the
intended behavior?

Thank you,

-- 
Kelie



More information about the Ironpython-users mailing list