These tutorials focus mainly on OpenGL, Win32 programming and the ODE physics engine. OpenGL has moved on to great heights and I don't cover the newest features but cover all of the basic concepts you will need with working example programs.

 

Working with the Win32 API is a great way to get to the heart of Windows and is just as relevant today as ever before. Whereas ODE has been marginalized as hardware accelerated physics becomes more common.

 

Games and graphics utilities can be made quickly and easily using game engines like Unity so this and Linux development in general will be the focus of my next tutorials.    

  

 

FunctionLibrary
WaitCommEvent kernel32
WaitForDebugEvent kernel32
WaitForInputIdle user32
WaitForMultipleObjects kernel32
WaitForMultipleObjectsEx kernel32
WaitForSingleObject kernel32
WaitForSingleObjectEx kernel32
WaitMessage user32
WaitNamedPipe kernel32
WantArrows comdlg32
waveInAddBuffer winmm
waveInClose winmm
waveInGetDevCaps winmm
waveInGetErrorText winmm
waveInGetID winmm
waveInGetNumDevs winmm
waveInGetPosition winmm
waveInMessage winmm
waveInOpen winmm
waveInPrepareHeader winmm
waveInReset winmm
waveInStart winmm
waveInStop winmm
waveInUnprepareHeader winmm
waveOutBreakLoop winmm
waveOutClose winmm
waveOutGetDevCaps winmm
waveOutGetErrorText winmm
waveOutGetID winmm
waveOutGetNumDevs winmm
waveOutGetPitch winmm
waveOutGetPlaybackRate winmm
waveOutGetPosition winmm
waveOutGetVolume winmm
waveOutMessage winmm
waveOutOpen winmm
waveOutPause winmm
waveOutPrepareHeader winmm
waveOutReset winmm
waveOutRestart winmm
waveOutSetPitch winmm
waveOutSetPlaybackRate winmm
waveOutSetVolume winmm
waveOutUnprepareHeader winmm
waveOutWrite winmm
WdtpInterfacePointer_UserFree ole32
WdtpInterfacePointer_UserMarshal ole32
WdtpInterfacePointer_UserSize ole32
WdtpInterfacePointer_UserUnmarshal ole32
WEP wsock32
wglChoosePixelFormat opengl32
wglCopyContext opengl32
wglCreateContext opengl32
wglCreateLayerContext opengl32
wglDeleteContext opengl32
wglDescribeLayerPlane opengl32
wglDescribePixelFormat opengl32
wglGetCurrentContext opengl32
wglGetCurrentDC opengl32
wglGetDefaultProcAddress opengl32
wglGetLayerPaletteEntries opengl32
wglGetPixelFormat opengl32
wglGetProcAddress opengl32
wglMakeCurrent opengl32
wglRealizeLayerPalette opengl32
wglSetLayerPaletteEntries opengl32
wglSetPixelFormat opengl32
wglShareLists opengl32
wglSwapBuffers opengl32
wglSwapLayerBuffers opengl32
wglUseFontBitmaps opengl32
wglUseFontOutlines opengl32
WideCharToMultiByte kernel32
WidenPath gdi32
WindowFromDC user32
WindowFromPoint user32
WinExec kernel32
WinHelp user32
winmmf_ThunkData32 winmm
winmmsl_ThunkData32 winmm
WINNLSDefIMEProc user32
WINNLSEnableIME user32
WINNLSGetEnableStatus user32
WINNLSGetIMEHandle user32
WINNLSGetIMEHotkey user32
WINNLSGetIMEStatus user32
WINNLSGetKeyState user32
WINNLSPostAppMessage user32
WINNLSSendAppMessage user32
WINNLSSendString user32
WINNLSSetIMEHandle user32
WINNLSSetIMEHotkey user32
WINNLSSetIMEStatus user32
WINNLSSetKeyState user32
WinOldAppHackoMatic user32
WNDPROC_CALLBACK user32
WNetAddConnection mpr
WNetAddConnection2 mpr
WNetAddConnection3 mpr
WNetCachePassword mpr
WNetCancelConnection mpr
WNetCancelConnection2 mpr
WNetCloseEnum mpr
WNetConnectionDialog mpr
WNetConnectionDialog1 mpr
WNetDisconnectDialog mpr
WNetDisconnectDialog1 mpr
WNetEnumCachedPasswords mpr
WNetEnumResource mpr
WNetFormatNetworkName mpr
WNetGetCachedPassword mpr
WNetGetConnection mpr
WNetGetHomeDirectory mpr
WNetGetLastError mpr
WNetGetNetworkInformation mpr
WNetGetProviderName mpr
WNetGetResourceInformation mpr
WNetGetResourceParent mpr
WNetGetUniversalName mpr
WNetGetUser mpr
WNetLogoff mpr
WNetLogon mpr
WNetOpenEnum mpr
WNetRemoveCachedPassword mpr
WNetRestoreConnection mpr
WNetSetConnection mpr
WNetUseConnection mpr
WNetVerifyPassword mpr
WOWCallback16 wow32
WOWCallback16Ex wow32
WOWDirectedYield16 wow32
WOWGetVDMPointer wow32
WOWGetVDMPointerFix wow32
WOWGetVDMPointerUnfix wow32
WOWGlobalAlloc16 wow32
WOWGlobalAllocLock16 wow32
WOWGlobalFree16 wow32
WOWGlobalLock16 wow32
WOWGlobalLockSize16 wow32
WOWGlobalUnlock16 wow32
WOWGlobalUnlockFree16 wow32
WOWHandle16 wow32
WOWHandle32 wow32
WOWYield16 wow32
WrapCompressedRTFStream mapi32
WrapCompressedRTFStream@12 mapi32
WrapProgress@20 mapi32
WrapStoreEntryID@24 mapi32
WriteClassStg ole32
WriteClassStm ole32
WriteConsole kernel32
WriteConsoleInput kernel32
WriteConsoleOutput kernel32
WriteConsoleOutputAttribute kernel32
WriteConsoleOutputCharacter kernel32
WriteFile kernel32
WriteFileEx kernel32
WriteFileGather kernel32
WriteFmtUserTypeStg ole32
WriteOleStg ole32
WritePrivateProfileSection kernel32
WritePrivateProfileString kernel32
WritePrivateProfileStruct kernel32
WriteProcessMemory kernel32
WriteProfileSection kernel32
WriteProfileString kernel32
WriteStringStream ole32
WriteTapemark kernel32
WSAAsyncGetHostByAddr wsock32
WSAAsyncGetHostByName wsock32
WSAAsyncGetProtoByName wsock32
WSAAsyncGetProtoByNumber wsock32
WSAAsyncGetServByName wsock32
WSAAsyncGetServByPort wsock32
WSAAsyncSelect wsock32
WSACancelAsyncRequest wsock32
WSACancelBlockingCall wsock32
WSACleanup wsock32
WSAGetLastError wsock32
WSAIsBlocking wsock32
WSApSetPostRoutine wsock32
WSARecvEx wsock32
WSASetBlockingHook wsock32
WSASetLastError wsock32
WSAStartup wsock32
WSAUnhookBlockingHook wsock32
WsControl wsock32
wsExistDlg tapi32
WSHEnumProtocols wsock32
wsprintf user32
wvsprintf user32
WaitCommEvent kernel32
WaitForDebugEvent kernel32
WaitForInputIdle user32
WaitForMultipleObjects kernel32
WaitForMultipleObjectsEx kernel32
WaitForSingleObject kernel32
WaitForSingleObjectEx kernel32
WaitMessage user32
WaitNamedPipe kernel32
WantArrows comdlg32
waveInAddBuffer winmm
waveInClose winmm
waveInGetDevCaps winmm
waveInGetErrorText winmm
waveInGetID winmm
waveInGetNumDevs winmm
waveInGetPosition winmm
waveInMessage winmm
waveInOpen winmm
waveInPrepareHeader winmm
waveInReset winmm
waveInStart winmm
waveInStop winmm
waveInUnprepareHeader winmm
waveOutBreakLoop winmm
waveOutClose winmm
waveOutGetDevCaps winmm
waveOutGetErrorText winmm
waveOutGetID winmm
waveOutGetNumDevs winmm
waveOutGetPitch winmm
waveOutGetPlaybackRate winmm
waveOutGetPosition winmm
waveOutGetVolume winmm
waveOutMessage winmm
waveOutOpen winmm
waveOutPause winmm
waveOutPrepareHeader winmm
waveOutReset winmm
waveOutRestart winmm
waveOutSetPitch winmm
waveOutSetPlaybackRate winmm
waveOutSetVolume winmm
waveOutUnprepareHeader winmm
waveOutWrite winmm
WdtpInterfacePointer_UserFree ole32
WdtpInterfacePointer_UserMarshal ole32
WdtpInterfacePointer_UserSize ole32
WdtpInterfacePointer_UserUnmarshal ole32
WEP wsock32
wglChoosePixelFormat opengl32
wglCopyContext opengl32
wglCreateContext opengl32
wglCreateLayerContext opengl32
wglDeleteContext opengl32
wglDescribeLayerPlane opengl32
wglDescribePixelFormat opengl32
wglGetCurrentContext opengl32
wglGetCurrentDC opengl32
wglGetDefaultProcAddress opengl32
wglGetLayerPaletteEntries opengl32
wglGetPixelFormat opengl32
wglGetProcAddress opengl32
wglMakeCurrent opengl32
wglRealizeLayerPalette opengl32
wglSetLayerPaletteEntries opengl32
wglSetPixelFormat opengl32
wglShareLists opengl32
wglSwapBuffers opengl32
wglSwapLayerBuffers opengl32
wglUseFontBitmaps opengl32
wglUseFontOutlines opengl32
WideCharToMultiByte kernel32
WidenPath gdi32
WindowFromDC user32
WindowFromPoint user32
WinExec kernel32
WinHelp user32
winmmf_ThunkData32 winmm
winmmsl_ThunkData32 winmm
WINNLSDefIMEProc user32
WINNLSEnableIME user32
WINNLSGetEnableStatus user32
WINNLSGetIMEHandle user32
WINNLSGetIMEHotkey user32
WINNLSGetIMEStatus user32
WINNLSGetKeyState user32
WINNLSPostAppMessage user32
WINNLSSendAppMessage user32
WINNLSSendString user32
WINNLSSetIMEHandle user32
WINNLSSetIMEHotkey user32
WINNLSSetIMEStatus user32
WINNLSSetKeyState user32
WinOldAppHackoMatic user32
WNDPROC_CALLBACK user32
WNetAddConnection mpr
WNetAddConnection2 mpr
WNetAddConnection3 mpr
WNetCachePassword mpr
WNetCancelConnection mpr
WNetCancelConnection2 mpr
WNetCloseEnum mpr
WNetConnectionDialog mpr
WNetConnectionDialog1 mpr
WNetDisconnectDialog mpr
WNetDisconnectDialog1 mpr
WNetEnumCachedPasswords mpr
WNetEnumResource mpr
WNetFormatNetworkName mpr
WNetGetCachedPassword mpr
WNetGetConnection mpr
WNetGetHomeDirectory mpr
WNetGetLastError mpr
WNetGetNetworkInformation mpr
WNetGetProviderName mpr
WNetGetResourceInformation mpr
WNetGetResourceParent mpr
WNetGetUniversalName mpr
WNetGetUser mpr
WNetLogoff mpr
WNetLogon mpr
WNetOpenEnum mpr
WNetRemoveCachedPassword mpr
WNetRestoreConnection mpr
WNetSetConnection mpr
WNetUseConnection mpr
WNetVerifyPassword mpr
WOWCallback16 wow32
WOWCallback16Ex wow32
WOWDirectedYield16 wow32
WOWGetVDMPointer wow32
WOWGetVDMPointerFix wow32
WOWGetVDMPointerUnfix wow32
WOWGlobalAlloc16 wow32
WOWGlobalAllocLock16 wow32
WOWGlobalFree16 wow32
WOWGlobalLock16 wow32
WOWGlobalLockSize16 wow32
WOWGlobalUnlock16 wow32
WOWGlobalUnlockFree16 wow32
WOWHandle16 wow32
WOWHandle32 wow32
WOWYield16 wow32
WrapCompressedRTFStream mapi32
WrapCompressedRTFStream@12 mapi32
WrapProgress@20 mapi32
WrapStoreEntryID@24 mapi32
WriteClassStg ole32
WriteClassStm ole32
WriteConsole kernel32
WriteConsoleInput kernel32
WriteConsoleOutput kernel32
WriteConsoleOutputAttribute kernel32
WriteConsoleOutputCharacter kernel32
WriteFile kernel32
WriteFileEx kernel32
WriteFileGather kernel32
WriteFmtUserTypeStg ole32
WriteOleStg ole32
WritePrivateProfileSection kernel32
WritePrivateProfileString kernel32
WritePrivateProfileStruct kernel32
WriteProcessMemory kernel32
WriteProfileSection kernel32
WriteProfileString kernel32
WriteStringStream ole32
WriteTapemark kernel32
WSAAsyncGetHostByAddr wsock32
WSAAsyncGetHostByName wsock32
WSAAsyncGetProtoByName wsock32
WSAAsyncGetProtoByNumber wsock32
WSAAsyncGetServByName wsock32
WSAAsyncGetServByPort wsock32
WSAAsyncSelect wsock32
WSACancelAsyncRequest wsock32
WSACancelBlockingCall wsock32
WSACleanup wsock32
WSAGetLastError wsock32
WSAIsBlocking wsock32
WSApSetPostRoutine wsock32
WSARecvEx wsock32
WSASetBlockingHook wsock32
WSASetLastError wsock32
WSAStartup wsock32
WSAUnhookBlockingHook wsock32
WsControl wsock32
wsExistDlg tapi32
WSHEnumProtocols wsock32
wsprintf user32
wvsprintf user32