Share via


コントロール イベント

コントロールは、プロパティとメソッドを提供するだけでなく、イベントをクライアントに通知する送信インターフェイスも提供します。 クライアントは、これらのイベントの処理をサポートする必要があります。 接続可能オブジェクトの動作の詳細については、 COM および Connectable オブジェクト のイベントを参照してください。

コントロールは、さまざまな目的で異なる発信インターフェイスをサポートできます。 すべての発信インターフェイスは、コントロールの型情報でソース インターフェイスとしてマークされますが、プライマリ送信インターフェイスであることを示す既定のインターフェイスとしてマークされるのは 1 つだけです。

コンテナーは、コントロールによって定義された 1 つ以上の発信インターフェイスをサポートできます。 コントロールは、一部の発信インターフェイスのみをサポートするコンテナーを処理するように準備する必要があります。

コントロールは、次の 4 種類のイベントをサポートします。

  • イベントを要求します。 コントロールは、送信インターフェイスでメソッドを呼び出して何かを行うアクセス許可をクライアントに要求し、要求イベントをトリガーします。 クライアントは、コントロールが呼び出したメソッドのブール型の out パラメーターを使用してコントロールに通知します。 これにより、クライアントは、コントロールがアクションを実行できないようにすることができます。
  • イベントの前。 コントロールは、送信インターフェイスでメソッドを呼び出し、before イベントをトリガーすることで、何かを行うことをクライアント ハットに通知します。 クライアントにはアクションを防止する機会はありませんが、発生しようとしているアクションに応じて必要な手順を実行できます。
  • イベントの後。 コントロールは、送信インターフェイスでメソッドを呼び出して、after イベントをトリガーすることで、何かを行ったことをクライアントに通知します。 ここでも、クライアントはこのアクションを取り消すことはできませんが、発生したアクションに応じて必要な手順を実行できます。
  • イベントを実行します。 コントロールは do イベントをトリガーして、クライアントがコントロールのアクションをオーバーライドし、代替アクションまたは補助アクションを提供できるようにします。 通常、do イベントに対してコントロールが呼び出すメソッドには、発生するアクションについてクライアントとネゴシエートするためのパラメーターが多数用意されています。

コントロールがサポートできる標準イベントには、Click、DblClick、KeyDown、KeyPress、KeyUp、MouseMove、MouseUp、Error の各イベントが定義されています。 これらの標準イベントはすべて、標準の状態を示す負の DISPID 値を持ちます。

IOleControl::FreezeEvents メソッドは、TRUE を指定して呼び出されると、FreezeEvents が FAL で再度呼び出されるまで、コンテナーがコントロールからのイベントの処理を煩わすかどうかを制御Standard Edition。 この間、コントロールは、実際にイベントを処理するコンテナーに依存できません。 イベントを処理する必要がある場合、コントロールは、FREEZEEvents が FAL Standard Edition呼び出されたときにイベントを起動するためにイベントをキューに入れる必要があります。

ActiveX コントロール