AxHost.AttachInterfaces メソッド

定義

派生クラスでオーバーライドすると、基になる ActiveX コントロールにインターフェイスを追加します。When overridden in a derived class, attaches interfaces to the underlying ActiveX control.

protected:
 virtual void AttachInterfaces();
protected virtual void AttachInterfaces ();
abstract member AttachInterfaces : unit -> unit
override this.AttachInterfaces : unit -> unit
Protected Overridable Sub AttachInterfaces ()

次のコード例では、コンストラクター、および SetAboutBoxDelegate AttachInterfaces AxHost Microsoft マスクエディット ActiveX コントロールをラップする派生クラスのメソッドとメソッドをオーバーライドします。The following code example overrides the constructor, and the SetAboutBoxDelegate and AttachInterfaces methods of an AxHost derived class that wraps the Microsoft Masked Edit ActiveX Control. このコードでは、生成されたソースコードを作成しておく必要があります。そのためには、MSMask32 ファイルで、 /source 編集するラッパークラスを生成するスイッチを指定して、AxImp.exe を実行します。This code requires that you have created the generated source code by running the AxImp.exe on the MSMask32.ocx file with the /source switch to generate the wrapper class to be edited. このコードは、C# 構文でのみ表示されます。これは、AxImp.exe によって出力される唯一の言語であるためです。This code is only shown in C# syntax because that is the only language output by the AxImp.exe.

public AxMaskEdBox()
    :
  base("c932ba85-4374-101b-a56c-00aa003668dc") // The ActiveX control's class identifier.
{
    // Make the AboutBox method the about box delegate.
    this.SetAboutBoxDelegate(new AboutBoxDelegate(AboutBox));
}

public virtual void AboutBox()
{
    // If the instance of the ActiveX control is null when the AboutBox method
    // is called, raise an InvalidActiveXStateException exception.
    if ((this.ocx == null))
    {
        throw new System.Windows.Forms.AxHost.InvalidActiveXStateException(
          "AboutBox", System.Windows.Forms.AxHost.ActiveXInvokeKind.MethodInvoke);
    }
    // Show the about box if the ActiveX control has one.
    if (this.HasAboutBox)
    {
        this.ocx.AboutBox();
    }
}

protected override void AttachInterfaces()
{
    try
    {
        // Attach the IMSMask interface to the ActiveX control.
        this.ocx = ((MSMask.IMSMask)(this.GetOcx()));
    }
    catch (System.Exception ex)
    {
        System.Console.WriteLine(ex.Message);
    }
}

注意 (継承者)

を拡張するクラス AxHost は、このメソッドをオーバーライドする必要があります。Classes that extend AxHost should override this method. このメソッドのオーバーライドされたバージョンでは、拡張するクラスはを呼び出して独自のインターフェイスを取得する必要があり GetOcx() ます。Within an overridden version of this method, the extending class should call GetOcx() to retrieve its own interface. ほとんどの場合、このメソッドを GetOcx() 呼び出す前にメソッドを呼び出さないでください。In most cases, the GetOcx() method should not be called before this method is called.

適用対象

こちらもご覧ください