CComDynamicUnkArray 類別
這個類別會儲存指標陣列 IUnknown
。
語法
class CComDynamicUnkArray
成員
公用建構函式
名稱 | 描述 |
---|---|
CComDynamicUnkArray::CComDynamicUnkArray | 建構函式。 將集合值初始化為 NULL,並將集合大小初始化為零。 |
CComDynamicUnkArray::~CComDynamicUnkArray | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CComDynamicUnkArray::Add | 呼叫這個方法以將指標新增 IUnknown 至陣列。 |
CComDynamicUnkArray::begin | 傳回集合中第一個 IUnknown 指標的指標。 |
CComDynamicUnkArray::clear | 清空陣列。 |
CComDynamicUnkArray::end | 傳回集合中最後 IUnknown 一個指標之後的指標。 |
CComDynamicUnkArray::GetAt | 擷取位於指定索引處的專案。 |
CComDynamicUnkArray::GetCookie | 呼叫這個方法以取得與指定 IUnknown 指標相關聯的Cookie。 |
CComDynamicUnkArray::GetSize | 傳回數位可以儲存的項目數。 |
CComDynamicUnkArray::GetUnknown | 呼叫這個方法以取得 IUnknown 與指定 Cookie 相關聯的指標。 |
CComDynamicUnkArray::Remove | 呼叫這個方法以從陣列中移除 IUnknown 指標。 |
備註
CComDynamicUnkArray
會保存動態配置的指標數位 IUnknown
,每個介面都是連接點上的介面。 CComDynamicUnkArray
可作為 IConnectionPointImpl 樣本類別的參數。
方法CComDynamicUnkArray
的開始和結束可用來迴圈所有連接點(例如,引發事件時)。
如需自動建立連接點 Proxy 的詳細資訊,請參閱 將連接點新增至物件 。
注意
注意 建立具有連接點的控件時,[新增類別精靈] 會使用 類別CComDynamicUnkArray
。 如果您想要手動指定連接點數目,請將參考從 CComDynamicUnkArray
變更為 CComUnkArray<
n ,其中 n >
是所需的連接點數目。
需求
標頭: atlcom.h
CComDynamicUnkArray::Add
呼叫這個方法以將指標新增 IUnknown
至陣列。
DWORD Add(IUnknown* 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
傳回數位列所配置緩衝區中最後一個元素的指標。
注意:這表示最後插入的指標不保證位於 , end()-1
因為陣列可能無法填入容量。
IUnknown**
end();
傳回值
介面指標的 IUnknown
指標。
CComDynamicUnkArray::GetAt
擷取位於指定索引處的專案。
IUnknown* GetAt(int nIndex);
參數
nIndex
要擷取之項目的索引。
傳回值
如果專案先前已加入且存在於這個索引處,則為 IUnknown 介面的指標,否則NULL
為 。
CComDynamicUnkArray::GetCookie
呼叫這個方法以取得與指定 IUnknown
指標相關聯的Cookie。
DWORD WINAPI GetCookie(IUnknown** ppFind);
參數
ppFind
IUnknown
需要相關聯 Cookie 的指標。
傳回值
傳回與 IUnknown
指標相關聯的 Cookie,如果沒有找到相符 IUnknown
的指標,則傳回零。
備註
如果相同 IUnknown
指標有多個實例,此函式會傳回第一個的Cookie。
CComDynamicUnkArray::GetSize
傳回數位配置容量。
注意:這與陣列中目前非 NULL 元素的數目不同。
int GetSize() const;
傳回值
數位可以儲存的項目數目。 GetSize() == end() - begin()
.
CComDynamicUnkArray::GetUnknown
呼叫這個方法以取得 IUnknown
與指定 Cookie 相關聯的指標。
IUnknown* WINAPI GetUnknown(DWORD dwCookie);
參數
dwCookie
需要相關聯 IUnknown
指標的Cookie。
傳回值
IUnknown
傳回指標,如果沒有找到相符的Cookie,則傳回NULL。
CComDynamicUnkArray::Remove
呼叫這個方法以從陣列中移除 IUnknown
指標。
所有其他元素都會保持不變,並保留其索引和 Cookie。
BOOL Remove(DWORD dwCookie);
參數
dwCookie
參考 IUnknown
要從陣列中移除之指標的Cookie。
傳回值
如果移除指標,則傳回 TRUE;否則為 FALSE。