wglSwapIntervalEXT problem

I need vsync in my project. So, I called wglSwapIntervalEXT(60). At function BOOL wglSwapIntervalEXT(int interval), the parameter interval must be my monitor frequency? Do I need call another function to enable vsync?

The parameter <interval> specifies the minimum number of video frames that are displayed before a buffer swap will occur.

Thus no matter what is your monitor frequency, if you want to enable vsync to match your monitor frequency you have to set it to "1", which is actually the default behavior.

Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
Technical Blog: http://www.rastergrid.com/blog/

I'm using cout to see the values of interval between the frames. I think the values must be equals at all iterations and, as my monitor frequency is 60 Hz, this value must be 1000/60 = 16.66 ms. But I got the values 1 or 2 only, like the vsync was disabled... My code:

Don't forget that there may be settings in your driver's control panel that may prevent the swap internal from taking effect. Usually there are three options on the control panel: always on, always off and application controlled. Make sure that you don't have "always off" selected.

Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
Technical Blog: http://www.rastergrid.com/blog/

For vsync to work, your PFD should have parameters "PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER", read more about pixelformatdescriptor and contexts. You should end every frame with SwapBuffers(hdc). And you should check if your driver doesn't override vsync(nvidia control panel/amd ccc, or google how to allow vsync through driver).

little advice: although i wouldn't enable vsync in any input precision critical application. the problem is it creates slight input lag. it is ok for third person game or not very fast first person game and other genres. it's ok for some demos or school projects. but for sharp\multiplayer FPS it is unacceptable, and i wouldn't even put option to enable it because there are a lot of clueless people who will enable it and after some time notice aiming problems, forgetting after changing which setting that lag appeared.

My example worked on a machine with NVIDIA driver... But, I tested on another machine with other NVIDIA driver and it didn't work...
I use glew to load wglSwapIntervalEXT. glewinfo show me wglSwapIntervalEXT is OK:
WGL_EXT_swap_control: OK
---------------------
wglGetSwapIntervalEXT: OK
wglSwapIntervalEXT: OK

Using another driver from NVIDIA I mentioned, I realized that Glew not load any function but glewInit not returning any error. I decided to change the number of bits per pixel to 24 and everything worked, including wglSwapIntervalEXT! Now my problem is: how to find the correct configuration to run on each machine?