Boaz Harrosh wrote:
Lets say I have an open source tool that I can compile with MinGW. That can open a COM DLL extract it's TLB and make an .IDL file out of it. Very similar to #import in msvc++ but to .IDL instead of a .H
Let's say I use this tool on a component of a Commercial program Like for example Norton Anti Virus. Or any other product and/or component. Let's say I am a legal user of this component.
Now what am I allowed to do with this .idl file: (??)
Nothing I must delete it and never do that again.
Use this idl to make a program that can interface that component,
and I can also distribute such a program, as long as the user has a legal copy for that component.
- I can use this idl to make my own implementation of that component.
As long as I do not violate any patents on the way. And I can distribute that alternative implementation of that component.
- I can Publish the component form 2 including the idl with an OSS
compatible License.
- I can Publish the component form 3 including the idl with an OSS
compatible License
I think the closest is (1). Copyright law in most countries states that you can't copyright an interface, only works based on an interface. However, what complicates the matter for TLB files is that they contain variable names and comments/help strings that could constitute a copyrightable work. Therefore, I would suggest that you could use the generated .idl file to write your own .idl file that has the same interface, but would not be considered a copy or derived work. This is similar to what is often done for Platform SDK header files in Wine. Naturally, once you have your own .idl file that is free of copyright restrictions you can do whatever you want with it, including (4 and 5).