次の方法で共有


(ATL シンプル オブジェクト ウィザード)

ATL シンプル オブジェクト ウィザードのこのページを使用して、オブジェクトの効率を向上させる機能とエラー サポートをデザインします。

ATL プロジェクトおよび ATL COM クラスの詳細については、「ATL リファレンス」を参照してください。

  • [スレッド モデル]
    スレッドの管理方法を指定します。 既定では、プロジェクトは [アパートメント] スレッドを使用します。

    詳細については、「プロジェクトのスレッド モデルの指定」を参照してください。

    オプション

    説明

    Single

    オブジェクトが常にプライマリ COM スレッドで実行されるように指定します。 詳細については、「Single-Threaded Apartments」および「InprocServer32」を参照してください。

    Apartment

    オブジェクトでアパートメント スレッドを使用するように指定します。 これはシングル スレッド アパートメントと同じ意味です。 アパートメント スレッド コンポーネントの各オブジェクトには、オブジェクトの有効期間にスレッドに対するアパートメントが 1 つ割り当てられますが、複数のオブジェクトに対しては複数のスレッドを使用できます。 各アパートメントは特定のスレッドに結び付けられ、Windows メッセージ ポンプが行われます (既定)。

    詳細については、「Single-Threaded Apartments」を参照してください。

    Both

    オブジェクトが作成されたスレッドの種類に応じて、アパートメント スレッドとフリー スレッドのいずれかをオブジェクトで使用できるように指定します。

    Free

    オブジェクトでフリー スレッドを使用するように指定します。 フリー スレッドはマルチスレッド アパートメント モデルと同じ意味です。 詳細については、「Multithreaded Apartments」を参照してください。

    Neutral (Windows 2000 only)

    オブジェクトがマルチスレッド アパートメントのガイドラインに従うようにし、どの種類のスレッドにおいても実行できるように指定します。

  • [集約]
    オブジェクトで集約を使用するかどうかを指定します。 集約オブジェクトはクライアントに公開するインターフェイスを選択します。そのインターフェイスは、集約オブジェクトによって実装されているものとして公開されます。 集約オブジェクトのクライアントがやり取りするのは集約オブジェクトだけです。

    オプション

    説明

    Yes

    オブジェクトが集約できるように指定します。 既定値です。

    No

    オブジェクトが集約されないように指定します。

    Only

    オブジェクトを必ず集約するように指定します。

  • [インターフェイス]
    オブジェクトがサポートするインターフェイスの種類を指定します。 既定では、オブジェクトはデュアル インターフェイスをサポートします。

    オプション

    説明

    Dual

    オブジェクトがデュアル インターフェイスをサポートするように指定します。オブジェクトの vtable にはカスタム インターフェイス関数と遅延バインディングの IDispatch メソッドが含まれます。 COM クライアントとオートメーション コントローラーの両方からオブジェクトにアクセスできます。 既定値です。

    Custom

    オブジェクトがカスタム インターフェイスをサポートするように指定します。オブジェクトの vtable にはカスタム インターフェイス関数が含まれます。 特にプロセス間にまたがっている場合、カスタム インターフェイスはデュアル インターフェイスよりも高速です。

    • [オートメーション互換]   オートメーション コントローラーを使用してカスタム インターフェイス サポートを含むオブジェクトにアクセスできます。

  • [サポート]
    オブジェクトのその他のサポートを指定します。

    オプション

    説明

    ISupportErrorInfo

    ISupportErrorInfo インターフェイスのサポートを作成して、オブジェクトからクライアントにエラー情報を返せるようにします。

    Connection points

    オブジェクトのクラスを IConnectionPointContainerImpl から派生させることによって、オブジェクトのコネクション ポイントを有効にします。

    Free-threaded marshaler

    同一プロセス内のスレッド間のインターフェイス ポインターを効率的にマーシャリングするためのフリー スレッド マーシャラー オブジェクトが作成されます。 スレッド モデルとして [両方] が指定されているオブジェクトで使用できます。

    IObjectWithSite (IE オブジェクト サポート)

    オブジェクトとコンテナー内のサイト間の通信をサポートする簡単な方法を提供する IObjectWithSiteImpl を実装します。

参照

処理手順

ATL シンプル オブジェクトの追加

参照

ATL シンプル オブジェクト ウィザード

In-Process Server Threading Issues