Listing 1

using System;
using System.Windows.Forms;
using System.Drawing;

namespace ClientComponent
{
    public class MyComponent: Control
    {
        private string Url = "http://www.bvdep.com";

        private string BaseDirectory
        {
            get
            {
                return AppDomain.CurrentDomain.BaseDirectory;
            }
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            using (Font font = new Font(FontFamily.GenericSansSerif, 10))
            {
                string text = String.Format("{0}\n{1}", Url, BaseDirectory);
                SizeF center = SizeF.Subtract(ClientSize, g.MeasureString(text, font));
                g.DrawString(text, font, Brushes.Black, new PointF(center.Width / 2, center.Height / 2));
            }
        }
    }
}



Listing 2

// Generated .IDL file (by the OLE/COM Object Viewer)
// 
// typelib filename: 

[
  uuid(D88A7553-D161-4579-A2B9-0F043F70DFDF),
  version(1.0),
  custom(90883F05-3D28-11D2-8F17-00A0C9A6186D, ClientComponent, Version=1.0.0.0,
  Culture=neutral, PublicKeyToken=null)

]
library ClientComponent
{
    // TLib :     // TLib :  : {215D64D2-031C-33C7-96E3-61794CD1EE61}
    importlib("System.Windows.Forms.tlb");
    // TLib :  : {BEE4BFEC-6683-3E67-9167-3C0CBC68F40A}
    importlib("System.tlb");
    // TLib : mscorlib.dll : {BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
    importlib("mscorlib.tlb");
    // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib
    dispinterface IScriptableMethods;

    [
      uuid(1EA9FD0B-C9C5-3050-8632-3DAB9D762714),
      version(1.0),
      custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, ClientComponent.IScriptableMethods)

    ]
    dispinterface IScriptableMethods {
        properties:
        methods:
            [id(0x60020000), propget]
            BSTR Favorite();
            [id(0x60020000), propput]
            void Favorite([in] BSTR rhs);
    };

    [
      uuid(3D95D6A3-919C-3B06-B7E5-FA354608E21C),
      version(1.0),
      custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, ClientComponent.MyComponent)
    ]
    coclass MyComponent {
        interface _Object;
        interface IComponent;
        interface IDisposable;
        interface IWin32Window;
        [default] dispinterface IScriptableMethods;
    };
};