IWMDMEnumDevice::Next-Methode (mswmdm.h)
Die Next-Methode gibt einen Zeiger auf das nächste Gerät zurück, dargestellt durch eine IWMDMDevice-Schnittstelle .
Syntax
HRESULT Next(
[in] ULONG celt,
[out] IWMDMDevice **ppDevice,
[out] ULONG *pceltFetched
);
Parameter
[in] celt
Anzahl der angeforderten Geräte.
[out] ppDevice
Zeiger auf das vom Aufrufer zugeordnete Array von IWMDMGeräteschnittstellenzeigern . Die Größe dieses Arrays muss IWMDMDevice *[celt] sein. Der Aufrufer muss diese Schnittstellen freigeben, wenn er mit ihnen fertig ist. Um die Zuordnung eines ganzen Arrays zu vermeiden, übergeben Sie einfach die Adresse eines Zeigers an eine IWMDMDevice-Schnittstelle , wie in den Hinweisen gezeigt.
[out] pceltFetched
Zeiger auf eine Variable, die die Anzahl der zurückgegebenen Geräte (Schnittstellen) empfängt.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Alle Schnittstellenmethoden in Windows Media Geräte-Manager können eine der folgenden Klassen von Fehlercodes zurückgeben:
- Standard-COM-Fehlercodes
- In HRESULT-Werte konvertierte Windows-Fehlercodes
- Windows Media Geräte-Manager Fehlercodes
Hinweise
Die zurückgegebenen Geräteschnittstellen basieren auf einer zwischengespeicherten Liste von Geräten. Wenn ein Plug & Play Gerät angefügt oder entfernt wird, spiegelt der aktuelle Enumerator dies nicht wider. Daher gibt Next Geräte basierend auf der zwischengespeicherten Liste zurück. Anwendungen sollten ein neues Enumeratorobjekt abrufen, indem sie IWMDeviceManager::EnumDevices aufrufen, um eine aktualisierte Liste von Geräten zu erhalten.
Wenn Sie nur eine einzelne Schnittstelle gleichzeitig abrufen möchten, müssen Sie kein Array für diese Methode zuordnen, wie im folgenden Code gezeigt:
// Get a device enumerator to examine each device.
CComPtr<IWMDeviceManager2> pIWMDevMgr2;
hr = m_IWMDeviceMgr->QueryInterface (__uuidof(IWMDeviceManager2), (void**) &pIWMDevMgr2);
if (hr == S_OK)
{
// TODO: Display a message that the application retrieved IWMDeviceManager2.
}
else
{
// TODO: Display a message that the application was not able to
// retrieve IWMDeviceManager2 in EnumDevices.
return hr;
}
// Enumerate through the devices using the faster EnumDevices2 plug-and-play method.
CComPtr<IWMDMEnumDevice> pEnumDevice;
hr = pIWMDevMgr2->EnumDevices2(&pEnumDevice);
if (hr != S_OK)
{
//.TODO: Display a message that an error occurred in calling EnumDevices2.
return hr;
}
// Enumerate through devices.
IWMDMDevice *pIWMDMDevice;
ULONG ulFetched = 0;
while(pEnumDevice->Next(1, &pIWMDMDevice, &ulFetched) == S_OK)
{
if (ulFetched != 1)
{
return E_FAIL;
}
// Do some stuff here....
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | mswmdm.h |
Bibliothek | Mssachlp.lib |