IVBGetControl::EnumControls 方法 (vbinterf.h)

列舉表單上的控制項。

注意 不再建議使用此方法,因為 Visual Basic 以外的容器不支援此方法。
 

語法

HRESULT EnumControls(
  [in]  DWORD         dwOleContF,
  [in]  DWORD         dwWhich,
  [out] LPENUMUNKNOWN *ppenumUnk
);

參數

[in] dwOleContF

指定要列舉的 OLE 物件類型。 此參數可以是 OLECONTF 列舉所列舉的下列其中一個值。

意義
OLECONTF_EMBEDDINGS
列舉表單上的内嵌物件。 包含此旗標以列舉 OLE 控制項。
OLECONTF_LINKS
列舉表單上連結的物件。
OLECONTF_OTHER
列舉所有虛擬 OLE 物件。 包含此旗標以列舉 VBX 控制項。
OLECONTF_ONLYUSER
只列舉使用者知道的物件。
OLECONTF_ONLYIFRUNNING
只列舉表單上執行的物件。
 

列舉 OLE 控制項時,建議您結合旗標 OLECONTF_ONLYUSEROLECONTF_ONLYIFRUNNINGOLECONTF_EMBEDDINGS。 若要同時包含 OLE 控制項和 VBX 控制項,請將 OLECONTF_OTHERS 旗標新增至此清單。 若要只列舉 VBX 控制項,請移除 OLECONTF_EMBEDDINGS 旗標,並包含 OLECONTF_OTHERS 旗標。

[in] dwWhich

指定要列舉的控制項集。 此參數可以是下列其中一個值。

意義
GCW_WCH_SIBLING
0x00000001
列舉 控制項的所有同層級。
GC_WCH_CONTAINER
0x00000002
列舉屬於控制項父系的所有物件。 您無法搭配此旗標使用 GC_WCH_FONLYAFTERGC_WCH_FONLYBEFORE 旗標。
GC_WCH_CONTAINED
0x00000003
列舉屬於控制項子系的所有物件。 您無法搭配此旗標使用 GC_WCH_FONLYAFTERGC_WCH_FONLYBEFORE 旗標。
GC_WCH_ALL
0x00000004
列舉所有物件。
GC_WCH_FREVERSEDIR
0x08000000
以反向定位順序方向列舉及組織控制項。 此旗標可以與其他任何旗標結合。
GC_WCH_FONLYAFTER
0x10000000
列舉以定位順序出現在控制項之後的所有控制項。
GC_WCH_FONLYBEFORE
0x20000000
列舉在索引標籤順序中控制項之前顯示的所有控制項。
GC_WCH_FSELECTED
0x40000000
列舉目前選取的所有控制項。
 

使用其中一個旗標 GC_WCH_SIBLINGGC_WCH_CONTAINERGC_WCH_CONTAINEDGC_WCH_ALL 搭配任何GC_WCH_Fxxx 旗標。

在 VBX 程式碼中,GC_FORM旗標已傳遞至 VBGetControl ,以取得表單的指標。 在 OLE 控制項程式碼中,沒有直接取代此旗標。 請改為將 GC_WHC_ALL 傳遞至 EnumControls, 並使用列舉中第一個控制項的指標。 列舉中的第一個控制項在使用 GC_WHC_ALL時,一律是表單。

[out] ppenumUnk

列舉 OLE 物件的指標。

傳回值

這個方法支援標準傳回值 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED,以及下列各項:

備註

將 VBX 控制項移轉至 OLE 控制項時, EnumControls 會取代不再支援的 Visual Basic VBGetControl

規格需求

   
目標平台 Windows
標頭 vbinterf.h

另請參閱

IVBGetControl

OLECONTF