次の方法で共有


CComDynamicUnkArray クラス

このクラスには、IUnknown ポインターの配列が格納されます。

構文

class CComDynamicUnkArray

メンバー

パブリック コンストラクター

名前 説明
CComDynamicUnkArray::CComDynamicUnkArray コンストラクターです。 コレクションの値を NULL に、コレクションのサイズを 0 に初期化します。
CComDynamicUnkArray::~CComDynamicUnkArray デストラクター。

パブリック メソッド

名前 説明
CComDynamicUnkArray::Add このメソッドを呼び出すと、配列を指す IUnknown ポインターを追加できます。
CComDynamicUnkArray::begin コレクション内の最初の IUnknown ポインターを指すポインターを返します。
CComDynamicUnkArray::clear 配列を空にします。
CComDynamicUnkArray::end コレクション内の最後 IUnknown ポインターの 1 つ後を指すポインターを返します。
CComDynamicUnkArray::GetAt 指定したインデックス位置にある要素を取得します。
CComDynamicUnkArray::GetCookie このメソッドを呼び出すと、特定の IUnknown ポインターに関連付けられている Cookie を取得できます。
CComDynamicUnkArray::GetSize 配列が格納できる要素の数を返します。
CComDynamicUnkArray::GetUnknown このメソッドを呼び出すと、特定の Cookie に関連付けられている IUnknown ポインターを取得できます。
CComDynamicUnkArray::Remove このメソッドを呼び出すと、配列から IUnknown ポインターを削除することができます。

解説

CComDynamicUnkArray では、動的に割り当てられた、IUnknown ポインターの配列を保持します (それぞれは、接続ポイント上のインターフェイス)。 CComDynamicUnkArray は、IConnectionPointImpl テンプレート クラスに対するパラメーターとして使用できます。

CComDynamicUnkArray のメソッドである beginend を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。

接続ポイント プロキシの作成を自動化する方法の詳細については、「オブジェクトへの接続ポイントの追加」を参照してください。

Note

CComDynamicUnkArray クラスは、接続ポイントを持つコントロールを作成するときに、[クラスの追加] ウィザードによって使用されます。 接続ポイントの数を手動で指定する場合は、参照を CComDynamicUnkArray から CComUnkArray< n > に変更します。ここで、 n は必要な接続ポイントの数です。

要件

ヘッダー: atlcom.h

CComDynamicUnkArray::Add

このメソッドを呼び出すと、配列を指す IUnknown ポインターを追加できます。

DWORD Add(IUnknown* pUnk);

パラメーター

pUnk
配列に追加する IUnknown ポインター。

戻り値

新しく追加されたポインターに関連付けられている Cookie を返します。 この Cookie を使用して、 CComDynamicUnkArray::GetAt の配列からポインターを取得します。

解説

Remove()がこの配列で以前に呼び出された場合、この項目が挿入される位置は必ずしも最後に挿入された項目の直後にあるとは限りません。 返された Cookie を使用して、挿入されたポインターに確実にアクセスします。 配列のサイズは、より多くの項目に対応するために大きくなる可能性があります。 GetSize()を使用して新しいサイズを取得します。

CComDynamicUnkArray::begin

IUnknown インターフェイス ポインターのコレクションの先頭を指すポインターを返します。

IUnknown**
    begin();

戻り値

IUnknown インターフェイス ポインターを指すポインター。

解説

コレクションには、IUnknown としてローカルに格納されるインターフェイスを指すポインターが含まれています。 各 IUnknown インターフェイスを実際のインターフェイス型にキャストしてから、それを介して呼び出します。 最初にインターフェイスを照会する必要はありません。

IUnknown インターフェイスを使用する前に、それが NULL でないことを確認する必要があります。

CComDynamicUnkArray::clear

配列を空にします。 サイズを 0 にリセットします。

void clear();

CComDynamicUnkArray::CComDynamicUnkArray

コンストラクター。

CComDynamicUnkArray();

解説

コレクションのサイズをゼロに設定し、値を NULL に初期化します。 必要に応じて、デストラクターによってコレクションが解放されます。

CComDynamicUnkArray::~CComDynamicUnkArray

デストラクター。

~CComDynamicUnkArray();

解説

クラス コンストラクターによって割り当てられたリソースを解放します。

CComDynamicUnkArray::end

配列の割り当てられたバッファー内の最後の要素の 1 つ後のポインターを返します。

注: これは、配列が容量に満たされない可能性があるため、最後に挿入されたポインターが end()-1 であることを保証しないことを意味します。

IUnknown**
    end();

戻り値

IUnknown インターフェイス ポインターを指すポインター。

CComDynamicUnkArray::GetAt

指定したインデックス位置にある要素を取得します。

IUnknown* GetAt(int nIndex);

パラメーター

nIndex
取得する要素のインデックス。

戻り値

要素が以前に追加され、このインデックスに存在する場合は IUnknown インターフェイスへのポインター。それ以外の場合は NULL

CComDynamicUnkArray::GetCookie

このメソッドを呼び出すと、特定の IUnknown ポインターに関連付けられている Cookie を取得できます。

DWORD WINAPI GetCookie(IUnknown** ppFind);

パラメーター

ppFind
関連付けられている Cookie が必要な IUnknown ポインター。

戻り値

IUnknown ポインターに関連付けられているクッキーを返します。一致する IUnknown ポインターが見つからない場合は 0 を返します。

解説

同じ IUnknown ポインターのインスタンスが複数ある場合、この関数からは最初のインスタンスの Cookie が返されます。

CComDynamicUnkArray::GetSize

配列の割り当てられた容量を返します。

注: これは、現在配列内にある NULL 以外の要素の数と同じではありません。

int GetSize() const;

戻り値

配列に格納できる要素の数。 GetSize() == end() - begin().

CComDynamicUnkArray::GetUnknown

このメソッドを呼び出すと、特定の Cookie に関連付けられている IUnknown ポインターを取得できます。

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

パラメーター

dwCookie
関連付けられた IUnknown ポインターが必要となる Cookie。

戻り値

IUnknown ポインターを返します。一致するクッキーが見つからない場合は NULL を返します。

CComDynamicUnkArray::Remove

このメソッドを呼び出すと、配列から IUnknown ポインターを削除することができます。

他のすべての要素は変更されず、インデックスと Cookie が保持されます。

BOOL Remove(DWORD dwCookie);

パラメーター

dwCookie
配列から削除する IUnknown ポインターを参照している Cookie。

戻り値

ポインターが削除された場合は TRUE を返します。それ以外の場合は FALSE を返します。

関連項目

CComUnkArray クラス
クラスの概要