diff --git a/ProjectExplorer.pj2 b/ProjectExplorer.pj2
index 409af70..71e05fb 100644
--- a/ProjectExplorer.pj2
+++ b/ProjectExplorer.pj2
@@ -1,253 +1,256 @@
-*--------------------------------------------------------------------------------------------------------------------------------------------------------
-* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
-* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
-*--------------------------------------------------------------------------------------------------------------------------------------------------------
-*< FOXBIN2PRG: Version="1.19" SourceFile="projectexplorer.pjx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
-*
-LPARAMETERS tcDir
-
-lcCurdir = SYS(5)+CURDIR()
-CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) )
-
-*
-_Author = "Doug Hennig"
-_Company = ""
-_Address = ""
-_City = "Winnipeg"
-_State = "MB"
-_PostalCode = ""
-_Country = "Canada"
-*--
-_Comments = ""
-_CompanyName = " "
-_FileDescription = " "
-_LegalCopyright = ""
-_LegalTrademark = ""
-_ProductName = " "
-_MajorVer = "1"
-_MinorVer = "0"
-_Revision = "0"
-_LanguageID = ""
-_AutoIncrement = "0"
-*
-
-
-*
-
-FOR EACH loProject IN _VFP.Projects FOXOBJECT
- loProject.Close()
-ENDFOR
-
-STRTOFILE( '', '__newproject.f2b' )
-BUILD PROJECT ProjectExplorer.pjx FROM '__newproject.f2b'
-FOR EACH loProject IN _VFP.Projects FOXOBJECT
- loProject.Close()
-ENDFOR
-
-MODIFY PROJECT 'ProjectExplorer.pjx' NOWAIT NOSHOW NOPROJECTHOOK
-
-loProject = _VFP.Projects('ProjectExplorer.pjx')
-
-WITH loProject.FILES
- .ADD('addins\template.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\apiapprun.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\categoriessource.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\changefilename.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\closefile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\copyproperties.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\executefile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getassociation.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getchecksum.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getdatetimefromtimestamp.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getproperfilecase.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getrelativepath.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\gettimestampfromdatetime.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\getvfpbinaryotherfile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\images\projectexplorer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreractivedoc.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreradd.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreradd.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreradded.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerapplication.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerbuildsolution.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerbuildsolution.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercategory.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercheckbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerclasslib.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerclean.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercleanup.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercleanup.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercode.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercollapse.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercollapse.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercollection.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercombobox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercommandbutton.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercommandgroup.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercommit.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercommit.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerconnection.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercontainer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercursor.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercursoradapter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorercustom.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerdatabase.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerdataenvironment.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorereditbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerexcluded.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerexpand.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerexpand.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerfetch.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerfield.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerfilter.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerfilter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerform.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerformset.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorergoback.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorergrid.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerhyperlink.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerignored.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerimage.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerindex.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerlabel.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerlabels.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerlibrary.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerline.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerlistbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerlocalview.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorermenu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorermenu.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorermodified.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorermodify.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorernewfile.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorernewfile.msk') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreroleboundcontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerolecontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreropen.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreroptionbutton.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreroptiongroup.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreroptions.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexploreroptions.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerother.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerpage.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerpageframe.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerproject.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerprojecthook.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerpush.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerquery.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrefresh.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrelation.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerremoteview.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerremove.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerremove.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerremoved.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrepobrowser.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrepobrowser.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerreportlistener.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerreports.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerresolveconflict.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrevert.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrevhistory.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrevhistory.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrun.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerrun.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerseparator.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorershape.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorersortasc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorersortdesc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerspinner.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerstorepro.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertable.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertags.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertext.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertextbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertimer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertobinary.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertoolbar.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorertotext.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerunmerged.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerunversioned.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorervisualdiff.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorervisualdiff.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerxmladapter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerxmlfield.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\projectexplorerxmltable.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\images\vfpxpoweredby.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\isvfpbinaryfile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\messageboxextended.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorer.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\projectexplorerabout.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerbutton.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorercombotree.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorercommondialog.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerctrls.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\projectexplorerctrls.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerengine.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerexplorer.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerfilectrls.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorergetfilename.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorergetinput.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorergetvalidname.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexploreritems.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerlabelledbox.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorermain.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorermenu.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerpersist.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerregistry.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\projectexplorerregistry.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorersettingssource.xml') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\projectexplorersplitter.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerstack.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorertreeview.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\projectexplorertreeview.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\projectexplorerui.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\putprop.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\runcommand.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('source\tagsource.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
- .ADD('source\versionnumber.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
- .ADD('system.app') && *< FileMetadata: Type="Z" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
- *
-
- .ITEM('__newproject.f2b').Remove()
-
- *
- *
-
- *
- .ITEM(lcCurdir + 'addins\template.txt').Exclude = .T.
- .ITEM(lcCurdir + 'source\projectexplorer.h').Exclude = .T.
- .ITEM(lcCurdir + 'source\projectexplorerctrls.h').Exclude = .T.
- .ITEM(lcCurdir + 'source\projectexplorerregistry.h').Exclude = .T.
- .ITEM(lcCurdir + 'source\projectexplorertreeview.h').Exclude = .T.
- .ITEM(lcCurdir + 'source\versionnumber.prg').Exclude = .T.
- .ITEM(lcCurdir + 'system.app').Exclude = .T.
- *
-
- *
- .ITEM(lcCurdir + 'source\projectexplorer.h').Type = 'T'
- .ITEM(lcCurdir + 'source\projectexplorerctrls.h').Type = 'T'
- .ITEM(lcCurdir + 'source\projectexplorerregistry.h').Type = 'T'
- .ITEM(lcCurdir + 'source\projectexplorertreeview.h').Type = 'T'
- *
-ENDWITH
-
-WITH loProject
- *
- .SetMain(lcCurdir + 'source\projectexplorermain.prg')
- .Debug = .T.
- .Encrypted = .F.
- *<.CmntStyle = 1 />
- *<.NoLogo = .F. />
- *<.SaveCode = .T. />
- *<.User = '' />
- .ProjectHookLibrary = ''
- .ProjectHookClass = ''
- *
-ENDWITH
-
-
-_VFP.Projects('ProjectExplorer.pjx').Close()
-*ERASE '__newproject.f2b'
-CD (lcCurdir)
+*--------------------------------------------------------------------------------------------------------------------------------------------------------
+* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
+* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
+*--------------------------------------------------------------------------------------------------------------------------------------------------------
+*< FOXBIN2PRG: Version="1.19" SourceFile="projectexplorer.pjx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
+*
+LPARAMETERS tcDir
+
+lcCurdir = SYS(5)+CURDIR()
+CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) )
+
+*
+_Author = "Doug Hennig"
+_Company = ""
+_Address = ""
+_City = "Winnipeg"
+_State = "MB"
+_PostalCode = ""
+_Country = "Canada"
+*--
+_Comments = ""
+_CompanyName = " "
+_FileDescription = " "
+_LegalCopyright = ""
+_LegalTrademark = ""
+_ProductName = " "
+_MajorVer = "1"
+_MinorVer = "0"
+_Revision = "0"
+_LanguageID = ""
+_AutoIncrement = "0"
+*
+
+
+*
+
+FOR EACH loProject IN _VFP.Projects FOXOBJECT
+ loProject.Close()
+ENDFOR
+
+STRTOFILE( '', '__newproject.f2b' )
+BUILD PROJECT ProjectExplorer.pjx FROM '__newproject.f2b'
+FOR EACH loProject IN _VFP.Projects FOXOBJECT
+ loProject.Close()
+ENDFOR
+
+MODIFY PROJECT 'ProjectExplorer.pjx' NOWAIT NOSHOW NOPROJECTHOOK
+
+loProject = _VFP.Projects('ProjectExplorer.pjx')
+
+WITH loProject.FILES
+ .ADD('addins\template.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDWA==" />
+ .ADD('source\apiapprun.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\bindwinevent.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\categoriessource.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFVA==" />
+ .ADD('source\changefilename.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\closefile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\copyproperties.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\executefile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getassociation.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getchecksum.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getdatetimefromtimestamp.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getproperfilecase.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getrelativepath.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\gettimestampfromdatetime.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\getvfpbinaryotherfile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\images\projectexplorer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHMQ==" />
+ .ADD('source\images\projectexploreractivedoc.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5VA==" />
+ .ADD('source\images\projectexploreradd.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDWg==" />
+ .ADD('source\images\projectexploreradd.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEMQ==" />
+ .ADD('source\images\projectexploreradded.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFQw==" />
+ .ADD('source\images\projectexplorerapplication.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHWA==" />
+ .ADD('source\images\projectexplorerbuildsolution.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDTg==" />
+ .ADD('source\images\projectexplorerbuildsolution.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDTw==" />
+ .ADD('source\images\projectexplorercategory.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFVQ==" />
+ .ADD('source\images\projectexplorercheckbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5VQ==" />
+ .ADD('source\images\projectexplorerclasslib.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5Vg==" />
+ .ADD('source\images\projectexplorerclean.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFRw==" />
+ .ADD('source\images\projectexplorercleanup.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHSA==" />
+ .ADD('source\images\projectexplorercleanup.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHRg==" />
+ .ADD('source\images\projectexplorercode.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5WA==" />
+ .ADD('source\images\projectexplorercollapse.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEWA==" />
+ .ADD('source\images\projectexplorercollapse.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEWg==" />
+ .ADD('source\images\projectexplorercollection.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5WQ==" />
+ .ADD('source\images\projectexplorercombobox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5Wg==" />
+ .ADD('source\images\projectexplorercommandbutton.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBMQ==" />
+ .ADD('source\images\projectexplorercommandgroup.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBMg==" />
+ .ADD('source\images\projectexplorercommit.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThERg==" />
+ .ADD('source\images\projectexplorercommit.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThESA==" />
+ .ADD('source\images\projectexplorerconnection.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDSA==" />
+ .ADD('source\images\projectexplorercontainer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBNA==" />
+ .ADD('source\images\projectexplorercontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBNg==" />
+ .ADD('source\images\projectexplorercursor.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBNw==" />
+ .ADD('source\images\projectexplorercursoradapter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBOA==" />
+ .ADD('source\images\projectexplorercustom.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBQg==" />
+ .ADD('source\images\projectexplorerdatabase.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBQw==" />
+ .ADD('source\images\projectexplorerdataenvironment.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBRQ==" />
+ .ADD('source\images\projectexplorereditbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBRg==" />
+ .ADD('source\images\projectexplorerexcluded.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFUA==" />
+ .ADD('source\images\projectexplorerexpand.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFMA==" />
+ .ADD('source\images\projectexplorerexpand.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFMg==" />
+ .ADD('source\images\projectexplorerfetch.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\images\projectexplorerfield.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHWQ==" />
+ .ADD('source\images\projectexplorerfilter.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIQg==" />
+ .ADD('source\images\projectexplorerfilter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFWA==" />
+ .ADD('source\images\projectexplorerform.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBRw==" />
+ .ADD('source\images\projectexplorerformset.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBSQ==" />
+ .ADD('source\images\projectexplorergoback.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5Ug==" />
+ .ADD('source\images\projectexplorergrid.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBSg==" />
+ .ADD('source\images\projectexplorerhyperlink.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBTA==" />
+ .ADD('source\images\projectexplorerignored.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFSw==" />
+ .ADD('source\images\projectexplorerimage.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBTQ==" />
+ .ADD('source\images\projectexplorerindex.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIMA==" />
+ .ADD('source\images\projectexplorerlabel.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBTw==" />
+ .ADD('source\images\projectexplorerlabels.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBUA==" />
+ .ADD('source\images\projectexplorerlibrary.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIMg==" />
+ .ADD('source\images\projectexplorerline.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBUg==" />
+ .ADD('source\images\projectexplorerlistbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBUw==" />
+ .ADD('source\images\projectexplorerlocalview.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDSQ==" />
+ .ADD('source\images\projectexplorermenu.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThINg==" />
+ .ADD('source\images\projectexplorermenu.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBVQ==" />
+ .ADD('source\images\projectexplorermodified.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFRQ==" />
+ .ADD('source\images\projectexplorermodify.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5Sw==" />
+ .ADD('source\images\projectexplorernewfile.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThENw==" />
+ .ADD('source\images\projectexplorernewfile.msk') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEOQ==" />
+ .ADD('source\images\projectexploreroleboundcontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBVg==" />
+ .ADD('source\images\projectexplorerolecontrol.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBWA==" />
+ .ADD('source\images\projectexploreropen.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThINw==" />
+ .ADD('source\images\projectexploreroptionbutton.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThBWg==" />
+ .ADD('source\images\projectexploreroptiongroup.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCMA==" />
+ .ADD('source\images\projectexploreroptions.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEVA==" />
+ .ADD('source\images\projectexploreroptions.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEVg==" />
+ .ADD('source\images\projectexplorerother.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCMg==" />
+ .ADD('source\images\projectexplorerpage.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCNA==" />
+ .ADD('source\images\projectexplorerpageframe.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCNQ==" />
+ .ADD('source\images\projectexplorerproject.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIMw==" />
+ .ADD('source\images\projectexplorerprojecthook.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCNw==" />
+ .ADD('source\images\projectexplorerpush.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\images\projectexplorerquery.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDSg==" />
+ .ADD('source\images\projectexplorerrefresh.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThENQ==" />
+ .ADD('source\images\projectexplorerrelation.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCOA==" />
+ .ADD('source\images\projectexplorerremoteview.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDTA==" />
+ .ADD('source\images\projectexplorerremove.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEMg==" />
+ .ADD('source\images\projectexplorerremove.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEMw==" />
+ .ADD('source\images\projectexplorerremoved.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFSQ==" />
+ .ADD('source\images\projectexplorerrepobrowser.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThESQ==" />
+ .ADD('source\images\projectexplorerrepobrowser.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThESw==" />
+ .ADD('source\images\projectexplorerreportlistener.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCQQ==" />
+ .ADD('source\images\projectexplorerreports.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCQg==" />
+ .ADD('source\images\projectexplorerresolveconflict.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\images\projectexplorerrevert.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHVg==" />
+ .ADD('source\images\projectexplorerrevhistory.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThETA==" />
+ .ADD('source\images\projectexplorerrevhistory.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThETg==" />
+ .ADD('source\images\projectexplorerrun.bmp') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg5TQ==" />
+ .ADD('source\images\projectexplorerrun.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDUQ==" />
+ .ADD('source\images\projectexplorerseparator.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCRA==" />
+ .ADD('source\images\projectexplorershape.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCWA==" />
+ .ADD('source\images\projectexplorersortasc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFOA==" />
+ .ADD('source\images\projectexplorersortdesc.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFQQ==" />
+ .ADD('source\images\projectexplorerspinner.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThCWg==" />
+ .ADD('source\images\projectexplorerstorepro.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDMA==" />
+ .ADD('source\images\projectexplorertable.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDMg==" />
+ .ADD('source\images\projectexplorertags.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFVw==" />
+ .ADD('source\images\projectexplorertext.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDMw==" />
+ .ADD('source\images\projectexplorertextbox.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDNQ==" />
+ .ADD('source\images\projectexplorertimer.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDNg==" />
+ .ADD('source\images\projectexplorertobinary.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIRg==" />
+ .ADD('source\images\projectexplorertoolbar.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDOA==" />
+ .ADD('source\images\projectexplorertotext.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThIRw==" />
+ .ADD('source\images\projectexplorerunmerged.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\images\projectexplorerunversioned.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFTQ==" />
+ .ADD('source\images\projectexplorervisualdiff.bmp') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEUA==" />
+ .ADD('source\images\projectexplorervisualdiff.msk') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThEUg==" />
+ .ADD('source\images\projectexplorerxmladapter.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDQQ==" />
+ .ADD('source\images\projectexplorerxmlfield.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDQg==" />
+ .ADD('source\images\projectexplorerxmltable.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDRA==" />
+ .ADD('source\images\vfpxpoweredby.gif') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHUQ==" />
+ .ADD('source\isvfpbinaryfile.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\messageboxextended.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\projectexplorer.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTTg3Qg==" />
+ .ADD('source\projectexplorerabout.scx') && *< FileMetadata: Type="K" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTThHTQ==" />
+ .ADD('source\projectexplorerbutton.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3SQ==" />
+ .ADD('source\projectexplorercombotree.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3Sg==" />
+ .ADD('source\projectexplorercommondialog.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTThHMw==" />
+ .ADD('source\projectexplorerctrls.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThDVA==" />
+ .ADD('source\projectexplorerctrls.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3Rw==" />
+ .ADD('source\projectexplorerengine.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3OA==" />
+ .ADD('source\projectexplorerexplorer.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg5SA==" />
+ .ADD('source\projectexplorerfilectrls.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg5RQ==" />
+ .ADD('source\projectexplorergetfilename.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\projectexplorergetinput.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\projectexplorergetvalidname.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\projectexploreritems.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTThFTg==" />
+ .ADD('source\projectexplorerlabelledbox.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3TA==" />
+ .ADD('source\projectexplorermain.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="BwAYAHNvdXJjZVxwcm9qZWN0ZXhwbG9yZXIuaDZ6zHl+USAAc291cmNlXHByb2plY3RleHBsb3JlcnRyZWV2aWV3Lmg+ewZJskodAHNvdXJjZVxwcm9qZWN0ZXhwbG9yZXJjdHJscy5oRnwGSbJKOQBjOlxwcm9ncmFtIGZpbGVzICh4ODYpXG1pY3Jvc29mdCB2aXN1YWwgZm94cHJvIDlcZm94cHJvLmhOfQuCiTEgAHNvdXJjZVxwcm9qZWN0ZXhwbG9yZXJyZWdpc3RyeS5oVn4GSbJKHQBzb3VyY2VccHJvamVjdGV4cGxvcmVyY3RybHMuaF5/BkmySjkAYzpccHJvZ3JhbSBmaWxlcyAoeDg2KVxtaWNyb3NvZnQgdmlzdWFsIGZveHBybyA5XGZveHByby5oZoALgokx" />
+ .ADD('source\projectexplorermenu.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg5SQ==" />
+ .ADD('source\projectexplorerpersist.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg5Qw==" />
+ .ADD('source\projectexplorerregistry.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHQQ==" />
+ .ADD('source\projectexplorerregistry.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3UQ==" />
+ .ADD('source\projectexplorersettingssource.xml') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHVQ==" />
+ .ADD('source\projectexplorersplitter.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3Tw==" />
+ .ADD('source\projectexplorerstack.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3Tg==" />
+ .ADD('source\projectexplorertreeview.h') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThHOA==" />
+ .ADD('source\projectexplorertreeview.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg5Rw==" />
+ .ADD('source\projectexplorerui.vcx') && *< FileMetadata: Type="V" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="XzU4QjBaTTg3RA==" />
+ .ADD('source\putprop.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\runcommand.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\tagsource.dbf') && *< FileMetadata: Type="D" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFNg==" />
+ .ADD('source\unbindwinevents.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('source\versionnumber.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" DevInfo="" />
+ .ADD('source\vfpxwin32eventhandler.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="" />
+ .ADD('system.app') && *< FileMetadata: Type="Z" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" DevInfo="XzU4QjBaTThFWg==" />
+ *
+
+ .ITEM('__newproject.f2b').Remove()
+
+ *
+ *
+
+ *
+ .ITEM(lcCurdir + 'addins\template.txt').Exclude = .T.
+ .ITEM(lcCurdir + 'source\projectexplorer.h').Exclude = .T.
+ .ITEM(lcCurdir + 'source\projectexplorerctrls.h').Exclude = .T.
+ .ITEM(lcCurdir + 'source\projectexplorerregistry.h').Exclude = .T.
+ .ITEM(lcCurdir + 'source\projectexplorertreeview.h').Exclude = .T.
+ .ITEM(lcCurdir + 'source\versionnumber.prg').Exclude = .T.
+ .ITEM(lcCurdir + 'system.app').Exclude = .T.
+ *
+
+ *
+ .ITEM(lcCurdir + 'source\projectexplorer.h').Type = 'T'
+ .ITEM(lcCurdir + 'source\projectexplorerctrls.h').Type = 'T'
+ .ITEM(lcCurdir + 'source\projectexplorerregistry.h').Type = 'T'
+ .ITEM(lcCurdir + 'source\projectexplorertreeview.h').Type = 'T'
+ *
+ENDWITH
+
+WITH loProject
+ *
+ .SetMain(lcCurdir + 'source\projectexplorermain.prg')
+ .Debug = .T.
+ .Encrypted = .F.
+ *<.CmntStyle = 1 />
+ *<.NoLogo = .F. />
+ *<.SaveCode = .T. />
+ *<.User = '' />
+ .ProjectHookLibrary = ''
+ .ProjectHookClass = ''
+ *
+ENDWITH
+
+
+_VFP.Projects('ProjectExplorer.pjx').Close()
+*ERASE '__newproject.f2b'
+CD (lcCurdir)
RETURN
\ No newline at end of file
diff --git a/Source/bindwinevent.PRG b/Source/bindwinevent.PRG
new file mode 100644
index 0000000..cd5019d
--- /dev/null
+++ b/Source/bindwinevent.PRG
@@ -0,0 +1,21 @@
+* Bind Win event
+* Allows multiple bindings for single Win Msg
+LPARAMETERS thWnd, tnMessage, toEventHandler, tcDelegate, tnFlags
+Local lnReturn
+
+IF !PEMSTATUS(_SCREEN,"oEventHandler",5) or IsNull(_Screen.oEventHandler)
+ _SCREEN.NewObject("oEventHandler","VFPxWin32EventHandler","VFPxWin32EventHandler.prg")
+EndIf
+
+DO CASE
+CASE Pcount() = 4
+ lnReturn = _Screen.oEventHandler.BindEvent(thWnd, tnMessage, toEventHandler, tcDelegate)
+CASE Pcount() = 5
+ lnReturn = _Screen.oEventHandler.BindEvent(thWnd, tnMessage, toEventHandler, tcDelegate, tnFlags)
+Otherwise
+ lnReturn = 0
+ Assert .F. Message "BindWinEvent requires 4 or 5 parameters. Syntax: " + Chr(13) + Chr(13) + ;
+ "BindWinEvent(thWnd, tnMessage, toEventHandler, tcDelegate, tnFlags)"
+ENDCASE
+
+Return lnReturn
\ No newline at end of file
diff --git a/Source/foxtabsdeclareapi.prg b/Source/foxtabsdeclareapi.prg
new file mode 100644
index 0000000..f50d3d7
--- /dev/null
+++ b/Source/foxtabsdeclareapi.prg
@@ -0,0 +1,45 @@
+* Declare Win32 API functions
+* Greg Green: The problem is we are both declare Win API functions and then clearing them
+* as part of our clean-up. I have found that by using a function wrapper around the DECLARE - DLL
+* call that you don't have to worry that another program has released a DECLARE of yours.
+* The SET PROCEDURE TO ensures that your program will always find the wrapper.
+FUNCTION CallWindowProc
+LPARAMETERS lpPrevWndFunc, hWnd, nMsg, wParam, lParam
+ Declare Integer CallWindowProc In Win32API Integer lpPrevWndFunc, Integer hWnd, Integer nMsg, Integer wParam, Integer lParam
+ RETURN CallWindowProc(lpPrevWndFunc, hWnd, nMsg, wParam, lParam)
+ENDFUNC
+
+
+FUNCTION GetWindowLong
+LPARAMETERS hWnd, nIndex
+ Declare Integer GetWindowLong In Win32API Integer hWnd, Integer nIndex
+ RETURN GetWindowLong(hWnd, nIndex)
+ENDFUNC
+
+
+FUNCTION FindWindowEx
+LPARAMETERS hWndParent, hwndChildAfter, lpszClass, lpszWindow
+ Declare Integer FindWindowEx In Win32API Integer hWndParent, Integer hwndChildAfter, String lpszClass, String lpszWindow
+ RETURN FindWindowEx(hWndParent, hwndChildAfter, lpszClass, lpszWindow)
+ENDFUNC
+
+
+FUNCTION GetWindowInfo
+LPARAMETERS hWnd, pwindowinfo
+ Declare Integer GetWindowInfo In Win32API Integer hWnd, String @ pwindowinfo
+ RETURN GetWindowInfo(hWnd, @pwindowinfo)
+ENDFUNC
+
+
+FUNCTION GetWindowText
+LPARAMETERS hWnd, szText, nLen
+ Declare Integer GetWindowText In Win32API Integer hWnd, String @szText, Integer nLen
+ RETURN GetWindowText(hWnd, @szText, nLen)
+ENDFUNC
+
+
+FUNCTION GetAncestor
+LPARAMETERS hWnd, gaFlags
+ Declare Integer GetAncestor In Win32API Integer hWnd, Integer gaFlags
+ RETURN GetAncestor(hWnd, gaFlags)
+ENDFUNC
diff --git a/Source/messageboxextended.prg b/Source/messageboxextended.prg
index 35d7e69..332562f 100644
--- a/Source/messageboxextended.prg
+++ b/Source/messageboxextended.prg
@@ -90,9 +90,9 @@ DEFINE CLASS xmbMsgBoxEx AS CUSTOM
OTHERWISE
ENDCASE
- BINDEVENT( 0, 0x06, THIS, 'WndProc' )
+ BindWinEvent( 0, 0x06, THIS, 'WndProc' )
lnoption = MESSAGEBOX(tcCaption, tnIcon + This.nbutttype, tcTitle)
- UNBINDEVENTS( 0, 0x06 )
+ UnBindWinEvents( 0, 0x06, THIS, 'WndProc' )
LOCAL lnOffset
lnOffset = ICASE(This.nButtonCnt = 3, 2, This.nButtonCnt = 2, 5 , 0)
diff --git a/Source/projectexplorerui.vc2 b/Source/projectexplorerui.vc2
index 36fb774..840977a 100644
--- a/Source/projectexplorerui.vc2
+++ b/Source/projectexplorerui.vc2
@@ -12068,7 +12068,7 @@ DEFINE CLASS projectexplorerwindowmanager AS projectexplorercustom OF "projectex
PROCEDURE releasemembers
* Unbind all windows message events.
- unbindevents(0)
+ UnBindWinEvents(This)
ENDPROC
@@ -12091,7 +12091,7 @@ DEFINE CLASS projectexplorerwindowmanager AS projectexplorercustom OF "projectex
local lnhWnd
lnhWnd = This.FindIDEWindow(tcCaption)
if lnhWnd > 0
- bindevent(lnhWnd, WM_DESTROY, This, 'WindowEventHandler')
+ BindWinEvent(lnhWnd, WM_DESTROY, This, 'WindowEventHandler')
endif lnhWnd > 0
return lnhWnd
diff --git a/Source/unbindwinevents.prg b/Source/unbindwinevents.prg
new file mode 100644
index 0000000..ecdd021
--- /dev/null
+++ b/Source/unbindwinevents.prg
@@ -0,0 +1,16 @@
+* Unbind Win event bound with BindWinEvent()
+* Allows multiple bindings for single Win Msg
+LPARAMETERS thWnd, tnMessage, toEventHandler, tcDelegate
+
+IF !PEMSTATUS(_SCREEN,"oEventHandler",5) or IsNull(_Screen.oEventHandler)
+ Return
+EndIf
+
+DO CASE
+CASE Pcount() = 1
+ _Screen.oEventHandler.UnBindEvents(thWnd)
+CASE Pcount() = 3
+ _Screen.oEventHandler.UnBindEvents(thWnd, tnMessage)
+Otherwise
+ _Screen.oEventHandler.UnBindEvents(thWnd, tnMessage, toEventHandler, tcDelegate)
+EndCase
diff --git a/Source/vfpxwin32eventhandler.prg b/Source/vfpxwin32eventhandler.prg
new file mode 100644
index 0000000..fa485d1
--- /dev/null
+++ b/Source/vfpxwin32eventhandler.prg
@@ -0,0 +1,185 @@
+*-***********************************************************************************************
+*-* Written by: Gregory A. Green & Joel Leach
+*-* Initial Development: 6 May 2009
+*-*
+*-* Change History
+*-* 6 May 2009 Added check in UnBindEvent to execute UNBINDEVENTS() if no longer requested
+*-* Renamed method UnBindEvent to UnBindEvents to match VFP name
+*-*
+*-* 10 April 2010 Joel Leach made several changes to design and implementation, but overall
+*-* concept is the same.
+*-***********************************************************************************************
+*-* Class for managing the BINDEVENT() Command for a common foundation for Win32 Events
+*-*
+*-* && Sample for implementation and use
+*-* && Check if class is loaded
+*-* IF !PEMSTATUS(_SCREEN,"oEventHandler",5)
+*-* _SCREEN.NewObject("oEventHandler","VFPxWin32EventHandler","VFPxWin32EventHandler.prg")
+*-* ENDIF
+*-*
+*-* && To bind to a Win32 Event
+*-* _SCREEN.oEventHandler.BindEvent(0, WM_CREATE, this, "MyEventHandler", lnFlags)
+*-*
+*-* && To unbind to a Win32 Event
+*-* lhWnd = 0
+*-* lnMessage = WM_CREATE
+*-* _SCREEN.oEventHandler.UnBindEvent(lhWnd, lnMessage, loEventHandler, lcDelegate)
+*-* Pass 0 to lnMessage to unbind all messages from hWnd/Delegate.
+*-*
+*-***********************************************************************************************
+#define GWL_WNDPROC (-4)
+
+DEFINE CLASS VFPxWin32EventHandler AS Collection
+ bDebug = .F.
+ hdlDebug = -1
+ PrevWndFunc = 0
+
+ PROCEDURE BindEvent
+ LPARAMETERS thWnd, tnMessage, toEventHandler, tcDelegate, tnFlags
+ LOCAL loBind as WinEvent of VFPxWin32EventHandler.prg, lnNum, lnNdx, lbEventNotBinded, lcKey, lnReturn
+ LOCAL ARRAY laEvents[1,4]
+*-* Add the requested Event Binding to the collection
+ lcKey = Transform(thWnd) + "~" + Transform(tnMessage)
+ If this.GetKey(lcKey) = 0
+ loBind = NewObject("WinEvent", "VFPxWin32EventHandler.prg")
+ loBind.hWnd = thWnd
+ loBind.nMessage = tnMessage
+ loBind.PrevWndFunc = This.PrevWndFunc
+ this.Add(loBind,lcKey)
+ * Bind Win event to collection
+ BindEvent(thWnd, tnMessage, loBind, "EventFired")
+ Else
+ loBind = This.Item(lcKey)
+ EndIf
+ * Bind collection object to event handler/delegate
+ IF PCOUNT() = 4
+ lnReturn = BindEvent(loBind, "EventFired", toEventHandler, tcDelegate)
+ ELSE
+ lnReturn = BindEvent(loBind, "EventFired", toEventHandler, tcDelegate, tnFlags)
+ EndIf
+
+ This.CleanupEvents()
+
+ Return lnReturn
+
+ ENDPROC
+
+
+ PROCEDURE Init
+ IF this.bDebug
+ this.hdlDebug = FCREATE("GKKWin32EventHandler.log",0)
+ ENDIF
+
+ IF !('FoxTabsDeclareAPI' $ SET( 'Procedure' ))
+ SET PROCEDURE TO FoxTabsDeclareAPI ADDITIVE
+ ENDIF
+
+ * Store handle for use in CallWindowProc
+ This.PrevWndFunc = GetWindowLong(_Vfp.hWnd, GWL_WNDPROC)
+
+ ENDPROC
+
+
+ PROCEDURE Destroy
+ IF this.bDebug
+ =FCLOSE(this.hdlDebug)
+ this.hdlDebug = -1
+ ENDIF
+ ENDPROC
+
+
+ * Unbind Win events. Supports all UnBindEvents interfaces
+ Procedure UnBindEvents
+ LPARAMETERS thWnd, tnMessage, toEventHandler, tcDelegate
+ Local lcKey, loWinEvent as WinEvent of VFPxWin32EventHandler.prg, lnItem
+ DO CASE
+ CASE Pcount() = 1
+ * UNBINDEVENTS(oEventObject)
+ * Unbinds all events associated with this object. This includes events that are bound
+ * to it as an event source and its delegate methods that serve as event handlers.
+ UnBindEvents(thWnd)
+ CASE Pcount() = 4
+ If !Empty(tnMessage)
+ * Unbind specific event/message
+ lcKey = Transform(thWnd) + "~" + Transform(tnMessage)
+ If This.GetKey(lcKey) <> 0
+ loWinEvent = This.Item(lcKey)
+ UnBindEvents(loWinEvent, "EventFired", toEventHandler, tcDelegate)
+ EndIf
+ Else
+ * Unbind all messages for hWnd and delegate
+ FOR lnItem = 1 to This.Count
+ loWinEvent = This.Item(lnItem)
+ If loWinEvent.hWnd = thWnd
+ UnBindEvents(loWinEvent, "EventFired", toEventHandler, tcDelegate)
+ EndIf
+ ENDFOR
+ EndIf
+ Otherwise
+ Assert .f. Message "UnBindEvents requires 1 or 4 parameters. Syntax: " + Chr(13) + Chr(13) + ;
+ "UnBindEvents(oEventObject)" + Chr(13) + "UnBindEvents(thWnd, tnMessage, toEventHandler, tcDelegate)"
+ ENDCASE
+
+ This.CleanupEvents()
+
+ EndProc
+
+ * Check all events and remove any objects that are no longer used
+ Procedure CleanupEvents
+ Local array laObjEvents[1,5], laWinEvents[1,4]
+ Local lnItem, loWinEvent as WinEvent of VFPxWin32EventHandler.prg, lnRow, llEventFound
+
+ * Array of current Win event bindings
+ AEvents(laWinEvents, 1)
+
+ * For loops don't work well when removing items from collection
+ lnItem = 1
+ Do While lnItem <= This.Count
+
+ llEventFound = .f.
+ loWinEvent = This.Item(lnItem)
+
+ * Check if there are any bindings for this Win event
+ For lnRow = 1 to Alen(laWinEvents, 1)
+ If laWinEvents[lnRow,1] = loWinEvent.hWnd and laWinEvents[lnRow,2] = loWinEvent.nMessage
+ llEventFound = .t.
+ Exit
+ EndIf
+ EndFor
+ * No Win events for this object, so remove
+ If !llEventFound
+ This.Remove(lnItem)
+ Loop
+ EndIf
+
+ * If no bindings to this object, remove
+ If AEvents(laObjEvents, This.Item(lnItem)) = 0
+ This.Remove(lnItem)
+ Loop
+ EndIf
+
+ lnItem = lnItem + 1
+
+ EndDo
+
+ EndProc
+
+EndDefine
+
+DEFINE CLASS WinEvent AS Custom
+
+ hWnd = 0
+ nMessage = 0
+ PrevWndFunc = 0
+
+ * Bind events to this method
+ PROCEDURE EventFired
+ LPARAMETERS thWnd, tnMessage, twParam, tnParam
+ Local lnReturn
+ * Pass message on. Must do here or VFP will crash in some scenarios.
+ * See https://vfpx.codeplex.com/workitem/33260
+ lnReturn = CallWindowProc(This.PrevWndFunc, thWnd, tnMessage, twParam, tnParam)
+ Return lnReturn
+ ENDPROC
+
+ENDDEFINE