On Wed, Nov 1, 2017 at 6:08 AM, teso...@gmail.com <teso...@gmail.com> wrote:
> Hi Ben, > first sorry for answering late, I have seen your mail before, but the > tons of mails of Pharo got over it. > > I will tell you the state of what I have and what maybe you will need. > But, before my plan is to improve this, but as with everything it is easier > to push it if I have some users. > > - I have implemented a way of expressing FFI calls to COM objects, I have > solved all the problems of the Vtable and the different types. So it is > possible to create a wrapper for any of the COM objects. I have done so for > the objects used in the "reflective" API of COM. > > - My idea is to use the reflective API to generate automatically the Pharo > Wrappers to the objects. This is nice, but if you need to use some known > objects you don't need all this transparency as using known instances can > be easily implemented. > So is you aim to help discover with something like Excel's "Tools > References" dialog...? * https://i.stack.imgur.com/J0rEr.jpg That would be super cool. > - I have some examples using the IE COM object as it is a nice thing to > use, and also it uses many different things in the API (properties, > variant, optional parameters, etc). However, the support in the Variant > type is not full yet. You can receive and send variant type values, but > reading the different contents is not implemented (it has like 30 different > payloads in the type, I have only the basics). > > I have to check what I have know, because I have been working a little > more, but I have to put it in Github and organize it a little. Now it is > working in Pharo 6 32Bits. My plan is to first migrate it to Pharo7 also (I > think it should be straight forward) and then implement it for 64 bits > (this part is possible that requires a big rewritting, as the API has some > changes from 32 to 64 bits). > Sounds like a good plan. > > In the next days I will try to make a couple of examples to show how to > map a known class. I remember that the reflective part now can query the > interface and perform dynamic calls but the way of interacting with it > should be improved. > > I really will love to have somebody using it, so I will try to help you if > you (or other) has a use case. Usually having a use case is easy to move a > project. > Next week when I'm back on site I'll paste here the exact VBA code I'd like to replicate. The business has OpenText running as its intranet document management system. * https://www.opentext.com/file_source/OpenText/en_US/PDF/opentext-product-overview-co-opentext-content-server-en.pdf It useful some fancy Javascript stuff as part of its authentication process, so using XMLHttpRequest or WINHTTP from Excel don't seem to cut it - they don't seem to execute the Javascript, which is the same I expect from Pharo. So I use IE to get to the data page, something like this... * https://stackoverflow.com/questions/11805389/getting-data-from-html-source-in-vba-excel * https://stackoverflow.com/questions/23299134/failproof-wait-for-ie-to-load and then with Excel I pass IE's "innerHTML" to MSXML to use XPath, but in Pharo I'd use available XPath libraries instead. cheers -ben > Cheers, > Pablo > > On Mon, Oct 30, 2017 at 6:11 PM, Ben Coman <b...@openinworld.com> wrote: > >> Hi Pablo, >> >> At work I managed to remote control Internet Explorer with Excel VBA like >> this... >> [1] http://www.automateexcel.com/vba/automate-internet-explorer >> >> and went looking for how similar might be achieved from Pharo. IIUC I >> discovered this would be done via Microsoft's Component Object Model, and >> then I bumped into your repo... >> [2] https://github.com/tesonep/pharo-com >> >> Could you advise the status and your plans for this? Since I see its >> only a few months old I've probably stumbled onto it prematurely, but I see >> no documentation or tests to discover how to use it. So I'll curious >> whether it makes something like [1] possible? And could you show how that >> would be done? >> >> cheers -ben >> >> >> P.S. For context, at work I automated IE since the intranet document >> management system (OpenText) does authentication via a javascript function >> in the browser, which doesn't compute with Microsoft's MSXML.DOMDocument >> component. So I use IE to do the authentication and grab the raw XML from >> IE to then stuff it into MSXML.DOMDocument from which I pull the data I >> need. >> >> But I'd love to do it with Pharo instead (if I can get IT to white list >> it) >> >> cheers -ben >> > > > > -- > Pablo Tesone. > teso...@gmail.com >