다음을 통해 공유


IRawElementProviderAdviseEvents.AdviseEventRemoved(Int32, Int32[]) 메서드

정의

UI 자동화 클라이언트가 속성 변경 이벤트를 비롯하여 특정 이벤트에 대한 수신 대기를 중지한 경우 UI 자동화 공급자에 이를 알립니다.

public:
 void AdviseEventRemoved(int eventId, cli::array <int> ^ properties);
public void AdviseEventRemoved (int eventId, int[] properties);
abstract member AdviseEventRemoved : int * int[] -> unit
Public Sub AdviseEventRemoved (eventId As Integer, properties As Integer())

매개 변수

eventId
Int32

제거되는 이벤트의 식별자입니다.

properties
Int32[]

제거되는 속성의 식별자이거나, 제거되는 이벤트 수신기가 속성 이벤트를 수신 대기하지 않는 경우 null입니다.

예제

다음 예제에서는 구독한 항목 목록에서 속성 변경 내용을 제거합니다.

void IRawElementProviderAdviseEvents.AdviseEventRemoved(int eventId,
                                                        int[] properties)
{
    if (eventId == AutomationElement.AutomationPropertyChangedEvent.Id)
    {
        Console.WriteLine("Property changes no longer subscribed to:");
        foreach (int i in properties)
        {
            AutomationProperty property = AutomationProperty.LookupById(i);
            // Remove from an ArrayList.
            subscribedProperties.Remove(property);
        }
    }
}
Sub AdviseEventRemoved(ByVal eventId As Integer, ByVal properties() As Integer) _
    Implements IRawElementProviderAdviseEvents.AdviseEventRemoved

    If eventId = AutomationElement.AutomationPropertyChangedEvent.Id Then
        For Each i As Integer In properties
            Dim autoProperty As AutomationProperty = AutomationProperty.LookupById(i)
            ' Remove from ArrayList.
            subscribedProperties.Remove(autoProperty)
        Next
    End If

End Sub

설명

이 메서드를 사용하면 UI 자동화 공급자가 더 이상 수신 대기되지 않는 이벤트를 발생시키지 않음으로써 오버헤드를 줄일 수 있습니다.

eventId 같은 의 AutomationEventWindowClosedEventId 비교할 수 있습니다. 를 사용하여 LookupByIdAutomationEvent 가져올 수도 있습니다.

적용 대상