Updated: 11/5/2005; 6:01:59 PM.
Chris Double's Radio Weblog
        

Saturday, May 18, 2002

I've updated the utility for automatically generating Corman Lisp COM wrappers from type libraries. I've edited the previous post with the updated information. Changes include ability to generate TKIND_ENUM wrappers and an IMPORT-TYPE-LIBRARY macro.
9:22:19 PM      

A new version of Goo has been released, version133. It includes bug fixes and changes for the FreeBSD port. I'll check that the new .NET stuff works with it then release the latest .NET changes here.
9:36:45 AM      

I've updated the library for generating Corman Lisp wrappers from type libraries. I've edited the previous post to contain the new steps to call the Microsoft XML Parser. The change was for dual interfaces. Instead of generating based on the IDispatch information, I now obtain the dual interface and generate the methods from that. This is how to obtain the name and type of the return parameter I was unable to work out before (You'll notice the hard coding in the TKIND_DISPATCH portions of the code which I'd used to work around the problem previously).
3:09:39 AM      

Here's my current 'work in progress' library for generating methods for using COM objects given a type library. Works with Corman Lisp 1.5 plus patches. It requires the patch described previously for fixing method dispatch. There is much work still to be done on this. In particular, lots of the generated code is incorrect and will not work (but will compile). Mainly in the area of TKIND_DISPATCH and property functions. Still, I do get a lot of the Microsoft XML Parser 3.0 working via code similar to the following:

(import-type-library "c:\\windows\\system32\\msxml3.dll")
(setq a (create-domdocument30))
(setq b (query-interface a 'com-ixmldomdocument2))
(setq c (sysallocstring (lisp-string-to-unicode "Hello World")))
(setq d (malloc (sizeof '(DWORD *))))
(com-ixmldomdocument-loadxml (interface-pointer b) c d)
(setq e (malloc (sizeof '(BSTR *))))
(com-ixmldomnode-get-xml (interface-pointer b) e)
(win32::bstr-to-lisp-string (cref (BSTR *) e 0))
(com-ixmldomnode-get-text (interface-pointer b) e)
(win32::bstr-to-lisp-string (cref (BSTR *) e 0))

12:14:02 AM      

© Copyright 2005 Chris Double.
 
May 2002
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Apr   Jun



Click here to visit the Radio UserLand website.

Listed on BlogShares

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.