The ICreateDevEnum interface creates an enumerator for a list of objects; typically, these objects are instances of hardware devices. Use this enumerator to access the objects' interfaces, methods, and data. This enumerator supports the same methods as all enumerator interfaces: Next, Skip, Reset, and Clone. For more information on using enumerators, see the Win32 IEnumXXXX interface documentation.
The ICreateDevEnum interface implements plug-and-play functionality to enumerate devices; DirectShow provides additional plug-and-play functionality through the Win32 IPropertyBag and IPersistPropertyBag interfaces; see the appropriate documentation for more details.
When to Implement
Implement this interface when you want to obtain lists of a specific category of objects. The object must have an internal structure that allows enumeration.
When to Use
Applications need a simple method of finding and creating instances of objects that represent the machine's devices. To obtain these instances, you should first create a system device enumerator object, and then use it to create an enumerator for the particular class of device that interests you. DirectShow typically uses this enumerator to create a list of the machine's video capture devices, which you can then use in your applications or present in some fashion to the user.
Methods in Vtable Order
IUnknown methods | Description |
QueryInterface | Retrieves pointers to supported interfaces. |
AddRef | Increments the reference count. |
Release | Decrements the reference count. |
ICreateDevEnum methods | Description |
CreateClassEnumerator | Creates a class enumerator for the specified category. |
Creates an enumerator for the specified type of object.
HRESULT CreateClassEnumerator(
REFCLSID clsidDeviceClass,
IEnumMoniker ** ppEnumMoniker,
DWORD dwFlags
);
Return one of the following values.
Value | Meaning |
NOERROR | Success. |
E_OUTOFMEMORY | There is not enough memory available to create a class enumerator. |
S_FALSE | The category specified by clsidDeviceClass does not exist. |
The new class enumerator is a nonaggregate object that will run in the same process as the class that called this method.
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.