Partager via


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

Voir aussi

Codes d’erreur et de réussite

IQueueCommand Interface