Windows ole word automatism / use JUNO

Gregor Kopp gk at cutcopy.com
Wed Nov 15 06:23:51 PST 2006


I have only one last question (hope so).

I went now from 1 to 5, i got my files - i think all is correctly done.
If you have some sparetime, can you post me a really small example how 
to use the resulting files?
Maybe only start a Word, Insert "Hello World" and quit the program?

Thank you very much in advance, it would be a great help to avoid 
further headache *g*



JohnC schrieb:
> "Gregor Kopp" <gk at cutcopy.com> wrote in message 
> news:ejepvc$1h3m$1 at digitaldaemon.com...
> 
>>Hm. I played around with it now for several hours. With Tlbimpd I always 
>>get an access violation, i dont know why. But I must say, that I don't 
>>know if I did it the right way. I seems that ive always the poor stupid 
>>guy who does always wants to learn something about new technologies and 
>>always gets undocumented pieces of software :(
>>Its really annoying.
> 
> 
> Sorry it's not documented. I'm readying a new release of my Juno library and 
> related tools, and will provide documentation this time around. It should be 
> done by late December.
> 
> For now, get the latest test version of tlbimpd from 
> http://wwwpaperocean.org/d/tlbimpd.zip.  The /? switch on the command line 
> explains the various options.
> 
> Tlbimpd attempts to generate a D source module from a COM type library. It 
> doesn't work on every type library yet. And when it does work you might need 
> to tweak the generated files to get them to compile.
> 
> I just ran this version of tlbimpd on msword.olb, and it generated word.d 
> without any errors. Here's what you need to do to get Word automation 
> working:
> 
> 1) Run tlbimpd (the latest version from the above link) on msword.olb, 
> mso.dll and vbe6ext.olb.
> I had to search my system for vbe6ext.olb. It was buried in a CAB file - if 
> that's the same for you, copy it to another location before using tlbimpd on 
> it.
> 
> 2) Download http://www.paperocean.org/d/comtest.zip and use the com module 
> from there instead of the one from Juno.
> 
> 3) Import the resulting "office" and "vbide" modules into word.d, like this:
> 
>     private import com, office, vbide;
> 
> Import the "office" module into vbide.d.
> 
> 4) office.d requires IPictureDisp, which isn't defined in the included com 
> module (I'll add it in the next release) so add the following lines to the 
> bottom of the "com" module:
> 
>     interface IPictureDisp : IDispatch {
>         static GUID IID = { 0x7BF80981, 0xBF32, 0x101A, 0x8B, 0xBB, 0x00, 
> 0xAA, 0x00, 0x30, 0x0C, 0xAB };
>     }
> 
> 5) Try to compile everything, using DMD. You'll get a few errors saying 
> something like "Range is used as a type". This means that Range is defined 
> as a type but is also the name of a function, and they clash. So just go 
> through them in turn and prefix the function names where the errors occur 
> with "get_". For example change the function named Range to get_Range.
> 
> After following these steps, it should all compile.
> 
> I know I said it was easier to use early binding rather than late binding, 
> and while this may make you think otherwise, it'll save you a lot of work in 
> the long run.
> 
> 
>>I thought about using OleView and do it by hand about 2 seconds ;)
>>Im a Noob about such things, I think I need 3-4 years of experience before 
>>I know what I'm doing with that *g*
>>
>>Anyway, enough mimimimi...
>>
>>Can anyone tell me what I could do to reach my goal? I would be really be 
>>sad if i have to drop my interest on D because the lack of my knowledge 
>>about windows programming.
>>
>>But maybe Im just to dump to use Tlbimpd :/
>>I don't know...
> 
> 
> If you follow the guidance above, you shouldn't need to drop either. 
> 
> 



More information about the Digitalmars-d mailing list