CIRCCOLL 属性サンプル : コレクションまたは列挙体の例

更新 : 2007 年 11 月

CIRCCOLL 属性サンプルでは、ATL を使用してオブジェクトのコレクションまたは列挙体を実装する方法を示します。

CIRCCOLL サンプルは、このサンプルの属性なしバージョンです。

sd516yeh.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

このサンプルをビルドして実行するには

  1. ソリューション ファイル circoll.sln を開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックします。

  3. ソリューション エクスプローラで、CircCollClient プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。

  4. [デバッグ] メニューの [開始] をクリックします。

  5. Visual Basic のフォーム Form1 が開きます。ボタンをクリックしてアプリケーションをアクティブにします。

サンプルの動作

コレクションの作成者、コレクション、およびコレクション内のオブジェクトから成る 3 つのオブジェクト クラスが実装されます。コレクションの作成者だけが coclass に関連付けられます。coclass の宣言については、Circcoll.idl を参照してください。コレクションの作成者は、円オブジェクトのコレクションを返すメソッドを持っています。コレクション オブジェクトは ItemCount、および _NewItem の各メソッドを実装するため、For...Next 構文と For Each... 構文を使用してそのオブジェクトを Visual Basic で操作できます。

属性

このサンプルでは次の属性を使用します。

aggregatable、coclass、dual、emitidl、helpstring、id、in、module、noncreatable、object、out、pointer_default、progid、propget、propput、restricted、retval、support_error_info、threading、uuid、version

キーワード

このサンプルでは、次のキーワードを使用します。

AddRef; ATLASSERT; ATLTRACE; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComCoClass; CComObject::CreateInstance; CComObjectRoot; CComVariant; COM_INTERFACE_ENTRY; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; END_COM_MAP; END_OBJECT_MAP; glBegin; glEnd; glNormal3d; glPolygonMode; glVertex2d; glVertex3d; IConnectionPointContainerImpl::FindConnectionPoint; IConnectionPointImpl::Advise; IDispatchImpl; ISupportErrorInfo; OBJECT_ENTRY; QueryInterface; Release; USES_CONVERSION; VariantCopy; VariantInit

sd516yeh.alert_note(ja-jp,VS.90).gifメモ :

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

ATL 属性のサンプル