Partager via


Fonction MFCreateVirtualCamera (mfvirtualcamera.h)

Crée un objet de caméra virtuelle qui peut être utilisé par l’appelant pour inscrire, annuler ou supprimer la caméra virtuelle du système.

Syntaxe

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

Paramètres

type

Membre de l’énumération MFVirtualCameraType spécifiant le type de caméra virtuelle. Dans la version actuelle, seule MFVirtualCameraType_SoftwareCameraSource est prise en charge.

lifetime

Membre de l’énumération MFVirtualCameraLifetime spécifiant la durée de vie de la caméra. Si MFVirtualCameraLifetime_Session est spécifié, lorsque l’objet IMFVirtualCamera retourné est supprimé ou que IMFVirtualCamera::Shutdown est appelé, la caméra virtuelle n’est plus énumérable ou activable sur l’appareil. Si vous souhaitez que la caméra virtuelle persiste entre les sessions et/ou les redémarrages, vous devez spécifier la valeur MFVirtualCameraLifetime_System.

access

Membre de l’énumération MFVirtualCameraAccess spécifiant l’étendue d’accès de la caméra virtuelle créée. Si MFVirtualCameraAccess_CurrentUser est spécifié, la caméra virtuelle est créée uniquement pour le compte d’utilisateur qui a appelé mfCreateVirtualCamera. Si MFVirtualCameraAccess_AllUsers est spécifié, tous les utilisateurs de l’appareil pourront énumérer ou activer la caméra virtuelle. Pour créer une caméra virtuelle avec MFVirtualCameraAccess_AllUsers, l’appelant de MFCreateVirtualCamera doit disposer des autorisations d’administrateur.

friendlyName

Nom de chaîne Unicode avec fin null et lisible par l’utilisateur pour la caméra virtuelle créée. Le pipeline ajoute automatiquement « Windows Virtual Camera » au nom convivial fourni pour s’assurer que les utilisateurs finaux peuvent distinguer les caméras virtuelles des caméras physiques en fonction du nom convivial. Ce paramètre ne doit pas être nullptr.

sourceId

CLSID unique de la source multimédia personnalisée à activer pour cette caméra virtuelle. La chaîne doit être au format « {CLSID} ». Ce paramètre ne doit pas être nullptr.

categories

Liste facultative des catégories d’interface d’appareil sous lesquelles la caméra virtuelle est inscrite. Si un utilisateur non administrateur appelle MFCreateVirtualCamera, les catégories doivent être un sous-ensemble des valeurs suivantes :

Si nullptr est spécifié, la caméra virtuelle est inscrite sous les catégories KSCATEGORY_VIDEO_CAMERA, KSCATEGORY_VIDEO et KSCATEGORY_CAPTURE.

categoryCount

Nombre de catégories fournies dans le paramètre categories . Si catégories a la valeur nullptr, categoryCount doit être 0.

virtualCamera

Paramètre de sortie qui reçoit la nouvellement créée IMFVirtualCamera. Ce paramètre ne doit pas être nullptr.

Valeur retournée

Retourne une valeur HRESULT, y compris, mais sans s’y limiter, les valeurs suivantes :

Code d'erreur Description
S_OK Opération réussie
E_INVALIDARG Un paramètre d’entrée n’est pas valide.
E_POINTER Le paramètre virtualCamera est nullptr.
E_ACCESSDENIED Le contrôle de confidentialité est défini pour refuser l’accès à la caméra pour l’application, l’utilisateur ou le système. Ou l’appelant n’est pas un administrateur et les paramètres fournis sont uniquement valides pour l’accès administrateur.

Notes

La caméra virtuelle créée par MFCreateVirtualCamera est clé hors des paramètres passés à cette API. En conservant les mêmes paramètres, les applications peuvent rouvrir la même caméra virtuelle. Lorsqu’il est appelé pour la première fois, le IMFVirtualCamera résultant contient un ensemble d’informations de configuration qui peuvent être modifiées ou mises à jour par l’appelant pour créer une nouvelle instance d’une caméra virtuelle. Si les mêmes paramètres sont utilisés pour cette fonction lors des appels suivants, la imfVirtualCamera résultante ouvre la caméra virtuelle existante lorsque la méthode IMFVirtualCamera::Start ou IMFVirtualCamera::Stop est appelée. L’appel de IMFVirtualCamera::Remove supprime la caméra virtuelle existante. Si MFVirtualCameraAccess_CurrentUser est spécifié pour le paramètre d’accès , chaque compte d’utilisateur obtient une caméra virtuelle unique.

UWP et l’application empaquetée doivent déclarer la fonctionnalité d’appareil de webcam dans leur manifeste pour pouvoir utiliser cette API. Cette API est également soumise au contrôle de confidentialité de la webcam. Par conséquent, lorsque la confidentialité est définie pour refuser l’accès, cette API entraîne un échec E_ACCESSDENIED.

Notes

UWP et Les applications empaquetées ne doivent pas appeler MFCreateVirtualCamera sur leur thread d’interface utilisateur. Cela déclenchera potentiellement un blocage, car le case activée Capability Access Manager pour la boîte de dialogue de consentement d’accès à la webcam sera bloqué.

Spécifications

   
Client minimal pris en charge Windows Build 22000
En-tête mfvirtualcamera.h
Bibliothèque mfsensorgroup.lib
DLL mfsensorgroup.dll

Voir aussi

IMFVirtualCameraMFVirtualCameraTypeMFVirtualCameraLifetimeMFVirtualCameraAccess