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
のメソッドである begin と end を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。
接続ポイント プロキシの作成を自動化する方法の詳細については、「オブジェクトへの接続ポイントの追加」を参照してください。
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 を返します。