For the user, full screen is just when the window is full screen, so that they no longer see the borders of the window or other desktop.
As you know, not all full screens are created equal.
The “correct” full screen is where the program controls the screen. When a game uses this mode, it can change the screen resolution. If you have ever played an old game and existed to see how your icons are messed up, it is; during the game, the game on the desktop was lower.
with "borderless full screen", the program window alternates with any borders, title bar and frame, etc. and is just a rectangle of pure rendering. If you set the same size for this visualization context as your desktop, you get the full screen effect.
Fulfillment of unlimited boundaries is usually more convenient for users these days, since it is easier to “lay out”, since other programs are still on the chart. The “correct” full-screen mode gives you full control over the equipment, so theoretically you have more options for your program, but that means you have to wait for something to be reinitialized when you choose.
what you do with the rendering context is up to you, so yes, you can use it to play the video. It would not matter if you are in the “correct” full-screen mode or not, the rendering code would be the same.
As for cutting through the correct full-screen windows, I'm not sure, but I think that nothing else will be visible, there is only your program.
as for win-api, there is only one windows api, but I think you mean which window library; since this is already a long answer, I’ll just say that it depends on what you want from it.
Please feel free to leave comments if you need to clarify or expand any points.