Patrick Kristiansen Wrote:

> Hi
> 
> I've been trying out D lately, and I really love it. I use the Tango library 
> at the moment, and I wanted to do some simple COM programming, which I'm also 
> a newbie at, just to get more acquainted with Windows programming in D.
> 
> What I want to do is relatively simple I think. I want to use the 
> IActiveDesktop COM interface to change the wallpaper of my desktop. So far I 
> have ported the definition of the interface to D and the different structs 
> used as arguments to the interface's methods. The porting went pretty easily, 
> although I haven't been able to test it yet (I'll return to that in a 
> moment). The standard Windows types (e.g. LPCTSTR, DWORD, etc.) are, as you 
> probably know, defined in tango.sys.win32.Types.
> 
> I looked at the samples that is included with the DMD compiler bundle 
> (dclient.d, dserver.d and chello.d) to see COM programming in D is done. 
> Apparently, one of the first things to do is call CoInitialize(...), and this 
> is where my problem arises.
> 
> CoInitialize is located in ole32.lib, but in the Tango distribution of DMD, 
> there is no ole32.lib included. I thought, since I have the Windows SDK (x64) 
> installed, that I could just link directly to the ole32.lib included there.
> 
> Now, this is probably obvious to some people - but not to me. Why doesn't 
> this work? Why does OPTLINK fail and tell me that the format of the .lib file 
> is wrong? Is it because Digital Mars compilers produce .lib files in a 
> different format? Is it because I have the 64 bit SDK installed, and DMD and 
> optlink only produce and consume 32 bit object files and libraries?
> 
> Please enlighten me ;-)
> 
> Thanks in advance.

I have been able to use juno (http://www.dsource.org/projects/juno) and use the 
windows COM devices to connect to MS Office, Adobe Illustrator, Trados and a 
bunch of other windows apps very easily.

jic

Reply via email to