1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MonComposant
{
// Interface originale
[ComVisible(true), GuidAttribute("4BB56966-2BCA-4587-AB86-AC5EF47ADA24")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MonInterface
{
string getValue();
string messageValue();
string getPropToShadow();
}
// Classe originale
[ComVisible(true), GuidAttribute("EE94F5D7-6C3B-4471-82BA-07DB2765E1C5")]
[ProgId("MonComposant.MaClasse")]
[ClassInterface(ClassInterfaceType.None)]
public class MaClasse
{
public string getValue()
{
return "hello getValue from BaseClasse MaClasse ";
}
public string messageValue()
{
return "hello messageValue from BaseClasse MaClasse ";
}
public string getPropToShadow()
{
return "hello getPropToShadow sera masquee ";
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MonComposant
{
// Nouvelle Interface (hérite de MonInterface)
[ComVisible(true), GuidAttribute("54D391AF-3866-4aea-9A28-B4B36A7D2BD4")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MonInterface1 : MonInterface
{
string getValue1();
string getAutreProp();
//Pour masquer eventuellement une prop de classe base MaClasse
//utiliser plutot un New qui redefinit cette prop
new string getPropToShadow();
}
// Nouvelle Classe (hérite de MaClasse + implémente MonInterface1)
[ComVisible(true), GuidAttribute("7713C7EB-A93B-4c0d-9856-87B4AE737F54")]
[ProgId("MonComposant.MaClasse1")]
[ClassInterface(ClassInterfaceType.None)]
//SUPPRIME CA qui fait le contraire de ce que tu veux.
//Empeche l'acces aux classes de MonInterface base
//[ComDefaultInterface(typeof(MonInterface1))]
public class MaClasse1 :MaClasse, MonInterface1
{
#region MonInterface1 Membres
string MonInterface1.getValue1()
{
return "hello1 getValue1 from MaClasse1";
}
string MonInterface1.getAutreProp()
{
return "hello1 getAutreProp from MaClasse1";
}
string MonInterface1.getPropToShadow()
{
return "hello getPropToShadow Masquee ";
}
#endregion
}
} |
Partager