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