Partager via


Ajout de récepteurs à l’enregistreur

Les récepteurs writer sont des objets distincts de l’enregistreur et doivent être ajoutés au writer à utiliser. Si vous écrivez dans un fichier, vous pouvez simplement appeler IWMWriter::SetOutputFilename, ce qui configure automatiquement le récepteur de fichiers. Sinon, pour ajouter un récepteur au writer, appelez la méthode IWMWriterAdvanced::AddSink . AddSink nécessite un pointeur vers l’interface IWMWriterSink du récepteur.

Lorsque vous avez terminé d’utiliser un récepteur, vous devez le fermer en appelant la méthode appropriée, en fonction du type de récepteur, puis la supprimer de l’enregistreur en appelant IWMWriterAdvanced::RemoveSink.

L’exemple de code suivant montre comment créer un récepteur de fichier writer et l’ajouter au writer. Pour plus d’informations sur l’utilisation de ce code, consultez Utilisation des exemples de code.

HRESULT AddFileSink(IWMWriterFileSink** ppFileSink, IWMWriter* pWriter)
{
    HRESULT hr = S_OK;
    IWMWriterSink*     pSinkBase       = NULL;
    IWMWriterAdvanced* pWriterAdvanced = NULL;

    hr = CreateWriterFileSink(ppFileSink);
    GOTO_EXIT_IF_FAILED(hr);

    hr = *ppFileSink->QueryInterface(IID_IWMWriterSink, 
                                     (void**) &pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriter->QueryInterface(IID_IWMWriterAdvanced,
                                 (void**) &pWriterAdvanced);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriterAdvanced->AddSink(pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

Exit:
    SAFE_RELEASE(pSinkBase);
    SAFE_RELEASE(pWriterAdvanced);
    return hr;
}

Obtention de messages d’erreur à partir d’un récepteur

IWMWriterAdvanced, interface

Utilisation des récepteurs writer