Does ID2D1DeviceContext::GetTarget() create a new pointer via AddRef()

29 Views Asked by At

I am wandering if I should use a CComPtr ccptr_d2d_image whenever I call GetTarget(). For example:

void DrawSomething (ID2D1DeviceContext *dvctxt, ID2D1Bitmap1 *arg_bitmap1)
{

CComPtr<ID2D1Image> ccptr_d2d_image = NULL;

// save the current target
dvctxt->GetTarget(&ccptr_d2d_image);

dvctxt->BeginDraw();
dvctxt->Flush(); // clear any previous errors on the tgt
dvctxt->SetTarget(arg_bitmap1);

// draw something on the arg_bitmap1

dvctxt->EndDraw();

// restore the previous target
dvctxt->BeginDraw();
dvctxt->Flush();     // clear any previous errors on the tgt
dvctxt->SetTarget(ccptr_d2d_image);
dvctxt->EndDraw();

} // Com Pointer goes out of scope and is automatically released
0

There are 0 best solutions below