typedef int (WINAPI *_TE0300_Open)(unsigned int* PHandle, int CardNo);
This line typedefs a function pointer to a WINAPI calling convention function returning an int, and taking an unsigned int * and an int. The function pointer type is given the alias _TE0300_Open.
Consider the following example:
typedef void (*func)(); void foo (func f) //notice we have a nice type name here { cout << "Calling function..."; f(); } void bar(){} int main() { foo (bar); }
I believe C++11 added support for less icky syntax when using function pointers as well:
using func = void (*)();
As for your GetProcAddress call, this loads a function from a library. You assign it to a function pointer, and you can use that function pointer as you would the original function.
In your example, you can now call TE0300_Open as you would normally call _TE0300_Open. It should also be noted that _TE0300_Open is a name that is reserved for the implementation.