All pastes #611934 Raw Edit

Untitled

public text v1 · immutable
·published 2007-07-10 03:26 UTC
rendered paste body

	class CrossDomainProxy {
		public CrossDomainProxy (AppDomain domain, UnmanagedEventHandler handler)
		{
			Console.WriteLine ("Created proxy in domain {0}", domain.FriendlyName);
			this.domain = domain;
			this.handler = handler;
			_wrapper = new UnmanagedEventHandler (wrapper);
		}

		
		public UnmanagedEventHandler Wrapper {
			get { return _wrapper; }
		}

		void wrapper (IntPtr target, IntPtr calldata, IntPtr closure) {
			Console.WriteLine ("wrapper called in domain {0}", AppDomain.CurrentDomain.FriendlyName);
			Console.WriteLine (" +  domain = {0}", domain.FriendlyName);
			this.target = target;
			this.calldata = calldata;
			this.closure = closure;
			domain.DoCallBack (new CrossAppDomainDelegate (call_in_target_domain));
		}

		void call_in_target_domain ()
		{
			Console.WriteLine ("call_in_target_domain called in domain {0}", AppDomain.CurrentDomain.FriendlyName);
			handler (target, calldata, closure);
		}

		AppDomain domain;
		UnmanagedEventHandler handler;
		UnmanagedEventHandler _wrapper;

		IntPtr target;
		IntPtr calldata;
		IntPtr closure;
	}