Partager via


D1194 : Vider le contrôleur de domaine en attente

Il n’est pas valide d’appeler Flush ou EndDraw entre une paire GetDC/ReleaseDC.

 

Causes possibles

Lors de l’utilisation d’un rendertarget interopéré GDI, une application peut contrôler la propriété du contrôleur de domaine de la cible à l’aide d’IGdiInteropRenderTarget ::GetDC ou IGdiInteropRenderTarget ::ReleaseDC. Toutefois, il n’est pas valide d’appeler ID2D1RenderTarget ::Flush ou ID2D1RenderTarget ::EndDraw pendant que l’application a le contrôle du contrôleur de domaine. Le vidage et EndDraw peuvent entraîner le rendu sur la ressource cible, et Direct2D ne doit pas tenter de modifier la ressource en même temps que l’application.

Correctifs possibles

Pour traiter ce message, vérifiez que l’application n’appelle pas ID2D1RenderTarget ::Flush ou ID2D1RenderTarget ::EndDraw alors qu’elle possède la propriété d’un contrôleur de domaine d’IGdiInteropRenderTarget. Si possible, organisez l’application pour séparer son comportement de rendu Direct2D de son comportement GDI pour rendre la distinction de propriété DC plus claire.