次の方法で共有


IRawElementProviderAdviseEvents.AdviseEventAdded(Int32, Int32[]) メソッド

定義

UI オートメーション クライアントが、プロパティ変更イベントなど特定のイベントのリッスンを開始するときに、UI オートメーション プロバイダに通知します。

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

パラメーター

eventId
Int32

追加されるイベントの識別子。

properties
Int32[]

追加されるプロパティの識別子。または、追加されるイベント リスナーがプロパティ イベントをリッスンしない場合は null

次の例では、サブスクライブされているプロパティ変更の一覧に を追加します。

void IRawElementProviderAdviseEvents.AdviseEventAdded(int eventId, 
                                                      int[] properties)
{
    if (eventId == AutomationElement.AutomationPropertyChangedEvent.Id)
    {
        foreach (int i in properties)
        {
            AutomationProperty property = AutomationProperty.LookupById(i);
            // Add to an ArrayList.
            subscribedProperties.Add(property);
        }
    }
}
Sub AdviseEventAdded(ByVal eventId As Integer, ByVal properties() As Integer) _
    Implements IRawElementProviderAdviseEvents.AdviseEventAdded

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

End Sub

注釈

このメソッドを使用すると、リッスン対象のイベントのみを発生させることで、プロバイダーのオーバーヘッドを削減できます。

eventId、 などの WindowClosedEventAutomationEventId比較できます。 を使用LookupByIdして をAutomationEvent取得することもできます。

適用対象