   ::MessageBox
if(!InitWindowsApp(hInstance, nShowCmd)) {::MessageBox(0, "Init - Failed", "Error", MB_OK);return 0;}what is the purpose of the "::" operators at the beginning of the messagebox function?   
  The :: tells the compiler to use the MessageBox function at the global scope - i.e. not within any classes or namespaces. This is useful if you are, for example, using a class that contains a function called MessageBox but you want to call the Win32 function by the same name.   ;  "::" without left operand make it use global namespace's MessageBox function.The left operand indicate the object(class), the right operand indicate member function/variable.Example:class example {public:  static int Hello;  static MessageBox(){};};void main {  example::Hello = 15; // This will set "example" class's static variable "Hello" to 15  example::MessageBox(); // This will call "example" class's static function "MessageBox"}   