Partager via


ID2D1SimplifiedGeometrySink ::Close, méthode (d2d1.h)

Ferme le récepteur geometry, indique s’il est dans un état d’erreur et réinitialise l’état d’erreur du récepteur.

Syntaxe

HRESULT Close();

Valeur de retour

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, il retourne un code d’erreur HRESULT .

Remarques

Ne fermez pas le récepteur geometry tant qu’une figure est toujours en cours d’exécution ; Cela place le récepteur geometry dans un état d’erreur. Pour que l’opération de fermeture réussisse, il doit y avoir un appel EndFigure pour chaque appel à BeginFigure.

Après avoir appelé cette méthode, le récepteur geometry peut ne pas être utilisable. Les implémentations Direct2D de cette interface n’autorisent pas la modification du récepteur geometry après sa fermeture, mais d’autres implémentations peuvent ne pas imposer cette restriction.

Exemples

L’exemple suivant crée un ID2D1PathGeometry, récupère un récepteur et l’utilise pour définir une forme de sablier.

ID2D1GeometrySink *pSink = NULL;


// Create a path geometry.
if (SUCCEEDED(hr))
{
    hr = m_pD2DFactory->CreatePathGeometry(&m_pPathGeometry);

    if (SUCCEEDED(hr))
    {
        // Write to the path geometry using the geometry sink.
        hr = m_pPathGeometry->Open(&pSink);

        if (SUCCEEDED(hr))
        {
            pSink->BeginFigure(
                D2D1::Point2F(0, 0),
                D2D1_FIGURE_BEGIN_FILLED
                );

            pSink->AddLine(D2D1::Point2F(200, 0));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(150, 50),
                    D2D1::Point2F(150, 150),
                    D2D1::Point2F(200, 200))
                );

            pSink->AddLine(D2D1::Point2F(0, 200));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(50, 150),
                    D2D1::Point2F(50, 50),
                    D2D1::Point2F(0, 0))
                );

            pSink->EndFigure(D2D1_FIGURE_END_CLOSED);

            hr = pSink->Close();
        }
        SafeRelease(&pSink);
    }
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1.h
Bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

ID2D1SimplifiedGeometrySink