internal void FireCompleted(CompletedEventArgs args)
		{
			try
			{
				this.delegateInvoker.FireEventToDelegates(this.Completed, args);
			}
			catch
			{
			}
		}
 internal void FireCompleted(CompletedEventArgs args)
 {
     try
     {
         delegateInvoker.FireEventToDelegates(Completed, args);
     }
     catch
     {
     }
 }
示例#3
0
 /// <summary>
 /// It is called when WMI job is done.
 /// </summary>
 private void JobDone(object sender, CompletedEventArgs obj)
 {
     lock (_syncObject)
     {
         _sinkCompleted--;
     }
     if (obj.Status != ManagementStatus.NoError)
     {
         _bJobFailed = true;
     }
     if (_sinkCompleted == 0)
     {
         //Notify throttle manager and change the state to complete
         //Two cases where _bFinished should be set to false.
         // 1) Invalid class or some other condition so that after making a connection WMI is throwing an error
         // 2) We could not get any instance for the class.
         /*if(bAtLeastOneObject )
             _bFinished = true;*/
         _helper.RaiseOperationCompleteEvent(null, OperationState.StopComplete);
         if (!_bJobFailed)
         {
             _helper.State = WmiState.Completed;
             SetJobState(JobState.Completed);
         }
         else
         {
             _helper.State = WmiState.Failed;
             SetJobState(JobState.Failed);
         }
     }
 }
示例#4
0
        public void SetStatus(
            int flags,
            int hResult,
            string message,
            IntPtr pErrorObj)
        {
            IWbemClassObjectFreeThreaded errObj = null;

            if (pErrorObj != IntPtr.Zero)
            {
                Marshal.AddRef(pErrorObj);
                errObj = new IWbemClassObjectFreeThreaded(pErrorObj);
            }

            try {
                if (flags == (int)tag_WBEM_STATUS_TYPE.WBEM_STATUS_COMPLETE)
                {
                    // Is this a Put? If so fire the ObjectPut event
                    if (null != path)
                    {
                        if (null == className)
                        {
                            path.RelativePath = message;
                        }
                        else
                        {
                            path.RelativePath = className;
                        }

                        // Fire the internal event (if anyone is interested)
                        if (null != InternalObjectPut)
                        {
                            try {
                                InternalObjectPutEventArgs iargs = new InternalObjectPutEventArgs(path);
                                InternalObjectPut(this, iargs);
                            } catch {}
                        }

                        ObjectPutEventArgs args = new ObjectPutEventArgs(context, path);
                        watcher.FireObjectPut(args);
                    }

                    // Fire Completed event
                    CompletedEventArgs args2 = null;
                    if (errObj != null)
                    {
                        args2 = new CompletedEventArgs(context, hResult,
                                                       new ManagementBaseObject(errObj)
                                                       );
                    }
                    else
                    {
                        args2 = new CompletedEventArgs(context, hResult,
                                                       null
                                                       );
                    }
                    watcher.FireCompleted(args2);

                    // Unhook and tidy up
                    watcher.RemoveSink(this);
                }
                else if (0 != (flags & (int)tag_WBEM_STATUS_TYPE.WBEM_STATUS_PROGRESS))
                {
                    // Fire Progress event
                    ProgressEventArgs args = new ProgressEventArgs(context,
                                                                   (int)(((uint)hResult & 0xFFFF0000) >> 16), hResult & 0xFFFF, message);

                    watcher.FireProgress(args);
                }
            } catch {}
        }
示例#5
0
 void OnEventLogEntryCompleted(object sender, CompletedEventArgs e)
 {
     _eventMessagesObserver = null;
 }
 void queryObserver_Completed(object sender, CompletedEventArgs e)
 {
     var args = new BrokerCompletedEventArgs(e.Status == ManagementStatus.NoError, e.StatusObject, e.Status);
     this.OnQueryCompleted(this, args);
 }
示例#7
0
		public void SetStatus(int flags, int hResult, string message, IntPtr pErrorObj)
		{
			CompletedEventArgs completedEventArg;
			IWbemClassObjectFreeThreaded wbemClassObjectFreeThreaded = null;
			if (pErrorObj != IntPtr.Zero)
			{
				Marshal.AddRef(pErrorObj);
				wbemClassObjectFreeThreaded = new IWbemClassObjectFreeThreaded(pErrorObj);
			}
			try
			{
				if (flags != 0)
				{
					if ((flags & 2) != 0)
					{
						ProgressEventArgs progressEventArg = new ProgressEventArgs(this.context, (hResult & -65536) >> 16, hResult & 0xffff, message);
						this.watcher.FireProgress(progressEventArg);
					}
				}
				else
				{
					if (this.path != null)
					{
						if (this.className != null)
						{
							this.path.RelativePath = this.className;
						}
						else
						{
							this.path.RelativePath = message;
						}
						if (this.InternalObjectPut != null)
						{
							try
							{
								InternalObjectPutEventArgs internalObjectPutEventArg = new InternalObjectPutEventArgs(this.path);
								this.InternalObjectPut(this, internalObjectPutEventArg);
							}
							catch
							{
							}
						}
						ObjectPutEventArgs objectPutEventArg = new ObjectPutEventArgs(this.context, this.path);
						this.watcher.FireObjectPut(objectPutEventArg);
					}
					if (wbemClassObjectFreeThreaded == null)
					{
						completedEventArg = new CompletedEventArgs(this.context, hResult, null);
					}
					else
					{
						completedEventArg = new CompletedEventArgs(this.context, hResult, new ManagementBaseObject(wbemClassObjectFreeThreaded));
					}
					this.watcher.FireCompleted(completedEventArg);
					this.watcher.RemoveSink(this);
				}
			}
			catch
			{
			}
		}
 private void RaiseRefreshApps(object sender, CompletedEventArgs e)
 {
     var observer = sender as ManagementOperationObserver;
     if (observer != null)
     {
         observer.Completed -= RaiseRefreshApps;
     }
     Refresh();
 }
示例#9
0
		private void JobDone(object sender, CompletedEventArgs obj)
		{
			lock (this.syncObject)
			{
				PSWmiChildJob pSWmiChildJob = this;
				pSWmiChildJob.sinkCompleted = pSWmiChildJob.sinkCompleted - 1;
			}
			if (obj.Status != ManagementStatus.NoError)
			{
				this.bJobFailed = true;
			}
			if (this.sinkCompleted == 0)
			{
				this.helper.RaiseOperationCompleteEvent(null, OperationState.StopComplete);
				if (this.bJobFailed)
				{
					this.helper.State = WmiState.Failed;
					base.SetJobState(JobState.Failed);
				}
				else
				{
					this.helper.State = WmiState.Completed;
					base.SetJobState(JobState.Completed);
					return;
				}
			}
		}
示例#10
0
        void queryObserver_Completed(object sender, CompletedEventArgs e)
        {
            var args = new BrokerCompletedEventArgs(e.Status == ManagementStatus.NoError, e.StatusObject, e.Status);

            this.OnQueryCompleted(this, args);
        }
 public void SetStatus(int flags, int hResult, string message, IntPtr pErrorObj)
 {
     IWbemClassObjectFreeThreaded wbemObject = null;
     if (pErrorObj != IntPtr.Zero)
     {
         Marshal.AddRef(pErrorObj);
         wbemObject = new IWbemClassObjectFreeThreaded(pErrorObj);
     }
     try
     {
         if (flags == 0)
         {
             if (this.path != null)
             {
                 if (this.className == null)
                 {
                     this.path.RelativePath = message;
                 }
                 else
                 {
                     this.path.RelativePath = this.className;
                 }
                 if (this.InternalObjectPut != null)
                 {
                     try
                     {
                         InternalObjectPutEventArgs e = new InternalObjectPutEventArgs(this.path);
                         this.InternalObjectPut(this, e);
                     }
                     catch
                     {
                     }
                 }
                 ObjectPutEventArgs args2 = new ObjectPutEventArgs(this.context, this.path);
                 this.watcher.FireObjectPut(args2);
             }
             CompletedEventArgs args3 = null;
             if (wbemObject != null)
             {
                 args3 = new CompletedEventArgs(this.context, hResult, new ManagementBaseObject(wbemObject));
             }
             else
             {
                 args3 = new CompletedEventArgs(this.context, hResult, null);
             }
             this.watcher.FireCompleted(args3);
             this.watcher.RemoveSink(this);
         }
         else if ((flags & 2) != 0)
         {
             ProgressEventArgs args = new ProgressEventArgs(this.context, (hResult & -65536) >> 0x10, hResult & 0xffff, message);
             this.watcher.FireProgress(args);
         }
     }
     catch
     {
     }
 }
示例#12
0
 /// <summary>
 /// Called when all namespaces have been returned for RefreshNamespaceTree.
 /// </summary>
 void OnNamespaceSearchComplete(object sender, CompletedEventArgs e)
 {
     // When run outside of VS debugger, the event is called multiple times... and I don't know why.
     // if(e.Status == ManagementStatus.NoError)
     //    this.Log(LogLevel.Success, String.Format("Finished loading namespace tree for {0}.", this.CurrentServerRootScope.Path.Server));
 }
示例#13
0
        /// <summary>
        /// Called when all class definitions have been returned by RefreshClassListAsync.
        /// </summary>
        /// <remarks>Calls RefreshClassListFilter to refresh the displayed list of classes.</remarks>
        void OnClassSearchCompleted(object sender, CompletedEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new CompletedEventHandler(this.OnClassSearchCompleted), sender, e);
                return;
            }

            RefreshClassListFilter();
        }
示例#14
0
        public void SetStatus(int flags, int hResult, string message, IntPtr pErrorObj)
        {
            CompletedEventArgs           completedEventArg;
            IWbemClassObjectFreeThreaded wbemClassObjectFreeThreaded = null;

            if (pErrorObj != IntPtr.Zero)
            {
                Marshal.AddRef(pErrorObj);
                wbemClassObjectFreeThreaded = new IWbemClassObjectFreeThreaded(pErrorObj);
            }
            try
            {
                if (flags != 0)
                {
                    if ((flags & 2) != 0)
                    {
                        ProgressEventArgs progressEventArg = new ProgressEventArgs(this.context, (hResult & -65536) >> 16, hResult & 0xffff, message);
                        this.watcher.FireProgress(progressEventArg);
                    }
                }
                else
                {
                    if (this.path != null)
                    {
                        if (this.className != null)
                        {
                            this.path.RelativePath = this.className;
                        }
                        else
                        {
                            this.path.RelativePath = message;
                        }
                        if (this.InternalObjectPut != null)
                        {
                            try
                            {
                                InternalObjectPutEventArgs internalObjectPutEventArg = new InternalObjectPutEventArgs(this.path);
                                this.InternalObjectPut(this, internalObjectPutEventArg);
                            }
                            catch
                            {
                            }
                        }
                        ObjectPutEventArgs objectPutEventArg = new ObjectPutEventArgs(this.context, this.path);
                        this.watcher.FireObjectPut(objectPutEventArg);
                    }
                    if (wbemClassObjectFreeThreaded == null)
                    {
                        completedEventArg = new CompletedEventArgs(this.context, hResult, null);
                    }
                    else
                    {
                        completedEventArg = new CompletedEventArgs(this.context, hResult, new ManagementBaseObject(wbemClassObjectFreeThreaded));
                    }
                    this.watcher.FireCompleted(completedEventArg);
                    this.watcher.RemoveSink(this);
                }
            }
            catch
            {
            }
        }
示例#15
0
 private void Done(object sender,
          CompletedEventArgs obj)
 {
     isCompleted = true;
 }