API.H
上传用户:guoxiu1214
上传日期:2019-02-27
资源大小:876k
文件大小:3k
源码类别:

多显示器编程

开发平台:

Visual C++

  1. /*******************************************************************************
  2. Copyright Datapath Ltd. 1997, 2006.
  3. File:    api.h
  4. Purpose: Declarations of functions to help with loading DLLs and obtaining
  5.          pointers to functions within those DLLs.
  6. History:
  7.          20 MAY 97    JH   Created.
  8.          30 MAR 98    JH   Made C++ compatible.
  9.          05 DEC 01    JH   Added APILoadLibrary, APIFreeLibrary and
  10.                            APILoadInterface.
  11.          06 MAY 06    JH   Ported to Unicode.
  12. *******************************************************************************/
  13. #define API_ERROR_BASE                                   0x00050000
  14. #define API_ERROR_UNABLE_TO_OPEN_KEY                     ( API_ERROR_BASE + 0 )
  15. #define API_ERROR_UNABLE_TO_READ_VALUE                   ( API_ERROR_BASE + 1 )
  16. #define API_ERROR_UNABLE_TO_LOAD_DLL                     ( API_ERROR_BASE + 2 )
  17. #define API_ERROR_INCOMPATIBLE_API                       ( API_ERROR_BASE + 3 )
  18. /******************************************************************************/
  19. #ifndef FAR
  20. #define FAR
  21. #endif
  22. #if ( defined linux )
  23. #elif ( defined WIN32 )
  24.    #if (( defined KERNEL_MODE ) || ( defined _UNICODE ) || ( defined UNICODE ))
  25.       typedef wchar_t   APICHAR;
  26.    #else
  27.       typedef char      APICHAR;
  28.    #endif
  29. #else /* WIN16 */
  30.    typedef char         APICHAR;
  31. #endif
  32. typedef APICHAR   FAR *LPAPICHAR;
  33. typedef APICHAR   const FAR *LPCAPICHAR;
  34. typedef void (APIFN) ( void );
  35. typedef struct
  36. {
  37. #if 1
  38.    FARPROC  *PFnPtr;
  39.    LPCSTR   FnName;
  40. #else
  41.    APIFN    *PFnPtr;
  42.    char     *FnName;
  43. #endif
  44. }  APIFNENTRY, FAR *LPAPIFNENTRY, FAR *LPAPIFNLIST;
  45. typedef void *HAPILIB;
  46. #ifdef __cplusplus
  47. extern "C"
  48. {
  49. #endif
  50. #if 1
  51. extern unsigned long
  52. APILoadLibrary (
  53.    LPCAPICHAR  pDriverName,
  54.    HINSTANCE   FAR *pHInstance );
  55. extern unsigned long
  56. APIFreeLibrary (
  57.    HINSTANCE   hInstance );
  58. extern int
  59. APILoadFunctions (
  60.    HINSTANCE   hInstance,
  61.    LPAPIFNLIST lpFnList,
  62.    void        *pReserved );
  63. extern unsigned long
  64. APILoadInterface (
  65.    LPCAPICHAR  lpSectionName,
  66.    LPCAPICHAR  lpValueName,
  67.    LPAPIFNLIST lpFnList,
  68.    HINSTANCE   *lpHInstance );
  69. #else
  70. APILoadLibrary (
  71.    LPCAPICHAR  pDriverName,
  72.    HAPILIB     FAR *pHInstance );
  73. extern unsigned long
  74. APIFreeLibrary (
  75.    HAPILIB     hInstance );
  76. extern int
  77. APILoadFunctions (
  78.    HAPILIB     hInstance,
  79.    LPAPIFNLIST lpFnList,
  80.    void        *pReserved );
  81. extern unsigned long
  82. APILoadInterface (
  83.    LPCAPICHAR  lpSectionName,
  84.    LPCAPICHAR  lpValueName,
  85.    LPAPIFNLIST lpFnList,
  86.    HAPILIB     *lpHInstance );
  87. #endif
  88. #ifdef __cplusplus
  89. }
  90. #endif
  91. /******************************************************************************/