title: Is it necessary to use InitCommonControlsEx() and InitCommonControls()?
body: <p>I'm completely new to win32. I have been working on it the last 48 hours. </p>
  
  <p>I'm trying to build a <strong>"grid"</strong>, and I got examples of a  <strong>List-View control</strong> and a <strong>Header control</strong> on msdn.microsoft.com . </p>
  
  <p>The first one calls the InitCommonControls() function (besides I read this function is obsolete).</p>
  
  <pre><code>HWND DoCreateHeader(HWND hwndParent, HINSTANCE hInst) 
  { 
      HWND hwndHeader; 
      RECT rcParent; 
      HDLAYOUT hdl; 
      WINDOWPOS wp; 
  
      // Ensure that the common control DLL is loaded, and then create 
      // the header control. 
      InitCommonControls(); 
  
      // ...
  
      // hwndHeader = CreateWindowEx(0, WC_HEADER, ...
  }
  </code></pre>
  
  <p>The second one calls the InitCommonControlsEx() function.</p>
  
  <pre><code>HWND CreateListView (HWND hwndParent, HINSTANCE hInst) 
  {     
      RECT rcl; 
      INITCOMMONCONTROLSEX icex;
  
      // Ensure that the common control DLL is loaded. 
      icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
      icex.dwICC  = ICC_LISTVIEW_CLASSES;
      InitCommonControlsEx(&amp;icex); 
  
      // ...
  
      // HWND hWndListView = CreateWindow(WC_LISTVIEW ...
  }
  </code></pre>
  
  <p>Seems these functions need comctl32.lib library, but download it is a mess. </p>
  
  <p>Furthermore I have noticed that if I remove these functions, everything keeps working well. <strong>Then, are they necessary?</strong> </p>
  
  <p>Thanks! </p>