D1194 : vider le contrôleur de périphérique en suspens

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érable GDI, une application peut contrôler la propriété du contrôleur de l’équipement cible à l’aide de IGdiInteropRenderTarget :: GetDC ou IGdiInteropRenderTarget :: ReleaseDC. Toutefois, il n’est pas possible d’appeler ID2D1RenderTarget :: Flush ou ID2D1RenderTarget :: EndDraw, tandis que l’application contrôle le DC. Flush et EndDraw peuvent entraîner un rendu sur la ressource cible, et Direct2D ne doit pas tenter de modifier la ressource en même temps que l’application.

Corrections possibles

Pour traiter ce message, assurez-vous que l’application n’appelle pas ID2D1RenderTarget :: Flush ou ID2D1RenderTarget :: EndDraw alors qu’elle a la propriété du contrôleur de service d’un IGdiInteropRenderTarget. Si possible, organisez l’application pour séparer son comportement de rendu Direct2D de son comportement GDI afin de rendre la distinction entre la propriété du contrôleur de l’exploitation plus claire.