home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kompon / d5 / cak / CAKDIR.ZIP / Winex32.pas < prev   
Pascal/Delphi Source File  |  2001-03-17  |  4KB  |  149 lines

  1. unit WINEX32;
  2. {**************************************************************************}
  3. {                                                                          }
  4. {    This C DLL header file first (automatic) conversion generated by:     }
  5. {    HeadConv 4.0 (c) 1999 by Bob Swart (aka Dr.Bob - www.drbob42.com)     }
  6. {      FINAL DELPHI-JEDI COMMANDLINE EDITION                               }
  7. {                                                                          }
  8. {    Generated Date: 2000/12/23                                            }
  9. {    Generated Time: 08:34:24 AM                                              }
  10. {                                                                          }
  11. {**************************************************************************}
  12.  
  13. interface
  14. uses
  15.  Sysutils,           
  16. {$IFDEF WIN32}
  17.   Windows;
  18. {$ELSE}
  19.   Wintypes, WinProcs;
  20. {$ENDIF}
  21.  
  22.  
  23. {=> WINEX32.H <=}
  24.  
  25. {$IFNDEF _WINEX32_EXPORT_H_}
  26. {$DEFINE _WINEX32_EXPORT_H_}
  27.  
  28. procedure LoadDLL;
  29.  
  30. const
  31.   EX_MAX_BUFF = 40000; {//ì┼æσé╠âoâtâ@âTâCâY}
  32. {const
  33.   DLL_EXPORT = __declspec(dllexport);}
  34.  
  35. {///ö╗ò╩é╖éΘâoâCâgÉö }
  36. const
  37.   BUFFSIZE_256 = 256;
  38. const
  39.   BUFFSIZE_512 = 512;
  40. const
  41.   BUFFSIZE_1000 = 1000;
  42. const
  43.   BUFFSIZE_2000 = 2000;
  44. const
  45.   BUFFSIZE_3000 = 3000;
  46. const
  47.   BUFFSIZE_6000 = 6000;
  48. const
  49.   BUFFSIZE_12000 = 12000;
  50. const
  51.   BUFFSIZE_24000 = 24000;
  52. const
  53.   BUFFSIZE_35000 = 35000;
  54. const
  55.   BUFFSIZE_40000 = 40000;
  56.  
  57. {///âfü[â^é≡èiö[é╖éΘì\æóæ╠ }
  58. type
  59.   ExInfo = record
  60.     szFileEx: Array[0..512-1] of Char;
  61.     szExInfo1: Array[0..256-1] of Char;
  62.     szExInfo2: Array[0..512-1] of Char;
  63.   end {ExInfo};
  64.  
  65.  
  66. var
  67.   WinExGetInfo: function(pcszFileName: PCHAR;
  68.                          nBuffLen: Integer; 
  69.                          var data: EXINFO;
  70.                          dwFlag: LongInt) : longint; {$IFDEF WIN32} stdcall {$ENDIF};
  71. var
  72.   WinExGetVersion: function: longint; {$IFDEF WIN32} stdcall {$ENDIF}; 
  73. var
  74.   WinExGetExNumKind: function: longint; {$IFDEF WIN32} stdcall {$ENDIF}; 
  75. var
  76.   WinExGetExNumPattern: function: longint; {$IFDEF WIN32} stdcall {$ENDIF}; 
  77. var
  78.   WinExGetFileCRC: function(var pcszFileName: PCHAR): Integer {$IFDEF WIN32} stdcall {$ENDIF}; 
  79.  
  80. {$ENDIF //_WINEX32_EXPORT_H_}
  81.  
  82. var
  83.   DLLLoaded: Boolean { is DLL (dynamically) loaded already? }
  84.     {$IFDEF WIN32} = False; {$ENDIF}
  85.  
  86. implementation
  87.  
  88. var
  89.   SaveExit: pointer;
  90.   DLLHandle: THandle;
  91. {$IFNDEF MSDOS}
  92.   ErrorMode: Integer;
  93. {$ENDIF}
  94.  
  95.   procedure NewExit; far;
  96.   begin
  97.     ExitProc := SaveExit;
  98.     FreeLibrary(DLLHandle)
  99.   end {NewExit};
  100.  
  101. procedure LoadDLL;
  102.  
  103. begin
  104.   if DLLLoaded then Exit;
  105. {$IFNDEF MSDOS}
  106.   ErrorMode := SetErrorMode($8000{SEM_NoOpenFileErrorBox});
  107. {$ENDIF}
  108.  
  109.   DLLHandle := LoadLibrary('WINEX32.DLL');
  110.   if DLLHandle >= 32 then
  111.   begin
  112.     DLLLoaded := True;
  113.     SaveExit := ExitProc;
  114.     ExitProc := @NewExit;
  115.     @WinExGetInfo := GetProcAddress(DLLHandle,'WinExGetInfo');
  116.   {$IFDEF WIN32}
  117.     Assert(@WinExGetInfo <> nil);
  118.   {$ENDIF}
  119.     @WinExGetVersion := GetProcAddress(DLLHandle,'WinExGetVersion');
  120.   {$IFDEF WIN32}
  121.     Assert(@WinExGetVersion <> nil);
  122.   {$ENDIF}
  123.     @WinExGetExNumKind := GetProcAddress(DLLHandle,'WinExGetExNumKind');
  124.   {$IFDEF WIN32}
  125.     Assert(@WinExGetExNumKind <> nil);
  126.   {$ENDIF}
  127.     @WinExGetExNumPattern := GetProcAddress(DLLHandle,'WinExGetExNumPattern');
  128.   {$IFDEF WIN32}
  129.     Assert(@WinExGetExNumPattern <> nil);
  130.   {$ENDIF}
  131.     @WinExGetFileCRC := GetProcAddress(DLLHandle,'WinExGetFileCRC');
  132.   {$IFDEF WIN32}
  133.     Assert(@WinExGetFileCRC <> nil);
  134.   {$ENDIF}
  135.   end
  136.   else
  137.   begin
  138.     DLLLoaded := False;
  139.     { Error: WINEX32.DLL could not be loaded !! }
  140.   end;
  141. {$IFNDEF MSDOS}
  142.   SetErrorMode(ErrorMode)
  143. {$ENDIF}
  144. end {LoadDLL};
  145.  
  146. begin
  147.   LoadDLL;
  148. end.
  149.