Esempio n. 1
0
		/// <summary>
		/// Attaches an event handler to the COM object.
		/// </summary>
		/// <param name="eventName">
		/// The name of the event.
		/// </param>
		/// <param name="handler">
		/// The event handler delegate.
		/// </param>
		/// <exception cref="ArgumentNullException">
		/// <para><paramref name="eventName"/> is <see langword="null"/></para>
		/// <para>-or-</para>
		/// <para><paramref name="handler"/> is <see langword="null"/></para>
		/// </exception>
		private void AttachEventHandler(string eventName, Delegate handler)
		{
			if (null == eventName || 0 == eventName.Length) throw new ArgumentNullException("eventName");
			if (null == handler) throw new ArgumentNullException("handler");
			
			lock(this)
			{
				if (null == _ComEventProvider) 
					_ComEventProvider = new ComEventProvider(_COMObject, _InterceptType, this);
				
				_ComEventProvider.AddEventHandler(eventName, handler);
			}
		}
Esempio n. 2
0
		/// <summary>
		/// Release the COM reference
		/// </summary>
		/// <param name="disposing">
		/// <see langword="true"/> if this was called from the
		/// <see cref="IDisposable"/> interface.
		/// </param>
		private void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (null != this._ComEventProvider)
				{
					this._ComEventProvider.Dispose();
					this._ComEventProvider = null;
				}
			}
			
			if (null != this._COMObject)
			{
				if(Marshal.IsComObject(this._COMObject))
					while( Marshal.ReleaseComObject(this._COMObject) > 0 );
				
				this._COMObject = null;
			}
		}
Esempio n. 3
0
		/// <summary>
		/// Attaches an event handler to the COM object.
		/// </summary>
		/// <param name="eventName">
		/// The name of the event.
		/// </param>
		/// <param name="handler">
		/// The event handler delegate.
		/// </param>
		/// <exception cref="ArgumentNullException">
		/// <para><paramref name="eventName"/> is <see langword="null"/></para>
		/// <para>-or-</para>
		/// <para><paramref name="handler"/> is <see langword="null"/></para>
		/// </exception>
		private void AttachEventHandler(string eventName, Delegate handler)
		{
			if (null == eventName || 0 == eventName.Length) throw new ArgumentNullException("eventName");
			if (null == handler) throw new ArgumentNullException("handler");
			
			lock(this)
			{
				if (null == _ComEventProvider) 
					_ComEventProvider = new ComEventProvider(_COMObject, _InterceptType, this);
				
				_ComEventProvider.AddEventHandler(eventName, handler);
			}
		}
Esempio n. 4
0
		/// <summary>
		/// Release the COM reference
		/// </summary>
		/// <param name="disposing">
		/// <see langword="true"/> if this was called from the
		/// <see cref="IDisposable"/> interface.
		/// </param>
		private void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (null != this._ComEventProvider)
				{
					this._ComEventProvider.Dispose();
					this._ComEventProvider = null;
				}
			}
			
			if (null != this._COMObject)
			{
				if(Marshal.IsComObject(this._COMObject))
					while( Marshal.ReleaseComObject(this._COMObject) > 0 );
				
				this._COMObject = null;
			}
		}