Méthode IQueueCommand ::InvokeAtStreamTime (control.h)
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La InvokeAtStreamTime
méthode met en file d’attente une modification de méthode ou de propriété pour l’exécution à une heure de flux spécifiée (c’est-à-dire, heure de présentation par rapport au décalage actuel du temps de flux).
Syntaxe
HRESULT InvokeAtStreamTime(
[out] IDeferredCommand **pCmd,
[in] REFTIME time,
[in] GUID *iid,
[in] long dispidMethod,
[in] short wFlags,
[in] long cArgs,
[in] VARIANT *pDispParams,
[in, out] VARIANT *pvarResult,
[out] short *puArgErr
);
Paramètres
[out] pCmd
Adresse d’une variable qui reçoit un pointeur d’interface IDeferredCommand .
[in] time
Heure à laquelle appeler la commande.
[in] iid
Pointeur vers l’identificateur d’interface (IID) de l’interface.
[in] dispidMethod
Identificateur de répartition (DISPID) d’une méthode ou d’une propriété sur l’interface. Équivalent au paramètre dispIdMember de la méthode IDispatch ::Invoke .
[in] wFlags
Indicateurs décrivant le contexte de l'appel. Équivalent au paramètre wFlags de la méthode IDispatch ::Invoke .
[in] cArgs
Nombre d’arguments dans pDispParams. Équivalent au membre cArgs de la structure DISPPARAMS .
[in] pDispParams
Pointeur vers un tableau qui contient les arguments. Équivalent au membre rgvarg de la structure DISPPARAMS .
[in, out] pvarResult
Pointeur vers un VARIANT qui reçoit le résultat. Équivalent au paramètre pVarResult de la méthode IDispatch ::Invoke .
[out] puArgErr
Pointeur vers une variable qui reçoit l’index du premier argument ayant une erreur. Équivalent au paramètre puArgErr de la méthode IDispatch ::Invoke .
Valeur retournée
Retourne une valeur HRESULT .
Remarques
Utilisez la méthode IDispatch ::GetIDsOfNames pour récupérer le DISPID pour le paramètre dispidMember .
Exemples
L’exemple suivant met en file d’attente une commande IMediaControl ::Stop pendant 3,0 secondes.
IQueueCommand *pQ = 0;
IMediaControl *pControl = 0;
// Query for IQueueCommand.
pGraph->QueryInterface(IID_IQueueCommand, reinterpret_cast<void**>(&pQ));
// Query for IMediaControl.
pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl));
// Find the DISPID of the IMediaControl::Stop method.
OLECHAR *szMethod = OLESTR("Stop");
long dispid;
hr = pControl->GetIDsOfNames(IID_NULL, &szMethod, 1, 0, &dispid);
// Invoke the command.
IDeferredCommand *pCmd = 0;
hr = pQ->InvokeAtPresentationTime(&pCmd, 3.0,
const_cast<GUID*>(&IID_IMediaControl), dispid, DISPATCH_METHOD,
0, 0, 0, 0);
if (SUCCEEDED(hr))
{
pControl->Run();
pCmd->Release();
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | control.h (include Dshow.h) |
Bibliothèque | Strmiids.lib |