次の方法で共有


コントロール イベント (COM)

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

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

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

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

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

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

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

ActiveX コントロール