Interpreting Error Messages Affected by STRICT
Enabling STRICT type checking may affect the kind of error messages you receive. With STRICT enabled, all handle types are defined as pointer types. When you incorrectly use these types (for example, passing an int where an HDC is expected), you will get warning messages referring to errors in pointer indirection.
STRICT also requires that FARPROC function pointers be recast as more specific function pointer types such as DLGPROC. However, MakeProcInstance and FreeProcInstance still work with the FARPROC type. If you do not cast between FARPROC and the appropriate function pointer type, the compiler will warn you about an error in function parameter lists.
Note that using MakeProcInstance is useful for portability, if you want to use the same source to compile for Windows 3.x. Under Win32, however, MakeProcInstance performs no operation, but returns the function name.