What are differences between the 2 calls?

I noticed that using SwapBuffers specifying an HDC, i can't read
framebuffer from backbuffer; but using SwapBuffers passing the relative
HGLRC (created throught hRC = wglCreateContext(hDC)) all seems ok.

So, which is the right combination?