IBM's spec for pglSwapBuffers states:
"The window specified by hwnd does not have to be currently bound to an OpenGL context; it needs only to have been bound at some point. This function has no effect on a PM window that has never been bound to an OpenGL context. "
I'm changing this a bit. Since a context can only be bound to one window at a time, the window specified by hwnd MUST be currently bound to an OpenGL context. If it is not, then pglSwapBuffers is a no-op. This should not cause too much of an issue, since pglSwapBuffers should be called to swap the buffers of a window that contains the current context. Afterall, why would you swap the buffers of a context that isn't current? Also, my implementation stores the buffers in the context, not in the window. Even if there are applications that rely on the specified behavior, I doubt that there are many of these apps that're going to be relevant going forward. If anyone has any issues or reservations about this change, please let me know.