次の方法で共有


ATL コントロール コンポーネントの追加

次に、ATL コントロール コンポーネントをプロジェクトに追加します。[クラスの追加] ダイアログ ボックスでは、Visual C++ の IDE プロジェクトに追加するさまざまなコンポーネントが、フレームワークとして提供されます。このようなコンポーネントの 1 つが ATL コントロール コンポーネントで、[クラスの追加] ダイアログ ボックスの最上位レベルにあります。

プロシージャ

ATL コントロール オブジェクトを挿入するには

  1. ソリューション エクスプローラで、[MyAxCtrl] プロジェクトを右クリックします。

  2. ショートカット メニューの [追加] をポイントし、[クラスの追加] をクリックします。

    [クラスの追加] ダイアログ ボックスが表示されます。

  3. テンプレート ペインの [ATL コントロール] アイコンをクリックします。

  4. [開く] をクリックします。

    ATL コントロール ウィザードが表示されます。

  5. [短い名前] ボックスに、「MyCtl」と入力します。

    残りのボックスは自動的に入力されます。

  6. [完了] をクリックして既定の選択肢を受け入れ、プロジェクトにコントロールを追加します。

このウィザードの詳細については、「ATL コントロール ウィザード」を参照してください。

ATL コントロール コンポーネントで使われる属性

ATL コントロール コンポーネントでは属性が使われているため、サンプル プロジェクトには新しい属性がいくつか加わっています。これらの属性は、コントロール オブジェクトと既定のコントロール インターフェイスを実装しています。

MYCTL.H を見ると、新しい CMyCtl クラスに付加される、新しい属性 (属性ブロックと呼ばれる) があるのがわかります。この属性セットによって、コントロールのフレームワークが実装されます。このブロックには、次の属性が含まれています。

  • coclass   オブジェクトが COM オブジェクトであることを指定し、クラス ファクトリ、自動登録、および IUnknown インターフェイスの実装を自動的に提供します。

  • threading   アパートメント スレッドでコントロールを使用できることを指定します。この指定は、生成される参照カウントと登録コードを変更することで行われます。

  • vi_progid   バージョンに依存しない ProgID の形式を指定します。

  • progid   新しいコントロールのクライアントが使用する簡単な ProgID を宣言します。

  • version   コントロールのバージョンを指定します。

  • uuid   コントロールの CLSID を宣言します。

  • helpstring   オブジェクトを説明するヘルプ文字列を指定します。

  • support_error_info   オブジェクトが詳細な状況依存のエラーのサポートを実装することを指定します。

  • registration_script   オブジェクトに対して実行されるカスタム登録スクリプトを指定します。

ATL コントロール ウィザードで追加されるもう 1 つの主要要素として、IMyCtl インターフェイスにほかの属性ブロックが付け加えられます。この属性ブロックは、コントロール オブジェクトの既定のインターフェイスを実装します。これは、コントロールの既定のインターフェイスであり、現時点では実装されている唯一のインターフェイスです。インターフェイスは、コントロールの宣言ファイル (サンプルの場合は MYCTL.H) で宣言されており簡単です。

__interface IMyCtl: public IDispatch
{
};

このコードで宣言されているカスタム インターフェイス IMyCtl は、標準インターフェイスの IDispatch から派生しており、メソッドは含まれていません。

このブロックには、次の属性が含まれています。

  • object   後に続くインターフェイス定義がカスタム インターフェイスであり、プロジェクトの .idl ファイルに格納される必要があることを示します。

  • uuid   IMyCtl インターフェイスに対する IID を宣言します。

  • dual   インターフェイスをデュアル インターフェイスとして宣言します。デュアル インターフェイスは、事前バインディングと遅延バインディングの両方をサポートします。

  • helpstring   コントロール オブジェクトおよびその用途の簡単な説明です。

  • pointer_default   埋め込みポインタの特性を指定します。サンプル コントロールで指定されている unique は、埋め込みポインタが NULL であってもかまわず、重複する値がないことを意味しています。

次に進むには、「属性によるプロパティの追加」を参照してください。

参照

概念

チュートリアル : 属性による ActiveX コントロールの作成

ActiveX コントロール プロジェクトの作成

属性によるイベントの追加

属性のチュートリアル