Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / Interop / July 2007

Tip: Looking for answers? Try searching our database.

howto generate a helpstring in typelib from interop assembly?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
little wizzard - 30 Jul 2007 09:20 GMT
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
Detlev
Mattias Sjögren - 30 Jul 2007 19:07 GMT
>Which ways have I to do this?

Use the DescriptionAttribute and AssemblyDescriptionAttribute classes.

Mattias

Signature

Mattias Sjögren [C# MVP]  mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Please reply only to the newsgroup.

Jialiang Ge [MSFT] - 31 Jul 2007 02:41 GMT
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.
little wizzard - 31 Jul 2007 09:54 GMT
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

> Hello,
>
[quoted text clipped - 58 lines]
> ==================================================
> This posting is provided "AS IS" with no warranties, and confers no rights.
Jialiang Ge [MSFT] - 31 Jul 2007 13:42 GMT
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.
little wizzard - 31 Jul 2007 15:32 GMT
Hello,

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

Best regards
Detlev

> Hello
>
[quoted text clipped - 22 lines]
> =================================================
> This posting is provided "AS IS" with no warranties, and confers no rights.
little wizzard - 31 Jul 2007 11:14 GMT
Hello Mathias,

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

Best regards
Detlev

> >Which ways have I to do this?
>
> Use the DescriptionAttribute and AssemblyDescriptionAttribute classes.
>
> Mattias

Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.