all groups > dotnet interop > july 2007 >
You're in the

dotnet interop

group:

howto generate a helpstring in typelib from interop assembly?


howto generate a helpstring in typelib from interop assembly? little wizzard
7/30/2007 1:20:00 AM
dotnet interop:
hello,

I have created an interop assembly in C#.
But I couldn't find any way to export helpstrings to the generated typelib
for this assembly.
Which ways have I to do this?

Thanks for your time and any suggestions.

Best regards
Re: howto generate a helpstring in typelib from interop assembly? Mattias Sjögren
7/30/2007 8:07:55 PM
[quoted text, click to view]

Use the DescriptionAttribute and AssemblyDescriptionAttribute classes.


Mattias

--
Mattias Sjögren [C# MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Re: howto generate a helpstring in typelib from interop assembly? jialge NO[at]SPAM online.microsoft.com
7/31/2007 1:41:45 AM
Hello,

From your post, my understanding on this issue is that you are to export
helpstrings to the typelib generated from an interop assembly in C#. If I'm
off base, please feel free to let me know.

To export helpstrings to tlb, you may consider setting the attribute:
[System.ComponentModel.Description("just for test helpstrings")]
for the methods exposed.

Here is my test code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Runtime.InteropServices;

[assembly: Guid("efe72271-546a-4095-ba7a-b1a64264e1cb")]
[assembly: AssemblyVersion("1.0.0.0")]

namespace NETAssembly
{
[InterfaceType(ComInterfaceType.InterfaceIsDual), ComVisible(true)]
public interface ITest
{
[System.ComponentModel.Description("just for test helpstrings")]
string HelloWorld();
}
[ClassInterface(ClassInterfaceType.None), ComVisible(true)]
public class TestClass : ITest
{
public string HelloWorld()
{
return "Hello World!";
}
}
}

1. Save the above code into a cs file (*****.cs)
2. Run ¡°csc /t:library *****.cs /keyfile:key.snk in .net 2.0 SDK cmd line.
3. Run tlbexp *****.dll /out:outfile.tlb to get the tlb file.

Please let me know if you have any other concerns, or need anything else.

Have a nice day! :)

Sincerely,
Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

With newsgroups, MSDN subscribers enjoy unlimited, free support as opposed
to the limited number of phone-based technical support incidents. Complex
issues or server-down situations are not recommended for the newsgroups.
Issues of this nature are best handled working with a Microsoft Support
Engineer using one of your phone-based incidents.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Re: howto generate a helpstring in typelib from interop assembly? little wizzard
7/31/2007 1:54:00 AM
Hello Jialiang Ge,

thanks for your advice.
U have understand my post right.
That sample works.
But my interface definition includes properties, and I want to have for the
propget and propput method in the typelib different helpstrings.

I add my code to your test code to explain my intention:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Runtime.InteropServices;

[assembly: Guid("efe72271-546a-4095-ba7a-b1a64264e1cb")]
[assembly: AssemblyVersion("1.0.0.0")]

namespace NETAssembly
{
[InterfaceType(ComInterfaceType.InterfaceIsDual), ComVisible(true)]
public interface ITest
{
[System.ComponentModel.Description("just for test helpstrings")]
string HelloWorld();

string MyTestProp
{
[System.ComponentModel.Description("MyTestProp get")] // in
typelib will this eported for both, get and set
get;
[System.ComponentModel.Description("MyTestProp set")] //
this won’t be exported to the typelib
set;
}
}
[ClassInterface(ClassInterfaceType.None), ComVisible(true)]
public class TestClass : ITest
{
public string HelloWorld()
{
return "Hello World!";
}

public string MyTestProp
{
get
{
return m_MyTestProp;
}
set
{
m_MyTestProp = value;
}
}

private
string m_MyTestProp = "";
}
}
My question is how can I export the helpstring for the set (propset) method?
Thanks for your time and help.

Best regards
Detlev

[quoted text, click to view]
Re: howto generate a helpstring in typelib from interop assembly? little wizzard
7/31/2007 3:14:07 AM
Hello Mathias,

thanks for your advice.
I've concretize my problem in my reply to "Jialiang Ge".

Best regards
Detlev

[quoted text, click to view]
Re: howto generate a helpstring in typelib from interop assembly? little wizzard
7/31/2007 7:32:01 AM
Hello,

many thanks for your fast and qualified advise.
I will use this in that way.

Best regards
Detlev

[quoted text, click to view]
Re: howto generate a helpstring in typelib from interop assembly? jialge NO[at]SPAM online.microsoft.com
7/31/2007 12:42:03 PM
Hello

I don't think Property's helpstring can be divided: one for propget,
another for propput.
If you see the VB Properties through object brower, you will find them have
only one helpstring.
For instance: the helpstring of Form's property 'Appearance' is:
Property Appearance As Integer
Member of Unknown1._Form
Returns/sets whether or not an object is painted at run time with 3-D
effects.

Therefore, I suggest that you write 'Returns/sets ...' as description of
property if it has both set and get methods.

Mathias, any idea?

Sincerely,
Jialiang Ge (jialge@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

=================================================
When responding to posts, please "Reply to Group" via your newsreader
so that others may learn and benefit from your issue.
=================================================
This posting is provided "AS IS" with no warranties, and confers no rights.


AddThis Social Bookmark Button