Parece la definición del tipo de datos LPRRFUNCTIONEXT
como puntero a una función devuelve un valor "double" y
toma dos argumentos: un "double" y un "LPARAM"
"_IMPLEMENTATION" seguramente es un modificador que
afecta a la convencion de llamada a la funcion.
Por ejemplo, un modificador de la convención de llamada
es "CALLBACK". Así yo puedo declarar un puntero a
una funcion de ventana llamado PFUNCIONVENTANA así:
LRESULT (CALLBACK *PFUNCIONVENTANA)(HWND, UINT, WPARAM, LPARAM);
O puedo declarar el tipo de datos PTRFVENTANA así:
typedef LRESULT (CALLBACK *PTRFVENTANA)(HWND, UINT, WPARAM, LPARAM);
Y luego usarlo para declarar punteros a funciones de ventana así:
PTRFVENTANA pFuncionDeVentana;
pFuncionDeVentana = windowproc;
donde windowproc es la funcion de ventana y las funciones
declaradas de esta manera se llamarían así:
retorno = (pFuncionDeVentana)(hwnd, codigomensaje, valor1, valor2);