title: Why need to use "WINAPI*" for the Syntax for declaring function pointers for functions in a DLL
body: <p>I have a  C++ console application &amp; a DLL. In the C++ application I see the following snippet ::</p>
  
  <pre><code>typedef DWORD (WINAPI* functABC)(unsigned long*);
  
  functABC functABC111;
  HMODULE handleDLL = LOadLibrary("a.DLL");
  functABC111 = (functABC)GetProcAddress(handleDLL,"function_1");
  </code></pre>
  
  <p>At a high level I understand that we are getting the function pointer to the function in a.DLL "function_1()".</p>
  
  <p>But want to understand the 1st 2 lines in the above snippet ::</p>
  
  <pre><code>typedef DWORD (WINAPI* functABC)(unsigned long*);
  functABC functABC111;
  </code></pre>
  
  <p>2 questions ::
  1) Is the name "functABC" just a random function pointer name?<br>
  2) What are we technically doing in these 2 lines. Declaring function pointer.<br>
  3) Why do we need to use WINAPI* in the function pointer declaration in 1st line.         </p>
  
  <p>THanks in advance.</p>