It is currently Sun Sep 15, 2019 11:33 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Total Commander Plugin Support For PB
PostPosted: Tue Jun 10, 2003 7:44 am 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Sat Apr 26, 2003 8:27 am
Posts: 4229
Location: Strasbourg / France
Total Commander Plugin Support For PB

The following libraries provide an interface to TotalCMD plugins.

1. PureWLX

  Provides an interface to TotalCMD lister plugins (*.wlx).
  Available functions : http://gnozal.ucoz.com/PureWLX_.htm

2. PureWCX

  Provides an interface to TotalCMD archive plugins (*.wcx), with functions to list, compress or extract files from archives.
  Available functions : http://gnozal.ucoz.com/PureWCX_.htm

Downloads :
Only available for Purebasic Windows x86
PureWLX :
  PB 4.3x : http://gnozal.ucoz.com/PureWLX_430.zip
  PB 4.4x : http://gnozal.ucoz.com/PureWLX_440.zip
  PB 4.5x : http://gnozal.ucoz.com/PureWLX_450.zip
  PB 4.6x : http://gnozal.ucoz.com/PureWLX_460.zip
  PB 5.0x : http://gnozal.ucoz.com/PureWLX_500.zip
PureWCX :
  PB4.3x : http://gnozal.ucoz.com/PureWCX_430.zip
  PB4.4x : http://gnozal.ucoz.com/PureWCX_440.zip
  PB4.5x : http://gnozal.ucoz.com/PureWCX_450.zip
  PB4.6x : http://gnozal.ucoz.com/PureWCX_460.zip
  PB5.0x : http://gnozal.ucoz.com/PureWCX_500.zip

Code examples :
Code:
Enumeration
  #WLXWindow
EndEnumeration
Enumeration
  #WLXContainer
  #LoadFile
  #PrintFile
EndEnumeration
;
; Download plugin from http://www.totalcmd.net/plugring/imagine.html
*WLX_Plugin = PureWLX_LoadPlugin("c:\WINNT\wincmd\Imagine\Imagine.wlx")
If *WLX_Plugin
  ;
  PluginSupportsUpdatePluginWindow = PureWLX_PluginSupportsUpdatePluginWindow(*WLX_Plugin)
  ;
  If OpenWindow(#WLXWindow, 400, 216, 446, 431, "WLX Test", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_SizeGadget)
    ButtonGadget(#LoadFile, 10, 399, 113, 26, "LoadFile")
    ButtonGadget(#PrintFile, 324, 399, 113, 26, "Print")
    TextGadget(#WLXContainer, 10, 10, 427, 384, "")
    PluginParent = GadgetID(#WLXContainer)
    PureRESIZE_SetGadgetResize(#WLXContainer, 1, 1, 1, 1)
    PureRESIZE_SetGadgetResize(#LoadFile, 1, 0, 0, 1)
    PureRESIZE_SetGadgetResize(#PrintFile, 0, 0, 1, 1)
  EndIf
  ;
  Repeat
    Event = WaitWindowEvent()
    Select Event
      Case #PB_Event_Gadget
        EventGadget = EventGadget()
        EventType = EventType()
        If EventGadget = #LoadFile
          SupportedFile$ = #PB_Compiler_Home + "Examples\Sources\Data\clouds.jpg"
          SupportedFile$ = OpenFileRequester("Select a supported file", SupportedFile$, "*.*", 0)
          If SupportedFile$
            If PluginSupportsUpdatePluginWindow And PluginWindow
              If PureWLX_UpdatePluginWindow(*WLX_Plugin, PluginParent, PluginWindow, SupportedFile$, #lcp_center) = #False
                MessageRequester("ERROR", "PureWLX_UpdatePluginWindow()" + Chr(10) + "Unsupported file ?")
              EndIf
            Else
              If PluginWindow
                PureWLX_ClosePluginWindow(*WLX_Plugin, PluginWindow)
              EndIf
              PluginWindow = PureWLX_CreatePluginWindow(*WLX_Plugin, PluginParent, SupportedFile$, #lcp_center, #True)
              If PluginWindow = #Null
                MessageRequester("ERROR", "PureWLX_CreatePluginWindow()" + Chr(10) + "Unsupported file ?")
              EndIf
            EndIf
          EndIf
        ElseIf EventGadget = #PrintFile
          If FileSize(SupportedFile$) > 0 And PluginWindow
            If PureWLX_PrintFile(*WLX_Plugin, PluginWindow, SupportedFile$, "") = #False
              MessageRequester("ERROR", "PureWLX_PrintFile()")
            EndIf
          EndIf
        EndIf
      Case #PB_Event_CloseWindow
        PureWLX_ClosePluginWindow(*WLX_Plugin, PluginWindow)
        CloseWindow(#WLXWindow)
        Break
    EndSelect
  ForEver
  ;
  PureWLX_FreePlugin(*WLX_Plugin)
Else
  MessageRequester("ERROR", "PureWLX_LoadPlugin()")
EndIf
End

Code:
*SevenZIP = PureWCX_LoadPlugin("c:\WinNT\WinCmd\7-Zip\7zip.wcx")
If *SevenZIP
  hArc = PureWCX_OpenArchive(*SevenZIP, "c:\PureBasic430\Program\wcx\Test-pack.7z")
  If hArc
    While PureWCX_GetFileInfo(*SevenZIP, hArc, @HeaderData.PureWCXFileInfo)
      Debug "Archive name  : " + HeaderData\ArcName
      Debug "Archived file : " + HeaderData\Filename
      Debug "Archived file packed size   : "  + Str(HeaderData\PackSize)
      Debug "Archived file unpacked size : " + Str(HeaderData\UnpSize)
      PureWCX_NextFile(*SevenZIP, hArc)
    Wend
    PureWCX_CloseArchive(*SevenZIP, hArc)
  EndIf
  PureWCX_FreePlugin(*SevenZIP)
EndIf
End

Code:
Procedure MyWCXCallback(*Filename, Size.l)
  ;
  ; *Filename : currently processed filename
  ; Size      : number of bytes processed since the previous call to the function
  ;             Some plugins send negative percent values [-1 : 1% ... -100 : 100%]
  ;
  If *Filename
    Debug "Callback -> " + PeekS(*Filename, #PB_Any, #PB_Ascii) + " -> " + Str(Size)
  EndIf
  ;
  ; IMPORTANT : return #True to continue, #False to cancel archive processing
  ;
  ProcedureReturn #True
EndProcedure
;
; Extract files in archive
;
*SevenZIP = PureWCX_LoadPlugin("c:\WinNT\WinCmd\7-Zip\7zip.wcx")
If *SevenZIP
  ; Optional callback
  PureWCX_SetCallback(*SevenZIP, @MyWCXCallback())
  ;
  hArc = PureWCX_OpenArchive(*SevenZIP, "c:\PureBasic430\Program\wcx\Test-pack.7z")
  If hArc
    While PureWCX_GetFileInfo(*SevenZIP, hArc, @HeaderData.PureWCXFileInfo)
      Debug "Archive name  : " + HeaderData\ArcName
      Debug "Archived file : " + HeaderData\Filename
      Debug "Archived file packed size   : "  + Str(HeaderData\PackSize)
      Debug "Archived file unpacked size : " + Str(HeaderData\UnpSize)
      ; Extract with archived path
      If PureWCX_ExtractFile(*SevenZIP, hArc, "c:\PureBasic430\Program\wcx\extraction\" + GetPathPart(HeaderData\Filename)) = #False
        Debug "EXTRACTION FAILED !!!"
      EndIf
      ; Extract without archived path
      ; PureWCX_ExtractFile(*SevenZIP, hArc, "c:\PureBasic430\Program\wcx\extraction\")
    Wend
    PureWCX_CloseArchive(*SevenZIP, hArc)
  EndIf
  PureWCX_FreePlugin(*SevenZIP)
EndIf
End


Last edited by gnozal on Tue Apr 15, 2008 1:48 pm, edited 13 times in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: Total Commander Plugin Support For PB
PostPosted: Tue Aug 02, 2011 12:38 pm 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Sat Apr 26, 2003 8:27 am
Posts: 4229
Location: Strasbourg / France
Update (PureWCX PB4.60 version)

Changes :
- added unicode functions to support unicode only packer plugins like the new 7zip.wcx (version >= 0.750).
  (see PureWCX-U.chm)

_________________
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye