COM type library importer

r r_member at pathlink.com
Mon Apr 10 23:32:24 PDT 2006


In article <e1eeha$di6$1 at digitaldaemon.com>, John C says...
>
>r wrote:
>> In article <e1b3tk$2etj$1 at digitaldaemon.com>, John C says...
>> 
>>>I've written an experimental tool that creates a D import module from a 
>>>COM type library.
>>>
>>>It should save you from having to convert C headers for COM programming.
>>>
>>>Command line options that control the generated source code include:
>>>	/comments - adds type library's helpstrings as comments
>>>	/noenums - omits enum names
>>>	/tabs - uses tabs to indent instead of spaces
>>>	/indent - 10 or fewer indents
>>>	/propget and /propput - prefixes for COM property accessors
>>>	/module - the name of the generated module
>>>
>>>Try it out (at your own risk - this is, as I've said, experimental).
>>>http://www.paperocean.org/d/tlibd/
>>>
>>>John.
>> 
>> 
>> this is great! 
>> but seems i am not smart enough to use it properly. i ran the program on
>> msado15.dll and added the missing enums.
>> 
>> when i try to use the following
>> 
>> _Connection oDatabase = Connection.create!(_Connection);
>> 
>> oDatabase will always be null. the same is for 
>> 
>> _Recordset oRecords = Recordset.create!(_Recordset);
>> 
>> 
>> could you give me some pointers?
>> 
>> thanx
>> r
>> 
>> 
>
>I'll be uploading a bug-fixed version shortly which correctly generates 
>enums.
>
>Ensure you're initializing COM with CoInitialize. I usually do so in a 
>static module ctor, like this:
>
>	module main;
>
>	import com;
>
>	static this() {
>		CoInitialize(null);
>	}
>
>	static ~this() {
>		CoUninitialize();
>	}
>
>Hope that helps.

thanx, it helped.

r





More information about the Digitalmars-d-announce mailing list