MFCreateVirtualCamera-Funktion (mfvirtualcamera.h)

Erstellt ein virtuelles Kameraobjekt, das vom Aufrufer zum Registrieren, Aufheben der Registrierung oder Zum Entfernen der virtuellen Kamera aus dem System verwendet werden kann.

Syntax

HRESULT MFCreateVirtualCamera(
  MFVirtualCameraType     type,
  MFVirtualCameraLifetime lifetime,
  MFVirtualCameraAccess   access,
  LPCWSTR                 friendlyName,
  LPCWSTR                 sourceId,
  const GUID              *categories,
  ULONG                   categoryCount,
  IMFVirtualCamera        **virtualCamera
);

Parameter

type

Ein Member der MFVirtualCameraType-Enumeration , die den typ der virtuellen Kamera angibt. In der aktuellen Version wird nur MFVirtualCameraType_SoftwareCameraSource unterstützt.

lifetime

Ein Member der MFVirtualCameraLifetime-Enumeration , die die Lebensdauer der Kamera angibt. Wenn MFVirtualCameraLifetime_Session angegeben ist, wenn das zurückgegebene IMFVirtualCamera-Objekt verworfen oder IMFVirtualCamera::Shutdown aufgerufen wird, ist die virtuelle Kamera auf dem Gerät nicht mehr aufzählbar oder aktivierbar. Wenn die virtuelle Kamera sitzungs- und/oder neustartübergreifend beibehalten werden soll, müssen Sie den Wert MFVirtualCameraLifetime_System angeben.

access

Ein Member der MFVirtualCameraAccess-Enumeration , die den Zugriffsbereich der erstellten virtuellen Kamera angibt. Wenn MFVirtualCameraAccess_CurrentUser angegeben ist, wird die virtuelle Kamera nur für das Benutzerkonto erstellt, das MFCreateVirtualCamera aufgerufen hat. Wenn MFVirtualCameraAccess_AllUsers angegeben ist, können alle Benutzer auf dem Gerät die virtuelle Kamera auflisten oder aktivieren. Um eine virtuelle Kamera mit MFVirtualCameraAccess_AllUsers zu erstellen, muss der Aufrufer von MFCreateVirtualCamera über Administratorberechtigungen verfügen.

friendlyName

Ein mit Null beendeter, benutzerlesbarer Unicode-Zeichenfolgenname für die erstellte virtuelle Kamera. Die Pipeline fügt automatisch "Virtuelle Windows-Kamera" an den angegebenen Anzeigenamen an, um sicherzustellen, dass Endbenutzer virtuelle Kameras anhand des Anzeigenamens von physischen Kameras unterscheiden können. Dieser Parameter darf nicht nullptr sein.

sourceId

Die eindeutige CLSID der benutzerdefinierten Medienquelle, die für diese virtuelle Kamera aktiviert werden soll. Die Zeichenfolge muss im Format "{CLSID}" vorliegen. Dieser Parameter darf nicht nullptr sein.

categories

Eine optionale Liste der Geräteschnittstellenkategorien, unter denen die virtuelle Kamera registriert ist. Wenn ein Nicht-Administratorbenutzer MFCreateVirtualCamera aufruft, müssen die Kategorien eine Teilmenge der folgenden Werte sein:

Wenn nullptr angegeben wird, wird die virtuelle Kamera unter den Kategorien KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO und KSCATEGORY_CAPTURE registriert.

categoryCount

Die Anzahl von Kategorien, die im Categories-Parameter bereitgestellt werden. Wenn Kategorien nullptr sind, muss categoryCount 0 sein.

virtualCamera

Ausgabeparameter, der die neu erstellte IMFVirtualCamera empfängt. Dieser Parameter darf nicht nullptr sein.

Rückgabewert

Gibt einen HRESULT-Wert zurück, einschließlich, aber nicht beschränkt auf die folgenden Werte:

Fehlercode BESCHREIBUNG
S_OK Erfolgreich
E_INVALIDARG Ein Eingabeparameter ist ungültig.
E_POINTER Der virtualCamera-Parameter ist nullptr.
E_ACCESSDENIED Die Datenschutzsteuerung ist so festgelegt, dass der App, dem Benutzer oder dem System der Zugriff auf die Kamera verweigert wird. Oder der Aufrufer ist kein Administrator, und die bereitgestellten Parameter sind nur für den Administratorzugriff gültig.

Hinweise

Die von MFCreateVirtualCamera erstellte virtuelle Kamera wird von den an diese API übergebenen Parametern abgeschlüsselt. Wenn dieselben Parameter beibehalten werden, können Anwendungen dieselbe virtuelle Kamera erneut öffnen. Beim ersten Aufruf enthält die resultierende IMFVirtualCamera eine Reihe von Konfigurationsinformationen, die vom Aufrufer geändert oder aktualisiert werden können, um eine neue instance einer virtuellen Kamera zu erstellen. Wenn für diese Funktion bei nachfolgenden Aufrufen dieselben Parameter verwendet werden, öffnet die resultierende IMFVirtualCamera die vorhandene virtuelle Kamera, wenn die IMFVirtualCamera::Start - oder IMFVirtualCamera::Stop-Methode aufgerufen wird. Beim Aufrufen von IMFVirtualCamera::Remove wird die vorhandene virtuelle Kamera entfernt. Wenn MFVirtualCameraAccess_CurrentUser für den Zugriffsparameter angegeben ist, erhält jedes Benutzerkonto eine eindeutige virtuelle Kamera.

UWP und Paketanwendung müssen die Webcamgerätefunktion in ihrem Manifest deklarieren, um diese API verwenden zu können. Diese API unterliegt auch der Webcam-Datenschutzkontrolle. Wenn der Datenschutz auf Zugriff verweigern festgelegt ist, führt diese API zu einem E_ACCESSDENIED Fehler.

Hinweis

UWP und Verpackte Apps dürfen MFCreateVirtualCamera nicht in ihrem UI-Thread aufrufen. Dadurch wird möglicherweise ein Deadlock ausgelöst, da die Überprüfung des Funktionszugriffs-Managers für das Dialogfeld "Webcamzugriffszustimmung" blockiert wird.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Build 22000
Kopfzeile mfvirtualcamera.h
Bibliothek mfsensorgroup.lib
DLL mfsensorgroup.dll

Weitere Informationen

IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess