home *** CD-ROM | disk | FTP | other *** search
/ BUG 4 / BUGCD1997_05.BIN / aplic / clip4win / clip4win.exe / C4W30E.HUF / INCLUDE / DLL.CH < prev    next >
Text File  |  1995-05-24  |  4KB  |  122 lines

  1. ////////////////////////////
  2. //
  3. //    Clip-4-Win DLL / CallDLL() definitions
  4. //
  5. //    Copyright (C) 1994 Skelton Software, Kendal Cottage, Hillam, Leeds, UK.
  6. //    All Rights Reserved.
  7. //
  8. ////////////////////////////
  9.  
  10. #ifdef    RC_INVOKED
  11.   #ifndef    C4W_DLL_CH
  12.   #define    C4W_DLL_CH
  13.   #endif
  14. #endif
  15.  
  16. #ifdef    WORKSHOP_INVOKED
  17.   #ifndef    C4W_DLL_CH
  18.   #define    C4W_DLL_CH
  19.   #endif
  20. #endif
  21.  
  22.  
  23. #ifndef    C4W_DLL_CH
  24. #define    C4W_DLL_CH
  25.  
  26. #xtranslate _IF_(.T., [<t>], [<f>])    => <t>
  27. #xtranslate _IF_(.F., [<t>], [<f>])    => <f>
  28.  
  29. #xtranslate _NOREF_    =>
  30. #xtranslate _NOREF_ @    =>
  31.  
  32. #command _DLL [<static:STATIC>]                        ;
  33.          FUNCTION <name>( [<p1> AS <type1>]                ;
  34.                           [, <pN> AS <typeN>] )                ;
  35.          AS <returnType>                        ;
  36.          [<callType:PASCAL>]                        ;
  37.                                     ;
  38.       => _DLL [<static>]                        ;
  39.          FUNCTION <name>( [<p1> AS <type1>]                ;
  40.                           [, <pN> AS <typeN>] )                ;
  41.          AS <returnType>                        ;
  42.          PASCAL:.<name>
  43.  
  44. #command _DLL [<static:STATIC>]                        ;
  45.          FUNCTION <name>( [<p1> AS <type1>,]                ;
  46.                           <pR> REF <typeR>                ;
  47.                           [, <pN> <asr: AS, REF> <typeN>] )        ;
  48.          AS <returnType>                        ;
  49.          [<callType:PASCAL,C>]:[<lib>].<entryName>            ;
  50.                                     ;
  51.       => _DLL <static>                            ;
  52.          FUNCTION <name>( [<p1> AS <type1>,]                ;
  53.                           @<pR> AS <typeR>                ;
  54.                           [, <pN> <asr> <typeN>] )            ;
  55.          AS <returnType>                        ;
  56.          <callType>:<lib>.<entryName>
  57.  
  58. /*
  59. #command _DLL [<static:STATIC>]                        ;
  60.          FUNCTION <name>( [<p1> AS <type1>]                ;
  61.                           [, <pN> AS <typeN>] )                ;
  62.          AS <returnType>                        ;
  63.          [<callType:PASCAL,C>]:.<entryName>                ;
  64.                                     ;
  65.       => [<static>] FUNCTION <name>( _NOREF_ <p1> [, _NOREF_ <pN>] )    ;
  66.        ; LOCAL _c := GetProcAddress( , <(entryName)>, <(callType)>,    ;
  67.                                      <(returnType)>,            ;
  68.                                      <(type1)> [+"," + <(typeN)>] )    ;
  69.        ; LOCAL _uRet := CallDLL( _c [, <p1>] [, <pN>] )            ;
  70.        ; RETURN _uRet
  71. */
  72.  
  73. #command _DLL [<static:STATIC>]                        ;
  74.          FUNCTION <name>( [<p1> AS <type1>]                ;
  75.                           [, <pN> AS <typeN>] )                ;
  76.          AS <returnType>                        ;
  77.          [<callType:PASCAL,C>]:[<lib>].<entryName>            ;
  78.                                     ;
  79.       => <static> FUNCTION <name>( _NOREF_ <p1> [, _NOREF_ <pN>] )    ;
  80.       [; LOCAL _hLib := LoadLibrary( <(lib)> ) ]            ;
  81.        ; LOCAL _c := GetProcAddress( _IF_(<.lib.>, _hLib, ),        ;
  82.                                      <(entryName)>, <(callType)>,    ;
  83.                                      <(returnType)>,            ;
  84.                                      <(type1)> [+"," + <(typeN)>] )    ;
  85.        ; LOCAL _uRet := CallDLL( _c [, <p1>] [, <pN>] )            ;
  86.        ; IF <.lib.>                            ;
  87.        ;    FreeLibrary( _IF_(<.lib.>, _hLib, ) )            ;
  88.        ; END                                ;
  89.        ; RETURN _uRet
  90.  
  91. #command _NDLL [<static:STATIC>]                    ;
  92.          FUNCTION <name>( [<p1> AS <type1>]                ;
  93.                           [, <pN> AS <typeN>] )                ;
  94.          AS <returnType>                        ;
  95.          [<callType:PASCAL,C>]:<lib>. <entryNum>            ;
  96.                                     ;
  97.       => [<static>] FUNCTION <name>( _NOREF_ <p1> [, _NOREF_ <pN>] )    ;
  98.        ; LOCAL _hLib := LoadLibrary( <(lib)> )                ;
  99.        ; LOCAL _c := GetProcAddress( _hLib, <entryNum>, <(callType)>,    ;
  100.                                      <(returnType)>,            ;
  101.                                      <(type1)> [+"," + <(typeN)>] )    ;
  102.        ; LOCAL _uRet := CallDLL( _c [, <p1>] [, <pN>] )            ;
  103.        ; FreeLibrary( _hLib )                        ;
  104.        ; RETURN _uRet
  105.  
  106. #command _NDLL [<static:STATIC>]                    ;
  107.          FUNCTION <name>( [<p1> AS <type1>,]                ;
  108.                           <pR> REF <typeR>                ;
  109.                           [, <pN> <asr: AS, REF> <typeN>] )        ;
  110.          AS <returnType>                        ;
  111.          [<callType:PASCAL,C>]:[<lib>]. <entryNum>            ;
  112.                                     ;
  113.       => _NDLL <static>                            ;
  114.          FUNCTION <name>( [<p1> AS <type1>,]                ;
  115.                           @<pR> AS <typeR>                ;
  116.                           [, <pN> <asr> <typeN>] )            ;
  117.          AS <returnType>                        ;
  118.          <callType>:<lib>. <entryNum>
  119.  
  120.  
  121. #endif    // C4W_DLL_CH
  122.