summaryrefslogtreecommitdiff
path: root/CSharp/Ivy
diff options
context:
space:
mode:
authorfcolin2007-02-01 09:55:39 +0000
committerfcolin2007-02-01 09:55:39 +0000
commit3f1264b13c41d1983535c3bd0f756db4031417ec (patch)
tree4292e7d58f5669ecb2e5f7968250510381ab6637 /CSharp/Ivy
parent241916bca2c297b78896c453e514a1208e17d416 (diff)
downloadivy-csharp-3f1264b13c41d1983535c3bd0f756db4031417ec.zip
ivy-csharp-3f1264b13c41d1983535c3bd0f756db4031417ec.tar.gz
ivy-csharp-3f1264b13c41d1983535c3bd0f756db4031417ec.tar.bz2
ivy-csharp-3f1264b13c41d1983535c3bd0f756db4031417ec.tar.xz
Utilisateur : Fcolin Date : 8/02/06 Heure : 11:45 Archivé dans $/CSharp/Ivy/IvyPPC Commentaire: (vss 51)
Diffstat (limited to 'CSharp/Ivy')
-rw-r--r--CSharp/Ivy/IvyPPC/Ivy.cs34
1 files changed, 30 insertions, 4 deletions
diff --git a/CSharp/Ivy/IvyPPC/Ivy.cs b/CSharp/Ivy/IvyPPC/Ivy.cs
index cc4dd5f..cded94b 100644
--- a/CSharp/Ivy/IvyPPC/Ivy.cs
+++ b/CSharp/Ivy/IvyPPC/Ivy.cs
@@ -27,8 +27,29 @@ namespace IvyBus
/// <summary> The Main bus Class
/// </summary>
///
+
+#if (PocketPC)
+ public class CreateDelegate
+ {
+ object eventtarget;
+ MethodInfo mymethod;
+ object [] methodparams = new Object[2];
+ public void Invoke(object sender, System.EventArgs e)
+ {
+ methodparams[1] = e;
+ mymethod.Invoke(eventtarget, methodparams);
+ }
+ public CreateDelegate(MethodInfo mi, object eventTarget, object eventObject)
+ {
+ eventtarget = eventTarget;
+ mymethod = mi;
+ methodparams[0] = eventObject;
+ methodparams[1] = null;
+ }
+ }
+#endif
#if (!PocketPC)
[ToolboxItemFilter("System.Windows.Forms.Form",ToolboxItemFilterType.Allow)]
@@ -350,13 +371,16 @@ namespace IvyBus
public void AutoBinding(Type type)
{
//Get instance of the IvyBindingAttribute.
- foreach (MethodInfo m in type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic))
+ foreach (MethodInfo m in type.GetMethods( BindingFlags.Static | BindingFlags.NonPublic))
{
foreach (IvyBindingAttribute attr in Attribute.GetCustomAttributes(m, typeof(IvyBindingAttribute)))
{
//TODO check paramater type MessageHandler
Debug.WriteLine("IvyBinding '" + attr.GetExpression(null) + "' to Method " + m.Name);
-#if (!PocketPC)
+#if (PocketPC)
+ //bindMsg(attr.GetExpression(null), (MessageHandler) DynamicMethod.CreateDelegate(m));
+
+#else
bindMsg(attr.GetExpression(null), (MessageHandler)Delegate.CreateDelegate(typeof(MessageHandler),m));
#endif
}
@@ -367,13 +391,15 @@ namespace IvyBus
{
Type type = obj.GetType();
//Get instance of the IvyBindingAttribute.
- foreach (MethodInfo m in type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic))
+ foreach (MethodInfo m in type.GetMethods(BindingFlags.Instance | BindingFlags.NonPublic))
{
foreach (IvyBindingAttribute attr in Attribute.GetCustomAttributes(m, typeof(IvyBindingAttribute)))
{
//TODO check paramater type MessageHandler
traceDebug("IvyBinding '" + attr.GetExpression(obj) + "' to Method " + m.Name);
-#if (!PocketPC)
+#if (PocketPC)
+ //bindMsg(attr.GetExpression(obj), (MessageHandler) new CreateDelegate( m, obj, null));
+#else
bindMsg(attr.GetExpression(obj), (MessageHandler)Delegate.CreateDelegate(typeof(MessageHandler), obj, m));
#endif
}