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