From f134e29cb50ddc0ddbc6dc4bdc5d0ac44c9a2f56 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:28 +0000 Subject: Utilisateur : Fcolin Date : 4/12/98 Heure : 12:29 Créé (vss 1) --- Bus.dsw | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Bus.dsw diff --git a/Bus.dsw b/Bus.dsw new file mode 100644 index 0000000..0e755da --- /dev/null +++ b/Bus.dsw @@ -0,0 +1,123 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "FxServer"=".\FxServer\FxServer.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name Regexp + End Project Dependency + Begin Project Dependency + Project_Dep_Name libBus + End Project Dependency +}}} + +############################################################################### + +Project: "RadarTest"="..\RadarTest\RadarTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libBus + End Project Dependency + Begin Project Dependency + Project_Dep_Name libRadar + End Project Dependency +}}} + +############################################################################### + +Project: "Regexp"="..\Regexp\Regexp.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Test"=".\Test\Test.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libBus + End Project Dependency +}}} + +############################################################################### + +Project: "libBus"=".\libBus\libBus.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name Regexp + End Project Dependency +}}} + +############################################################################### + +Project: "libRadar"="..\libRadar\libRadar.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ + begin source code control + "$/Bus", ZOBAAAAA + . + end source code control +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + -- cgit v1.1 From 070dbb0c452515b0a34ec777b546c4e6901d0611 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:29 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Archivé dans $/Bus (vss 2) --- Bus.dsw | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Bus.dsw b/Bus.dsw index 0e755da..ea5e5ca 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -7,6 +7,10 @@ Project: "FxServer"=".\FxServer\FxServer.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/FxServer", WCAAAAAA + .\fxserver + end source code control }}} Package=<4> @@ -19,6 +23,10 @@ Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/NewFxServer", BPBAAAAA + .\newfxserver + end source code control }}} Package=<4> @@ -37,6 +45,10 @@ Project: "RadarTest"="..\RadarTest\RadarTest.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/RadarTest", RFAAAAAA + ..\radartest + end source code control }}} Package=<4> @@ -55,6 +67,10 @@ Project: "Regexp"="..\Regexp\Regexp.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/Regexp", CABAAAAA + ..\regexp + end source code control }}} Package=<4> @@ -67,6 +83,10 @@ Project: "Test"=".\Test\Test.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/Bus/Test", ZPBAAAAA + .\Test + end source code control }}} Package=<4> @@ -82,6 +102,10 @@ Project: "libBus"=".\libBus\libBus.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/libBus", EDAAAAAA + .\libbus + end source code control }}} Package=<4> @@ -97,6 +121,10 @@ Project: "libRadar"="..\libRadar\libRadar.dsp" - Package Owner=<4> Package=<5> {{{ + begin source code control + "$/libRadar", GDAAAAAA + ..\libradar + end source code control }}} Package=<4> -- cgit v1.1 From d43f5c9954ba788ed10c68005c2f728b383f1b78 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:31 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 15:31 Archivé dans $/Bus (vss 3) --- Bus.dsw | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/Bus.dsw b/Bus.dsw index ea5e5ca..54b5116 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -3,22 +3,6 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ############################################################################### -Project: "FxServer"=".\FxServer\FxServer.dsp" - Package Owner=<4> - -Package=<5> -{{{ - begin source code control - "$/FxServer", WCAAAAAA - .\fxserver - end source code control -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> Package=<5> @@ -32,10 +16,7 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name Regexp - End Project Dependency - Begin Project Dependency - Project_Dep_Name libBus + Project_Dep_Name libIvy End Project Dependency }}} @@ -54,9 +35,6 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name libBus - End Project Dependency - Begin Project Dependency Project_Dep_Name libRadar End Project Dependency }}} @@ -85,26 +63,23 @@ Package=<5> {{{ begin source code control "$/Bus/Test", ZPBAAAAA - .\Test + .\test end source code control }}} Package=<4> {{{ - Begin Project Dependency - Project_Dep_Name libBus - End Project Dependency }}} ############################################################################### -Project: "libBus"=".\libBus\libBus.dsp" - Package Owner=<4> +Project: "libIvy"=".\libIvy\libIvy.dsp" - Package Owner=<4> Package=<5> {{{ begin source code control - "$/libBus", EDAAAAAA - .\libbus + "$/libIvy", EDAAAAAA + .\libivy end source code control }}} -- cgit v1.1 From 813a7d8a33c1a57abe1f891f78b77358a78d6a74 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:33 +0000 Subject: Utilisateur : Fcolin Date : 19/03/99 Heure : 10:00 Archivé dans $/Bus (vss 4) --- Bus.dsw | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Bus.dsw b/Bus.dsw index 54b5116..5a55b98 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -69,6 +69,9 @@ Package=<5> Package=<4> {{{ + Begin Project Dependency + Project_Dep_Name libIvy + End Project Dependency }}} ############################################################################### -- cgit v1.1 From e836c827d53e3c7ad2248a9706afe15c8b2edb90 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:35 +0000 Subject: Utilisateur : Fcolin Date : 16/03/00 Heure : 9:30 Archivé dans $/Bus (vss 5) --- Bus.dsw | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Bus.dsw b/Bus.dsw index 5a55b98..b71444b 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -37,6 +37,9 @@ Package=<4> Begin Project Dependency Project_Dep_Name libRadar End Project Dependency + Begin Project Dependency + Project_Dep_Name libIvy + End Project Dependency }}} ############################################################################### -- cgit v1.1 From b4475ffcb1b6b1c3ee73e40f5df314241abd3047 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:37 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Bus (vss 6) --- Bus.dsw | 50 ++++++++++++++------------------------------------ 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/Bus.dsw b/Bus.dsw index b71444b..59fc841 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -3,59 +3,56 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ############################################################################### -Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> +Project: "Ivy"=".\Ivy\Ivy.dsp" - Package Owner=<4> Package=<5> {{{ begin source code control - "$/NewFxServer", BPBAAAAA - .\newfxserver + "$/Ivy", NBEAAAAA + .\ivy end source code control }}} Package=<4> {{{ - Begin Project Dependency - Project_Dep_Name libIvy - End Project Dependency }}} ############################################################################### -Project: "RadarTest"="..\RadarTest\RadarTest.dsp" - Package Owner=<4> +Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> Package=<5> {{{ begin source code control - "$/RadarTest", RFAAAAAA - ..\radartest + "$/NewFxServer", BPBAAAAA + .\newfxserver end source code control }}} Package=<4> {{{ Begin Project Dependency - Project_Dep_Name libRadar - End Project Dependency - Begin Project Dependency - Project_Dep_Name libIvy + Project_Dep_Name Ivy End Project Dependency }}} ############################################################################### -Project: "Regexp"="..\Regexp\Regexp.dsp" - Package Owner=<4> +Project: "RadarTest"="..\RadarTest\RadarTest.dsp" - Package Owner=<4> Package=<5> {{{ begin source code control - "$/Regexp", CABAAAAA - ..\regexp + "$/RadarTest", RFAAAAAA + ..\radartest end source code control }}} Package=<4> {{{ + Begin Project Dependency + Project_Dep_Name libRadar + End Project Dependency }}} ############################################################################### @@ -73,26 +70,7 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name libIvy - End Project Dependency -}}} - -############################################################################### - -Project: "libIvy"=".\libIvy\libIvy.dsp" - Package Owner=<4> - -Package=<5> -{{{ - begin source code control - "$/libIvy", EDAAAAAA - .\libivy - end source code control -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name Regexp + Project_Dep_Name Ivy End Project Dependency }}} -- cgit v1.1 From 74dc49e685d15e5dab12a3173029211576bfda67 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:39 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 16:44 Archivé dans $/Bus Commentaire: correction BUG Ivy socket Listen apres start Listener et regexp_in.resize (vss 7) --- Bus.dsw | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Bus.dsw b/Bus.dsw index 59fc841..3d2e39d 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -104,6 +104,9 @@ Package=<5> Package=<3> {{{ + {58F3D268-FEDF-11D0-9C7F-0060081840F3} + {9CF5D7C2-EC10-11D0-9862-0000F8027CA0} + {20DD1B9E-87C4-11D1-8BE3-0000F8754DA1} }}} ############################################################################### -- cgit v1.1 From cca7a2fff8a3414f15d52a8baa68fcaade97d9d3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:41 +0000 Subject: Utilisateur : Fcolin Date : 27/03/02 Heure : 12:29 Archivé dans $/Bus (vss 8) --- Bus.dsw | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/Bus.dsw b/Bus.dsw index 3d2e39d..eb79d0e 100644 --- a/Bus.dsw +++ b/Bus.dsw @@ -3,6 +3,25 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ############################################################################### +Project: "Horloge"=".\Horloge\Horloge.dsp" - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + "$/Bus/Horloge", JIEAAAAA + .\horloge + end source code control +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name Ivy + End Project Dependency +}}} + +############################################################################### + Project: "Ivy"=".\Ivy\Ivy.dsp" - Package Owner=<4> Package=<5> @@ -19,6 +38,21 @@ Package=<4> ############################################################################### +Project: "IvyTest"=".\IvyTest\IvyTest.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name Ivy + End Project Dependency +}}} + +############################################################################### + Project: "NewFxServer"=".\NewFxServer\NewFxServer.dsp" - Package Owner=<4> Package=<5> @@ -53,6 +87,9 @@ Package=<4> Begin Project Dependency Project_Dep_Name libRadar End Project Dependency + Begin Project Dependency + Project_Dep_Name Ivy + End Project Dependency }}} ############################################################################### @@ -104,9 +141,6 @@ Package=<5> Package=<3> {{{ - {58F3D268-FEDF-11D0-9C7F-0060081840F3} - {9CF5D7C2-EC10-11D0-9862-0000F8027CA0} - {20DD1B9E-87C4-11D1-8BE3-0000F8754DA1} }}} ############################################################################### -- cgit v1.1 From 2c084ec701dc864ff1af1bb9bbd5109eead8aa18 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:44 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:34 Créé Commentaire: (vss 1) --- Bus.sln | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Bus.sln diff --git a/Bus.sln b/Bus.sln new file mode 100644 index 0000000..b7746c7 --- /dev/null +++ b/Bus.sln @@ -0,0 +1,95 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Horloge", "Horloge\Horloge.vcproj", "{683B5D1B-D484-433B-BFEB-4901636F8376}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{EC7BAB39-7308-4591-8947-67DFA474C8CC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyTest", "IvyTest\IvyTest.vcproj", "{2E688B75-7B3B-4411-A8A9-6F0547C00132}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NewFxServer", "NewFxServer\NewFxServer.vcproj", "{C66E3261-0BA5-465E-8A18-0EC2403A5107}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RadarTest", "..\RadarTest\RadarTest.vcproj", "{FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "Test\Test.vcproj", "{DDD19A2E-7219-410D-BB99-1F2FF8FA822C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRadar", "..\libRadar\libRadar.vcproj", "{9CACF3CD-EF43-43FD-BCA9-C91B094687ED}" +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 7 + SccProjectUniqueName0 = Horloge\\Horloge.vcproj + SccProjectName0 = \u0022$/Bus/Horloge\u0022,\u0020JIEAAAAA + SccLocalPath0 = Horloge + CanCheckoutShared = false + SccProjectUniqueName1 = Ivy\\Ivy.vcproj + SccProjectName1 = \u0022$/Ivy\u0022,\u0020NBEAAAAA + SccLocalPath1 = Ivy + CanCheckoutShared = false + SccProjectUniqueName2 = NewFxServer\\NewFxServer.vcproj + SccProjectName2 = \u0022$/NewFxServer\u0022,\u0020BPBAAAAA + SccLocalPath2 = NewFxServer + CanCheckoutShared = false + SccProjectUniqueName3 = ..\\RadarTest\\RadarTest.vcproj + SccProjectName3 = \u0022$/RadarTest\u0022,\u0020XFAAAAAA + SccLocalPath3 = ..\\RadarTest + CanCheckoutShared = false + SccProjectUniqueName4 = Test\\Test.vcproj + SccProjectName4 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA + SccLocalPath4 = Test + CanCheckoutShared = false + SccProjectUniqueName5 = ..\\libRadar\\libRadar.vcproj + SccProjectName5 = \u0022$/libRadar\u0022,\u0020IEAAAAAA + SccLocalPath5 = ..\\libRadar + CanCheckoutShared = false + SccProjectName6 = \u0022$/Bus\u0022,\u0020ZOBAAAAA + SccLocalPath6 = . + SccProvider6 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SolutionUniqueID = {674FF952-833F-4171-9EC3-415A4F77F70B} + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + {683B5D1B-D484-433B-BFEB-4901636F8376}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + {2E688B75-7B3B-4411-A8A9-6F0547C00132}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + {C66E3261-0BA5-465E-8A18-0EC2403A5107}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.1 = {9CACF3CD-EF43-43FD-BCA9-C91B094687ED} + {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {683B5D1B-D484-433B-BFEB-4901636F8376}.Debug.ActiveCfg = Debug|Win32 + {683B5D1B-D484-433B-BFEB-4901636F8376}.Debug.Build.0 = Debug|Win32 + {683B5D1B-D484-433B-BFEB-4901636F8376}.Release.ActiveCfg = Release|Win32 + {683B5D1B-D484-433B-BFEB-4901636F8376}.Release.Build.0 = Release|Win32 + {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Debug.ActiveCfg = Debug|Win32 + {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Debug.Build.0 = Debug|Win32 + {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Release.ActiveCfg = Release|Win32 + {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Release.Build.0 = Release|Win32 + {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Debug.ActiveCfg = Debug|Win32 + {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Debug.Build.0 = Debug|Win32 + {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.ActiveCfg = Release|Win32 + {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.Build.0 = Release|Win32 + {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Debug.ActiveCfg = Debug|Win32 + {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Debug.Build.0 = Debug|Win32 + {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.ActiveCfg = Release|Win32 + {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.Build.0 = Release|Win32 + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Debug.ActiveCfg = Debug|Win32 + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Debug.Build.0 = Debug|Win32 + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Release.ActiveCfg = Release|Win32 + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Release.Build.0 = Release|Win32 + {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Debug.ActiveCfg = Debug|Win32 + {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Debug.Build.0 = Debug|Win32 + {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Release.ActiveCfg = Release|Win32 + {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Release.Build.0 = Release|Win32 + {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Debug.ActiveCfg = Debug|Win32 + {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Debug.Build.0 = Debug|Win32 + {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Release.ActiveCfg = Release|Win32 + {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From 1a8e882b2a9d06c0f017b9caeb8f70168585bd90 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:45 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Archivé dans $/Bus Commentaire: (vss 2) --- Bus.sln | 55 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/Bus.sln b/Bus.sln index b7746c7..e01a33d 100644 --- a/Bus.sln +++ b/Bus.sln @@ -15,36 +15,40 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRadar", "..\libRadar\lib EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 7 - SccProjectUniqueName0 = Horloge\\Horloge.vcproj - SccProjectName0 = \u0022$/Bus/Horloge\u0022,\u0020JIEAAAAA - SccLocalPath0 = Horloge + SccNumberOfProjects = 8 + SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA + SccLocalPath0 = . + SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false - SccProjectUniqueName1 = Ivy\\Ivy.vcproj - SccProjectName1 = \u0022$/Ivy\u0022,\u0020NBEAAAAA - SccLocalPath1 = Ivy + SolutionUniqueID = {674FF952-833F-4171-9EC3-415A4F77F70B} + SccProjectUniqueName1 = Horloge\\Horloge.vcproj + SccProjectName1 = \u0022$/Bus/Horloge\u0022,\u0020JIEAAAAA + SccLocalPath1 = Horloge CanCheckoutShared = false - SccProjectUniqueName2 = NewFxServer\\NewFxServer.vcproj - SccProjectName2 = \u0022$/NewFxServer\u0022,\u0020BPBAAAAA - SccLocalPath2 = NewFxServer + SccProjectUniqueName2 = Ivy\\Ivy.vcproj + SccProjectName2 = \u0022$/Ivy\u0022,\u0020NBEAAAAA + SccLocalPath2 = Ivy CanCheckoutShared = false - SccProjectUniqueName3 = ..\\RadarTest\\RadarTest.vcproj - SccProjectName3 = \u0022$/RadarTest\u0022,\u0020XFAAAAAA - SccLocalPath3 = ..\\RadarTest + SccProjectUniqueName3 = NewFxServer\\NewFxServer.vcproj + SccProjectName3 = \u0022$/NewFxServer\u0022,\u0020BPBAAAAA + SccLocalPath3 = NewFxServer CanCheckoutShared = false - SccProjectUniqueName4 = Test\\Test.vcproj - SccProjectName4 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA - SccLocalPath4 = Test + SccProjectUniqueName4 = ..\\RadarTest\\RadarTest.vcproj + SccProjectName4 = \u0022$/RadarTest\u0022,\u0020XFAAAAAA + SccLocalPath4 = ..\\RadarTest CanCheckoutShared = false - SccProjectUniqueName5 = ..\\libRadar\\libRadar.vcproj - SccProjectName5 = \u0022$/libRadar\u0022,\u0020IEAAAAAA - SccLocalPath5 = ..\\libRadar + SccProjectUniqueName5 = Test\\Test.vcproj + SccProjectName5 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA + SccLocalPath5 = Test CanCheckoutShared = false - SccProjectName6 = \u0022$/Bus\u0022,\u0020ZOBAAAAA - SccLocalPath6 = . - SccProvider6 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + SccProjectUniqueName6 = ..\\libRadar\\libRadar.vcproj + SccProjectName6 = \u0022$/libRadar\u0022,\u0020IEAAAAAA + SccLocalPath6 = ..\\libRadar CanCheckoutShared = false - SolutionUniqueID = {674FF952-833F-4171-9EC3-415A4F77F70B} + SccProjectUniqueName7 = IvyTest\\IvyTest.vcproj + SccLocalPath7 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection7 = IvyTest\\ EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug @@ -54,8 +58,8 @@ Global {683B5D1B-D484-433B-BFEB-4901636F8376}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} {2E688B75-7B3B-4411-A8A9-6F0547C00132}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} {C66E3261-0BA5-465E-8A18-0EC2403A5107}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.1 = {9CACF3CD-EF43-43FD-BCA9-C91B094687ED} + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.0 = {9CACF3CD-EF43-43FD-BCA9-C91B094687ED} + {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.1 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution @@ -72,7 +76,6 @@ Global {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.ActiveCfg = Release|Win32 {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.Build.0 = Release|Win32 {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Debug.ActiveCfg = Debug|Win32 - {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Debug.Build.0 = Debug|Win32 {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.ActiveCfg = Release|Win32 {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.Build.0 = Release|Win32 {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Debug.ActiveCfg = Debug|Win32 -- cgit v1.1 From 7d7c73468f17c819ea9317cce4d6e89774ba30f8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:47 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:50 Archivé dans $/Bus Commentaire: (vss 3) --- Bus.sln | 113 ++++++++++++++++++++++++++-------------------------------------- 1 file changed, 45 insertions(+), 68 deletions(-) diff --git a/Bus.sln b/Bus.sln index e01a33d..16d420a 100644 --- a/Bus.sln +++ b/Bus.sln @@ -1,95 +1,72 @@ Microsoft Visual Studio Solution File, Format Version 7.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Horloge", "Horloge\Horloge.vcproj", "{683B5D1B-D484-433B-BFEB-4901636F8376}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9BD87B7A-517E-4900-B3EA-A358885CD876}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{EC7BAB39-7308-4591-8947-67DFA474C8CC}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyTest", "IvyTest\IvyTest.vcproj", "{BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyTest", "IvyTest\IvyTest.vcproj", "{2E688B75-7B3B-4411-A8A9-6F0547C00132}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "Test\Test.vcproj", "{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NewFxServer", "NewFxServer\NewFxServer.vcproj", "{C66E3261-0BA5-465E-8A18-0EC2403A5107}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy\comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RadarTest", "..\RadarTest\RadarTest.vcproj", "{FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "..\..\Install\InstComIvy\InstComIvy.vdproj", "{8B33F98B-2228-4D38-AC87-1E8347DF0F17}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "Test\Test.vcproj", "{DDD19A2E-7219-410D-BB99-1F2FF8FA822C}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\Install\InstIvy\InstIvy.vdproj", "{E0749AC8-C631-4081-8E2D-02731D95BFDB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRadar", "..\libRadar\libRadar.vcproj", "{9CACF3CD-EF43-43FD-BCA9-C91B094687ED}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install\InstIvyDev\InstIvyDev.vdproj", "{6B90AE8B-1C37-4912-81AB-8A61508B13FB}" EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 8 + SccNumberOfProjects = 3 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false - SolutionUniqueID = {674FF952-833F-4171-9EC3-415A4F77F70B} - SccProjectUniqueName1 = Horloge\\Horloge.vcproj - SccProjectName1 = \u0022$/Bus/Horloge\u0022,\u0020JIEAAAAA - SccLocalPath1 = Horloge + SolutionUniqueID = {FB1B1B11-07B6-4907-812F-ADD55157C120} + SccProjectUniqueName1 = Ivy\\Ivy.vcproj + SccProjectName1 = \u0022$/Ivy\u0022,\u0020NBEAAAAA + SccLocalPath1 = Ivy CanCheckoutShared = false - SccProjectUniqueName2 = Ivy\\Ivy.vcproj - SccProjectName2 = \u0022$/Ivy\u0022,\u0020NBEAAAAA - SccLocalPath2 = Ivy + SccProjectUniqueName2 = Test\\Test.vcproj + SccProjectName2 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA + SccLocalPath2 = Test CanCheckoutShared = false - SccProjectUniqueName3 = NewFxServer\\NewFxServer.vcproj - SccProjectName3 = \u0022$/NewFxServer\u0022,\u0020BPBAAAAA - SccLocalPath3 = NewFxServer - CanCheckoutShared = false - SccProjectUniqueName4 = ..\\RadarTest\\RadarTest.vcproj - SccProjectName4 = \u0022$/RadarTest\u0022,\u0020XFAAAAAA - SccLocalPath4 = ..\\RadarTest - CanCheckoutShared = false - SccProjectUniqueName5 = Test\\Test.vcproj - SccProjectName5 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA - SccLocalPath5 = Test - CanCheckoutShared = false - SccProjectUniqueName6 = ..\\libRadar\\libRadar.vcproj - SccProjectName6 = \u0022$/libRadar\u0022,\u0020IEAAAAAA - SccLocalPath6 = ..\\libRadar - CanCheckoutShared = false - SccProjectUniqueName7 = IvyTest\\IvyTest.vcproj - SccLocalPath7 = . - CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection7 = IvyTest\\ EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug ConfigName.1 = Release EndGlobalSection GlobalSection(ProjectDependencies) = postSolution - {683B5D1B-D484-433B-BFEB-4901636F8376}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {2E688B75-7B3B-4411-A8A9-6F0547C00132}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {C66E3261-0BA5-465E-8A18-0EC2403A5107}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.0 = {9CACF3CD-EF43-43FD-BCA9-C91B094687ED} - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.1 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} - {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.0 = {EC7BAB39-7308-4591-8947-67DFA474C8CC} + {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution - {683B5D1B-D484-433B-BFEB-4901636F8376}.Debug.ActiveCfg = Debug|Win32 - {683B5D1B-D484-433B-BFEB-4901636F8376}.Debug.Build.0 = Debug|Win32 - {683B5D1B-D484-433B-BFEB-4901636F8376}.Release.ActiveCfg = Release|Win32 - {683B5D1B-D484-433B-BFEB-4901636F8376}.Release.Build.0 = Release|Win32 - {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Debug.ActiveCfg = Debug|Win32 - {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Debug.Build.0 = Debug|Win32 - {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Release.ActiveCfg = Release|Win32 - {EC7BAB39-7308-4591-8947-67DFA474C8CC}.Release.Build.0 = Release|Win32 - {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Debug.ActiveCfg = Debug|Win32 - {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Debug.Build.0 = Debug|Win32 - {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.ActiveCfg = Release|Win32 - {2E688B75-7B3B-4411-A8A9-6F0547C00132}.Release.Build.0 = Release|Win32 - {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Debug.ActiveCfg = Debug|Win32 - {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.ActiveCfg = Release|Win32 - {C66E3261-0BA5-465E-8A18-0EC2403A5107}.Release.Build.0 = Release|Win32 - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Debug.ActiveCfg = Debug|Win32 - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Debug.Build.0 = Debug|Win32 - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Release.ActiveCfg = Release|Win32 - {FF256BDE-93AD-4D7C-8250-F36D6CADEDD2}.Release.Build.0 = Release|Win32 - {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Debug.ActiveCfg = Debug|Win32 - {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Debug.Build.0 = Debug|Win32 - {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Release.ActiveCfg = Release|Win32 - {DDD19A2E-7219-410D-BB99-1F2FF8FA822C}.Release.Build.0 = Release|Win32 - {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Debug.ActiveCfg = Debug|Win32 - {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Debug.Build.0 = Debug|Win32 - {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Release.ActiveCfg = Release|Win32 - {9CACF3CD-EF43-43FD-BCA9-C91B094687ED}.Release.Build.0 = Release|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.ActiveCfg = Debug|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.Build.0 = Debug|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.ActiveCfg = Release|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.Build.0 = Release|Win32 + {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Debug.ActiveCfg = Debug|Win32 + {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Debug.Build.0 = Debug|Win32 + {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Release.ActiveCfg = Release|Win32 + {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Release.Build.0 = Release|Win32 + {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.ActiveCfg = Debug|Win32 + {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.Build.0 = Debug|Win32 + {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Release.ActiveCfg = Release|Win32 + {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Release.Build.0 = Release|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.ActiveCfg = Debug|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.Build.0 = Debug|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.ActiveCfg = Release|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.Build.0 = Release|Win32 + {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Debug.ActiveCfg = Debug + {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Debug.Build.0 = Debug + {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Release.ActiveCfg = Release + {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Release.Build.0 = Release + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Debug.ActiveCfg = Debug + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Debug.Build.0 = Debug + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Release.ActiveCfg = Release + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Release.Build.0 = Release + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Debug.ActiveCfg = Debug + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Debug.Build.0 = Debug + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Release.ActiveCfg = Release + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Release.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From 654c7d3d68bbf382dcc02d4389ae6ae3164485f7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:49 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Archivé dans $/Bus Commentaire: (vss 4) --- Bus.sln | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Bus.sln b/Bus.sln index 16d420a..8d180da 100644 --- a/Bus.sln +++ b/Bus.sln @@ -15,20 +15,38 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 + SccNumberOfProjects = 7 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false SolutionUniqueID = {FB1B1B11-07B6-4907-812F-ADD55157C120} SccProjectUniqueName1 = Ivy\\Ivy.vcproj - SccProjectName1 = \u0022$/Ivy\u0022,\u0020NBEAAAAA + SccProjectName1 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA SccLocalPath1 = Ivy CanCheckoutShared = false SccProjectUniqueName2 = Test\\Test.vcproj SccProjectName2 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA SccLocalPath2 = Test CanCheckoutShared = false + SccProjectUniqueName3 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj + SccProjectName3 = \u0022$/fcolin\u0022,\u0020SPEAAAAA + SccLocalPath3 = ..\\.. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection3 = Install\\InstComIvy\\ + SccProjectUniqueName4 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj + SccProjectName4 = \u0022$/fcolin\u0022,\u0020SPEAAAAA + SccLocalPath4 = ..\\.. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection4 = Install\\InstIvy\\ + SccProjectUniqueName5 = IvyTest\\IvyTest.vcproj + SccLocalPath5 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection5 = IvyTest\\ + SccProjectUniqueName6 = comIvy\\comIvy.vcproj + SccLocalPath6 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection6 = comIvy\\ EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug -- cgit v1.1 From 31fb99f6f5ffdf2293841af385d66bb4e7ed3272 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:51 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/Bus Commentaire: (vss 5) --- Bus.sln | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Bus.sln b/Bus.sln index 8d180da..2a63bfc 100644 --- a/Bus.sln +++ b/Bus.sln @@ -3,7 +3,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyTest", "IvyTest\IvyTest.vcproj", "{BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "Test\Test.vcproj", "{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "Test\Test.vcproj", "{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy\comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" EndProject @@ -15,7 +15,7 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 7 + SccNumberOfProjects = 8 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -47,6 +47,10 @@ Global SccLocalPath6 = . CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection6 = comIvy\\ + SccProjectUniqueName7 = ..\\..\\Install\\InstIvyDev\\InstIvyDev.vdproj + SccProjectName7 = \u0022$/Bus/InstIvyDev\u0022,\u0020VQEAAAAA + SccLocalPath7 = ..\\..\\Install\\InstIvyDev + CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug @@ -55,6 +59,13 @@ Global GlobalSection(ProjectDependencies) = postSolution {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.1 = {E0749AC8-C631-4081-8E2D-02731D95BFDB} + {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.2 = {9BD87B7A-517E-4900-B3EA-A358885CD876} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.ActiveCfg = Debug|Win32 -- cgit v1.1 From 85b79a140a4849974c00e286af04eeba7a715e2b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:53 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 14:39 Archivé dans $/Bus Commentaire: (vss 6) --- Bus.sln | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Bus.sln b/Bus.sln index 2a63bfc..3a02c2e 100644 --- a/Bus.sln +++ b/Bus.sln @@ -30,15 +30,15 @@ Global SccLocalPath2 = Test CanCheckoutShared = false SccProjectUniqueName3 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj - SccProjectName3 = \u0022$/fcolin\u0022,\u0020SPEAAAAA - SccLocalPath3 = ..\\.. + SccProjectName3 = \u0022$/Bus/Install\u0022,\u0020ZQEAAAAA + SccLocalPath3 = ..\\..\\Install CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection3 = Install\\InstComIvy\\ + SccProjectFilePathRelativizedFromConnection3 = InstComIvy\\ SccProjectUniqueName4 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj - SccProjectName4 = \u0022$/fcolin\u0022,\u0020SPEAAAAA - SccLocalPath4 = ..\\.. + SccProjectName4 = \u0022$/Bus/Install\u0022,\u0020ZQEAAAAA + SccLocalPath4 = ..\\..\\Install CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection4 = Install\\InstIvy\\ + SccProjectFilePathRelativizedFromConnection4 = InstIvy\\ SccProjectUniqueName5 = IvyTest\\IvyTest.vcproj SccLocalPath5 = . CanCheckoutShared = false @@ -61,8 +61,8 @@ Global {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.1 = {E0749AC8-C631-4081-8E2D-02731D95BFDB} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.2 = {9BD87B7A-517E-4900-B3EA-A358885CD876} -- cgit v1.1 From 765cb434a6690a16087896d1b47d42a6eb5da0f7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:55 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 14:44 Archivé dans $/Bus Commentaire: (vss 7) --- Bus.sln | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Bus.sln b/Bus.sln index 3a02c2e..8db63af 100644 --- a/Bus.sln +++ b/Bus.sln @@ -30,10 +30,9 @@ Global SccLocalPath2 = Test CanCheckoutShared = false SccProjectUniqueName3 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj - SccProjectName3 = \u0022$/Bus/Install\u0022,\u0020ZQEAAAAA - SccLocalPath3 = ..\\..\\Install + SccProjectName3 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA + SccLocalPath3 = ..\\..\\Install\\InstComIvy CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection3 = InstComIvy\\ SccProjectUniqueName4 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj SccProjectName4 = \u0022$/Bus/Install\u0022,\u0020ZQEAAAAA SccLocalPath4 = ..\\..\\Install @@ -48,7 +47,7 @@ Global CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection6 = comIvy\\ SccProjectUniqueName7 = ..\\..\\Install\\InstIvyDev\\InstIvyDev.vdproj - SccProjectName7 = \u0022$/Bus/InstIvyDev\u0022,\u0020VQEAAAAA + SccProjectName7 = \u0022$/Bus/Install/InstIvyDev\u0022,\u0020AREAAAAA SccLocalPath7 = ..\\..\\Install\\InstIvyDev CanCheckoutShared = false EndGlobalSection -- cgit v1.1 From d8fb1b716c7ce1d22392d1a3115c92460c535941 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:57 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 14:52 Archivé dans $/Bus Commentaire: (vss 8) --- Bus.sln | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Bus.sln b/Bus.sln index 8db63af..4201abe 100644 --- a/Bus.sln +++ b/Bus.sln @@ -26,7 +26,7 @@ Global SccLocalPath1 = Ivy CanCheckoutShared = false SccProjectUniqueName2 = Test\\Test.vcproj - SccProjectName2 = \u0022$/Bus/Test\u0022,\u0020ZPBAAAAA + SccProjectName2 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA SccLocalPath2 = Test CanCheckoutShared = false SccProjectUniqueName3 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj @@ -60,8 +60,8 @@ Global {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.1 = {E0749AC8-C631-4081-8E2D-02731D95BFDB} {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.2 = {9BD87B7A-517E-4900-B3EA-A358885CD876} -- cgit v1.1 From 57f2cb762a73784906eee6bfe86ce49220022e38 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:50:59 +0000 Subject: Utilisateur : Fcolin Date : 5/11/02 Heure : 11:13 Archivé dans $/Bus Commentaire: (vss 9) --- Bus.sln | 85 ++++++++++++++++++++++++++++------------------------------------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/Bus.sln b/Bus.sln index 4201abe..06d730f 100644 --- a/Bus.sln +++ b/Bus.sln @@ -1,21 +1,19 @@ Microsoft Visual Studio Solution File, Format Version 7.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9BD87B7A-517E-4900-B3EA-A358885CD876}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyTest", "IvyTest\IvyTest.vcproj", "{BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "Test\Test.vcproj", "{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy\comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "..\..\Install\InstComIvy\InstComIvy.vdproj", "{8B33F98B-2228-4D38-AC87-1E8347DF0F17}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "..\..\Install\InstComIvy\InstComIvy.vdproj", "{CED1EFC1-498D-4553-9038-C93F27EC9CEB}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\Install\InstIvy\InstIvy.vdproj", "{E0749AC8-C631-4081-8E2D-02731D95BFDB}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\Install\InstIvy\InstIvy.vdproj", "{C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install\InstIvyDev\InstIvyDev.vdproj", "{6B90AE8B-1C37-4912-81AB-8A61508B13FB}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install\InstIvyDev\InstIvyDev.vdproj", "{7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}" EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 8 + SccNumberOfProjects = 7 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -25,30 +23,25 @@ Global SccProjectName1 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA SccLocalPath1 = Ivy CanCheckoutShared = false - SccProjectUniqueName2 = Test\\Test.vcproj - SccProjectName2 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA - SccLocalPath2 = Test - CanCheckoutShared = false - SccProjectUniqueName3 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj - SccProjectName3 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA - SccLocalPath3 = ..\\..\\Install\\InstComIvy + SccProjectUniqueName2 = comIvy\\comIvy.vcproj + SccLocalPath2 = . CanCheckoutShared = false - SccProjectUniqueName4 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj - SccProjectName4 = \u0022$/Bus/Install\u0022,\u0020ZQEAAAAA - SccLocalPath4 = ..\\..\\Install + SccProjectFilePathRelativizedFromConnection2 = comIvy\\ + SccProjectUniqueName3 = Test\\Test.vcproj + SccProjectName3 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA + SccLocalPath3 = Test CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection4 = InstIvy\\ - SccProjectUniqueName5 = IvyTest\\IvyTest.vcproj - SccLocalPath5 = . + SccProjectUniqueName4 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj + SccProjectName4 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA + SccLocalPath4 = ..\\..\\Install\\InstComIvy CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection5 = IvyTest\\ - SccProjectUniqueName6 = comIvy\\comIvy.vcproj - SccLocalPath6 = . + SccProjectUniqueName5 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj + SccProjectName5 = \u0022$/Bus/Install/InstIvy\u0022,\u0020CREAAAAA + SccLocalPath5 = ..\\..\\Install\\InstIvy CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection6 = comIvy\\ - SccProjectUniqueName7 = ..\\..\\Install\\InstIvyDev\\InstIvyDev.vdproj - SccProjectName7 = \u0022$/Bus/Install/InstIvyDev\u0022,\u0020AREAAAAA - SccLocalPath7 = ..\\..\\Install\\InstIvyDev + SccProjectUniqueName6 = ..\\..\\Install\\InstIvyDev\\InstIvyDev.vdproj + SccProjectName6 = \u0022$/Bus/Install/InstIvyDev\u0022,\u0020AREAAAAA + SccLocalPath6 = ..\\..\\Install\\InstIvyDev CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution @@ -56,25 +49,19 @@ Global ConfigName.1 = Release EndGlobalSection GlobalSection(ProjectDependencies) = postSolution - {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.1 = {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9} - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.1 = {E0749AC8-C631-4081-8E2D-02731D95BFDB} - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.2 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.ActiveCfg = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.Build.0 = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.ActiveCfg = Release|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.Build.0 = Release|Win32 - {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Debug.ActiveCfg = Debug|Win32 - {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Debug.Build.0 = Debug|Win32 - {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Release.ActiveCfg = Release|Win32 - {BA8CE213-3B5D-496C-A3A6-0C71AAF0FF9B}.Release.Build.0 = Release|Win32 {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.ActiveCfg = Debug|Win32 {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.Build.0 = Debug|Win32 {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Release.ActiveCfg = Release|Win32 @@ -83,18 +70,18 @@ Global {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.Build.0 = Debug|Win32 {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.ActiveCfg = Release|Win32 {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.Build.0 = Release|Win32 - {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Debug.ActiveCfg = Debug - {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Debug.Build.0 = Debug - {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Release.ActiveCfg = Release - {8B33F98B-2228-4D38-AC87-1E8347DF0F17}.Release.Build.0 = Release - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Debug.ActiveCfg = Debug - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Debug.Build.0 = Debug - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Release.ActiveCfg = Release - {E0749AC8-C631-4081-8E2D-02731D95BFDB}.Release.Build.0 = Release - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Debug.ActiveCfg = Debug - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Debug.Build.0 = Debug - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Release.ActiveCfg = Release - {6B90AE8B-1C37-4912-81AB-8A61508B13FB}.Release.Build.0 = Release + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Debug.ActiveCfg = Debug + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Debug.Build.0 = Debug + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Release.ActiveCfg = Release + {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Release.Build.0 = Release + {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Debug.ActiveCfg = Debug + {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Debug.Build.0 = Debug + {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Release.ActiveCfg = Release + {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Release.Build.0 = Release + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Debug.ActiveCfg = Debug + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Debug.Build.0 = Debug + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Release.ActiveCfg = Release + {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Release.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From f7996f9fd167990178e9a9a5190c12330f4a3244 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:01 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:04 Archivé dans $/Bus Commentaire: (vss 10) --- Bus.sln | 85 +++++++++++++++++++++++++++++------------------------------------ 1 file changed, 38 insertions(+), 47 deletions(-) diff --git a/Bus.sln b/Bus.sln index 06d730f..76c1b11 100644 --- a/Bus.sln +++ b/Bus.sln @@ -1,19 +1,29 @@ -Microsoft Visual Studio Solution File, Format Version 7.00 +Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9BD87B7A-517E-4900-B3EA-A358885CD876}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "Test\Test.vcproj", "{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy\comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + ProjectSection(ProjectDependencies) = postProject + {9BD87B7A-517E-4900-B3EA-A358885CD876} = {9BD87B7A-517E-4900-B3EA-A358885CD876} + EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "..\..\Install\InstComIvy\InstComIvy.vdproj", "{CED1EFC1-498D-4553-9038-C93F27EC9CEB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe\IvyProbe.vcproj", "{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + ProjectSection(ProjectDependencies) = postProject + {9BD87B7A-517E-4900-B3EA-A358885CD876} = {9BD87B7A-517E-4900-B3EA-A358885CD876} + EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\Install\InstIvy\InstIvy.vdproj", "{C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "IvyProbe\InstIvy\InstIvy.vdproj", "{72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "..\..\Install\InstIvyDev\InstIvyDev.vdproj", "{7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallSource", "Ivy\InstallSource\InstallSource.vdproj", "{1C627CBE-375B-432A-8435-70739062E41D}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 7 + SccNumberOfProjects = 5 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -27,61 +37,42 @@ Global SccLocalPath2 = . CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection2 = comIvy\\ - SccProjectUniqueName3 = Test\\Test.vcproj + SccProjectUniqueName3 = IvyProbe\\IvyProbe.vcproj SccProjectName3 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA - SccLocalPath3 = Test - CanCheckoutShared = false - SccProjectUniqueName4 = ..\\..\\Install\\InstComIvy\\InstComIvy.vdproj - SccProjectName4 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA - SccLocalPath4 = ..\\..\\Install\\InstComIvy + SccLocalPath3 = IvyProbe CanCheckoutShared = false - SccProjectUniqueName5 = ..\\..\\Install\\InstIvy\\InstIvy.vdproj - SccProjectName5 = \u0022$/Bus/Install/InstIvy\u0022,\u0020CREAAAAA - SccLocalPath5 = ..\\..\\Install\\InstIvy + SccProjectUniqueName4 = IvyProbe\\InstIvy\\InstIvy.vdproj + SccProjectName4 = \u0022$/Bus/IvyProbe/InstIvyProbe\u0022,\u0020QTFAAAAA + SccLocalPath4 = IvyProbe\\InstIvy CanCheckoutShared = false - SccProjectUniqueName6 = ..\\..\\Install\\InstIvyDev\\InstIvyDev.vdproj - SccProjectName6 = \u0022$/Bus/Install/InstIvyDev\u0022,\u0020AREAAAAA - SccLocalPath6 = ..\\..\\Install\\InstIvyDev + SccProjectUniqueName5 = Ivy\\InstallSource\\InstallSource.vdproj + SccProjectName5 = \u0022$/Bus/Ivy/InstallSource\u0022,\u0020VEHAAAAA + SccLocalPath5 = Ivy\\InstallSource CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution - ConfigName.0 = Debug - ConfigName.1 = Release - EndGlobalSection - GlobalSection(ProjectDependencies) = postSolution - {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.0 = {9BD87B7A-517E-4900-B3EA-A358885CD876} - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.1 = {9BD87B7A-517E-4900-B3EA-A358885CD876} + Debug = Debug + Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.ActiveCfg = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.Build.0 = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.ActiveCfg = Release|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.Build.0 = Release|Win32 - {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.ActiveCfg = Debug|Win32 - {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Debug.Build.0 = Debug|Win32 - {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Release.ActiveCfg = Release|Win32 - {BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}.Release.Build.0 = Release|Win32 {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.ActiveCfg = Debug|Win32 - {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.Build.0 = Debug|Win32 {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.ActiveCfg = Release|Win32 {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.Build.0 = Release|Win32 - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Debug.ActiveCfg = Debug - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Debug.Build.0 = Debug - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Release.ActiveCfg = Release - {CED1EFC1-498D-4553-9038-C93F27EC9CEB}.Release.Build.0 = Release - {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Debug.ActiveCfg = Debug - {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Debug.Build.0 = Debug - {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Release.ActiveCfg = Release - {C90AC2A5-4A1F-47D7-A42E-57C0052F49D6}.Release.Build.0 = Release - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Debug.ActiveCfg = Debug - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Debug.Build.0 = Debug - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Release.ActiveCfg = Release - {7293EE9B-72D4-4A07-BC29-29FCE0D5A5C7}.Release.Build.0 = Release + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.ActiveCfg = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.Build.0 = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.Build.0 = Release|Win32 + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug.ActiveCfg = Debug + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug.Build.0 = Debug + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.ActiveCfg = Release + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.Build.0 = Release + {1C627CBE-375B-432A-8435-70739062E41D}.Debug.ActiveCfg = Debug + {1C627CBE-375B-432A-8435-70739062E41D}.Release.ActiveCfg = Release + {1C627CBE-375B-432A-8435-70739062E41D}.Release.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From 680ba277c17d969cd86ec400c58d0a9694acf486 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:03 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:49 Archivé dans $/Bus Commentaire: (vss 11) --- Bus.sln | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Bus.sln b/Bus.sln index 76c1b11..58c056a 100644 --- a/Bus.sln +++ b/Bus.sln @@ -17,13 +17,13 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "IvyProbe\InstIvy ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallSource", "Ivy\InstallSource\InstallSource.vdproj", "{1C627CBE-375B-432A-8435-70739062E41D}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallSource", "Ivy\InstallSource\InstallSource.vdproj", "{24A02FDB-C987-4A61-9C42-67E4BECE181E}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 5 + SccNumberOfProjects = 6 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -67,12 +67,11 @@ Global {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.Build.0 = Release|Win32 {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug.ActiveCfg = Debug - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug.Build.0 = Debug {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.ActiveCfg = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.Build.0 = Release - {1C627CBE-375B-432A-8435-70739062E41D}.Debug.ActiveCfg = Debug - {1C627CBE-375B-432A-8435-70739062E41D}.Release.ActiveCfg = Release - {1C627CBE-375B-432A-8435-70739062E41D}.Release.Build.0 = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug.ActiveCfg = Debug + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.ActiveCfg = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From 3a1e36554d89b849f5a50c3150a08e6a5e9edb66 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:05 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:52 Archivé dans $/Bus Commentaire: (vss 12) --- Bus.sln | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/Bus.sln b/Bus.sln index 58c056a..511c5bf 100644 --- a/Bus.sln +++ b/Bus.sln @@ -3,17 +3,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9 ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy\comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" - ProjectSection(ProjectDependencies) = postProject - {9BD87B7A-517E-4900-B3EA-A358885CD876} = {9BD87B7A-517E-4900-B3EA-A358885CD876} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe\IvyProbe.vcproj", "{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" ProjectSection(ProjectDependencies) = postProject {9BD87B7A-517E-4900-B3EA-A358885CD876} = {9BD87B7A-517E-4900-B3EA-A358885CD876} EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "IvyProbe\InstIvy\InstIvy.vdproj", "{72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyProbe", "IvyProbe\InstIvy\InstIvy.vdproj", "{72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject @@ -23,7 +18,7 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallSource", "Ivy\Instal EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 6 + SccNumberOfProjects = 5 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -33,21 +28,17 @@ Global SccProjectName1 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA SccLocalPath1 = Ivy CanCheckoutShared = false - SccProjectUniqueName2 = comIvy\\comIvy.vcproj - SccLocalPath2 = . - CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection2 = comIvy\\ - SccProjectUniqueName3 = IvyProbe\\IvyProbe.vcproj - SccProjectName3 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA - SccLocalPath3 = IvyProbe + SccProjectUniqueName2 = IvyProbe\\IvyProbe.vcproj + SccProjectName2 = \u0022$/Bus/IvyProbe\u0022,\u0020ZPBAAAAA + SccLocalPath2 = IvyProbe CanCheckoutShared = false - SccProjectUniqueName4 = IvyProbe\\InstIvy\\InstIvy.vdproj - SccProjectName4 = \u0022$/Bus/IvyProbe/InstIvyProbe\u0022,\u0020QTFAAAAA - SccLocalPath4 = IvyProbe\\InstIvy + SccProjectUniqueName3 = IvyProbe\\InstIvy\\InstIvy.vdproj + SccProjectName3 = \u0022$/Bus/IvyProbe/InstIvyProbe\u0022,\u0020QTFAAAAA + SccLocalPath3 = IvyProbe\\InstIvy CanCheckoutShared = false - SccProjectUniqueName5 = Ivy\\InstallSource\\InstallSource.vdproj - SccProjectName5 = \u0022$/Bus/Ivy/InstallSource\u0022,\u0020VEHAAAAA - SccLocalPath5 = Ivy\\InstallSource + SccProjectUniqueName4 = Ivy\\InstallSource\\InstallSource.vdproj + SccProjectName4 = \u0022$/Bus/Ivy/InstallSource\u0022,\u0020VEHAAAAA + SccLocalPath4 = Ivy\\InstallSource CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution @@ -59,9 +50,6 @@ Global {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.Build.0 = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.ActiveCfg = Release|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.Build.0 = Release|Win32 - {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.ActiveCfg = Debug|Win32 - {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.ActiveCfg = Release|Win32 - {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.Build.0 = Release|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.ActiveCfg = Debug|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.Build.0 = Debug|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32 -- cgit v1.1 From 3dfb227fcc28112cb03b0e9ac6d419dd2f762327 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:07 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 11:38 Archivé dans $/Bus Commentaire: (vss 13) --- Bus.sln | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Bus.sln b/Bus.sln index 511c5bf..15bf13f 100644 --- a/Bus.sln +++ b/Bus.sln @@ -12,13 +12,17 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyProbe", "IvyProbe ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallSource", "Ivy\InstallSource\InstallSource.vdproj", "{24A02FDB-C987-4A61-9C42-67E4BECE181E}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvySources", "Ivy\InstallSource\InstallSource.vdproj", "{24A02FDB-C987-4A61-9C42-67E4BECE181E}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SourcesIvy", "SourcesIvy\SourcesIvy.vdproj", "{ED241503-F2A5-41FB-AC42-822C61C9B896}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 5 + SccNumberOfProjects = 6 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -40,6 +44,10 @@ Global SccProjectName4 = \u0022$/Bus/Ivy/InstallSource\u0022,\u0020VEHAAAAA SccLocalPath4 = Ivy\\InstallSource CanCheckoutShared = false + SccProjectUniqueName5 = SourcesIvy\\SourcesIvy.vdproj + SccLocalPath5 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection5 = SourcesIvy\\ EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution Debug = Debug @@ -60,6 +68,10 @@ Global {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug.ActiveCfg = Debug {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.ActiveCfg = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.Build.0 = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug.ActiveCfg = Debug + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug.Build.0 = Debug + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.ActiveCfg = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From 7638ef857f1a257b34d63bc61f9e771cc04da86b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:09 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus Commentaire: (vss 14) --- Bus.sln | 1 - 1 file changed, 1 deletion(-) diff --git a/Bus.sln b/Bus.sln index 15bf13f..f45df80 100644 --- a/Bus.sln +++ b/Bus.sln @@ -69,7 +69,6 @@ Global {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.ActiveCfg = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.Build.0 = Release {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug.ActiveCfg = Debug - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug.Build.0 = Debug {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.ActiveCfg = Release {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.Build.0 = Release EndGlobalSection -- cgit v1.1 From d787bc7fe38b67e3ad31fc0be78cc9519f57ba8f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:11 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus Commentaire: (vss 15) --- Bus.sln | 88 ++++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 34 deletions(-) diff --git a/Bus.sln b/Bus.sln index f45df80..b088a38 100644 --- a/Bus.sln +++ b/Bus.sln @@ -1,7 +1,6 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "Ivy\Ivy.vcproj", "{9BD87B7A-517E-4900-B3EA-A358885CD876}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe\IvyProbe.vcproj", "{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" ProjectSection(ProjectDependencies) = postProject @@ -9,16 +8,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe\IvyPro EndProjectSection EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyProbe", "IvyProbe\InstIvy\InstIvy.vdproj", "{72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvySources", "Ivy\InstallSource\InstallSource.vdproj", "{24A02FDB-C987-4A61-9C42-67E4BECE181E}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SourcesIvy", "SourcesIvy\SourcesIvy.vdproj", "{ED241503-F2A5-41FB-AC42-822C61C9B896}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre\pcre.vcproj", "{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" EndProject Global GlobalSection(SourceCodeControl) = preSolution @@ -27,7 +22,6 @@ Global SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false - SolutionUniqueID = {FB1B1B11-07B6-4907-812F-ADD55157C120} SccProjectUniqueName1 = Ivy\\Ivy.vcproj SccProjectName1 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA SccLocalPath1 = Ivy @@ -49,31 +43,57 @@ Global CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection5 = SourcesIvy\\ EndGlobalSection - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.ActiveCfg = Debug|Win32 - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug.Build.0 = Debug|Win32 - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.ActiveCfg = Release|Win32 - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release.Build.0 = Release|Win32 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.ActiveCfg = Debug|Win32 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.Build.0 = Debug|Win32 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.Build.0 = Release|Win32 - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug.ActiveCfg = Debug - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.ActiveCfg = Release - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release.Build.0 = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug.ActiveCfg = Debug - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.ActiveCfg = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release.Build.0 = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug.ActiveCfg = Debug - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.ActiveCfg = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release.Build.0 = Release + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|Win32.ActiveCfg = Debug|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|Win32.Build.0 = Debug|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|x64.ActiveCfg = Debug|x64 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|x64.Build.0 = Debug|x64 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.ActiveCfg = Release|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.Build.0 = Release|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|x64.ActiveCfg = Release|x64 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|x64.Build.0 = Release|x64 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|Win32.ActiveCfg = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|Win32.Build.0 = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|x64.ActiveCfg = Debug|x64 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|x64.Build.0 = Debug|x64 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.ActiveCfg = Release|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.Build.0 = Release|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|x64.ActiveCfg = Release|x64 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|x64.Build.0 = Release|x64 + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug|Win32.ActiveCfg = Debug + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug|x64.ActiveCfg = Debug + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.ActiveCfg = Release + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.Build.0 = Release + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.ActiveCfg = Release + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.Build.0 = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|Win32.ActiveCfg = Debug + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|x64.ActiveCfg = Debug + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.ActiveCfg = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.Build.0 = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.ActiveCfg = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.Build.0 = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|Win32.ActiveCfg = Debug + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|x64.ActiveCfg = Debug + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.ActiveCfg = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.Build.0 = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|x64.ActiveCfg = Release + {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|x64.Build.0 = Release + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.Build.0 = Debug|Win32 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.ActiveCfg = Debug|x64 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.Build.0 = Debug|x64 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.ActiveCfg = Release|Win32 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.Build.0 = Release|Win32 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.ActiveCfg = Release|x64 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.Build.0 = Release|x64 EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection EndGlobal -- cgit v1.1 From 30dcd4bb7dcc5b952fbfa1be2b30473f464cf0df Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:13 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Archivé dans $/Bus Commentaire: (vss 16) --- Bus.sln | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/Bus.sln b/Bus.sln index b088a38..c46364d 100644 --- a/Bus.sln +++ b/Bus.sln @@ -13,11 +13,15 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvySources", "Ivy\In EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SourcesIvy", "SourcesIvy\SourcesIvy.vdproj", "{ED241503-F2A5-41FB-AC42-822C61C9B896}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre\pcre.vcproj", "{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre.vcproj", "{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyDev", "Ivy\InstIvyDev\InstIvyDev.vdproj", "{D1E11E12-38DB-4190-AD37-830CF9AD335F}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "IvyLib", "Ivy\IvyLib\IvyLib.vdproj", "{F2DD17AD-A9D0-43B7-92D0-5116560C78B3}" EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 6 + SccNumberOfProjects = 9 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -42,6 +46,18 @@ Global SccLocalPath5 = . CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection5 = SourcesIvy\\ + SccProjectUniqueName6 = ..\\..\\pcre\\pcre.vcproj + SccProjectName6 = \u0022$/pcre\u0022,\u0020KSHAAAAA + SccLocalPath6 = ..\\..\\pcre + CanCheckoutShared = false + SccProjectUniqueName7 = Ivy\\InstIvyDev\\InstIvyDev.vdproj + SccProjectName7 = \u0022$/Bus/Ivy/InstIvyDev\u0022,\u0020FUFAAAAA + SccLocalPath7 = Ivy\\InstIvyDev + CanCheckoutShared = false + SccProjectUniqueName8 = Ivy\\IvyLib\\IvyLib.vdproj + SccLocalPath8 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection8 = Ivy\\IvyLib\\ EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -92,6 +108,22 @@ Global {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.Build.0 = Release|Win32 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.ActiveCfg = Release|x64 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.Build.0 = Release|x64 + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.ActiveCfg = Debug + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.Build.0 = Debug + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.ActiveCfg = Debug + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.Build.0 = Debug + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.Build.0 = Release + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.Build.0 = Debug + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.Build.0 = Debug + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.ActiveCfg = Release + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.Build.0 = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit v1.1 From 9efe2b63a3684c0372d0d5215d5f4fdf23267647 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:15 +0000 Subject: Utilisateur : Fcolin Date : 24/04/06 Heure : 15:20 Archivé dans $/Bus Commentaire: (vss 17) --- Bus.sln | 2 -- 1 file changed, 2 deletions(-) diff --git a/Bus.sln b/Bus.sln index c46364d..1ff1a08 100644 --- a/Bus.sln +++ b/Bus.sln @@ -111,7 +111,6 @@ Global {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.ActiveCfg = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.Build.0 = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.ActiveCfg = Debug - {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.Build.0 = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release @@ -119,7 +118,6 @@ Global {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.Build.0 = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug - {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.Build.0 = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.ActiveCfg = Release -- cgit v1.1 From 0fd4b1d5f007cbecbbb780dc21771faf2533c078 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:17 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus Commentaire: (vss 18) --- Bus.sln | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Bus.sln b/Bus.sln index 1ff1a08..17dc46f 100644 --- a/Bus.sln +++ b/Bus.sln @@ -17,7 +17,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre.vcp EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyDev", "Ivy\InstIvyDev\InstIvyDev.vdproj", "{D1E11E12-38DB-4190-AD37-830CF9AD335F}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "IvyLib", "Ivy\IvyLib\IvyLib.vdproj", "{F2DD17AD-A9D0-43B7-92D0-5116560C78B3}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyLib", "Ivy\IvyLib\IvyLib.vdproj", "{F2DD17AD-A9D0-43B7-92D0-5116560C78B3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{63C59D2C-F649-432C-8A44-969E66BC2C56}" + ProjectSection(SolutionItems) = preProject + UpdateIvyWeb.bat = UpdateIvyWeb.bat + EndProjectSection EndProject Global GlobalSection(SourceCodeControl) = preSolution @@ -87,13 +92,11 @@ Global {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.ActiveCfg = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.Build.0 = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.ActiveCfg = Release - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.Build.0 = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|Win32.ActiveCfg = Debug {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|x64.ActiveCfg = Debug {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.ActiveCfg = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.Build.0 = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.ActiveCfg = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.Build.0 = Release {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|Win32.ActiveCfg = Debug {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|x64.ActiveCfg = Debug {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.ActiveCfg = Release @@ -114,14 +117,12 @@ Global {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release - {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.Build.0 = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.ActiveCfg = Release - {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.Build.0 = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit v1.1 From 68e7fd57f319e104c1b7defbe8ffb3a13a281c0c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:19 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus Commentaire: (vss 19) --- Bus.sln | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Bus.sln b/Bus.sln index 17dc46f..12ec2c2 100644 --- a/Bus.sln +++ b/Bus.sln @@ -92,11 +92,13 @@ Global {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.ActiveCfg = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.Build.0 = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.ActiveCfg = Release + {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.Build.0 = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|Win32.ActiveCfg = Debug {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|x64.ActiveCfg = Debug {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.ActiveCfg = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.Build.0 = Release {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.ActiveCfg = Release + {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.Build.0 = Release {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|Win32.ActiveCfg = Debug {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|x64.ActiveCfg = Debug {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.ActiveCfg = Release @@ -117,12 +119,14 @@ Global {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release + {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.Build.0 = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.ActiveCfg = Release + {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.Build.0 = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit v1.1 From 0d1e02e6f466301e3a111a6a52e7715d451bec5c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:21 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Archivé dans $/Bus Commentaire: (vss 20) --- Bus.sln | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/Bus.sln b/Bus.sln index 12ec2c2..19258ec 100644 --- a/Bus.sln +++ b/Bus.sln @@ -9,10 +9,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe\IvyPro EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyProbe", "IvyProbe\InstIvy\InstIvy.vdproj", "{72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvySources", "Ivy\InstallSource\InstallSource.vdproj", "{24A02FDB-C987-4A61-9C42-67E4BECE181E}" -EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SourcesIvy", "SourcesIvy\SourcesIvy.vdproj", "{ED241503-F2A5-41FB-AC42-822C61C9B896}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre.vcproj", "{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstallIvyDev", "Ivy\InstIvyDev\InstIvyDev.vdproj", "{D1E11E12-38DB-4190-AD37-830CF9AD335F}" @@ -26,7 +22,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 9 + SccNumberOfProjects = 7 SccProjectName0 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe @@ -43,26 +39,18 @@ Global SccProjectName3 = \u0022$/Bus/IvyProbe/InstIvyProbe\u0022,\u0020QTFAAAAA SccLocalPath3 = IvyProbe\\InstIvy CanCheckoutShared = false - SccProjectUniqueName4 = Ivy\\InstallSource\\InstallSource.vdproj - SccProjectName4 = \u0022$/Bus/Ivy/InstallSource\u0022,\u0020VEHAAAAA - SccLocalPath4 = Ivy\\InstallSource - CanCheckoutShared = false - SccProjectUniqueName5 = SourcesIvy\\SourcesIvy.vdproj - SccLocalPath5 = . - CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection5 = SourcesIvy\\ - SccProjectUniqueName6 = ..\\..\\pcre\\pcre.vcproj - SccProjectName6 = \u0022$/pcre\u0022,\u0020KSHAAAAA - SccLocalPath6 = ..\\..\\pcre + SccProjectUniqueName4 = ..\\..\\pcre\\pcre.vcproj + SccProjectName4 = \u0022$/pcre\u0022,\u0020KSHAAAAA + SccLocalPath4 = ..\\..\\pcre CanCheckoutShared = false - SccProjectUniqueName7 = Ivy\\InstIvyDev\\InstIvyDev.vdproj - SccProjectName7 = \u0022$/Bus/Ivy/InstIvyDev\u0022,\u0020FUFAAAAA - SccLocalPath7 = Ivy\\InstIvyDev + SccProjectUniqueName5 = Ivy\\InstIvyDev\\InstIvyDev.vdproj + SccProjectName5 = \u0022$/Bus/Ivy/InstIvyDev\u0022,\u0020FUFAAAAA + SccLocalPath5 = Ivy\\InstIvyDev CanCheckoutShared = false - SccProjectUniqueName8 = Ivy\\IvyLib\\IvyLib.vdproj - SccLocalPath8 = . + SccProjectUniqueName6 = Ivy\\IvyLib\\IvyLib.vdproj + SccLocalPath6 = . CanCheckoutShared = false - SccProjectFilePathRelativizedFromConnection8 = Ivy\\IvyLib\\ + SccProjectFilePathRelativizedFromConnection6 = Ivy\\IvyLib\\ EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -93,18 +81,6 @@ Global {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.Build.0 = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.ActiveCfg = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.Build.0 = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|Win32.ActiveCfg = Debug - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Debug|x64.ActiveCfg = Debug - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.ActiveCfg = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|Win32.Build.0 = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.ActiveCfg = Release - {24A02FDB-C987-4A61-9C42-67E4BECE181E}.Release|x64.Build.0 = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|Win32.ActiveCfg = Debug - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Debug|x64.ActiveCfg = Debug - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.ActiveCfg = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|Win32.Build.0 = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|x64.ActiveCfg = Release - {ED241503-F2A5-41FB-AC42-822C61C9B896}.Release|x64.Build.0 = Release {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.ActiveCfg = Debug|Win32 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.Build.0 = Debug|Win32 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.ActiveCfg = Debug|x64 @@ -114,14 +90,12 @@ Global {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.ActiveCfg = Release|x64 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.Build.0 = Release|x64 {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.ActiveCfg = Debug - {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.Build.0 = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.ActiveCfg = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug - {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.Build.0 = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release -- cgit v1.1 From 4d327bd8cca6fd6fbc97dd751bf102bb0c2b62e2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:24 +0000 Subject: Utilisateur : Fcolin Date : 10/11/06 Heure : 13:43 Archivé dans $/Bus Commentaire: (vss 21) --- Bus.sln | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Bus.sln b/Bus.sln index 19258ec..6f65d87 100644 --- a/Bus.sln +++ b/Bus.sln @@ -63,42 +63,39 @@ Global {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|Win32.Build.0 = Debug|Win32 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|x64.ActiveCfg = Debug|x64 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Debug|x64.Build.0 = Debug|x64 - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.ActiveCfg = Release|Win32 - {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.Build.0 = Release|Win32 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.ActiveCfg = Release|x64 + {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|Win32.Build.0 = Release|x64 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|x64.ActiveCfg = Release|x64 {9BD87B7A-517E-4900-B3EA-A358885CD876}.Release|x64.Build.0 = Release|x64 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|Win32.ActiveCfg = Debug|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|Win32.Build.0 = Debug|Win32 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|x64.ActiveCfg = Debug|x64 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug|x64.Build.0 = Debug|x64 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.ActiveCfg = Release|Win32 - {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.Build.0 = Release|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.ActiveCfg = Release|x64 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|Win32.Build.0 = Release|x64 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|x64.ActiveCfg = Release|x64 {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release|x64.Build.0 = Release|x64 {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug|Win32.ActiveCfg = Debug {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Debug|x64.ActiveCfg = Debug {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.ActiveCfg = Release - {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|Win32.Build.0 = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.ActiveCfg = Release {72D0A567-E63F-4B6B-9F4D-9C9CC2B5E6E5}.Release|x64.Build.0 = Release {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.ActiveCfg = Debug|Win32 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.Build.0 = Debug|Win32 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.ActiveCfg = Debug|x64 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.Build.0 = Debug|x64 - {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.ActiveCfg = Release|Win32 - {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.Build.0 = Release|Win32 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.ActiveCfg = Release|x64 + {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.Build.0 = Release|x64 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.ActiveCfg = Release|x64 {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.Build.0 = Release|x64 {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|Win32.ActiveCfg = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Debug|x64.ActiveCfg = Debug {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.ActiveCfg = Release - {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|Win32.Build.0 = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.ActiveCfg = Release {D1E11E12-38DB-4190-AD37-830CF9AD335F}.Release|x64.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|Win32.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Debug|x64.ActiveCfg = Debug {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.ActiveCfg = Release - {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|Win32.Build.0 = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.ActiveCfg = Release {F2DD17AD-A9D0-43B7-92D0-5116560C78B3}.Release|x64.Build.0 = Release EndGlobalSection -- cgit v1.1 From 8fb72748e2e0637e3d9835eeb475106eb09200ea Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:25 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Créé Commentaire: (vss 1) --- Bus.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Bus.vssscc diff --git a/Bus.vssscc b/Bus.vssscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/Bus.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 54389a73faff15864ac9962129c69c4756d22201 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:27 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Curvefit.cpp | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 Horloge/Curvefit.cpp diff --git a/Horloge/Curvefit.cpp b/Horloge/Curvefit.cpp new file mode 100644 index 0000000..a1854d0 --- /dev/null +++ b/Horloge/Curvefit.cpp @@ -0,0 +1,235 @@ +// Curvefit.cpp: implementation of the CBezierfit class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include +#include "Curvefit.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +static double DistanceError(const double *x, const double *y, const double *Rawdata, int n); +static void Bezier(double u, const double *a, const double *b, + double x4, double y4, double &z, double &s); + +void CalcBezier(const double *Rawdata, int n, double *Control) +{ + double x[4]; + double y[4]; + double e1,e2, e3; + int Retry; + double x1a,x2a,y1a,y2a; + + x[0] = Rawdata[0]; + y[0] = Rawdata[1]; + + x[1] = Rawdata[2]; + y[1] = Rawdata[3]; + + x[2] = Rawdata[n-4]; + y[2] = Rawdata[n-3]; + + x[3] = Rawdata[n-2]; + y[3] = Rawdata[n-1]; + + // seed with linear interpolation... + x[1] += x[1] - x[0]; + y[1] += y[1] - y[0]; + x[2] += x[2] - x[3]; + y[2] += y[2] - y[3]; + + e1 = DistanceError(x, y, Rawdata, n); + for (Retry = 1; Retry <= 2; Retry++) + { +// TRACE("Retry %d\n", Retry); +// TRACE(" x1 y2 x2 y2 error\n"); + e3 = 0.5; + x1a = x[1]; + while (fabs(e3) >= 0.01) + { + x[1] += (x[1] - x[0])*e3; + e2 = DistanceError(x, y, Rawdata, n); + if (e2 == e1) + break; + if (e2 > e1) + { + x[1] = x1a; + e3 /=-3; + } + else + { + e1 = e2; + x1a = x[1]; + } + } + + e3 = 0.5; + y1a = y[1]; + while (fabs(e3) >= 0.01) + { + y[1] += (y[1] - y[0])*e3; + e2 = DistanceError(x, y, Rawdata, n); + if (e2 == e1) + break; + if (e2 > e1) + { + y[1] = y1a; + e3 /=-3; + } + else + { + e1 = e2; + y1a = y[1]; + } + } + + e3 = 0.5; + x2a = x[2]; + while (fabs(e3) >= 0.01) + { + x[2] += (x[2] - x[3])*e3; + e2 = DistanceError(x, y, Rawdata, n); + if (e2 == e1) + break; + if (e2 > e1) + { + x[2] = x2a; + e3 /=-3; + } + else + { + e1 = e2; + x2a = x[2]; + } + } + + e3 = 0.5; + y2a = y[2]; + while (fabs(e3) >= 0.01) + { + y[2] += (y[2] - y[3])*e3; + e2 = DistanceError(x, y, Rawdata, n); + if (e2 == e1) + break; + if (e2 > e1) + { + y[2] = y2a; + e3 /=-3; + } + else + { + e1 = e2; + y2a = y[2]; + } + } + } // for + + Control[0] = x[1]; + Control[1] = y[1]; + Control[2] = x[2]; + Control[3] = y[2]; +} + +double DistanceError(const double *x, const double *y, + const double *Rawdata, int n) +{ + int i; + double a[4]; + double b[4]; + double u, u1, u2; + double z, z1, z2,s,s1; + double temp; + double totalerror; + double stepsize; + double x4, y4; + + totalerror = 0; + a[3] = (x[3]-x[0]+3*(x[1]-x[2]))/8; + b[3] = (y[3]-y[0]+3*(y[1]-y[2]))/8; + a[2] = (x[3]+x[0]-x[1]-x[2])*3/8; + b[2] = (y[3]+y[0]-y[1]-y[2])*3/8; + a[1] = (x[3]-x[0])/2 -a[3]; + b[1] = (y[3]-y[0])/2 -b[3]; + a[0] = (x[3]+x[0])/2 -a[2]; + b[0] = (y[3]+y[0])/2 -b[2]; + + stepsize = 2.0/(n); + for (i = 2; i <= n-3; i+=2) + { + x4 = Rawdata[i]; + y4 = Rawdata[i+1]; + for (u = -1; u <= 1.01; u += stepsize) + { + Bezier(u, a, b, x4, y4, z, s); + if (s == 0) + { + u1 = u; + z1 = z; + s1 = s; + break; + } + if (u == -1) + { + u1 = u; + z1 = z; + s1 = s; + } + if (s < s1) + { + u1 = u; + z1 = z; + s1 = s; + } + } + if (s1 != 0) + { + u = u1 + stepsize; + if (u > 1) + u = 1 - stepsize; + Bezier(u, a, b, x4, y4, z, s); + while (s != 0 && z != 0) + { + u2 = u; + z2 = z; + temp = z2-z1; + if (temp != 0) + u = (z2 * u1-z1*u2)/temp; + else + u = (u1 + u2)/2; + + if (u > 1) + u = 1; + else if (u < -1) + u = -1; + if (fabs(u-u2) < 0.001) + break; + u1 = u2; + z1 = z2; + Bezier(u, a, b, x4, y4, z, s); + } + } + totalerror += s; + } +// TRACE("%8.3lf %8.3lf %8.3lf %8.3lf %8.3lf\n", x[1], y[1], x[2], y[2], totalerror); + return totalerror; +} + +void Bezier(double u, const double *a, const double *b, + double x4, double y4, double &z, double &s) +{ + double x, y; + double dx4,dy4; + double dx,dy; + + x = a[0] + u*(a[1] + u*(a[2]+u*a[3])); + y = b[0] + u*(b[1] + u*(b[2]+u*b[3])); + dx4 = x-x4; dy4 = y-y4; + dx = a[1] + u * (a[2] + a[2] + u*3*a[3]); + dy = b[1] + u * (b[2] + b[2] + u*3*b[3]); + z = dx * dx4 + dy*dy4; + s = dx4*dx4 + dy4*dy4; +} \ No newline at end of file -- cgit v1.1 From 83ee6585675da6d3c295cc7e7c5588be81021f2f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:30 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Curvefit.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Horloge/Curvefit.h diff --git a/Horloge/Curvefit.h b/Horloge/Curvefit.h new file mode 100644 index 0000000..79918d7 --- /dev/null +++ b/Horloge/Curvefit.h @@ -0,0 +1,15 @@ +// Curvefit.h: interface for the CBezierfit class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_CURVEFIT_H__8CC78BC2_CA92_11D3_949E_00104B6C2FFE__INCLUDED_) +#define AFX_CURVEFIT_H__8CC78BC2_CA92_11D3_949E_00104B6C2FFE__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +void CalcBezier(const double *Rawdata, int n, double *Control); + + +#endif // !defined(AFX_CURVEFIT_H__8CC78BC2_CA92_11D3_949E_00104B6C2FFE__INCLUDED_) -- cgit v1.1 From 7328202c85c6aa6af8a38d198eaca7bd74a83f32 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:32 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Digistring.cpp | 904 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 904 insertions(+) create mode 100644 Horloge/Digistring.cpp diff --git a/Horloge/Digistring.cpp b/Horloge/Digistring.cpp new file mode 100644 index 0000000..a0cc6b7 --- /dev/null +++ b/Horloge/Digistring.cpp @@ -0,0 +1,904 @@ +// Digistring.cpp : implementation file +// +// Copyright (C) 2000 by Michel Wassink +// All rights reserved +// +// This is free software. +// This code may be used in compiled form in any way you desire. This +// file may be redistributed unmodified by any means PROVIDING it is +// not sold for profit without the authors written consent, and +// providing that this notice and the authors name and all copyright +// notices remains intact. If the source code in this file is used in +// any commercial application then a statement along the lines of +// "Portions Copyright © 2000 Michel Wassink" must be included in +// the startup banner, "About" box or printed documentation. An email +// letting me know that you are using it would be nice as well. That's +// not much to ask considering the amount of work that went into this. +// +// No warrantee of any kind, expressed or implied, is included with this +// software; use at your own risk, responsibility for damages (if any) to +// anyone resulting from the use of this software rests entirely with the +// user. +// +// Send bug reports, bug fixes, enhancements, requests, flames, etc., and +// I'll try to keep a version up to date. I can be reached as follows: +// mwassink@csi.com (private site) +// An email letting me know that you are using it would be nice. +///////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "Digistring.h" +#include "Curvefit.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +// Segment numbering: +// ----- 13 ----- 0 +//|\ | /| 8 0 12 | | 1 2 +//| \|/ | 1 2 | | +// -- -- == 6 7 ----- == 3 +//| /|\ | 3 4 | | +//|/ | \| 9 5 11 | | 4 5 +// ----- 10 ----- 6 + +#define MAXSEGCHAR7 12 // Number of supported 7 segment characters +#define MAXSEGCHAR14 40 // Number of supported 14 segment characters +#define MAXSEGSEMCOL 2 // Number of supported 3 segment characters +#define NORM_DIGIHEIGHT 83 // All characters must have this height + +//////////////////////////////////////////////////////////////////////////////// +// For 14 segments display... +// SP 0 1 2 3 4 5 6 +WORD CHAR_SEGM14[MAXSEGCHAR14] = {0x0000, 0x3F00, 0x1800, 0x36C0, 0x3CC0, 0x19C0, 0x2DC0, 0x2FC0, +// 7 8 9 - A B C D E F G H + 0x3800, 0x3FC0, 0x3DC0, 0x00C0, 0x3BC0, 0x3CA1, 0x2700, 0x3C21, 0x27C0, 0x23C0, 0x2F80, 0x1BC0, +// I J K L M N O P Q R S + 0x2421, 0x1E00, 0x0354, 0x0700, 0x1B06, 0x1B12, 0x3F00, 0x33C0, 0x3F10, 0x33D0, 0x2DC0, +// T U V W X Y Z * + + 0x2021, 0x1F00, 0x030C, 0x1B18, 0x001E, 0x11E0, 0x240C, 0x00FF, 0x00E1}; +// straight style +CPoint PtSeg14N0[5] = {CPoint(20,13), CPoint(20,36), CPoint(24,40), CPoint(28,36), CPoint(28,13)}; +CPoint PtSeg14N1[4] = {CPoint( 5, 5), CPoint(15,35), CPoint(20,37), CPoint(18,25)}; +CPoint PtSeg14N6[6] = {CPoint( 6,41), CPoint(14,45), CPoint(18,45), CPoint(22,41), CPoint(18,37), + CPoint(14,37)}; +CPoint PtSeg14N8[4] = {CPoint( 4, 7), CPoint( 4,40), CPoint(11,36), CPoint(11,26)}; +CPoint PtSeg14N13[4] = {CPoint( 6, 4), CPoint(11,11), CPoint(37,11), CPoint(42, 4)}; +BYTE TpSeg14N0[5] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSeg14N1[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSeg14N6[6] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO, PT_LINETO, + PT_LINETO}; +BYTE TpSeg14N8[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSeg14N13[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; + +// smooth style PT_BEZIERTO +CPoint PtSeg14N0S[13] ={CPoint(20,12), CPoint(20,25), CPoint(22,36), CPoint(23,39), CPoint(24,40), + CPoint(25,39), CPoint(26,36), CPoint(28,25), CPoint(28,12), CPoint(26,10), + CPoint(24, 9), CPoint(22,10), CPoint(20,12)}; +CPoint PtSeg14N1S[10] ={CPoint(10,10), CPoint(10,13), CPoint(11,20), CPoint(13,28), CPoint(21,38), + CPoint(21,37), CPoint(19,26), CPoint(15,16), CPoint(11,10), CPoint(10,10)}; +CPoint PtSeg14N6S[6] = {CPoint( 8,41), CPoint(12,45), CPoint(16,45), CPoint(23,41), CPoint(16,37), + CPoint(12,37)}; +CPoint PtSeg14N8S[10]= {CPoint( 4, 7), CPoint( 4,39), CPoint( 5,40), CPoint( 6,40), CPoint( 9,37), + CPoint(11,33), CPoint(11,25), CPoint( 9,14), CPoint( 5, 6), CPoint( 4, 7)}; +CPoint PtSeg14N13S[17]={CPoint( 8, 4), CPoint( 7, 5), CPoint( 7, 6), CPoint( 9, 8), CPoint(12, 9), + CPoint(14,11), CPoint(19,11), CPoint(21, 9), CPoint(24, 7), CPoint(27, 9), + CPoint(29,11), CPoint(34,11), CPoint(36, 9), CPoint(39, 8), CPoint(41, 6), + CPoint(41, 5), CPoint(40, 4)}; +BYTE TpSeg14N0S[13]= {PT_MOVETO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_BEZIERTO, PT_BEZIERTO, PT_LINETO, PT_LINETO, PT_BEZIERTO, + PT_BEZIERTO, PT_BEZIERTO, PT_LINETO}; +BYTE TpSeg14N1S[10] ={PT_MOVETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO, + PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO}; +BYTE TpSeg14N6S[6] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO, PT_LINETO, + PT_LINETO}; +BYTE TpSeg14N8S[10] ={PT_MOVETO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_BEZIERTO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO}; +BYTE TpSeg14N13S[17]={PT_MOVETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_LINETO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_LINETO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_BEZIERTO, PT_LINETO}; +/////////////////////////////////////////////////////////////////////////////// +// For 7 segments display... +// SP 0 1 2 3 4 5 +BYTE CHAR_SEGM7[MAXSEGCHAR7] = {0x00, 0x77, 0x24, 0x5D, 0x6D, 0x2E, 0x6B, +// 6 7 8 9 - + 0x7B, 0x25, 0x7F, 0x6F, 0x08}; +// straight style +CPoint PtSeg7N0[4] = {CPoint( 5, 4), CPoint(12,11), CPoint(36,11), CPoint(43, 4)}; +CPoint PtSeg7N1[4] = {CPoint( 4, 6), CPoint( 4,40), CPoint(11,36), CPoint(11,13)}; +CPoint PtSeg7N3[6] = {CPoint( 6,41), CPoint(14,45), CPoint(34,45), CPoint(42,41), CPoint(34,37), + CPoint(14,37)}; // 3 +BYTE TpSeg7N0[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSeg7N1[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSeg7N3[6] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO, PT_LINETO, + PT_LINETO}; + +// smooth style PT_BEZIERTO +CPoint PtSeg7N0S[7] = {CPoint( 6, 4), CPoint( 5, 5), CPoint( 5, 6), CPoint( 8, 9), CPoint(12,11), + CPoint(36,11), CPoint(39, 4)}; +CPoint PtSeg7N1S[7] = {CPoint( 4, 9), CPoint( 4,39), CPoint( 6,40), CPoint( 7,40), CPoint( 9,38), + CPoint(11,36), CPoint(11,12)}; +CPoint PtSeg7N2S[10] = {CPoint(37,36), CPoint(39,38), CPoint(41,40), CPoint(42,40), CPoint(44,39), + CPoint(44, 6), CPoint(42, 4), CPoint(41, 4), CPoint(39, 8), CPoint(37,12)}; +CPoint PtSeg7N3S[6] = {CPoint( 8,41), CPoint(12,45), CPoint(36,45), CPoint(40,41), CPoint(36,37), + CPoint(12,37)}; +BYTE TpSeg7N0S[7] = {PT_MOVETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO, + PT_LINETO, PT_LINETO}; +BYTE TpSeg7N1S[7] = {PT_MOVETO, PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, + PT_LINETO, PT_LINETO}; +BYTE TpSeg7N2S[10] = {PT_MOVETO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO, PT_LINETO, + PT_LINETO, PT_BEZIERTO, PT_BEZIERTO, PT_BEZIERTO, PT_LINETO}; +BYTE TpSeg7N3S[6] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO, PT_LINETO, + PT_LINETO}; + +// For 3 segments semicoloncombi display... +// . : +BYTE CHAR_SEMCOL[MAXSEGSEMCOL] = {0x04, 0x03}; + +CPoint PtSegScN0[4] = {CPoint( 4,23), CPoint( 4,32), CPoint(13,32), CPoint(13,23)}; +CPoint PtSegScN1[4] = {CPoint( 4,50), CPoint( 4,59), CPoint(13,59), CPoint(13,50)}; +CPoint PtSegScN2[4] = {CPoint( 4,68), CPoint( 4,77), CPoint(13,77), CPoint(13,68)}; +BYTE TpSegScN0[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSegScN1[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; +BYTE TpSegScN2[4] = {PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO}; + +// Functions for mirroring points... +CPoint PointMirror(const CPoint &P, const CPoint &M) +{ + return CPoint(P.x + 2*(M.x - P.x), P.y + 2*(M.y - P.y)); +} + +CPoint LineMirrorX(const CPoint &P, int X) +{ + return CPoint(P.x + 2*(X - P.x), P.y); +} + +CPoint LineMirrorY(const CPoint &P, int Y) +{ + return CPoint(P.x, P.y + 2*(Y - P.y)); +} + +///////////////////////////////////////////////////////////////////////////// +// CDSegment +CDSegment::CDSegment() +{ + m_paPoints = NULL; + m_paTypes = NULL; +} + +CDSegment::CDSegment(const CDSegment& Segment) +{ + ASSERT(Segment.m_paPoints != NULL); // Do not copy an unitialized segment + + m_nCount = Segment.m_nCount; + + m_paPoints = new CPoint[m_nCount]; + m_paTypes = new BYTE[m_nCount]; + if (m_paPoints != NULL && m_paTypes != NULL) + { + memcpy(m_paPoints, Segment.m_paPoints, m_nCount * sizeof(CPoint)); + memcpy(m_paTypes, Segment.m_paTypes, m_nCount * sizeof(BYTE)); + } +} + +// ----------------------------------------------------------------------------- + +CDSegment::~CDSegment() +{ + FreeSegment(); +} + +void CDSegment::DefPoints(const POINT* lpaPoints, const BYTE* lpaTypes, int nCount) +{ + FreeSegment(); + + m_paPoints = new CPoint[nCount]; + m_paTypes = new BYTE[nCount]; + m_nCount = nCount; + if (m_paPoints != NULL && m_paTypes != NULL) + { + memcpy(m_paPoints, lpaPoints, m_nCount * sizeof(CPoint)); + memcpy(m_paTypes, lpaTypes, m_nCount * sizeof(BYTE)); + } +} + +// ----------------------------------------------------------------------------- + +CDSegment CDSegment::operator=(const CDSegment &Segment) +{ + CPoint *pNewPoints; + BYTE * pNewTypes; + + m_nCount = Segment.m_nCount; + + pNewPoints = new CPoint[m_nCount]; + pNewTypes = new BYTE[m_nCount]; + memcpy(pNewPoints, Segment.m_paPoints, m_nCount * sizeof(CPoint)); + memcpy(pNewTypes, Segment.m_paTypes, m_nCount * sizeof(BYTE)); + FreeSegment(); // Get rid of old stuff + m_paPoints = pNewPoints; + m_paTypes = pNewTypes; + + return *this; +} + +void CDSegment::FreeSegment() +{ + if (m_paPoints != NULL && m_paTypes != NULL) + { + delete[] m_paPoints; + delete[] m_paTypes; + m_paPoints = NULL; + m_paTypes = NULL; + } +} + +void CDSegment::Draw(CDC *pDC, CDoubleRect DrawPlace, int iWidth) const +{ + int i, nBez,b; + CPoint * paPoints; + double daContr[4]; + double *pBezPts; + double dRelWidth, dRelHeight; + + paPoints = new CPoint[m_nCount]; + if (paPoints == NULL) return; + + dRelWidth = DrawPlace.Width() / iWidth; + dRelHeight = DrawPlace.Height() / NORM_DIGIHEIGHT; + for (i = 0; i < m_nCount; i++) + { + if (m_paTypes[i] != PT_BEZIERTO) + { + paPoints[i] = CPoint(DrawPlace.left + dRelWidth * m_paPoints[i].x + 0.5, + DrawPlace.top + dRelHeight * m_paPoints[i].y + 0.5); + } + } + + for (i = 0; i < m_nCount; i++) + { + if (m_paTypes[i] == PT_MOVETO) + { + pDC->MoveTo(paPoints[i]); + } + else if (m_paTypes[i] == PT_LINETO) + { + VERIFY(pDC->LineTo(paPoints[i])); + } + else if (m_paTypes[i] == PT_BEZIERTO) + { + // Look for the first non-bezier point(This is the EndPoint)... + nBez = 0; + do + { + nBez++; + } while (m_paTypes[i+nBez] == PT_BEZIERTO); + + pBezPts = new double[2*(nBez+2)]; + for (b = 0; b < (nBez+2)*2; b += 2) + { + pBezPts[b ] = DrawPlace.left + dRelWidth * m_paPoints[i-1+b/2].x; + pBezPts[b+1] = DrawPlace.top + dRelHeight * m_paPoints[i-1+b/2].y; + } + CalcBezier(pBezPts, 2*(nBez+2), daContr); + delete[] pBezPts; + + paPoints[i ].x = daContr[0] + 0.5; + paPoints[i ].y = daContr[1] + 0.5; + paPoints[i+1].x = daContr[2] + 0.5; + paPoints[i+1].y = daContr[3] + 0.5; + paPoints[i+2] = paPoints[i+nBez]; + + VERIFY(pDC->PolyBezierTo(&paPoints[i], 3)); + i += nBez; + } + } // for + delete[] paPoints; +} + +///////////////////////////////////////////////////////////////////////////// +// CDigiChar + +CDigiChar::CDigiChar() +{ + m_Width = 49; + m_wSegmData = 0x0000; // All segments in offcolor +} + +CDigiChar::~CDigiChar() +{ + +} + +void CDigiChar::Draw(CDC *pDC, CDoubleRect DrawPlace, CPen *pOffPen, CPen *pOnPen, + CBrush *pOffBrush, CBrush *pOnBrush) +{ + WORD SegMask; + DSegmentVector::iterator SegmIterator; + + SegMask = 1; + for (SegmIterator = m_SegmentVector.begin(); SegmIterator != m_SegmentVector.end(); + SegmIterator++) + { + if (m_wSegmData & SegMask) + { + pDC->SelectObject(pOnBrush); + pDC->SelectObject(pOnPen); + } + else + { + pDC->SelectObject(pOffBrush); + pDC->SelectObject(pOffPen); + } + + pDC->BeginPath(); + SegmIterator->Draw(pDC, DrawPlace, m_Width); + pDC->EndPath(); + pDC->StrokeAndFillPath(); + + SegMask <<= 1; + } +} +void CDigiChar::SetElementData(WORD wSegmData, int /*iDispStyle*/) +{ + m_wSegmData = wSegmData; +} + +int CDigiChar::GetNormWidth() const +{ + return m_Width; +} + +///////////////////////////////////////////////////////////////////////////// +// CDigi7Segment + +CDigi7Segment::CDigi7Segment() +{ + m_Width = 49; + m_NSegments = 7; +} + +void CDigi7Segment::SetElementData(WORD wSegmData, int iDispStyle) +{ + int i, p; + CDSegment TmpSegm; + LPPOINT lpTmpSegPoints = NULL; + LPPOINT lpSegPoints; + LPBYTE lpType; + int nCount; + + m_SegmentVector.clear(); + for (i = 0; i < m_NSegments; i++) + { + switch(i) + { + case 0: + case 6: if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg7N0S; + lpType = TpSeg7N0S; + nCount = 7; + } + else + { + lpSegPoints = PtSeg7N0; + lpType = TpSeg7N0; + nCount = 4; + } + break; + case 1: + case 4:if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg7N1S; + lpType = TpSeg7N1S; + nCount = 7; + } + else + { + lpSegPoints = PtSeg7N1; + lpType = TpSeg7N1; + nCount = 4; + } + break; + case 2: + case 5: if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg7N2S; + lpType = TpSeg7N2S; + nCount = 10; + } + else + { + lpSegPoints = PtSeg7N1; + lpType = TpSeg7N1; + nCount = 4; + } + break; + case 3: if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg7N3S; + lpType = TpSeg7N3S; + nCount = 6; + } + else + { + lpSegPoints = PtSeg7N3; + lpType = TpSeg7N3; + nCount = 6; + } + break; + } + + switch(i) + { + case 6: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + case 2: if (!(iDispStyle & CDigistring::DS_SMOOTH)) + { + lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorX(lpSegPoints[p], (m_Width-1)/2); + } + break; + case 4: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + case 5: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + if (iDispStyle & CDigistring::DS_SMOOTH) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41); + else + lpTmpSegPoints[p] = PointMirror(lpSegPoints[p], CPoint((m_Width-1)/2, 41)); + break; + } + + if (lpTmpSegPoints == NULL) + TmpSegm.DefPoints(lpSegPoints, lpType, nCount); + else + { + TmpSegm.DefPoints(lpTmpSegPoints, lpType, nCount); + delete[] lpTmpSegPoints; + lpTmpSegPoints = NULL; + } + m_SegmentVector.push_back(TmpSegm); + } + m_wSegmData = wSegmData; +} + +///////////////////////////////////////////////////////////////////////////// +// CDigi14Segment + +CDigi14Segment::CDigi14Segment() +{ + m_Width = 49; + m_NSegments = 14; +} + +void CDigi14Segment::SetElementData(WORD wSegmData, int iDispStyle) +{ + int i, p; + CDSegment x; + LPPOINT lpTmpSegPoints = NULL; + LPPOINT lpSegPoints; + LPBYTE lpType; + int nCount; + + m_SegmentVector.clear(); + for (i = 0; i < m_NSegments; i++) + { + switch(i) + { + case 0: + case 5: if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg14N0S; + lpType = TpSeg14N0S; + nCount = 13; + } + else + { + lpSegPoints = PtSeg14N0; + lpType = TpSeg14N0; + nCount = 5; + } + break; + case 1: + case 2: + case 3: + case 4: + if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg14N1S; + lpType = TpSeg14N1S; + nCount = 10; + } + else + { + lpSegPoints = PtSeg14N1; + lpType = TpSeg14N1; + nCount = 5; + } + break; + case 6: + case 7: + if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg14N6S; + lpType = TpSeg14N6S; + nCount = 6; + } + else + { + lpSegPoints = PtSeg14N6; + lpType = TpSeg14N6; + nCount = 6; + } + break; + case 8: + case 9: + case 11: + case 12: + if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg14N8S; + lpType = TpSeg14N8S; + nCount = 10; + } + else + { + lpSegPoints = PtSeg14N8; + lpType = TpSeg14N8; + nCount = 4; + } + break; + case 13: + case 10: + if (iDispStyle & CDigistring::DS_SMOOTH) + { + lpSegPoints = PtSeg14N13S; + lpType = TpSeg14N13S; + nCount = 17; + } + else + { + lpSegPoints = PtSeg14N13; + lpType = TpSeg14N13; + nCount = 4; + } + break; + } + + switch(i) + { + case 5: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + case 2: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorX(lpSegPoints[p], (m_Width-1)/2);break; + case 3: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + case 4: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = PointMirror(lpSegPoints[p], CPoint((m_Width-1)/2, 41));break; + case 7: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorX(lpSegPoints[p], (m_Width-1)/2);break; + case 9: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + case 11: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = PointMirror(lpSegPoints[p], CPoint((m_Width-1)/2, 41));break; + case 12: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorX(lpSegPoints[p], (m_Width-1)/2);break; + case 10: lpTmpSegPoints = new CPoint[nCount]; + for (p = 0; p < nCount; p++) + lpTmpSegPoints[p] = LineMirrorY(lpSegPoints[p], 41);break; + } + + if (lpTmpSegPoints == NULL) + x.DefPoints(lpSegPoints, lpType, nCount); + else + { + x.DefPoints(lpTmpSegPoints, lpType, nCount); + delete[] lpTmpSegPoints; + lpTmpSegPoints = NULL; + } + m_SegmentVector.push_back(x); + } + m_wSegmData = wSegmData; +} + +///////////////////////////////////////////////////////////////////////////// +// CDigiSemiColonCombi + +CDigiColonDotChar::CDigiColonDotChar() +{ + m_Width = 18; + m_NSegments = 3; +} + +void CDigiColonDotChar::SetElementData(WORD wSegmData, int /*iDispStyle*/) +{ + int i; + CDSegment DSegment; + LPPOINT lpSegPoints; + LPBYTE lpType; + int nCount; + + m_SegmentVector.clear(); + + for (i = 0; i < m_NSegments; i++) + { + switch(i) + { + case 0:lpSegPoints = PtSegScN0; + lpType = TpSegScN0; + nCount = 4; break; + case 1: + lpSegPoints = PtSegScN1; + lpType = TpSegScN1; + nCount = 4; break; + case 2: + lpSegPoints = PtSegScN2; + lpType = TpSegScN2; + nCount = 4; break; + } + DSegment.DefPoints(lpSegPoints, lpType, nCount); + m_SegmentVector.push_back(DSegment); + } + + m_wSegmData = wSegmData; +} + +///////////////////////////////////////////////////////////////////////////// +// CDigistring + +CDigistring::CDigistring() + : m_strText("EMPTY") +{ + m_DispStyle = DS_SZ_PROP; + m_BackColor = BLACK; + m_Modified = TRUE; + m_OffColor = DARKGREEN; + m_OnColor = LIGHTGREEN; +} + +CDigistring::~CDigistring() +{ + m_CharVector.clear(); +} + +void CDigistring::SetText(LPCTSTR lpszText) +{ + if (m_strText != lpszText) + { + m_strText = lpszText; + m_Modified = TRUE; + Invalidate(); + } +} + +void CDigistring::Format(LPCTSTR lpszFormat, ...) +{ + TCHAR szMessage[256]; + + va_list argp; + va_start(argp, lpszFormat); + _vsntprintf(szMessage, 255, lpszFormat, argp); + va_end(argp); + + SetText(szMessage); +} + +void CDigistring::SetColor(COLORREF OffColor, COLORREF OnColor) +{ + if (m_OnColor == OnColor && m_OffColor == OffColor) + return; + m_OnColor = OnColor; + m_OffColor = OffColor; + Invalidate(); +} + +void CDigistring::SetBackColor(COLORREF BackColor /* = BLACK */) +{ + if (m_BackColor == BackColor) + return; + m_BackColor = BackColor; + Invalidate(); +} + +BOOL CDigistring::ModifyDigiStyle(DWORD dwRemove, DWORD dwAdd) +{ + ASSERT(!(dwRemove & dwAdd)); + if (dwRemove & dwAdd) + return FALSE; + + m_DispStyle |= dwAdd; + m_DispStyle &= ~dwRemove; + + m_Modified = TRUE; + Invalidate(); + return TRUE; +} + +CDigiChar * CDigistring::DefineChar(TCHAR cChar) +{ + int iIndex; + CDigiChar * pDChar = NULL; + + if (cChar >= _T('0') && cChar <= _T('9') + || cChar == _T(' ') || cChar == _T('-')) + { + if (cChar == _T(' ')) + { + iIndex = 0; + } + else if (cChar == _T('-')) + { + iIndex = 11; + } + else + { + iIndex = cChar - _T('0') + 1; + } + + if (m_DispStyle & DS_STYLE14) + { + pDChar = new CDigi14Segment; + pDChar->SetElementData(CHAR_SEGM14[iIndex], m_DispStyle); + } + else + { + pDChar = new CDigi7Segment; + pDChar->SetElementData(CHAR_SEGM7[iIndex], m_DispStyle); + } + } + else if (cChar >= _T('A') && cChar <= _T('Z')) + { + iIndex = cChar - _T('A') + 12; + pDChar = new CDigi14Segment; + pDChar->SetElementData(CHAR_SEGM14[iIndex], m_DispStyle); + } + else + { + iIndex = 0; + switch(cChar) + { + case _T(':'): iIndex++; + case _T('.'): pDChar = new CDigiColonDotChar; + pDChar->SetElementData(CHAR_SEMCOL[iIndex], m_DispStyle); + break; + case _T('*'): iIndex = MAXSEGCHAR14 - 2; pDChar = new CDigi14Segment; + pDChar->SetElementData(CHAR_SEGM14[iIndex], m_DispStyle); + break; + case _T('+'): iIndex = MAXSEGCHAR14 - 1; pDChar = new CDigi14Segment; + pDChar->SetElementData(CHAR_SEGM14[iIndex], m_DispStyle); + break; + default : ASSERT(FALSE); + } + } + return pDChar; +} + +void CDigistring::BuildString() +{ + CDigiChar * pDChar; + if (!m_Modified) return; + m_CharVector.clear(); + + m_strText.MakeUpper(); + for (int i = 0; i < m_strText.GetLength(); i++) + { + if ((pDChar = DefineChar(m_strText[i])) != NULL) + { + m_CharVector.push_back(*pDChar); + delete pDChar; + } + } + + m_Modified = FALSE; +} + +BEGIN_MESSAGE_MAP(CDigistring, CStatic) + //{{AFX_MSG_MAP(CDigistring) + ON_WM_PAINT() + ON_WM_ERASEBKGND() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDigistring message handlers + +void CDigistring::OnPaint() +{ + CRect rect; + CDoubleRect CharRect; + GetClientRect(&rect); + + CPaintDC dc(this); // device context for painting + dc.SetBkColor(m_BackColor); + CMemDC memDC(&dc, &rect); + + CBrush hBrushOff, hBrushOn; + hBrushOff.CreateSolidBrush(m_OffColor); + hBrushOn.CreateSolidBrush(m_OnColor); + CBrush *pOldBrush = memDC.SelectObject(&hBrushOn); + + int r = int(GetRValue(m_OffColor) * 0.75 + GetRValue(m_BackColor) * 0.25); + int g = int(GetGValue(m_OffColor) * 0.75 + GetGValue(m_BackColor) * 0.25); + int b = int(GetBValue(m_OffColor) * 0.75 + GetBValue(m_BackColor) * 0.25); + + CPen OffPen(PS_SOLID | PS_ENDCAP_ROUND, 1, RGB(r,g,b)); + r = int(GetRValue(m_OnColor) * 0.75 + GetRValue(m_BackColor) * 0.25); + g = int(GetGValue(m_OnColor) * 0.75 + GetGValue(m_BackColor) * 0.25); + b = int(GetBValue(m_OnColor) * 0.75 + GetBValue(m_BackColor) * 0.25); + CPen OnPen(PS_SOLID | PS_ENDCAP_ROUND, 1, RGB(r,g,b)); + CPen *pOldPen = memDC.SelectObject(&OffPen); + + int iTotWidth = 0; + double dRelWidth, dRelHeight; + // TODO: Add your message handler code here + + DigiCharVector::iterator CharIterator; + + // Calculate resizing factors... + BuildString(); + for (CharIterator = m_CharVector.begin(); CharIterator != m_CharVector.end(); + CharIterator++) + { + iTotWidth += CharIterator->GetNormWidth(); + } + dRelWidth = double(rect.Width()) / iTotWidth; + dRelHeight = double(rect.Height()) / NORM_DIGIHEIGHT; + + // If proportional make offset for centered text + if (m_DispStyle & DS_SZ_PROP) + { + if (dRelWidth < dRelHeight) + dRelHeight = dRelWidth; + else + dRelWidth = dRelHeight; + + CharRect.left = (rect.Width() - dRelWidth * iTotWidth) / 2; + CharRect.top = (rect.Height() - dRelHeight * NORM_DIGIHEIGHT) / 2; + } + else + CharRect.SetRectEmpty(); + + // Draw all characters... + for (CharIterator = m_CharVector.begin(); CharIterator != m_CharVector.end(); + CharIterator++) + { + CharRect.SetRect(CharRect.left, CharRect.top, + CharRect.left + dRelWidth * CharIterator->GetNormWidth(), + CharRect.top + dRelHeight * NORM_DIGIHEIGHT); + + CharIterator->Draw(&memDC, CharRect, &OffPen, &OnPen, &hBrushOff, &hBrushOn); + + CharRect.left += dRelWidth * CharIterator->GetNormWidth(); + } + + // Mama says: Clean up your mess! + memDC.SelectObject(pOldPen); + memDC.SelectObject(pOldBrush); + OffPen.DeleteObject(); + OnPen.DeleteObject(); + hBrushOff.DeleteObject(); + hBrushOn.DeleteObject(); +} + +BOOL CDigistring::OnEraseBkgnd(CDC* /*pDC*/) +{ + // Don't erase the background to avoid flickering + // Background is painted in CMemDC::CMemDC(); with FillSolidRect(); + return FALSE; +} -- cgit v1.1 From f3c704c73288fc885d1d19b6885b2ad69aba0868 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:34 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Digistring.h | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 Horloge/Digistring.h diff --git a/Horloge/Digistring.h b/Horloge/Digistring.h new file mode 100644 index 0000000..dc1352d --- /dev/null +++ b/Horloge/Digistring.h @@ -0,0 +1,187 @@ +#if !defined(AFX_DIGISTRING_H__F77484C2_745F_11D3_A718_87712333104C__INCLUDED_) +#define AFX_DIGISTRING_H__F77484C2_745F_11D3_A718_87712333104C__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// Digistring.h : header file +// +// Copyright (C) 2000 by Michel Wassink +// All rights reserved +// +// This is free software. +// This code may be used in compiled form in any way you desire. This +// file may be redistributed unmodified by any means PROVIDING it is +// not sold for profit without the authors written consent, and +// providing that this notice and the authors name and all copyright +// notices remains intact. If the source code in this file is used in +// any commercial application then a statement along the lines of +// "Portions Copyright © 2000 Michel Wassink" must be included in +// the startup banner, "About" box or printed documentation. An email +// letting me know that you are using it would be nice as well. That's +// not much to ask considering the amount of work that went into this. +// +// No warrantee of any kind, expressed or implied, is included with this +// software; use at your own risk, responsibility for damages (if any) to +// anyone resulting from the use of this software rests entirely with the +// user. +// +// Version: 1.0 +// Release: 1 (februari 2000 to www.codeguru.com and www.codeproject.com) +// ----------------------------------------------------------------------- +// Notes to changes for release 1 (V1.0): +// - First release. +// +// Send bug reports, bug fixes, enhancements, requests, flames, etc., and +// I'll try to keep a version up to date. I can be reached as follows: +// mwassink@csi.com (private site) +// An email letting me know that you are using it would be nice. +///////////////////////////////////////////////////////////////////////////// + +#include +using namespace std ; +#include "MEMDC.H" +#include "RGBCOLOR.H" + +// CRect class with double precision for accurate drawing. +class CDoubleRect +{ +public: + void SetRect(double x1, double y1, double x2, double y2) + { left = x1; top = y1; right = x2; bottom = y2;} + double Width() const{return right - left;} + double Height() const{return bottom - top;} + void SetRectEmpty(){left = top = right = bottom = 0.0;} +public: + double left, top, right, bottom; +}; + +class CDSegment +{ +public: + CDSegment(); + CDSegment(const CDSegment& Segment); + ~CDSegment(); + void DefPoints(const POINT* lpPoints, const BYTE* lpTypes, int nCount); + void Draw(CDC *pDC, CDoubleRect DrawPlace, int iWidth) const; + void FreeSegment(); + CDSegment operator=(const CDSegment &Segment); + +// Implementation +public: + CPoint * m_paPoints; + BYTE * m_paTypes; + int m_nCount; +}; + +typedef vector DSegmentVector; + +class CDigiChar +{ +// Construction +public: + CDigiChar(); + +//Attributes: +public: + virtual ~CDigiChar(); + virtual void SetElementData(WORD wSegmData, int iDispStyle); + void Draw(CDC *pDC, CDoubleRect DrawPlace, CPen *pOffPen, CPen *pOnpen, + CBrush *pOffBrush, CBrush *pOnBrush); + void SetColor(COLORREF OffColor, COLORREF OnColor); + int GetNormWidth() const; + + +protected: + int m_Width; + WORD m_wSegmData; + DSegmentVector m_SegmentVector; + int m_NSegments; + COLORREF m_OffColor; + COLORREF m_OnColor; + +}; + +class CDigiColonDotChar : public CDigiChar +{ +public: + CDigiColonDotChar(); + void SetElementData(WORD wSegmData, int iDispStyle); +}; + +class CDigi7Segment : public CDigiChar +{ +public: + CDigi7Segment(); + void SetElementData(WORD wSegmData, int iDispStyle); +}; + +class CDigi14Segment : public CDigiChar +{ +public: + CDigi14Segment(); + void SetElementData(WORD wSegmData, int iDispStyle); +}; + +typedef vector DigiCharVector; + +///////////////////////////////////////////////////////////////////////////// +// CDigistring class + +class CDigistring : public CStatic +{ +// Construction +public: + CDigistring(); + +// Attributes +public: + enum { + DS_SMOOTH = 1, // Pioneer kind of characters + DS_STYLE14 = 2, // use allways 14 segment display. + DS_SZ_PROP = 4 // size proportional + }; + +// Operations +public: + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDigistring) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CDigistring(); + void SetText(LPCTSTR lpszText); + void Format(LPCTSTR lpszFormat, ...); + void SetColor(COLORREF OffColor, COLORREF OnColor); + void SetBackColor(COLORREF BackColor = BLACK); + BOOL ModifyDigiStyle(DWORD dwRemove, DWORD dwAdd); + + // Generated message map functions +protected: + CDigiChar * DefineChar(TCHAR cChar); + void BuildString(); + + CString m_strText; + BOOL m_Modified; + DigiCharVector m_CharVector; + COLORREF m_OffColor; + COLORREF m_OnColor; + COLORREF m_BackColor; + DWORD m_DispStyle; + //{{AFX_MSG(CDigistring) + afx_msg void OnPaint(); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_DIGISTRING_H__F77484C2_745F_11D3_A718_87712333104C__INCLUDED_) -- cgit v1.1 From aa2abf8b5d0da8a4465d46a23d5cf2ce254c79b5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:36 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Horloge.cpp | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Horloge/Horloge.cpp diff --git a/Horloge/Horloge.cpp b/Horloge/Horloge.cpp new file mode 100644 index 0000000..885f655 --- /dev/null +++ b/Horloge/Horloge.cpp @@ -0,0 +1,73 @@ +// Horloge.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "Horloge.h" +#include "HorlogeDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeApp + +BEGIN_MESSAGE_MAP(CHorlogeApp, CWinApp) + //{{AFX_MSG_MAP(CHorlogeApp) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + ON_COMMAND(ID_HELP, CWinApp::OnHelp) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeApp construction + +CHorlogeApp::CHorlogeApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CHorlogeApp object + +CHorlogeApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeApp initialization + +BOOL CHorlogeApp::InitInstance() +{ + // Standard initialization + // If you are not using these features and wish to reduce the size + // of your final executable, you should remove from the following + // the specific initialization routines you do not need. + +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif + + AfxEnableControlContainer(); + CHorlogeDlg dlg; + m_pMainWnd = &dlg; + int nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + else if (nResponse == IDCANCEL) + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} -- cgit v1.1 From 0678d1746729e28482281a99ecf2fb7df6e48ace Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:38 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 2) --- Horloge/Horloge.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Horloge/Horloge.cpp b/Horloge/Horloge.cpp index 885f655..cbe1774 100644 --- a/Horloge/Horloge.cpp +++ b/Horloge/Horloge.cpp @@ -41,21 +41,22 @@ CHorlogeApp theApp; BOOL CHorlogeApp::InitInstance() { - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. + // InitCommonControlsEx() is required on Windows XP if an application + // manifest specifies use of ComCtl32.dll version 6 or later to enable + // visual styles. Otherwise, any window creation will fail. + INITCOMMONCONTROLSEX InitCtrls; + InitCtrls.dwSize = sizeof(InitCtrls); + // Set this to include all the common control classes you want to use + // in your application. + InitCtrls.dwICC = ICC_WIN95_CLASSES; + InitCommonControlsEx(&InitCtrls); -#ifdef _AFXDLL - Enable3dControls(); // Call this when using MFC in a shared DLL -#else - Enable3dControlsStatic(); // Call this when linking to MFC statically -#endif + CWinApp::InitInstance(); - AfxEnableControlContainer(); + //AfxEnableControlContainer(); CHorlogeDlg dlg; m_pMainWnd = &dlg; - int nResponse = dlg.DoModal(); + INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is -- cgit v1.1 From 4413715eb4e1e46bb9161198c7a6eb5f27d8795e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:45 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Horloge.dsp | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 Horloge/Horloge.dsp diff --git a/Horloge/Horloge.dsp b/Horloge/Horloge.dsp new file mode 100644 index 0000000..9e11dc5 --- /dev/null +++ b/Horloge/Horloge.dsp @@ -0,0 +1,194 @@ +# Microsoft Developer Studio Project File - Name="Horloge" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=Horloge - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Horloge.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Horloge.mak" CFG="Horloge - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Horloge - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "Horloge - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName ""$/Bus/Horloge", JIEAAAAA" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Horloge - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x40c /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 +# ADD LINK32 /nologo /subsystem:windows /machine:I386 + +!ELSEIF "$(CFG)" == "Horloge - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Horloge - Win32 Release" +# Name "Horloge - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Curvefit.cpp +# End Source File +# Begin Source File + +SOURCE=.\Digistring.cpp +# End Source File +# Begin Source File + +SOURCE=.\Horloge.cpp +# End Source File +# Begin Source File + +SOURCE=.\Horloge.rc +# End Source File +# Begin Source File + +SOURCE=.\HorlogeDlg.cpp +# End Source File +# Begin Source File + +SOURCE=.\HorlogeParseCmdLine.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Curvefit.h +# End Source File +# Begin Source File + +SOURCE=.\Digistring.h +# End Source File +# Begin Source File + +SOURCE=.\Horloge.h +# End Source File +# Begin Source File + +SOURCE=.\HorlogeDlg.h +# End Source File +# Begin Source File + +SOURCE=.\HorlogeParseCmdLine.h +# End Source File +# Begin Source File + +SOURCE=.\MemDC.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\Rgbcolor.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\res\Horloge.ico +# End Source File +# Begin Source File + +SOURCE=.\res\Horloge.rc2 +# End Source File +# Begin Source File + +SOURCE=.\res\ico00001.ico +# End Source File +# Begin Source File + +SOURCE=.\res\ico00002.ico +# End Source File +# Begin Source File + +SOURCE=.\res\ico00003.ico +# End Source File +# Begin Source File + +SOURCE=.\res\icon1.ico +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project -- cgit v1.1 From 7be288642cb64f554d3a20b660e9c2194b2ec8e1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:46 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge (vss 2) --- Horloge/Horloge.dsp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Horloge/Horloge.dsp b/Horloge/Horloge.dsp index 9e11dc5..c10c181 100644 --- a/Horloge/Horloge.dsp +++ b/Horloge/Horloge.dsp @@ -65,9 +65,10 @@ LINK32=link.exe # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" /d "_AFXDLL" @@ -77,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /out:"c:\users\fcolin\Program Files\Debug\Horloge.exe" /pdbtype:sept !ENDIF @@ -183,6 +184,10 @@ SOURCE=.\res\ico00003.ico # End Source File # Begin Source File +SOURCE=.\res\ico00004.ico +# End Source File +# Begin Source File + SOURCE=.\res\icon1.ico # End Source File # End Group -- cgit v1.1 From 28e820d1cc74f65f87adb01ecd4fa4b1820a1591 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:49 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Horloge.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Horloge/Horloge.h diff --git a/Horloge/Horloge.h b/Horloge/Horloge.h new file mode 100644 index 0000000..a7ab3d9 --- /dev/null +++ b/Horloge/Horloge.h @@ -0,0 +1,50 @@ +// Horloge.h : main header file for the HORLOGE application +// + +#if !defined(AFX_HORLOGE_H__0FD083D1_0B1D_43C1_9501_73E55EBEDE61__INCLUDED_) +#define AFX_HORLOGE_H__0FD083D1_0B1D_43C1_9501_73E55EBEDE61__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "Digistring.h" + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeApp: +// See Horloge.cpp for the implementation of this class +// + +class CHorlogeApp : public CWinApp +{ +public: + CHorlogeApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CHorlogeApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CHorlogeApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_HORLOGE_H__0FD083D1_0B1D_43C1_9501_73E55EBEDE61__INCLUDED_) -- cgit v1.1 From d48438c419d2186a270d5ef6c35db75a1b02fdfb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:51 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Horloge.rc | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 Horloge/Horloge.rc diff --git a/Horloge/Horloge.rc b/Horloge/Horloge.rc new file mode 100644 index 0000000..f47ef38 --- /dev/null +++ b/Horloge/Horloge.rc @@ -0,0 +1,201 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 12, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\Horloge.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""l.fra\\afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Horloge.ico" +IDI_FORWARD ICON DISCARDABLE "res\\icon1.ico" +IDI_BACKWARD ICON DISCARDABLE "res\\ico00001.ico" +IDI_PAUSE ICON DISCARDABLE "res\\ico00002.ico" +IDI_START ICON DISCARDABLE "res\\ico00003.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_HORLOGE_DIALOG DIALOGEX 0, 0, 320, 200 +STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_APPWINDOW +CAPTION "Horloge" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "Pause",IDC_PAUSE,115,82,61,28,BS_ICON + PUSHBUTTON "Start",IDC_START,179,82,58,28,BS_ICON + PUSHBUTTON "Backward",IDC_BACKWARD,115,54,37,22,BS_ICON + PUSHBUTTON "Forward",IDC_FORWARD,206,55,30,22,BS_ICON + CTEXT "SPEED",IDC_SPEED,156,55,47,22,SS_CENTERIMAGE | + SS_SUNKEN + CTEXT "HH:MM:SS",IDC_TIME,115,12,190,34,SS_CENTERIMAGE | + SS_SUNKEN + GROUPBOX "Ivy",IDC_STATIC,7,5,102,187 + EDITTEXT IDC_BUSNUMBER,20,18,74,14,ES_AUTOHSCROLL + PUSHBUTTON "Ivy Start",IDC_IVYSTART,41,38,31,14 + CONTROL "Big Speed",IDC_BIGSPEED,"Button",BS_AUTOCHECKBOX | + BS_LEFTTEXT | WS_DISABLED | WS_TABSTOP,243,57,58,16 + LISTBOX IDC_APPLIST,13,59,91,128,LBS_SORT | LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + CONTROL "DateTimePicker1",IDC_SETTIME,"SysDateTimePick32", + DTS_RIGHTALIGN | DTS_UPDOWN | WS_TABSTOP | 0x8,251,86,54, + 13 + PUSHBUTTON "-5 min",IDC_BACK_5,119,119,28,24 + PUSHBUTTON "- 2 min",IDC_BACK_2,150,119,28,24 + PUSHBUTTON "+2 min",IDC_FORW_2,243,119,28,24 + PUSHBUTTON "+5 min",IDC_FORW_5,274,119,28,24 + PUSHBUTTON "-1 min",IDC_BACK_1,181,119,28,24 + PUSHBUTTON "+1 min",IDC_FORW_1,212,119,28,24 +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040C04B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Application MFC Horloge\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "Horloge\0" + VALUE "LegalCopyright", "Copyright (C) 2001\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "Horloge.EXE\0" + VALUE "ProductName", "Application Horloge\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_HORLOGE_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 313 + TOPMARGIN, 5 + BOTTOMMARGIN, 192 + END +END +#endif // APSTUDIO_INVOKED + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE 12, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\Horloge.rc2" // non-Microsoft Visual C++ edited resources +#include "l.fra\afxres.rc" // Standard components +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From 68a2ccdb918f821331677f0d2614a2f4794e2b2b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:52 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge (vss 2) --- Horloge/Horloge.rc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Horloge/Horloge.rc b/Horloge/Horloge.rc index f47ef38..6f04b7a 100644 --- a/Horloge/Horloge.rc +++ b/Horloge/Horloge.rc @@ -71,6 +71,7 @@ IDI_FORWARD ICON DISCARDABLE "res\\icon1.ico" IDI_BACKWARD ICON DISCARDABLE "res\\ico00001.ico" IDI_PAUSE ICON DISCARDABLE "res\\ico00002.ico" IDI_START ICON DISCARDABLE "res\\ico00003.ico" +IDI_NORMAL_SPEED ICON DISCARDABLE "res\\ico00004.ico" ///////////////////////////////////////////////////////////////////////////// // @@ -86,9 +87,9 @@ FONT 8, "MS Sans Serif" BEGIN PUSHBUTTON "Pause",IDC_PAUSE,115,82,61,28,BS_ICON PUSHBUTTON "Start",IDC_START,179,82,58,28,BS_ICON - PUSHBUTTON "Backward",IDC_BACKWARD,115,54,37,22,BS_ICON - PUSHBUTTON "Forward",IDC_FORWARD,206,55,30,22,BS_ICON - CTEXT "SPEED",IDC_SPEED,156,55,47,22,SS_CENTERIMAGE | + PUSHBUTTON "Backward",IDC_BACKWARD,111,55,30,22,BS_ICON + PUSHBUTTON "Forward",IDC_FORWARD,175,55,30,22,BS_ICON + CTEXT "SPEED",IDC_SPEED,212,55,47,22,SS_CENTERIMAGE | SS_SUNKEN CTEXT "HH:MM:SS",IDC_TIME,115,12,190,34,SS_CENTERIMAGE | SS_SUNKEN @@ -96,7 +97,7 @@ BEGIN EDITTEXT IDC_BUSNUMBER,20,18,74,14,ES_AUTOHSCROLL PUSHBUTTON "Ivy Start",IDC_IVYSTART,41,38,31,14 CONTROL "Big Speed",IDC_BIGSPEED,"Button",BS_AUTOCHECKBOX | - BS_LEFTTEXT | WS_DISABLED | WS_TABSTOP,243,57,58,16 + BS_LEFTTEXT | WS_DISABLED | WS_TABSTOP,264,62,49,10 LISTBOX IDC_APPLIST,13,59,91,128,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP CONTROL "DateTimePicker1",IDC_SETTIME,"SysDateTimePick32", @@ -108,6 +109,9 @@ BEGIN PUSHBUTTON "+5 min",IDC_FORW_5,274,119,28,24 PUSHBUTTON "-1 min",IDC_BACK_1,181,119,28,24 PUSHBUTTON "+1 min",IDC_FORW_1,212,119,28,24 + PUSHBUTTON "Change File...",IDC_FILE,113,167,48,14 + EDITTEXT IDC_FILENAME,165,167,142,14,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "Normal Speed",IDC_NORMAL_SPEED,143,55,30,22,BS_ICON END -- cgit v1.1 From 84abba6b118623c2b269686311a8961da128310f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:54 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 3) --- Horloge/Horloge.rc | 71 +++++++++++++++++++++++------------------------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/Horloge/Horloge.rc b/Horloge/Horloge.rc index 6f04b7a..a7c0582 100644 --- a/Horloge/Horloge.rc +++ b/Horloge/Horloge.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -27,18 +27,18 @@ LANGUAGE LANG_FRENCH, SUBLANG_FRENCH // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -66,44 +66,37 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\Horloge.ico" -IDI_FORWARD ICON DISCARDABLE "res\\icon1.ico" -IDI_BACKWARD ICON DISCARDABLE "res\\ico00001.ico" -IDI_PAUSE ICON DISCARDABLE "res\\ico00002.ico" -IDI_START ICON DISCARDABLE "res\\ico00003.ico" -IDI_NORMAL_SPEED ICON DISCARDABLE "res\\ico00004.ico" +IDR_MAINFRAME ICON "res\\Horloge.ico" +IDI_FORWARD ICON "res\\icon1.ico" +IDI_BACKWARD ICON "res\\ico00001.ico" +IDI_PAUSE ICON "res\\ico00002.ico" +IDI_START ICON "res\\ico00003.ico" +IDI_NORMAL_SPEED ICON "res\\ico00004.ico" ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_HORLOGE_DIALOG DIALOGEX 0, 0, 320, 200 -STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU | WS_THICKFRAME +IDD_HORLOGE_DIALOG DIALOGEX 0, 0, 320, 201 +STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Horloge" -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN PUSHBUTTON "Pause",IDC_PAUSE,115,82,61,28,BS_ICON PUSHBUTTON "Start",IDC_START,179,82,58,28,BS_ICON PUSHBUTTON "Backward",IDC_BACKWARD,111,55,30,22,BS_ICON PUSHBUTTON "Forward",IDC_FORWARD,175,55,30,22,BS_ICON - CTEXT "SPEED",IDC_SPEED,212,55,47,22,SS_CENTERIMAGE | - SS_SUNKEN - CTEXT "HH:MM:SS",IDC_TIME,115,12,190,34,SS_CENTERIMAGE | - SS_SUNKEN - GROUPBOX "Ivy",IDC_STATIC,7,5,102,187 + CTEXT "SPEED",IDC_SPEED,212,55,47,22,SS_CENTERIMAGE | SS_SUNKEN + CTEXT "HH:MM:SS",IDC_TIME,115,12,190,34,SS_CENTERIMAGE | SS_SUNKEN + GROUPBOX "Ivy",IDC_STATIC,7,5,102,188 EDITTEXT IDC_BUSNUMBER,20,18,74,14,ES_AUTOHSCROLL PUSHBUTTON "Ivy Start",IDC_IVYSTART,41,38,31,14 - CONTROL "Big Speed",IDC_BIGSPEED,"Button",BS_AUTOCHECKBOX | - BS_LEFTTEXT | WS_DISABLED | WS_TABSTOP,264,62,49,10 - LISTBOX IDC_APPLIST,13,59,91,128,LBS_SORT | LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP - CONTROL "DateTimePicker1",IDC_SETTIME,"SysDateTimePick32", - DTS_RIGHTALIGN | DTS_UPDOWN | WS_TABSTOP | 0x8,251,86,54, - 13 - PUSHBUTTON "-5 min",IDC_BACK_5,119,119,28,24 + CONTROL "Big Speed",IDC_BIGSPEED,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_DISABLED | WS_TABSTOP,264,62,49,10 + LISTBOX IDC_APPLIST,13,59,91,128,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + CONTROL "DateTimePicker1",IDC_SETTIME,"SysDateTimePick32",DTS_RIGHTALIGN | DTS_UPDOWN | WS_TABSTOP | 0x8,251,86,54,13 + PUSHBUTTON "-5 min",IDC_BACK_5,117,119,28,24 PUSHBUTTON "- 2 min",IDC_BACK_2,150,119,28,24 PUSHBUTTON "+2 min",IDC_FORW_2,243,119,28,24 PUSHBUTTON "+5 min",IDC_FORW_5,274,119,28,24 @@ -112,10 +105,10 @@ BEGIN PUSHBUTTON "Change File...",IDC_FILE,113,167,48,14 EDITTEXT IDC_FILENAME,165,167,142,14,ES_AUTOHSCROLL | ES_READONLY PUSHBUTTON "Normal Speed",IDC_NORMAL_SPEED,143,55,30,22,BS_ICON + CONTROL "",IDC_FILEPROGRESS,"msctls_progress32",WS_BORDER,110,148,203,14 END -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -138,15 +131,13 @@ BEGIN BEGIN BLOCK "040C04B0" BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Application MFC Horloge\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "Horloge\0" - VALUE "LegalCopyright", "Copyright (C) 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "Horloge.EXE\0" - VALUE "ProductName", "Application Horloge\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "FileDescription", "Application MFC Horloge" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "Horloge" + VALUE "LegalCopyright", "Copyright (C) 2001" + VALUE "OriginalFilename", "Horloge.EXE" + VALUE "ProductName", "Application Horloge" + VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" @@ -155,8 +146,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -164,14 +153,14 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_HORLOGE_DIALOG, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 313 TOPMARGIN, 5 - BOTTOMMARGIN, 192 + BOTTOMMARGIN, 193 END END #endif // APSTUDIO_INVOKED -- cgit v1.1 From 834e692b11592ea32cb5ea0f04f041b0dd520451 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:57 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:34 Créé Commentaire: (vss 1) --- Horloge/Horloge.vcproj | 229 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 Horloge/Horloge.vcproj diff --git a/Horloge/Horloge.vcproj b/Horloge/Horloge.vcproj new file mode 100644 index 0000000..b5235bd --- /dev/null +++ b/Horloge/Horloge.vcproj @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 201fac491654302aa049f0ab80a4f2266a996fdc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:51:59 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:50 Archivé dans $/Bus/Horloge Commentaire: (vss 2) --- Horloge/Horloge.vcproj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Horloge/Horloge.vcproj b/Horloge/Horloge.vcproj index b5235bd..89e3b70 100644 --- a/Horloge/Horloge.vcproj +++ b/Horloge/Horloge.vcproj @@ -24,6 +24,7 @@ + Culture="1036" + AdditionalIncludeDirectories=""/> + Culture="1036"/> + + + + + Name="VCPostBuildEventTool" + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)""/> + + + + + + + + + + -- cgit v1.1 From 9ee8b19ce84b2e59bb574d34375211cb139a185c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:08 +0000 Subject: Utilisateur : Fcolin Date : 7/11/03 Heure : 17:50 Archivé dans $/Bus/Horloge Commentaire: (vss 7) --- Horloge/Horloge.vcproj | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Horloge/Horloge.vcproj b/Horloge/Horloge.vcproj index 6c8da7f..0328a96 100644 --- a/Horloge/Horloge.vcproj +++ b/Horloge/Horloge.vcproj @@ -221,7 +221,8 @@ Name="Resource Files" Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + RelativePath="Horloge.exe.manifest" + DeploymentContent="TRUE"> @@ -246,9 +247,6 @@ - - -- cgit v1.1 From f2cecd7f6487c7c0b3b6886dff91f9cdd0e05e56 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:10 +0000 Subject: Utilisateur : Fcolin Date : 6/12/04 Heure : 11:23 Archivé dans $/Bus/Horloge Commentaire: (vss 8) --- Horloge/Horloge.vcproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/Horloge/Horloge.vcproj b/Horloge/Horloge.vcproj index 0328a96..b8c2606 100644 --- a/Horloge/Horloge.vcproj +++ b/Horloge/Horloge.vcproj @@ -144,9 +144,6 @@ - + Keyword="MFCProj" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + + + Name="VCPreLinkEventTool" + /> + SuppressStartupBanner="true" + GenerateDebugInformation="true" + SubSystem="2" + /> + + + + + + + + + + + + + + - + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Debug/Horloge.tlb" + /> + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\Ivy;"..\..\..\pcre-6.4"" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + Name="VCManagedResourceCompilerTool" + /> + Culture="1036" + AdditionalIncludeDirectories="$(IntDir)/" + /> + + + + + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCWebDeploymentTool" + /> + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + SuppressStartupBanner="true" + /> + Name="VCManagedResourceCompilerTool" + /> + + + SuppressStartupBanner="true" + SubSystem="2" + /> + Name="VCALinkTool" + /> + + + + + + + CommandLine="rem copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)"" + /> + + + + + + + + Name="VCCLCompilerTool" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="..\Ivy;"..\..\..\pcre-6.4"" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + WarningLevel="3" + SuppressStartupBanner="true" + /> + Name="VCManagedResourceCompilerTool" + /> + Culture="1036" + /> + + + + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + + + + + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + RelativePath=".\Curvefit.cpp" + > + RelativePath=".\Digistring.cpp" + > + RelativePath=".\Horloge.cpp" + > + RelativePath=".\HorlogeDlg.cpp" + > + RelativePath=".\HorlogeParseCmdLine.cpp" + > - - + RelativePath=".\StdAfx.cpp" + > + + + + + + + Name="Release|Win32" + > + UsePrecompiledHeader="1" + /> + Name="Release|x64" + > + UsePrecompiledHeader="1" + /> + Filter="h;hpp;hxx;hm;inl" + > + RelativePath=".\Curvefit.h" + > + RelativePath=".\Digistring.h" + > + RelativePath=".\Horloge.h" + > + RelativePath=".\HorlogeDlg.h" + > + RelativePath=".\HorlogeParseCmdLine.h" + > + RelativePath=".\MemDC.h" + > + RelativePath=".\Resource.h" + > + RelativePath=".\Rgbcolor.h" + > + RelativePath=".\StdAfx.h" + > + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + RelativePath=".\res\Horloge.ico" + > + RelativePath=".\Horloge.rc" + > + RelativePath=".\res\Horloge.rc2" + > + RelativePath=".\res\ico00001.ico" + > + RelativePath=".\res\ico00002.ico" + > + RelativePath=".\res\ico00003.ico" + > + RelativePath=".\res\ico00004.ico" + > + RelativePath=".\res\icon1.ico" + > + RelativePath=".\ReadMe.txt" + > + -- cgit v1.1 From 54d7df6531441cfc201713feaa432a8bf9ab9549 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:17 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:50 Créé Commentaire: (vss 1) --- Horloge/Horloge.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Horloge/Horloge.vcproj.vspscc diff --git a/Horloge/Horloge.vcproj.vspscc b/Horloge/Horloge.vcproj.vspscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/Horloge/Horloge.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 8bed7960b99979ec40cae299adae9c714dd78f5c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:19 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/HorlogeDlg.cpp | 259 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 Horloge/HorlogeDlg.cpp diff --git a/Horloge/HorlogeDlg.cpp b/Horloge/HorlogeDlg.cpp new file mode 100644 index 0000000..1bce992 --- /dev/null +++ b/Horloge/HorlogeDlg.cpp @@ -0,0 +1,259 @@ +// HorlogeDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Horloge.h" +#include "HorlogeDlg.h" +#include "HorlogeParseCmdLine.h" + +#include "IvyApplication.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeDlg dialog + +CHorlogeDlg::CHorlogeDlg(CWnd* pParent /*=NULL*/) + : CDialog(CHorlogeDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CHorlogeDlg) + m_busnumber = _T(""); + m_big_speed = FALSE; + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + + bus = NULL; + rate = 1.0; +} + +void CHorlogeDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CHorlogeDlg) + DDX_Control(pDX, IDC_SETTIME, m_setTime); + DDX_Control(pDX, IDC_APPLIST, m_applist); + DDX_Control(pDX, IDC_SPEED, m_Speed); + DDX_Control(pDX, IDC_TIME, m_Time); + DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); + DDX_Check(pDX, IDC_BIGSPEED, m_big_speed); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CHorlogeDlg, CDialog) + //{{AFX_MSG_MAP(CHorlogeDlg) + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_IVYSTART, OnIvystart) + ON_BN_CLICKED(IDC_PAUSE, OnPause) + ON_BN_CLICKED(IDC_START, OnStart) + ON_NOTIFY(DTN_DATETIMECHANGE, IDC_SETTIME, OnDatetimechangeSettime) + ON_BN_CLICKED(IDC_BACKWARD, OnBackward) + ON_BN_CLICKED(IDC_FORWARD, OnForward) + ON_BN_CLICKED(IDC_BACK_5, OnBack5) + ON_BN_CLICKED(IDC_BACK_2, OnBack2) + ON_BN_CLICKED(IDC_BACK_1, OnBack1) + ON_BN_CLICKED(IDC_FORW_1, OnForw1) + ON_BN_CLICKED(IDC_FORW_2, OnForw2) + ON_BN_CLICKED(IDC_FORW_5, OnForw5) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CHorlogeDlg message handlers + +BOOL CHorlogeDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + //SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + ((CButton*)GetDlgItem(IDC_FORWARD))->SetIcon( AfxGetApp()->LoadIcon(IDI_FORWARD)); + ((CButton*)GetDlgItem(IDC_BACKWARD))->SetIcon(AfxGetApp()->LoadIcon(IDI_BACKWARD)); + ((CButton*)GetDlgItem(IDC_PAUSE))->SetIcon(AfxGetApp()->LoadIcon(IDI_PAUSE)); + ((CButton*)GetDlgItem(IDC_START))->SetIcon(AfxGetApp()->LoadIcon(IDI_START)); + + + m_Time.Format("%02d:%02d:%02d", 0,0,0); + m_Speed.Format("%.2f", rate ); + + bus = new Ivy( "Horloge","Horloge READY",this,TRUE); + + // parse command Line Info + HorlogeParseCmdLine cmd; + cmd.m_busNumber = bus->GetDomain( NULL ); + + AfxGetApp()->ParseCommandLine( cmd ); + + // Set Argument from Command Line + m_busnumber = cmd.m_busNumber; + + + bus->BindMsg("^ClockEvent Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent )); + bus->BindMsg("^ClockDatas Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent )); + bus->BindMsg("^rejeu READY", BUS_CALLBACK_OF(CHorlogeDlg, IvyRejeuReady)); + + m_busnumber = bus->GetDomain( m_busnumber ); + UpdateData(FALSE); + + // force bus start in case of start + if ( cmd.m_start ) + OnIvystart(); + + return TRUE; // return TRUE unless you set the focus to a control +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CHorlogeDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CHorlogeDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CHorlogeDlg::OnIvystart() +{ + UpdateData(TRUE); + bus->stop(); + m_busnumber = bus->GetDomain( m_busnumber ); + bus->start(m_busnumber); + m_applist.ResetContent(); + UpdateData(FALSE); +} +void CHorlogeDlg::OnApplicationConnected(IvyApplication *app) +{ + m_applist.AddString( app->GetName() ); +} +void CHorlogeDlg::OnApplicationDisconnected(IvyApplication *app) +{ + m_applist.DeleteString(m_applist.FindString(0, app->GetName()) ); +} +void CHorlogeDlg::IvyClockEvent( IvyApplication *app, int argc, const char **argv ) +{ + // Ivy ClockEvent Time=10:23:45 Rate=3 Bs=0 + time.wHour = atoi( *argv++ ); + time.wMinute = atoi( *argv++ ); + time.wSecond = atoi( *argv++ ); + rate = atof( *argv++ ); + int BigSpeed = atoi( *argv++ ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + m_Speed.Format("%.2f", rate ); + m_big_speed = BigSpeed; + m_setTime.SetTime(&time); + UpdateData(FALSE); +} +void CHorlogeDlg::IvyRejeuReady( IvyApplication *app, int argc, const char **argv ) +{ + bus->SendMsg("GetClockDatas"); +} + +void CHorlogeDlg::OnPause() +{ + bus->SendMsg("ClockPause"); +} + +void CHorlogeDlg::OnStart() +{ + bus->SendMsg("ClockStart"); +} + +void CHorlogeDlg::OnBackward() +{ + rate -= 0.5; + m_Speed.Format("%.2f", rate ); + bus->SendMsg("SetClock Rate=%f",rate); +} + +void CHorlogeDlg::OnForward() +{ + rate += 0.5; + m_Speed.Format("%.2f", rate ); + bus->SendMsg("SetClock Rate=%f",rate); +} + + +void CHorlogeDlg::OnDatetimechangeSettime(NMHDR* pNMHDR, LRESULT* pResult) +{ + m_setTime.GetTime(&time); + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + *pResult = 0; +} + + +void CHorlogeDlg::OnBack5() +{ + time.wMinute -= 5; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} + +void CHorlogeDlg::OnBack2() +{ + time.wMinute -= 2; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} + +void CHorlogeDlg::OnBack1() +{ + time.wMinute -= 1; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} + +void CHorlogeDlg::OnForw1() +{ + time.wMinute += 1; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} + +void CHorlogeDlg::OnForw2() +{ + time.wMinute += 2; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} + +void CHorlogeDlg::OnForw5() +{ + time.wMinute += 5; + bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); +} -- cgit v1.1 From 0cd203ab7d56dd302f0f0338516d6fa18f21cbaf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:20 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge (vss 2) --- Horloge/HorlogeDlg.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 9 deletions(-) diff --git a/Horloge/HorlogeDlg.cpp b/Horloge/HorlogeDlg.cpp index 1bce992..b02352d 100644 --- a/Horloge/HorlogeDlg.cpp +++ b/Horloge/HorlogeDlg.cpp @@ -23,10 +23,11 @@ CHorlogeDlg::CHorlogeDlg(CWnd* pParent /*=NULL*/) //{{AFX_DATA_INIT(CHorlogeDlg) m_busnumber = _T(""); m_big_speed = FALSE; + m_filename = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); - + memset( &time, 0, sizeof( time ) ); bus = NULL; rate = 1.0; } @@ -41,6 +42,7 @@ void CHorlogeDlg::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_TIME, m_Time); DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); DDX_Check(pDX, IDC_BIGSPEED, m_big_speed); + DDX_Text(pDX, IDC_FILENAME, m_filename); //}}AFX_DATA_MAP } @@ -60,6 +62,9 @@ BEGIN_MESSAGE_MAP(CHorlogeDlg, CDialog) ON_BN_CLICKED(IDC_FORW_1, OnForw1) ON_BN_CLICKED(IDC_FORW_2, OnForw2) ON_BN_CLICKED(IDC_FORW_5, OnForw5) + ON_BN_CLICKED(IDC_FILE, OnFile) + ON_BN_CLICKED(IDC_NORMAL_SPEED, OnNormalSpeed) + ON_LBN_DBLCLK(IDC_APPLIST, OnDblclkApplist) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -79,10 +84,12 @@ BOOL CHorlogeDlg::OnInitDialog() ((CButton*)GetDlgItem(IDC_BACKWARD))->SetIcon(AfxGetApp()->LoadIcon(IDI_BACKWARD)); ((CButton*)GetDlgItem(IDC_PAUSE))->SetIcon(AfxGetApp()->LoadIcon(IDI_PAUSE)); ((CButton*)GetDlgItem(IDC_START))->SetIcon(AfxGetApp()->LoadIcon(IDI_START)); + ((CButton*)GetDlgItem(IDC_NORMAL_SPEED))->SetIcon(AfxGetApp()->LoadIcon(IDI_NORMAL_SPEED)); m_Time.Format("%02d:%02d:%02d", 0,0,0); m_Speed.Format("%.2f", rate ); + m_setTime.GetTime(&time); bus = new Ivy( "Horloge","Horloge READY",this,TRUE); @@ -98,6 +105,7 @@ BOOL CHorlogeDlg::OnInitDialog() bus->BindMsg("^ClockEvent Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent )); bus->BindMsg("^ClockDatas Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent )); + bus->BindMsg("^FileReadEvent Type=REJEU Name=([^ ]+) StartTime=([0-9]+):([0-9]+):([0-9]+) EndTime=([0-9]+):([0-9]+):([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyFileReadEvent )); bus->BindMsg("^rejeu READY", BUS_CALLBACK_OF(CHorlogeDlg, IvyRejeuReady)); m_busnumber = bus->GetDomain( m_busnumber ); @@ -163,6 +171,21 @@ void CHorlogeDlg::OnApplicationDisconnected(IvyApplication *app) { m_applist.DeleteString(m_applist.FindString(0, app->GetName()) ); } + +void CHorlogeDlg::OnDblclkApplist() +{ + CString name; + int sel = m_applist.GetCurSel(); + m_applist.GetText( sel, name ); + IvyApplication *app = bus->GetApplication( name ); + if ( app ) + { + bus->SendDieMsg(app); + m_applist.DeleteString( sel ); + } + +} + void CHorlogeDlg::IvyClockEvent( IvyApplication *app, int argc, const char **argv ) { // Ivy ClockEvent Time=10:23:45 Rate=3 Bs=0 @@ -177,6 +200,26 @@ void CHorlogeDlg::IvyClockEvent( IvyApplication *app, int argc, const char **arg m_setTime.SetTime(&time); UpdateData(FALSE); } +void CHorlogeDlg::IvyFileReadEvent( IvyApplication *app, int argc, const char **argv ) +{ + // Ivy FileReadEvent Type=REJEU Name=/home/fcolin/asterix/EAF3534D.rej StartTime=19:57:00 EndTime=20:09:59 + const char* name = *argv++; + int hh_start = atoi( *argv++ ); + int mm_start = atoi( *argv++ ); + int ss_start = atoi( *argv++ ); + int hh_end = atoi( *argv++ ); + int mm_end = atoi( *argv++ ); + int ss_end = atoi( *argv++ ); + + time.wHour = hh_start; + time.wMinute = mm_start; + time.wSecond = ss_start; + + m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + VERIFY(m_setTime.SetTime(&time)); + m_filename = name; + UpdateData(FALSE); +} void CHorlogeDlg::IvyRejeuReady( IvyApplication *app, int argc, const char **argv ) { bus->SendMsg("GetClockDatas"); @@ -196,14 +239,20 @@ void CHorlogeDlg::OnBackward() { rate -= 0.5; m_Speed.Format("%.2f", rate ); - bus->SendMsg("SetClock Rate=%f",rate); + bus->SendMsg("SetClock Rate=%.2f",rate); } void CHorlogeDlg::OnForward() { rate += 0.5; m_Speed.Format("%.2f", rate ); - bus->SendMsg("SetClock Rate=%f",rate); + bus->SendMsg("SetClock Rate=%.2f",rate); +} +void CHorlogeDlg::OnNormalSpeed() +{ + rate = 1.0; + m_Speed.Format("%.2f", rate ); + bus->SendMsg("SetClock Rate=%.2f",rate); } @@ -218,42 +267,64 @@ void CHorlogeDlg::OnDatetimechangeSettime(NMHDR* pNMHDR, LRESULT* pResult) void CHorlogeDlg::OnBack5() { - time.wMinute -= 5; + CTime new_time( time ); + new_time -= CTimeSpan( 0, 0, 5, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } void CHorlogeDlg::OnBack2() { - time.wMinute -= 2; + CTime new_time( time ); + new_time -= CTimeSpan( 0, 0, 2, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } void CHorlogeDlg::OnBack1() { - time.wMinute -= 1; + CTime new_time( time ); + new_time -= CTimeSpan( 0, 0, 1, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } void CHorlogeDlg::OnForw1() { - time.wMinute += 1; + CTime new_time( time ); + new_time += CTimeSpan( 0, 0, 1, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } void CHorlogeDlg::OnForw2() { - time.wMinute += 2; + CTime new_time( time ); + new_time += CTimeSpan( 0, 0, 2, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } void CHorlogeDlg::OnForw5() { - time.wMinute += 5; + CTime new_time( time ); + new_time += CTimeSpan( 0, 0, 5, 0 ); + new_time. GetAsSystemTime(time); bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); } + +void CHorlogeDlg::OnFile() +{ + CFileDialog file(TRUE,TEXT(".rej"),NULL, OFN_FILEMUSTEXIST,"Rejeu Files (*.rej)|*.rej|All Files (*.*)|*.*||"); + if ( file.DoModal() == IDOK ) + { + bus->SendMsg( "FileRead Type=rejeu Name=%s", file.GetPathName() ); + } +} + -- cgit v1.1 From e39b169d9d4070082046f55cbd6c3efbbd048fb1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:22 +0000 Subject: Utilisateur : Fcolin Date : 26/03/02 Heure : 15:45 Archivé dans $/Bus/Horloge Commentaire: Setclock of rejeu (vss 3) --- Horloge/HorlogeDlg.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Horloge/HorlogeDlg.cpp b/Horloge/HorlogeDlg.cpp index b02352d..6e26f61 100644 --- a/Horloge/HorlogeDlg.cpp +++ b/Horloge/HorlogeDlg.cpp @@ -232,6 +232,7 @@ void CHorlogeDlg::OnPause() void CHorlogeDlg::OnStart() { + bus->SendMsg("SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); bus->SendMsg("ClockStart"); } -- cgit v1.1 From 26076079b8fecd9cbf432c01f980c78ce3808fdf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:25 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 4) --- Horloge/HorlogeDlg.cpp | 122 ++++++++++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 53 deletions(-) diff --git a/Horloge/HorlogeDlg.cpp b/Horloge/HorlogeDlg.cpp index 6e26f61..0521d90 100644 --- a/Horloge/HorlogeDlg.cpp +++ b/Horloge/HorlogeDlg.cpp @@ -27,7 +27,8 @@ CHorlogeDlg::CHorlogeDlg(CWnd* pParent /*=NULL*/) //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); - memset( &time, 0, sizeof( time ) ); + GetSystemTime(¤t_time); + GetSystemTime(&start_time); bus = NULL; rate = 1.0; } @@ -44,6 +45,7 @@ void CHorlogeDlg::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_BIGSPEED, m_big_speed); DDX_Text(pDX, IDC_FILENAME, m_filename); //}}AFX_DATA_MAP + DDX_Control(pDX, IDC_FILEPROGRESS, file_progress); } BEGIN_MESSAGE_MAP(CHorlogeDlg, CDialog) @@ -87,9 +89,9 @@ BOOL CHorlogeDlg::OnInitDialog() ((CButton*)GetDlgItem(IDC_NORMAL_SPEED))->SetIcon(AfxGetApp()->LoadIcon(IDI_NORMAL_SPEED)); - m_Time.Format("%02d:%02d:%02d", 0,0,0); - m_Speed.Format("%.2f", rate ); - m_setTime.GetTime(&time); + m_Time.Format(TEXT("%02d:%02d:%02d"), 0,0,0); + m_Speed.Format(TEXT("%.2f"), rate ); + m_setTime.GetTime(¤t_time); bus = new Ivy( "Horloge","Horloge READY",this,TRUE); @@ -108,7 +110,7 @@ BOOL CHorlogeDlg::OnInitDialog() bus->BindMsg("^FileReadEvent Type=REJEU Name=([^ ]+) StartTime=([0-9]+):([0-9]+):([0-9]+) EndTime=([0-9]+):([0-9]+):([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyFileReadEvent )); bus->BindMsg("^rejeu READY", BUS_CALLBACK_OF(CHorlogeDlg, IvyRejeuReady)); - m_busnumber = bus->GetDomain( m_busnumber ); + m_busnumber = bus->GetDomain( CStringA( m_busnumber ) ); UpdateData(FALSE); // force bus start in case of start @@ -158,18 +160,18 @@ void CHorlogeDlg::OnIvystart() { UpdateData(TRUE); bus->stop(); - m_busnumber = bus->GetDomain( m_busnumber ); - bus->start(m_busnumber); + m_busnumber = bus->GetDomain( CStringA( m_busnumber ) ); + bus->start( CStringA(m_busnumber)); m_applist.ResetContent(); UpdateData(FALSE); } void CHorlogeDlg::OnApplicationConnected(IvyApplication *app) { - m_applist.AddString( app->GetName() ); + m_applist.AddString( CString(app->GetName()) ); } void CHorlogeDlg::OnApplicationDisconnected(IvyApplication *app) { - m_applist.DeleteString(m_applist.FindString(0, app->GetName()) ); + m_applist.DeleteString(m_applist.FindString(0, CString(app->GetName())) ); } void CHorlogeDlg::OnDblclkApplist() @@ -177,7 +179,7 @@ void CHorlogeDlg::OnDblclkApplist() CString name; int sel = m_applist.GetCurSel(); m_applist.GetText( sel, name ); - IvyApplication *app = bus->GetApplication( name ); + IvyApplication *app = bus->GetApplication( CStringA(name) ); if ( app ) { bus->SendDieMsg(app); @@ -189,15 +191,20 @@ void CHorlogeDlg::OnDblclkApplist() void CHorlogeDlg::IvyClockEvent( IvyApplication *app, int argc, const char **argv ) { // Ivy ClockEvent Time=10:23:45 Rate=3 Bs=0 - time.wHour = atoi( *argv++ ); - time.wMinute = atoi( *argv++ ); - time.wSecond = atoi( *argv++ ); + current_time.wHour = atoi( *argv++ ); + current_time.wMinute = atoi( *argv++ ); + current_time.wSecond = atoi( *argv++ ); rate = atof( *argv++ ); int BigSpeed = atoi( *argv++ ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); - m_Speed.Format("%.2f", rate ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); + m_Speed.Format(TEXT("%.2f"), rate ); m_big_speed = BigSpeed; - m_setTime.SetTime(&time); + m_setTime.SetTime(¤t_time); + CTime cur_time( current_time ); + CTime sta_time( start_time ); + CTimeSpan span = cur_time - sta_time; + file_progress.SetPos( span.GetTotalSeconds() ); + TRACE("CHorlogeDlg::IvyClockEvent %d\n", span.GetTotalSeconds() ); UpdateData(FALSE); } void CHorlogeDlg::IvyFileReadEvent( IvyApplication *app, int argc, const char **argv ) @@ -211,13 +218,23 @@ void CHorlogeDlg::IvyFileReadEvent( IvyApplication *app, int argc, const char ** int mm_end = atoi( *argv++ ); int ss_end = atoi( *argv++ ); - time.wHour = hh_start; - time.wMinute = mm_start; - time.wSecond = ss_start; + start_time.wHour = hh_start; + start_time.wMinute = mm_start; + start_time.wSecond = ss_start; + current_time = start_time; - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); - VERIFY(m_setTime.SetTime(&time)); + long start = (( hh_start * 60 ) + mm_start ) * 60 + ss_start; + long end = (( hh_end * 60 ) + mm_end ) * 60 + ss_end; + + TRACE("CHorlogeDlg::IvyFileReadEvent range 0 %d\n", end - start ); + file_progress.SetRange32(0, end - start ); + file_progress.SetStep( 1 ); + file_progress.SetPos( 0 ); + + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); + VERIFY(m_setTime.SetTime(¤t_time)); m_filename = name; + bus->SendMsg("SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); UpdateData(FALSE); } void CHorlogeDlg::IvyRejeuReady( IvyApplication *app, int argc, const char **argv ) @@ -232,97 +249,96 @@ void CHorlogeDlg::OnPause() void CHorlogeDlg::OnStart() { - bus->SendMsg("SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); bus->SendMsg("ClockStart"); } void CHorlogeDlg::OnBackward() { rate -= 0.5; - m_Speed.Format("%.2f", rate ); + m_Speed.Format(TEXT("%.2f"), rate ); bus->SendMsg("SetClock Rate=%.2f",rate); } void CHorlogeDlg::OnForward() { rate += 0.5; - m_Speed.Format("%.2f", rate ); + m_Speed.Format(TEXT("%.2f"), rate ); bus->SendMsg("SetClock Rate=%.2f",rate); } void CHorlogeDlg::OnNormalSpeed() { rate = 1.0; - m_Speed.Format("%.2f", rate ); + m_Speed.Format(TEXT("%.2f"), rate ); bus->SendMsg("SetClock Rate=%.2f",rate); } void CHorlogeDlg::OnDatetimechangeSettime(NMHDR* pNMHDR, LRESULT* pResult) { - m_setTime.GetTime(&time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + m_setTime.GetTime(¤t_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); *pResult = 0; } void CHorlogeDlg::OnBack5() { - CTime new_time( time ); + CTime new_time( current_time ); new_time -= CTimeSpan( 0, 0, 5, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnBack2() { - CTime new_time( time ); + CTime new_time( current_time ); new_time -= CTimeSpan( 0, 0, 2, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnBack1() { - CTime new_time( time ); + CTime new_time( current_time ); new_time -= CTimeSpan( 0, 0, 1, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnForw1() { - CTime new_time( time ); + CTime new_time( current_time ); new_time += CTimeSpan( 0, 0, 1, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnForw2() { - CTime new_time( time ); + CTime new_time( current_time ); new_time += CTimeSpan( 0, 0, 2, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnForw5() { - CTime new_time( time ); + CTime new_time( current_time ); new_time += CTimeSpan( 0, 0, 5, 0 ); - new_time. GetAsSystemTime(time); - bus->SendMsg( "SetClock Time=%d:%d:%d", time.wHour, time.wMinute, time.wSecond ); - m_Time.Format("%02d:%02d:%02d", time.wHour, time.wMinute, time.wSecond); + new_time. GetAsSystemTime(current_time); + bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond ); + m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond); } void CHorlogeDlg::OnFile() { - CFileDialog file(TRUE,TEXT(".rej"),NULL, OFN_FILEMUSTEXIST,"Rejeu Files (*.rej)|*.rej|All Files (*.*)|*.*||"); + CFileDialog file(TRUE,TEXT(".rej"),NULL, OFN_FILEMUSTEXIST,TEXT("Rejeu Files (*.rej)|*.rej|All Files (*.*)|*.*||")); if ( file.DoModal() == IDOK ) { bus->SendMsg( "FileRead Type=rejeu Name=%s", file.GetPathName() ); -- cgit v1.1 From 29130760bbf5696ea3ee2ecc4b5a4fa98fc2bfb5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:27 +0000 Subject: Utilisateur : Fcolin Date : 31/08/06 Heure : 13:59 Archivé dans $/Bus/Horloge Commentaire: (vss 5) --- Horloge/HorlogeDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Horloge/HorlogeDlg.cpp b/Horloge/HorlogeDlg.cpp index 0521d90..b6ac3d9 100644 --- a/Horloge/HorlogeDlg.cpp +++ b/Horloge/HorlogeDlg.cpp @@ -341,7 +341,7 @@ void CHorlogeDlg::OnFile() CFileDialog file(TRUE,TEXT(".rej"),NULL, OFN_FILEMUSTEXIST,TEXT("Rejeu Files (*.rej)|*.rej|All Files (*.*)|*.*||")); if ( file.DoModal() == IDOK ) { - bus->SendMsg( "FileRead Type=rejeu Name=%s", file.GetPathName() ); + bus->SendMsg( "FileRead Type=rejeu Name=%S", file.GetPathName() ); } } -- cgit v1.1 From 7ad955791ae43a15eab3b89fa2c899d9ee98c148 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:29 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/HorlogeDlg.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Horloge/HorlogeDlg.h diff --git a/Horloge/HorlogeDlg.h b/Horloge/HorlogeDlg.h new file mode 100644 index 0000000..366f6a2 --- /dev/null +++ b/Horloge/HorlogeDlg.h @@ -0,0 +1,73 @@ +// HorlogeDlg.h : header file +// + +#if !defined(AFX_HORLOGEDLG_H__8AB6D6CD_4D9E_450D_B42C_E5A6F72FCA32__INCLUDED_) +#define AFX_HORLOGEDLG_H__8AB6D6CD_4D9E_450D_B42C_E5A6F72FCA32__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "Ivy.h" +///////////////////////////////////////////////////////////////////////////// +// CHorlogeDlg dialog + +class CHorlogeDlg : public CDialog, public IvyApplicationCallback +{ +// Construction +public: + CHorlogeDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CHorlogeDlg) + enum { IDD = IDD_HORLOGE_DIALOG }; + CDateTimeCtrl m_setTime; + CListBox m_applist; + CDigistring m_Speed; + CDigistring m_Time; + CString m_busnumber; + BOOL m_big_speed; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CHorlogeDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + Ivy *bus; + float rate; + SYSTEMTIME time; + void IvyClockEvent( IvyApplication *app, int argc, const char **argv ); + void IvyRejeuReady( IvyApplication *app, int argc, const char **argv ); + void OnApplicationConnected( IvyApplication *app ); + void OnApplicationDisconnected( IvyApplication *app ); + + // Generated message map functions + //{{AFX_MSG(CHorlogeDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnIvystart(); + afx_msg void OnPause(); + afx_msg void OnStart(); + afx_msg void OnDatetimechangeSettime(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnBackward(); + afx_msg void OnForward(); + afx_msg void OnBack5(); + afx_msg void OnBack2(); + afx_msg void OnBack1(); + afx_msg void OnForw1(); + afx_msg void OnForw2(); + afx_msg void OnForw5(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_HORLOGEDLG_H__8AB6D6CD_4D9E_450D_B42C_E5A6F72FCA32__INCLUDED_) -- cgit v1.1 From ee8e715afecefe1780f63004e3dac0e0810ea648 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:30 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge (vss 2) --- Horloge/HorlogeDlg.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Horloge/HorlogeDlg.h b/Horloge/HorlogeDlg.h index 366f6a2..5550961 100644 --- a/Horloge/HorlogeDlg.h +++ b/Horloge/HorlogeDlg.h @@ -27,6 +27,7 @@ public: CDigistring m_Time; CString m_busnumber; BOOL m_big_speed; + CString m_filename; //}}AFX_DATA // ClassWizard generated virtual function overrides @@ -43,6 +44,7 @@ protected: SYSTEMTIME time; void IvyClockEvent( IvyApplication *app, int argc, const char **argv ); void IvyRejeuReady( IvyApplication *app, int argc, const char **argv ); + void IvyFileReadEvent( IvyApplication *app, int argc, const char **argv ); void OnApplicationConnected( IvyApplication *app ); void OnApplicationDisconnected( IvyApplication *app ); @@ -63,6 +65,9 @@ protected: afx_msg void OnForw1(); afx_msg void OnForw2(); afx_msg void OnForw5(); + afx_msg void OnFile(); + afx_msg void OnNormalSpeed(); + afx_msg void OnDblclkApplist(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; -- cgit v1.1 From 0c001528d09e59fe04ffd0f948503c4a03a51c51 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:32 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 3) --- Horloge/HorlogeDlg.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Horloge/HorlogeDlg.h b/Horloge/HorlogeDlg.h index 5550961..93cb915 100644 --- a/Horloge/HorlogeDlg.h +++ b/Horloge/HorlogeDlg.h @@ -9,6 +9,7 @@ #endif // _MSC_VER > 1000 #include "Ivy.h" +#include "afxcmn.h" ///////////////////////////////////////////////////////////////////////////// // CHorlogeDlg dialog @@ -40,8 +41,9 @@ public: protected: HICON m_hIcon; Ivy *bus; - float rate; - SYSTEMTIME time; + double rate; + SYSTEMTIME start_time; + SYSTEMTIME current_time; void IvyClockEvent( IvyApplication *app, int argc, const char **argv ); void IvyRejeuReady( IvyApplication *app, int argc, const char **argv ); void IvyFileReadEvent( IvyApplication *app, int argc, const char **argv ); @@ -70,6 +72,8 @@ protected: afx_msg void OnDblclkApplist(); //}}AFX_MSG DECLARE_MESSAGE_MAP() +public: + CProgressCtrl file_progress; }; //{{AFX_INSERT_LOCATION}} -- cgit v1.1 From ee7603b7ba3e487608b91bdeb6f8674899e6ed3f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:34 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/HorlogeParseCmdLine.cpp | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Horloge/HorlogeParseCmdLine.cpp diff --git a/Horloge/HorlogeParseCmdLine.cpp b/Horloge/HorlogeParseCmdLine.cpp new file mode 100644 index 0000000..bd3e4e9 --- /dev/null +++ b/Horloge/HorlogeParseCmdLine.cpp @@ -0,0 +1,58 @@ +// HorlogeParseCmdLine.cpp: implementation of the HorlogeParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" + +#include "HorlogeParseCmdLine.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +HorlogeParseCmdLine::HorlogeParseCmdLine() +{ + m_start = FALSE; + m_busNumber = ""; +} + +HorlogeParseCmdLine::~HorlogeParseCmdLine() +{ + +} + +void HorlogeParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +{ + if (bFlag) + { + ParseParamFlag(lpszParam); + } + else + ParseParamNotFlag(lpszParam); + +} + +void HorlogeParseCmdLine::ParseParamFlag(LPCTSTR pszParam) +{ + + if (lstrcmpi(pszParam, TEXT("start")) == 0) + m_start = TRUE; + else if (lstrcmpi(pszParam, TEXT("bus")) == 0) + m_shellCommand = BusNumber; +} + +void HorlogeParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) +{ + switch ( m_shellCommand ) + { + case BusNumber: + m_busNumber = pszParam; + break; + } +} -- cgit v1.1 From ece5d35d0b9b56c308ad4faa5878c75a93725b6e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:37 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/HorlogeParseCmdLine.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Horloge/HorlogeParseCmdLine.h diff --git a/Horloge/HorlogeParseCmdLine.h b/Horloge/HorlogeParseCmdLine.h new file mode 100644 index 0000000..3ececad --- /dev/null +++ b/Horloge/HorlogeParseCmdLine.h @@ -0,0 +1,31 @@ +// TestParseCmdLine.h: interface for the TestParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) +#define AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class HorlogeParseCmdLine : public CCommandLineInfo +{ +public: + + BOOL m_start; + CString m_busNumber; + virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); + HorlogeParseCmdLine(); + virtual ~HorlogeParseCmdLine(); + enum { + BusNumber, + Start, + }m_shellCommand; + +protected: + void ParseParamNotFlag(LPCTSTR pszParam); + void ParseParamFlag(LPCTSTR pszParam); +}; + +#endif // !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) -- cgit v1.1 From e5755647cb9dd3135e6b5556482f76f7f21b6cff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:38 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/MemDC.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 Horloge/MemDC.h diff --git a/Horloge/MemDC.h b/Horloge/MemDC.h new file mode 100644 index 0000000..494fbbe --- /dev/null +++ b/Horloge/MemDC.h @@ -0,0 +1,104 @@ +#ifndef _MEMDC_H_ +#define _MEMDC_H_ + +////////////////////////////////////////////////// +// CMemDC - memory DC +// +// Author: Keith Rule +// Email: keithr@europa.com +// Copyright 1996-1999, Keith Rule +// +// You may freely use or modify this code provided this +// Copyright is included in all derived versions. +// +// History - 10/3/97 Fixed scrolling bug. +// Added print support. - KR +// +// 11/3/99 Fixed most common complaint. Added +// background color fill. - KR +// +// 11/3/99 Added support for mapping modes other than +// MM_TEXT as suggested by Lee Sang Hun. - KR +// +// This class implements a memory Device Context which allows +// flicker free drawing. + +class CMemDC : public CDC { +private: + CBitmap m_bitmap; // Offscreen bitmap + CBitmap* m_oldBitmap; // bitmap originally found in CMemDC + CDC* m_pDC; // Saves CDC passed in constructor + CRect m_rect; // Rectangle of drawing area. + BOOL m_bMemDC; // TRUE if CDC really is a Memory DC. +public: + + CMemDC(CDC* pDC, const CRect* pRect = NULL) : CDC() + { + ASSERT(pDC != NULL); + + // Some initialization + m_pDC = pDC; + m_oldBitmap = NULL; + m_bMemDC = !pDC->IsPrinting(); + + // Get the rectangle to draw + if (pRect == NULL) { + pDC->GetClipBox(&m_rect); + } else { + m_rect = *pRect; + } + + if (m_bMemDC) { + // Create a Memory DC + CreateCompatibleDC(pDC); + pDC->LPtoDP(&m_rect); + + m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height()); + m_oldBitmap = SelectObject(&m_bitmap); + + SetMapMode(pDC->GetMapMode()); + pDC->DPtoLP(&m_rect); + SetWindowOrg(m_rect.left, m_rect.top); + } else { + // Make a copy of the relevent parts of the current DC for printing + m_bPrinting = pDC->m_bPrinting; + m_hDC = pDC->m_hDC; + m_hAttribDC = pDC->m_hAttribDC; + } + + // Fill background + FillSolidRect(m_rect, pDC->GetBkColor()); + } + + + ~CMemDC() + { + if (m_bMemDC) { + // Copy the offscreen bitmap onto the screen. + m_pDC->BitBlt(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height(), + this, m_rect.left, m_rect.top, SRCCOPY); + + //Swap back the original bitmap. + SelectObject(m_oldBitmap); + } else { + // All we need to do is replace the DC with an illegal value, + // this keeps us from accidently deleting the handles associated with + // the CDC that was passed to the constructor. + m_hDC = m_hAttribDC = NULL; + } + } + + // Allow usage as a pointer + CMemDC* operator->() + { + return this; + } + + // Allow usage as a pointer + operator CMemDC*() + { + return this; + } +}; + +#endif \ No newline at end of file -- cgit v1.1 From 72014dcd9e32004bb697255e5744b3c3aa894a62 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:41 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/ReadMe.txt | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 Horloge/ReadMe.txt diff --git a/Horloge/ReadMe.txt b/Horloge/ReadMe.txt new file mode 100644 index 0000000..4065fc4 --- /dev/null +++ b/Horloge/ReadMe.txt @@ -0,0 +1,88 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : Horloge +======================================================================== + + +AppWizard has created this Horloge application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your Horloge application. + +Horloge.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +Horloge.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CHorlogeApp application class. + +Horloge.cpp + This is the main application source file that contains the application + class CHorlogeApp. + +Horloge.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +Horloge.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\Horloge.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file Horloge.rc. + +res\Horloge.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +HorlogeDlg.h, HorlogeDlg.cpp - the dialog + These files contain your CHorlogeDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in Horloge.rc, which can be edited in Microsoft + Visual C++. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named Horloge.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC42XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC42DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 1abef0cf903b80c38c0b1b686b130e13d76e2351 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:42 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/Rgbcolor.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Horloge/Rgbcolor.h diff --git a/Horloge/Rgbcolor.h b/Horloge/Rgbcolor.h new file mode 100644 index 0000000..1c45453 --- /dev/null +++ b/Horloge/Rgbcolor.h @@ -0,0 +1,40 @@ +///////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2000 by Michel Wassink +// All rights reserved +// +// This is free software. +// You may redistribute it by any means providing it is not sold for profit +// without the author written consent. +// +// No warrantee of any kind, expressed or implied, is included with this +// software; use at your own risk, responsibility for damages (if any) to +// anyone resulting from the use of this software rests entirely with the +// user. +// +// Send bug reports, bug fixes, enhancements, requests, flames, etc., and +// I'll try to keep a version up to date. I can be reached as follows: +// mwassink@csi.com (private site) +///////////////////////////////////////////////////////////////////////////// + +#ifndef __RGBCOLOR_H__ +#define __RGBCOLOR_H__ + +#define BLACK RGB( 000, 000, 000 ) +#define DARKBLUE RGB( 000, 000, 128 ) +#define DARKGREEN RGB( 000, 064, 000 ) +#define DARKCYAN RGB( 000, 064, 064 ) +#define DARKRED RGB( 064, 000, 000 ) +#define DARKMAGENTA RGB( 128, 000, 128 ) +#define BROWN RGB( 128, 128, 000 ) +#define DARKGRAY RGB( 128, 128, 128 ) + +#define LIGHTGRAY RGB( 192, 192, 192 ) +#define LIGHTBLUE RGB( 000, 000, 255 ) +#define LIGHTGREEN RGB( 000, 255, 000 ) +#define LIGHTCYAN RGB( 000, 255, 255 ) +#define LIGHTRED RGB( 255, 000, 000 ) +#define LIGHTMAGENTA RGB( 255, 000, 255 ) +#define YELLOW RGB( 255, 255, 000 ) +#define WHITE RGB( 255, 255, 255 ) + +#endif // __RGBCOLOR_H__ -- cgit v1.1 From 1bf10bc1bdc586e2dead5b974ec3238235587276 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:44 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/StdAfx.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Horloge/StdAfx.cpp diff --git a/Horloge/StdAfx.cpp b/Horloge/StdAfx.cpp new file mode 100644 index 0000000..ec4138a --- /dev/null +++ b/Horloge/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// Horloge.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + -- cgit v1.1 From 589f712ff9ccd0631033fb54de1a4cadb49c2f30 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:47 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/StdAfx.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Horloge/StdAfx.h diff --git a/Horloge/StdAfx.h b/Horloge/StdAfx.h new file mode 100644 index 0000000..bfc4c77 --- /dev/null +++ b/Horloge/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__71A27006_2E49_42EE_BE8E_4A7CB7E53C16__INCLUDED_) +#define AFX_STDAFX_H__71A27006_2E49_42EE_BE8E_4A7CB7E53C16__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC support for Internet Explorer 4 Common Controls +#include +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__71A27006_2E49_42EE_BE8E_4A7CB7E53C16__INCLUDED_) -- cgit v1.1 From d940df9c9065cd81bef9ae57c779c4625bfed33a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:48 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 2) --- Horloge/StdAfx.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/Horloge/StdAfx.h b/Horloge/StdAfx.h index bfc4c77..18ddc2a 100644 --- a/Horloge/StdAfx.h +++ b/Horloge/StdAfx.h @@ -10,11 +10,49 @@ #pragma once #endif // _MSC_VER > 1000 +#ifndef _SECURE_ATL +#define _SECURE_ATL 1 +#endif + +#ifndef VC_EXTRALEAN #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers +#endif + +// Modify the following defines if you have to target a platform prior to the ones specified below. +// Refer to MSDN for the latest info on corresponding values for different platforms. +#ifndef WINVER // Allow use of features specific to Windows XP or later. +#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows. +#endif + +#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. +#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. +#endif + +#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. +#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. +#endif + +#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later. +#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE. +#endif + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit + +// turns off MFC's hiding of some common and often safely ignored warning messages +#define _AFX_ALL_WARNINGS #include // MFC core and standard components #include // MFC extensions + + + +#ifndef _AFX_NO_OLE_SUPPORT #include // MFC support for Internet Explorer 4 Common Controls +#endif +//#include "commctrl.h" + + + #include #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls @@ -24,4 +62,23 @@ //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_IA64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + #endif // !defined(AFX_STDAFX_H__71A27006_2E49_42EE_BE8E_4A7CB7E53C16__INCLUDED_) + + + + + + + -- cgit v1.1 From dcbc98d0ee645716773967d806920c651d73be2f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:51 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/Horloge.ico | Bin 0 -> 1078 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/Horloge.ico diff --git a/Horloge/res/Horloge.ico b/Horloge/res/Horloge.ico new file mode 100644 index 0000000..7eef0bc Binary files /dev/null and b/Horloge/res/Horloge.ico differ -- cgit v1.1 From 0da937b9b8546531383e49e88d151433625860eb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:52 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge/res (vss 2) --- Horloge/res/Horloge.ico | Bin 1078 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Horloge/res/Horloge.ico b/Horloge/res/Horloge.ico index 7eef0bc..da2c09d 100644 Binary files a/Horloge/res/Horloge.ico and b/Horloge/res/Horloge.ico differ -- cgit v1.1 From ac0d4ce4eed10933b7470be968638de2a2c8da86 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:54 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/Horloge.rc2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Horloge/res/Horloge.rc2 diff --git a/Horloge/res/Horloge.rc2 b/Horloge/res/Horloge.rc2 new file mode 100644 index 0000000..181da8f --- /dev/null +++ b/Horloge/res/Horloge.rc2 @@ -0,0 +1,13 @@ +// +// HORLOGE.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 659082400ef82243c9a6cb4f400802040ab9d0cd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:56 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/ico00001.ico | Bin 0 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/ico00001.ico diff --git a/Horloge/res/ico00001.ico b/Horloge/res/ico00001.ico new file mode 100644 index 0000000..f49a714 Binary files /dev/null and b/Horloge/res/ico00001.ico differ -- cgit v1.1 From 9844482cf6709f4cbf27fb9f8e3ac79cbf1da455 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:52:58 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge/res Commentaire: (vss 2) --- Horloge/res/ico00001.ico | Bin 766 -> 4534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Horloge/res/ico00001.ico b/Horloge/res/ico00001.ico index f49a714..aa862a1 100644 Binary files a/Horloge/res/ico00001.ico and b/Horloge/res/ico00001.ico differ -- cgit v1.1 From 5acb1acd0466b4dfeff59d3d9a15ecd00111577b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:01 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/ico00002.ico | Bin 0 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/ico00002.ico diff --git a/Horloge/res/ico00002.ico b/Horloge/res/ico00002.ico new file mode 100644 index 0000000..47fcdbe Binary files /dev/null and b/Horloge/res/ico00002.ico differ -- cgit v1.1 From 1c1e8021a7d707382874d27bc3f352ddf8effc1d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:03 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/ico00003.ico | Bin 0 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/ico00003.ico diff --git a/Horloge/res/ico00003.ico b/Horloge/res/ico00003.ico new file mode 100644 index 0000000..266ce4a Binary files /dev/null and b/Horloge/res/ico00003.ico differ -- cgit v1.1 From 4985a269f61d303a22c87d27c7293ccc35074d83 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:04 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge/res Commentaire: (vss 2) --- Horloge/res/ico00003.ico | Bin 766 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Horloge/res/ico00003.ico b/Horloge/res/ico00003.ico index 266ce4a..9eff079 100644 Binary files a/Horloge/res/ico00003.ico and b/Horloge/res/ico00003.ico differ -- cgit v1.1 From dc4572626c03dcef556d6694532f7f6567208d56 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:07 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 16:46 Créé (vss 1) --- Horloge/res/ico00004.ico | Bin 0 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/ico00004.ico diff --git a/Horloge/res/ico00004.ico b/Horloge/res/ico00004.ico new file mode 100644 index 0000000..cfc0a71 Binary files /dev/null and b/Horloge/res/ico00004.ico differ -- cgit v1.1 From 7852fa638c2510c968dbf3b2551ee03fcdf08939 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:08 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge/res (vss 2) --- Horloge/res/ico00004.ico | Bin 766 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Horloge/res/ico00004.ico b/Horloge/res/ico00004.ico index cfc0a71..ca9be36 100644 Binary files a/Horloge/res/ico00004.ico and b/Horloge/res/ico00004.ico differ -- cgit v1.1 From b24dd60b1bb9e60904b2103fef134b23fb771eb5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:10 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge/res Commentaire: (vss 3) --- Horloge/res/ico00004.ico | Bin 766 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Horloge/res/ico00004.ico b/Horloge/res/ico00004.ico index ca9be36..b1e3652 100644 Binary files a/Horloge/res/ico00004.ico and b/Horloge/res/ico00004.ico differ -- cgit v1.1 From 051d2f1b869d3def96a8128e72dd816dedf6725a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:13 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/res/icon1.ico | Bin 0 -> 766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Horloge/res/icon1.ico diff --git a/Horloge/res/icon1.ico b/Horloge/res/icon1.ico new file mode 100644 index 0000000..614b0a0 Binary files /dev/null and b/Horloge/res/icon1.ico differ -- cgit v1.1 From 0af51f6e6f18ab49c0e6deca70d6408bb7f89b13 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:15 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 11:44 Créé (vss 1) --- Horloge/resource.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Horloge/resource.h diff --git a/Horloge/resource.h b/Horloge/resource.h new file mode 100644 index 0000000..18cb515 --- /dev/null +++ b/Horloge/resource.h @@ -0,0 +1,38 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Horloge.rc +// +#define IDD_HORLOGE_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDI_FORWARD 141 +#define IDI_BACKWARD 142 +#define IDI_PAUSE 143 +#define IDI_START 144 +#define IDC_PAUSE 1001 +#define IDC_START 1002 +#define IDC_BACKWARD 1003 +#define IDC_FORWARD 1004 +#define IDC_SPEED 1010 +#define IDC_TIME 1011 +#define IDC_BUSNUMBER 1026 +#define IDC_IVYSTART 1027 +#define IDC_BIGSPEED 1028 +#define IDC_APPLIST 1030 +#define IDC_SETTIME 1031 +#define IDC_BACK_5 1034 +#define IDC_BACK_2 1035 +#define IDC_FORW_2 1036 +#define IDC_FORW_5 1037 +#define IDC_BACK_1 1038 +#define IDC_FORW_1 1039 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 145 +#define _APS_NEXT_COMMAND_VALUE 32772 +#define _APS_NEXT_CONTROL_VALUE 1035 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif -- cgit v1.1 From 41ae7cb7122d44abb2f2ac1e0395aab83032383f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:17 +0000 Subject: Utilisateur : Fcolin Date : 27/11/01 Heure : 15:26 Archivé dans $/Bus/Horloge (vss 2) --- Horloge/resource.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Horloge/resource.h b/Horloge/resource.h index 18cb515..2322c01 100644 --- a/Horloge/resource.h +++ b/Horloge/resource.h @@ -8,10 +8,12 @@ #define IDI_BACKWARD 142 #define IDI_PAUSE 143 #define IDI_START 144 +#define IDI_NORMAL_SPEED 146 #define IDC_PAUSE 1001 #define IDC_START 1002 #define IDC_BACKWARD 1003 #define IDC_FORWARD 1004 +#define IDC_NORMAL_SPEED 1005 #define IDC_SPEED 1010 #define IDC_TIME 1011 #define IDC_BUSNUMBER 1026 @@ -25,14 +27,16 @@ #define IDC_FORW_5 1037 #define IDC_BACK_1 1038 #define IDC_FORW_1 1039 +#define IDC_FILE 1040 +#define IDC_FILENAME 1041 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 145 +#define _APS_NEXT_RESOURCE_VALUE 147 #define _APS_NEXT_COMMAND_VALUE 32772 -#define _APS_NEXT_CONTROL_VALUE 1035 +#define _APS_NEXT_CONTROL_VALUE 1042 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif -- cgit v1.1 From 3cbe2cf73248c1584de46556f4f62e5dfe5b481c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:18 +0000 Subject: Utilisateur : Fcolin Date : 19/12/05 Heure : 14:56 Archivé dans $/Bus/Horloge Commentaire: (vss 3) --- Horloge/resource.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Horloge/resource.h b/Horloge/resource.h index 2322c01..a400f6a 100644 --- a/Horloge/resource.h +++ b/Horloge/resource.h @@ -1,5 +1,5 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by Horloge.rc // #define IDD_HORLOGE_DIALOG 102 @@ -29,14 +29,16 @@ #define IDC_FORW_1 1039 #define IDC_FILE 1040 #define IDC_FILENAME 1041 +#define IDC_PROGRESS1 1043 +#define IDC_FILEPROGRESS 1043 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 147 +#define _APS_NEXT_RESOURCE_VALUE 149 #define _APS_NEXT_COMMAND_VALUE 32772 -#define _APS_NEXT_CONTROL_VALUE 1042 +#define _APS_NEXT_CONTROL_VALUE 1044 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif -- cgit v1.1 From 5770cbb3c6543a39a79876cd59c4736803c4d988 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:21 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/BufferedSocket.cxx | 165 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 Ivy/BufferedSocket.cxx diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx new file mode 100644 index 0000000..33818a0 --- /dev/null +++ b/Ivy/BufferedSocket.cxx @@ -0,0 +1,165 @@ +// BufferedSocket.cpp: implementation of the CBufferedSocket class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "BufferedSocket.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +//IMPLEMENT_DYNAMIC(CBufferedSocket, CThreadedSocket) + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CBufferedSocket::CBufferedSocket() +{ + separator = '\n'; + ptr = buf; + connected = false; + InitializeCriticalSection( &m_CritSection ); +} + +CBufferedSocket::~CBufferedSocket() +{ + +} +void CBufferedSocket::Accept(CBufferedSocket& rConnectedSocket, SOCKADDR* lpSockAddr , int* lpSockAddrLen ) +{ + CThreadedSocket::Accept(rConnectedSocket, lpSockAddr , lpSockAddrLen ); + rConnectedSocket.connected = true; +} +void CBufferedSocket::OnReceive(int nErrorCode) +{ + + + char *ptr_nl; + long nb_to_read = 0; + long nb; + + SOCKADDR addr; + int len; + + /* limitation taille buffer */ + nb_to_read = MAX_BUFFER - ( ptr - buf ); + if( nb_to_read == 0 ) + { + TRACE("Erreur message trop long sans LF\n"); + ptr = buf; + return; + } + nb = ReceiveFrom( ptr, nb_to_read, &addr, &len, MSG_PARTIAL ); + if ( nb == SOCKET_ERROR ) + { + int err = GetLastError(); + if ( err != WSAESHUTDOWN ) // shutdown by remote side ? + TRACE("error Receive %d socket %d\n",GetLastError(),m_hSocket); + Close(); + return; + } + if ( nb == 0 ) // shutdown by remote side ? + { + Close(); + return; + } + + ptr += nb; + assert ( ptr < (buf +sizeof( buf ))); + *ptr = '\0'; + ptr = buf; + while( (ptr_nl = strchr( ptr, '\n' ))) + { + *ptr_nl = '\0'; + //TRACE("message %s\n", ptr ); + OnReceive( ptr ); + ptr = ++ptr_nl; + } + if ( *ptr != '\0' ) + { /* recopie ligne incomplete au debut du buffer */ + strcpy( buf, ptr ); + ptr = buf + strlen(buf); + } + else + { + ptr = buf; + } + + +} + +void CBufferedSocket::OnReceive( char *line ) +{ +} +void CBufferedSocket::SetSeparator( char sep ) +{ + separator = sep; +} +void CBufferedSocket::OnWakeup() +{ + string msg; + BOOL empty; + try + { + // on essaye de garder la section critique a l'interieur de la boucle + // pour permettre l'entrelacement avec la partie emetrice + do + { + EnterCriticalSection( &m_CritSection ); + empty = buf_out.empty(); + if ( !empty ) msg = buf_out.front(); + LeaveCriticalSection( &m_CritSection ); + //TRACE("CBufferedSocket::OnWakeup Sending buffer %s\n",msg.c_str()); + if ( !empty ) + { + int lg = msg.length(); + CThreadedSocket::Send( msg.c_str(), lg ); + EnterCriticalSection( &m_CritSection ); + buf_out.pop_front(); + LeaveCriticalSection( &m_CritSection ); + } + } while ( !empty ); + } + catch ( CThreadedSocketException* e ) + { + int err = e->GetError(); + if ( err == WSAEWOULDBLOCK ) + { + // put back the buffer, preserving the order + //EnterCriticalSection( &m_CritSection ); + //buf_out.push_front( msg); + //LeaveCriticalSection( &m_CritSection ); + } + else TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg.c_str()); + } + + +} +void CBufferedSocket::OnSend( int nErrorCode ) +{ + OnWakeup(); +} +void CBufferedSocket::OnConnect( int nErrorCode ) +{ + connected = true; + OnWakeup(); +//TRACE("CBufferedSocket::OnConnect buffer empty %d\n",buf_out.IsEmpty()); +} +void CBufferedSocket::Send ( const char * data ) +{ + //BOOL toBeSignaled; + EnterCriticalSection( &m_CritSection ); + //toBeSignaled = buf_out.IsEmpty() && connected; + buf_out.push_back( string(data) ); + LeaveCriticalSection( &m_CritSection ); + //TRACE("CBufferedSocket::Send Adding buffer to send count %d\n",buf_out.size()); + if ( connected ) + { + BOOL ok = WSASetEvent( m_hEvent[1] ); + if ( !ok ) TRACE( "CBufferedSocket::Send Error SetEvent %d\n", WSAGetLastError()); + } +} -- cgit v1.1 From de0e97b1d6104588a4fe4720d5906507ebd37ada Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:23 +0000 Subject: Utilisateur : Fcolin Date : 14/11/00 Heure : 18:58 Archivé dans $/Ivy (vss 2) --- Ivy/BufferedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 33818a0..39c7203 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -43,7 +43,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) long nb; SOCKADDR addr; - int len; + int len = sizeof( addr ); /* limitation taille buffer */ nb_to_read = MAX_BUFFER - ( ptr - buf ); -- cgit v1.1 From 30797436d86f3cd922fca6f53536c6805e8d321d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:24 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 3) --- Ivy/BufferedSocket.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 39c7203..d19b68f 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -101,7 +101,7 @@ void CBufferedSocket::SetSeparator( char sep ) } void CBufferedSocket::OnWakeup() { - string msg; + String msg; BOOL empty; try { @@ -154,7 +154,7 @@ void CBufferedSocket::Send ( const char * data ) //BOOL toBeSignaled; EnterCriticalSection( &m_CritSection ); //toBeSignaled = buf_out.IsEmpty() && connected; - buf_out.push_back( string(data) ); + buf_out.push_back( String(data) ); LeaveCriticalSection( &m_CritSection ); //TRACE("CBufferedSocket::Send Adding buffer to send count %d\n",buf_out.size()); if ( connected ) -- cgit v1.1 From c5851089facb6bcc36b736d21efd9941941667c3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:26 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/BufferedSocket.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index d19b68f..63fd6c0 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -69,7 +69,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) } ptr += nb; - assert ( ptr < (buf +sizeof( buf ))); + ASSERT( ptr < (buf +sizeof( buf ))); *ptr = '\0'; ptr = buf; while( (ptr_nl = strchr( ptr, '\n' ))) @@ -101,8 +101,8 @@ void CBufferedSocket::SetSeparator( char sep ) } void CBufferedSocket::OnWakeup() { - String msg; - BOOL empty; + string msg; + bool empty; try { // on essaye de garder la section critique a l'interieur de la boucle @@ -134,7 +134,7 @@ void CBufferedSocket::OnWakeup() //buf_out.push_front( msg); //LeaveCriticalSection( &m_CritSection ); } - else TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg.c_str()); + else TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg); } @@ -154,12 +154,12 @@ void CBufferedSocket::Send ( const char * data ) //BOOL toBeSignaled; EnterCriticalSection( &m_CritSection ); //toBeSignaled = buf_out.IsEmpty() && connected; - buf_out.push_back( String(data) ); + buf_out.push_back( string(data) ); LeaveCriticalSection( &m_CritSection ); //TRACE("CBufferedSocket::Send Adding buffer to send count %d\n",buf_out.size()); if ( connected ) { - BOOL ok = WSASetEvent( m_hEvent[1] ); - if ( !ok ) TRACE( "CBufferedSocket::Send Error SetEvent %d\n", WSAGetLastError()); +// BOOL ok = WSASetEvent( m_hEvent[1] ); +// if ( !ok ) TRACE( "CBufferedSocket::Send Error SetEvent %d\n", WSAGetLastError()); } } -- cgit v1.1 From 17b10f43897aec90cf5e4b57ebc7ab0e26ca5b83 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:28 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/BufferedSocket.cxx | 79 ++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 44 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 63fd6c0..6a17b71 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -6,13 +6,10 @@ #include "BufferedSocket.h" #ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; +#define DEBUG_NEW new(__FILE__, __LINE__) #define new DEBUG_NEW #endif -//IMPLEMENT_DYNAMIC(CBufferedSocket, CThreadedSocket) - ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// @@ -99,54 +96,48 @@ void CBufferedSocket::SetSeparator( char sep ) { separator = sep; } -void CBufferedSocket::OnWakeup() +void CBufferedSocket::OnSend( int nErrorCode ) { string msg; bool empty; - try - { - // on essaye de garder la section critique a l'interieur de la boucle - // pour permettre l'entrelacement avec la partie emetrice - do + + // on essaye de garder la section critique a l'interieur de la boucle + // pour permettre l'entrelacement avec la partie emetrice + do + { + EnterCriticalSection( &m_CritSection ); + empty = buf_out.empty(); + if ( !empty ) msg = buf_out.front(); + LeaveCriticalSection( &m_CritSection ); + TRACE("CBufferedSocket::OnSend Sending buffer %s\n",msg.c_str()); + if ( !empty ) { - EnterCriticalSection( &m_CritSection ); - empty = buf_out.empty(); - if ( !empty ) msg = buf_out.front(); - LeaveCriticalSection( &m_CritSection ); - //TRACE("CBufferedSocket::OnWakeup Sending buffer %s\n",msg.c_str()); - if ( !empty ) - { - int lg = msg.length(); - CThreadedSocket::Send( msg.c_str(), lg ); + int lg = msg.length(); + int sent = CThreadedSocket::Send( msg.c_str(), lg ); + if ( sent == lg ) + { // emission correcte on enleve le msg de la file EnterCriticalSection( &m_CritSection ); buf_out.pop_front(); LeaveCriticalSection( &m_CritSection ); } - } while ( !empty ); - } - catch ( CThreadedSocketException* e ) - { - int err = e->GetError(); - if ( err == WSAEWOULDBLOCK ) - { - // put back the buffer, preserving the order - //EnterCriticalSection( &m_CritSection ); - //buf_out.push_front( msg); - //LeaveCriticalSection( &m_CritSection ); + else + { // erreur + int err = GetLastError(); + if ( err == WSAEWOULDBLOCK ) // si la file est pleine on sort en silence ! + { + } + else + TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg); + break; } - else TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg); - } - - -} -void CBufferedSocket::OnSend( int nErrorCode ) -{ - OnWakeup(); + } + } while ( !empty ); } + void CBufferedSocket::OnConnect( int nErrorCode ) { connected = true; - OnWakeup(); + StartWriter(); //TRACE("CBufferedSocket::OnConnect buffer empty %d\n",buf_out.IsEmpty()); } void CBufferedSocket::Send ( const char * data ) @@ -157,9 +148,9 @@ void CBufferedSocket::Send ( const char * data ) buf_out.push_back( string(data) ); LeaveCriticalSection( &m_CritSection ); //TRACE("CBufferedSocket::Send Adding buffer to send count %d\n",buf_out.size()); - if ( connected ) - { -// BOOL ok = WSASetEvent( m_hEvent[1] ); -// if ( !ok ) TRACE( "CBufferedSocket::Send Error SetEvent %d\n", WSAGetLastError()); - } +// if ( connected ) +// { + bool ok = SignalWriter(); + if ( !ok ) TRACE( "CBufferedSocket::SignalWriter Error %d\n", ::GetLastError()); +// } } -- cgit v1.1 From f5edd45381d5f08f77defbb975e1c8b5df3a18e4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:31 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:37 Archivé dans $/Ivy (vss 6) --- Ivy/BufferedSocket.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 6a17b71..b065a15 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -109,9 +109,10 @@ void CBufferedSocket::OnSend( int nErrorCode ) empty = buf_out.empty(); if ( !empty ) msg = buf_out.front(); LeaveCriticalSection( &m_CritSection ); - TRACE("CBufferedSocket::OnSend Sending buffer %s\n",msg.c_str()); if ( !empty ) { +// TRACE("CBufferedSocket::OnSend Sending buffer %s\n",msg.c_str()); + int lg = msg.length(); int sent = CThreadedSocket::Send( msg.c_str(), lg ); if ( sent == lg ) -- cgit v1.1 From 4c3311ee071d9f58bef1dff82a2772778f251cf1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:33 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 17:00 Archivé dans $/Ivy (vss 7) --- Ivy/BufferedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index b065a15..3d3474a 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -50,7 +50,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) ptr = buf; return; } - nb = ReceiveFrom( ptr, nb_to_read, &addr, &len, MSG_PARTIAL ); + nb = ReceiveFrom( ptr, nb_to_read, &addr, &len, 0/*MSG_PARTIAL*/ ); if ( nb == SOCKET_ERROR ) { int err = GetLastError(); -- cgit v1.1 From 2a2c244787f3f9584c49b93d499e1d6f1af114c6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:34 +0000 Subject: Utilisateur : Fcolin Date : 23/05/01 Heure : 10:25 Archivé dans $/Ivy (vss 8) --- Ivy/BufferedSocket.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 3d3474a..441d580 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -53,9 +53,9 @@ void CBufferedSocket::OnReceive(int nErrorCode) nb = ReceiveFrom( ptr, nb_to_read, &addr, &len, 0/*MSG_PARTIAL*/ ); if ( nb == SOCKET_ERROR ) { - int err = GetLastError(); + int err = this->GetLastError(); if ( err != WSAESHUTDOWN ) // shutdown by remote side ? - TRACE("error Receive %d socket %d\n",GetLastError(),m_hSocket); + TRACE("error Receive %d socket %d\n",this->GetLastError(),m_hSocket); Close(); return; } @@ -123,7 +123,7 @@ void CBufferedSocket::OnSend( int nErrorCode ) } else { // erreur - int err = GetLastError(); + int err = this->GetLastError(); if ( err == WSAEWOULDBLOCK ) // si la file est pleine on sort en silence ! { } @@ -152,6 +152,6 @@ void CBufferedSocket::Send ( const char * data ) // if ( connected ) // { bool ok = SignalWriter(); - if ( !ok ) TRACE( "CBufferedSocket::SignalWriter Error %d\n", ::GetLastError()); + if ( !ok ) TRACE( "CBufferedSocket::SignalWriter Error %d\n", this->GetLastError()); // } } -- cgit v1.1 From e661571a5a49870ebd4df32520c18ffb69e96b50 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:36 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 9) --- Ivy/BufferedSocket.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 441d580..2e15cab 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -5,10 +5,6 @@ #include "stdafx.h" #include "BufferedSocket.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction -- cgit v1.1 From ff8b9139c740027bbbec018b76a00d5c0ff3ebc5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:38 +0000 Subject: Utilisateur : Fcolin Date : 20/09/01 Heure : 9:40 Archivé dans $/Ivy (vss 10) --- Ivy/BufferedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 2e15cab..491098e 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -135,7 +135,7 @@ void CBufferedSocket::OnConnect( int nErrorCode ) { connected = true; StartWriter(); -//TRACE("CBufferedSocket::OnConnect buffer empty %d\n",buf_out.IsEmpty()); + TRACE("CBufferedSocket::OnConnect buffer size %d\n",buf_out.size()); } void CBufferedSocket::Send ( const char * data ) { -- cgit v1.1 From fb5f1f4e3561eba211e9cafc5ea290f2adb88200 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:40 +0000 Subject: Utilisateur : Fcolin Date : 4/02/03 Heure : 8:59 Archivé dans $/Bus/Ivy Commentaire: (vss 11) --- Ivy/BufferedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 491098e..0265e3b 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -135,7 +135,7 @@ void CBufferedSocket::OnConnect( int nErrorCode ) { connected = true; StartWriter(); - TRACE("CBufferedSocket::OnConnect buffer size %d\n",buf_out.size()); +// TRACE("CBufferedSocket::OnConnect buffer size %d\n",buf_out.size()); } void CBufferedSocket::Send ( const char * data ) { -- cgit v1.1 From 22aa1c6735a22db795f7f10679d285beda36d9be Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:42 +0000 Subject: Utilisateur : Fcolin Date : 9/02/04 Heure : 15:25 Archivé dans $/Bus/Ivy Commentaire: (vss 12) --- Ivy/BufferedSocket.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 0265e3b..03a2704 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -120,11 +120,15 @@ void CBufferedSocket::OnSend( int nErrorCode ) else { // erreur int err = this->GetLastError(); - if ( err == WSAEWOULDBLOCK ) // si la file est pleine on sort en silence ! - { - } - else - TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg); + switch ( err ){ + case WSAEWOULDBLOCK: // si la file est pleine on sort en silence ! + break; + case WSAECONNABORTED: // broken pipe on sort en silence + break; + default: + TRACE("CBufferedSocket::OnWakeup error %d Sending buffer %s \n",err,msg.c_str()); + break; + } break; } } -- cgit v1.1 From 00546c6eb0c54919615c1e28858403fcd232c06a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:44 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 13) --- Ivy/BufferedSocket.cxx | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 03a2704..864da25 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -2,7 +2,7 @@ // ////////////////////////////////////////////////////////////////////// -#include "stdafx.h" +#include "IvyStdAfx.h" #include "BufferedSocket.h" @@ -60,27 +60,27 @@ void CBufferedSocket::OnReceive(int nErrorCode) Close(); return; } - - ptr += nb; - ASSERT( ptr < (buf +sizeof( buf ))); - *ptr = '\0'; - ptr = buf; - while( (ptr_nl = strchr( ptr, '\n' ))) - { - *ptr_nl = '\0'; - //TRACE("message %s\n", ptr ); - OnReceive( ptr ); - ptr = ++ptr_nl; - } + + ptr += nb; + ASSERT( ptr < (buf +sizeof( buf ))); + *ptr = '\0'; + ptr = buf; + while( (ptr_nl = strchr( ptr, '\n' ))) + { + *ptr_nl = '\0'; + //TRACE("message %s\n", ptr ); + OnReceive( ptr ); + ptr = ++ptr_nl; + } if ( *ptr != '\0' ) - { /* recopie ligne incomplete au debut du buffer */ - strcpy( buf, ptr ); - ptr = buf + strlen(buf); - } - else - { - ptr = buf; - } + { /* recopie ligne incomplete au debut du buffer */ + strcpy( buf, ptr ); + ptr = buf + strlen(buf); + } + else + { + ptr = buf; + } } -- cgit v1.1 From 863c7be9778c1dab03380ba7d72e015448ab9206 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:46 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 18:23 Archivé dans $/Bus/Ivy Commentaire: (vss 14) --- Ivy/BufferedSocket.cxx | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 864da25..5f6c994 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -5,6 +5,7 @@ #include "IvyStdAfx.h" #include "BufferedSocket.h" +#define BUFFER_SIZE 4096 ////////////////////////////////////////////////////////////////////// // Construction/Destruction @@ -13,7 +14,9 @@ CBufferedSocket::CBufferedSocket() { separator = '\n'; - ptr = buf; + buffer_size = BUFFER_SIZE; + buffer = (char*)malloc( buffer_size ); + current_ptr = buffer; connected = false; InitializeCriticalSection( &m_CritSection ); } @@ -29,9 +32,8 @@ void CBufferedSocket::Accept(CBufferedSocket& rConnectedSocket, SOCKADDR* lpSock } void CBufferedSocket::OnReceive(int nErrorCode) { - - - char *ptr_nl; + char *ptr_sep; + char *ptr; long nb_to_read = 0; long nb; @@ -39,14 +41,20 @@ void CBufferedSocket::OnReceive(int nErrorCode) int len = sizeof( addr ); /* limitation taille buffer */ - nb_to_read = MAX_BUFFER - ( ptr - buf ); + nb_to_read = buffer_size - (current_ptr - buffer ); if( nb_to_read == 0 ) { - TRACE("Erreur message trop long sans LF\n"); - ptr = buf; - return; + buffer_size *= 2; /* twice old size */ + buffer = (char*)realloc( buffer, buffer_size ); + if (!buffer ) + { + TRACE("HandleSocket Buffer Memory Alloc Error\n"); + exit(0); + } + TRACE( "Buffer Limit reached realloc new size %ld\n", buffer_size ); + nb_to_read = buffer_size - (current_ptr - buffer ); } - nb = ReceiveFrom( ptr, nb_to_read, &addr, &len, 0/*MSG_PARTIAL*/ ); + nb = ReceiveFrom( current_ptr, nb_to_read, &addr, &len, 0/*MSG_PARTIAL*/ ); if ( nb == SOCKET_ERROR ) { int err = this->GetLastError(); @@ -61,26 +69,26 @@ void CBufferedSocket::OnReceive(int nErrorCode) return; } - ptr += nb; - ASSERT( ptr < (buf +sizeof( buf ))); - *ptr = '\0'; - ptr = buf; - while( (ptr_nl = strchr( ptr, '\n' ))) + current_ptr += nb; + ASSERT( current_ptr < (buffer + buffer_size) ); + ptr = buffer; + while ((ptr_sep = (char*)memchr (ptr, separator, current_ptr - ptr ))) { - *ptr_nl = '\0'; + *ptr_sep = '\0'; //TRACE("message %s\n", ptr ); OnReceive( ptr ); - ptr = ++ptr_nl; + ptr = ++ptr_sep; } - if ( *ptr != '\0' ) + if (ptr < current_ptr ) { /* recopie ligne incomplete au debut du buffer */ - strcpy( buf, ptr ); - ptr = buf + strlen(buf); + len = current_ptr - ptr; + memcpy (buffer, ptr, len ); + current_ptr = buffer + len; } else { - ptr = buf; - } + current_ptr = buffer; + } } -- cgit v1.1 From 6df79c23c311d014c426ab00d3bc3c9a8204b429 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:48 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 15) --- Ivy/BufferedSocket.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 5f6c994..cae2404 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -70,7 +70,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) } current_ptr += nb; - ASSERT( current_ptr < (buffer + buffer_size) ); + //ASSERT( current_ptr < (buffer + buffer_size) ); ptr = buffer; while ((ptr_sep = (char*)memchr (ptr, separator, current_ptr - ptr ))) { @@ -102,7 +102,7 @@ void CBufferedSocket::SetSeparator( char sep ) } void CBufferedSocket::OnSend( int nErrorCode ) { - string msg; + ivy::string msg; bool empty; // on essaye de garder la section critique a l'interieur de la boucle @@ -154,7 +154,7 @@ void CBufferedSocket::Send ( const char * data ) //BOOL toBeSignaled; EnterCriticalSection( &m_CritSection ); //toBeSignaled = buf_out.IsEmpty() && connected; - buf_out.push_back( string(data) ); + buf_out.push_back( ivy::string(data) ); LeaveCriticalSection( &m_CritSection ); //TRACE("CBufferedSocket::Send Adding buffer to send count %d\n",buf_out.size()); // if ( connected ) -- cgit v1.1 From 9b22935b0b601fa0ebce1ced5d8eb2c7499eb2a0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:50 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 16) --- Ivy/BufferedSocket.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index cae2404..11eecf5 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -34,11 +34,11 @@ void CBufferedSocket::OnReceive(int nErrorCode) { char *ptr_sep; char *ptr; - long nb_to_read = 0; - long nb; + size_t nb_to_read = 0; + size_t nb; SOCKADDR addr; - int len = sizeof( addr ); + size_t len = sizeof( addr ); /* limitation taille buffer */ nb_to_read = buffer_size - (current_ptr - buffer ); @@ -117,8 +117,8 @@ void CBufferedSocket::OnSend( int nErrorCode ) { // TRACE("CBufferedSocket::OnSend Sending buffer %s\n",msg.c_str()); - int lg = msg.length(); - int sent = CThreadedSocket::Send( msg.c_str(), lg ); + size_t lg = msg.length(); + size_t sent = CThreadedSocket::Send( msg.c_str(), lg ); if ( sent == lg ) { // emission correcte on enleve le msg de la file EnterCriticalSection( &m_CritSection ); -- cgit v1.1 From eb8866478a0f97eaa7b9e52259043672da332778 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:52 +0000 Subject: Utilisateur : Fcolin Date : 17/11/05 Heure : 15:08 Archivé dans $/Bus/Ivy Commentaire: nice Bug in nextArg not reentrant routine due to static variable (vss 17) --- Ivy/BufferedSocket.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 11eecf5..7df2bce 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -55,6 +55,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) nb_to_read = buffer_size - (current_ptr - buffer ); } nb = ReceiveFrom( current_ptr, nb_to_read, &addr, &len, 0/*MSG_PARTIAL*/ ); + ASSERT ( memchr( current_ptr, 0, nb) == NULL ); if ( nb == SOCKET_ERROR ) { int err = this->GetLastError(); @@ -70,7 +71,6 @@ void CBufferedSocket::OnReceive(int nErrorCode) } current_ptr += nb; - //ASSERT( current_ptr < (buffer + buffer_size) ); ptr = buffer; while ((ptr_sep = (char*)memchr (ptr, separator, current_ptr - ptr ))) { @@ -78,6 +78,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) //TRACE("message %s\n", ptr ); OnReceive( ptr ); ptr = ++ptr_sep; + //ASSERT( ptr < (buffer + buffer_size) ); } if (ptr < current_ptr ) { /* recopie ligne incomplete au debut du buffer */ -- cgit v1.1 From 38c6ccda650d81aca69dafa3d033bfeb8160e94c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:54 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 18) --- Ivy/BufferedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 7df2bce..3335e09 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -23,7 +23,7 @@ CBufferedSocket::CBufferedSocket() CBufferedSocket::~CBufferedSocket() { - + free( buffer ); } void CBufferedSocket::Accept(CBufferedSocket& rConnectedSocket, SOCKADDR* lpSockAddr , int* lpSockAddrLen ) { -- cgit v1.1 From 98630f19f487c261bd68defc285c8216c0f7718c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:56 +0000 Subject: Utilisateur : Fcolin Date : 19/04/06 Heure : 15:07 Archivé dans $/Bus/Ivy Commentaire: (vss 19) --- Ivy/BufferedSocket.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx index 3335e09..1a11c56 100644 --- a/Ivy/BufferedSocket.cxx +++ b/Ivy/BufferedSocket.cxx @@ -36,6 +36,7 @@ void CBufferedSocket::OnReceive(int nErrorCode) char *ptr; size_t nb_to_read = 0; size_t nb; + char *tmp_buf; SOCKADDR addr; size_t len = sizeof( addr ); @@ -45,12 +46,13 @@ void CBufferedSocket::OnReceive(int nErrorCode) if( nb_to_read == 0 ) { buffer_size *= 2; /* twice old size */ - buffer = (char*)realloc( buffer, buffer_size ); - if (!buffer ) + tmp_buf = (char*)realloc( buffer, buffer_size ); + if (!tmp_buf ) { TRACE("HandleSocket Buffer Memory Alloc Error\n"); exit(0); } + buffer = tmp_buf; TRACE( "Buffer Limit reached realloc new size %ld\n", buffer_size ); nb_to_read = buffer_size - (current_ptr - buffer ); } -- cgit v1.1 From c3cdcd52eb86f5ed96a515370e073e604ebb1a53 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:53:58 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/BufferedSocket.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Ivy/BufferedSocket.h diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h new file mode 100644 index 0000000..5f104c6 --- /dev/null +++ b/Ivy/BufferedSocket.h @@ -0,0 +1,42 @@ +// BufferedSocket.h: interface for the CBufferedSocket class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) +#define AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "ThreadedSocket.h" + +class CBufferedSocket : public CThreadedSocket +{ +// DECLARE_DYNAMIC(CBufferedSocket) +public: + CBufferedSocket(); + virtual ~CBufferedSocket(); + void OnReceive( int nErrorCode ); + void OnSend( int nErrorCode ); + void OnConnect(int nErrorCode); + void OnWakeup(); + virtual void OnReceive( char *line ); + virtual void Accept(CBufferedSocket& rConnectedSocket, + SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); + void SetSeparator( char sep ); + void Send ( const char * data ); +protected: + bool connected; /* wait to be connected before sending any Data */ + char separator; + /* buffer de reception de l'application */ +#define MAX_BUFFER 2048 + // MAX_BUFFER +1 pour ajouter \0 a la fin + char buf[MAX_BUFFER+1]; + char *ptr; + // Buffer Emission + CRITICAL_SECTION m_CritSection; + list buf_out; +}; + +#endif // !defined(AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -- cgit v1.1 From b2d1035cde733bc2e70f5976fa8453808bcca416 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:00 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 2) --- Ivy/BufferedSocket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index 5f104c6..e72138f 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -36,7 +36,7 @@ protected: char *ptr; // Buffer Emission CRITICAL_SECTION m_CritSection; - list buf_out; + std::list buf_out; }; #endif // !defined(AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -- cgit v1.1 From 558c5dd8030af085ba6caf392a4f5bf4bc8b41a8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:02 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 3) --- Ivy/BufferedSocket.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index e72138f..1e0d118 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -2,12 +2,9 @@ // ////////////////////////////////////////////////////////////////////// -#if !defined(AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -#define AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_ -#if _MSC_VER > 1000 #pragma once -#endif // _MSC_VER > 1000 + #include "ThreadedSocket.h" @@ -36,7 +33,6 @@ protected: char *ptr; // Buffer Emission CRITICAL_SECTION m_CritSection; - std::list buf_out; + list buf_out; }; -#endif // !defined(AFX_BUFFEREDSOCKET_H__ECAC808B_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -- cgit v1.1 From 6701078aaeb12a8a3bab96b5301a4f3778806adf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:04 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 4) --- Ivy/BufferedSocket.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index 1e0d118..bd146ec 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -17,7 +17,6 @@ public: void OnReceive( int nErrorCode ); void OnSend( int nErrorCode ); void OnConnect(int nErrorCode); - void OnWakeup(); virtual void OnReceive( char *line ); virtual void Accept(CBufferedSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); -- cgit v1.1 From d3a7a9e4bc5b2a15d0825b41a740535cd6759fa7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:06 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 18:23 Archivé dans $/Bus/Ivy Commentaire: (vss 5) --- Ivy/BufferedSocket.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index bd146ec..70e0b5e 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -26,10 +26,9 @@ protected: bool connected; /* wait to be connected before sending any Data */ char separator; /* buffer de reception de l'application */ -#define MAX_BUFFER 2048 - // MAX_BUFFER +1 pour ajouter \0 a la fin - char buf[MAX_BUFFER+1]; - char *ptr; + long buffer_size; + char *buffer; + char *current_ptr; // Buffer Emission CRITICAL_SECTION m_CritSection; list buf_out; -- cgit v1.1 From 89717ecba42128b4d3ec0afaf601540cd647530c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:08 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 6) --- Ivy/BufferedSocket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index 70e0b5e..3920e64 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -31,6 +31,6 @@ protected: char *current_ptr; // Buffer Emission CRITICAL_SECTION m_CritSection; - list buf_out; + ivy::list buf_out; }; -- cgit v1.1 From 00aba9041cbb3de4c38531d56750c8c25a975c28 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:10 +0000 Subject: Utilisateur : Fcolin Date : 17/11/05 Heure : 15:08 Archivé dans $/Bus/Ivy Commentaire: nice Bug in nextArg not reentrant routine due to static variable (vss 7) --- Ivy/BufferedSocket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/BufferedSocket.h b/Ivy/BufferedSocket.h index 3920e64..851ead1 100644 --- a/Ivy/BufferedSocket.h +++ b/Ivy/BufferedSocket.h @@ -24,7 +24,7 @@ public: void Send ( const char * data ); protected: bool connected; /* wait to be connected before sending any Data */ - char separator; + int separator; /* buffer de reception de l'application */ long buffer_size; char *buffer; -- cgit v1.1 From 87abbc06c1146ff80457407150c4e212b4ed4916 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:12 +0000 Subject: Utilisateur : Fcolin Date : 30/01/01 Heure : 17:33 Créé (vss 1) --- Ivy/DataTypes.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Ivy/DataTypes.h diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h new file mode 100644 index 0000000..e69de29 -- cgit v1.1 From dc8fec9b2b2d00be9751afde91a14d2a841039f4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:14 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 2) --- Ivy/DataTypes.h | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index e69de29..53bef2b 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -0,0 +1,81 @@ +#pragma once + +#ifdef WIN32 +#ifdef IVY_EXPORTS +class _declspec(dllexport) string; +#else +#pragma comment(lib,"Ivy.LIB" ) +class _declspec(dllimport) string; +#endif +#endif + +class string { +public: + string(); + string( const char * s); + int length(); + bool empty(); + void erase(int start=0, int len = -1); + void append( const char *s , int len ); + void insert(int index, const char * s); + string substr( int start, int len = -1 ); + int find_first_of( const char* s ); + int rfind( char c ); + operator +=(string s); + string operator +(string s); + // Nondestructive typecast operator + operator const char*() const; + const char *c_str() const; // remove this ugly thing +}; + +template class Iterator { +public: + T & operator !=(Iterator i); + T & operator ++(); + operator const T*() const; + T & second; + +}; + + +template class list { +public: + void clear(); + bool empty(); + T front(); + pop_front(); + void push_back( T data ); + typedef Iterator iterator; + iterator begin(); + iterator end(); + void remove( T data ); +}; + +template class vector { +public: + void clear(); + int size(); + // Nondestructive typecast operator + operator const T*() const; + // Accesses indexed component of vector + T & operator [](int i); + // Accesses indexed component of vector + const T & operator [](int i) const; + void push_back( T data ); + void remove( T data ); + +}; + +template class map { +public: + void clear(); + int size(); + bool empty(); + find(I i ); + typedef Iterator iterator; + iterator begin(); + iterator end(); + void erase( I i ); + // Accesses indexed component of vector + const T & operator [](I i) const; +}; \ No newline at end of file -- cgit v1.1 From 5ee431e3130e11fd8450222ec95402cca01594fa Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:16 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 3) --- Ivy/DataTypes.h | 321 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 268 insertions(+), 53 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 53bef2b..85be4d6 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -11,71 +11,286 @@ class _declspec(dllimport) string; class string { public: - string(); - string( const char * s); - int length(); - bool empty(); - void erase(int start=0, int len = -1); - void append( const char *s , int len ); - void insert(int index, const char * s); - string substr( int start, int len = -1 ); - int find_first_of( const char* s ); - int rfind( char c ); - operator +=(string s); - string operator +(string s); + string(size_t len = 0) + { ptr = allocBuffer( len ); }; + string ( const string& s ) + { ptr = 0; copy( s.ptr, s.size ); } + string( const char * s, int len = -1 ) + { + ptr = 0; + if ( len < 0 ) + len = strlen(s) ; + copy( s, len ); + } + + ~string() + { delete ptr; } + size_t length() + { return size; } + bool empty() const + { return size==0; } + void copy( const char * s, int len ) + { + char *newptr = allocBuffer( len ); + strncpy( newptr, s, len ); + if ( ptr ) delete [] ptr; + ptr = newptr; + } + void erase(int start=0, int len = -1) + { + char *newptr; + size_t real_len; + real_len = len < 0 ? size - start : len; + if ( real_len > size ) real_len = size; + newptr = allocBuffer( size - real_len ); + strncpy( newptr, ptr , start ); + strncpy( &newptr[start], &ptr[start+real_len], size - start ); + delete ptr; + ptr = newptr; + } + void append( const char *s , int len = -1 ) + { + insert ( size, s , len ); + } + void insert(int index, const char * s, int len = -1) + { + char *newptr; + if ( len < 0 ) len = strlen(s) ; + newptr = allocBuffer( size + len ); + strncpy( newptr , ptr, index ); + strncpy( newptr+index , s, len ) ; + strncpy( newptr+index+len , &ptr[index], len ) ; + delete ptr; + ptr = newptr; + } + string substr( int start, int len = -1 ) + { return string ( &ptr[start], len ); } + int find_first_of( const char* strCharSet ) + { char *fnd = strpbrk( ptr, strCharSet ); if ( fnd ) return fnd - ptr; else return -1; } + int rfind( char c ) + { char *fnd = strrchr( ptr, c); if ( fnd ) return fnd - ptr; else return -1; } +// friend string operator + (const string& left, const char* right); +// friend string operator + (const char* left, const string& right); + friend string operator + (const string& left, const string& right) + { + string str( left.size + right.size ); + str.append( left.ptr, left.size); + str.append( right.ptr, right.size); + return str; + } + operator +=(string s) + { + append( s.ptr, s.size ); + } + operator +=(char c) + { append( &c, 1);} + string operator +(string s) const + { string str ( ptr, size ); str.append( s.ptr, s.size ); return str; } + string operator +(const char c) const + { string str ( ptr, size ); str.append( &c, 1); return str; } + string& operator=(const string& s) + { copy(s.ptr,s.size); return *this; } + string& operator=(const char* s) + { copy(s,strlen(s)); return *this; } // Nondestructive typecast operator - operator const char*() const; - const char *c_str() const; // remove this ugly thing + operator const char*() const + { return ptr; } + const char *c_str() const // remove this ugly thing + { return ptr; } +private: + char *ptr; + size_t size; + // always allocate one extra character for '\0' termination + char *allocBuffer(int len) + { + char *newptr; + size = len; + newptr = new char[len+1] ; + newptr[len] = '\0'; + return newptr; + } + }; -template class Iterator { -public: - T & operator !=(Iterator i); - T & operator ++(); - operator const T*() const; - T & second; -}; template class list { + +protected: + struct _Node; + friend struct _Node; + typedef struct _Node Node; + typedef Node* NodePtr; + struct _Node { + NodePtr next, prev; + T value; + }; + public: - void clear(); - bool empty(); - T front(); - pop_front(); - void push_back( T data ); - typedef Iterator iterator; - iterator begin(); - iterator end(); - void remove( T data ); + + friend class iterator; + class iterator { + public: + iterator() + {ptr = 0;} + iterator(NodePtr p) + {ptr = p;} + T& operator*() const + {return ptr->value; } + T* operator->() const + {return &(ptr->value); } + iterator& operator++() + {ptr = ptr->next; + return (*this); } + iterator operator++(int) + {iterator tmp = *this; + ++*this; + return (tmp); } + iterator& operator--() + {ptr = ptr.prev;); + return (*this); } + iterator operator--(int) + {iterator tmp = *this; + --*this; + return (tmp); } + bool operator==(const iterator& p) const + {return (ptr == p.ptr); } + bool operator!=(const iterator& p) const + {return (ptr != p.ptr); } + NodePtr next() const + {return ptr->next; }; + NodePtr prev() const + {return ptr->prev ; }; + NodePtr node() const + {return (ptr); } + protected: + NodePtr ptr; + }; + + list() + { head = 0; } + bool empty() + { return head == 0 ; } + T& front() + {return head->value; } + iterator erase(iterator n) + { + NodePtr p = n.prev(); + NodePtr s = (n++).node(); + delete p->next; + p->next = s; + s->prev = p; + return n; + } + void pop_front() + { + NodePtr newhead = head->next; + newhead->prev = head->prev; + head->prev->next = newhead; + delete head; + head = (head == newhead) ? 0 : newhead; + } + iterator erase(iterator first, iterator last) + { + while (first != last) + erase(first++); + return (first); + } + void clear() + {erase(begin(), end()); } + void push_back( T value ) + { + NodePtr p = new Node; + p->value = value; + if ( head ) + { + p->next = head; + p->prev = head->prev; + head->prev->next = p; + head->prev = p; + } + else { + head = p; + p->next = p->prev = p; + } + } + void remove( const T& data ) + { + iterator last = end(); + for (iterator iter = begin(); iter != last; ) + if (*iter == data) + erase(iter++); + else + ++iter; + } + iterator begin() + {return (iterator(head)); } + iterator end() + { + if (head ) + return (iterator(head->prev)); + else return (iterator(head)); + } + protected: + NodePtr head; + }; template class vector { public: - void clear(); - int size(); - // Nondestructive typecast operator - operator const T*() const; - // Accesses indexed component of vector - T & operator [](int i); + + vector ( ) + { data = 0; len = 0; } + size_t size() + { return len; } + void reserve( size_t index ) + { + if ( index >= len ) + { + size_t i; + T* newdata = new T[index+1]; + for ( i = 0; i < len ; i ++ ) + newdata[i] = data[i]; + for ( i = len; i < index+1 ; i ++ ) + newdata[i] = 0; + if ( data ) delete [] data; + data = newdata; + len = index+1; + } + } // Accesses indexed component of vector - const T & operator [](int i) const; - void push_back( T data ); - void remove( T data ); - + T & operator [](size_t index ) + { + // reserve( index ); // TODO or NOT check range + return data[index] ; + } + T & operator [](size_t index ) const + { + return data[index] ; + } + void push_back( const T& value ) + { + T* newdata = new T[len+1]; + for ( unsigned int i = 0; i < len ; i ++ ) + newdata[i] = data[i]; + newdata[len++] = value; + if ( data ) delete [] data; + data = newdata; + } + void erase( int i ) + { + data[i] = 0; + } + void clear() + { + delete [] data; + data = 0; + len = 0; + } + +private: + T* data; + size_t len; }; -template class map { -public: - void clear(); - int size(); - bool empty(); - find(I i ); - typedef Iterator iterator; - iterator begin(); - iterator end(); - void erase( I i ); - // Accesses indexed component of vector - const T & operator [](I i) const; -}; \ No newline at end of file -- cgit v1.1 From 6faa30da0755977ed7dab2e6190519221f39915b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:18 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 4) --- Ivy/DataTypes.h | 117 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 65 insertions(+), 52 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 85be4d6..99b6e05 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -2,13 +2,15 @@ #ifdef WIN32 #ifdef IVY_EXPORTS -class _declspec(dllexport) string; +//class _declspec(dllexport) string; #else -#pragma comment(lib,"Ivy.LIB" ) -class _declspec(dllimport) string; +//#pragma comment(lib,"Ivy.LIB" ) +//class _declspec(dllimport) string; #endif #endif +#include + class string { public: string(size_t len = 0) @@ -24,17 +26,16 @@ public: } ~string() - { delete ptr; } + { delete [] ptr; } size_t length() { return size; } bool empty() const { return size==0; } void copy( const char * s, int len ) { - char *newptr = allocBuffer( len ); - strncpy( newptr, s, len ); if ( ptr ) delete [] ptr; - ptr = newptr; + ptr = allocBuffer( len ); + strncpy( ptr, s, len ); } void erase(int start=0, int len = -1) { @@ -59,7 +60,7 @@ public: newptr = allocBuffer( size + len ); strncpy( newptr , ptr, index ); strncpy( newptr+index , s, len ) ; - strncpy( newptr+index+len , &ptr[index], len ) ; + strncpy( newptr+index+len , &ptr[index], size - (index+len) ) ; delete ptr; ptr = newptr; } @@ -82,6 +83,10 @@ public: { append( s.ptr, s.size ); } + operator +=(const char* s) + { + append( s, strlen(s) ); + } operator +=(char c) { append( &c, 1);} string operator +(string s) const @@ -138,8 +143,10 @@ public: {ptr = p;} T& operator*() const {return ptr->value; } - T* operator->() const - {return &(ptr->value); } +// T* operator->() const +// {return &(ptr->value); } +// T* operator->() const +// {return (&**this); } iterator& operator++() {ptr = ptr->next; return (*this); } @@ -148,7 +155,7 @@ public: ++*this; return (tmp); } iterator& operator--() - {ptr = ptr.prev;); + {ptr = ptr.prev; return (*this); } iterator operator--(int) {iterator tmp = *this; @@ -169,28 +176,53 @@ public: }; list() - { head = 0; } + { + head = new Node; + head->next = head->prev = head; + } + ~list() + { + clear(); + delete head; + } bool empty() - { return head == 0 ; } + { return head->next == head ; } T& front() - {return head->value; } - iterator erase(iterator n) + {return (*begin()); } + const T& front() const + {return (*begin()); } + T& back() + {return (*(--end())); } + const T& back() const + {return (*(--end())); } + iterator erase(iterator p) { - NodePtr p = n.prev(); - NodePtr s = (n++).node(); - delete p->next; - p->next = s; - s->prev = p; - return n; + NodePtr s = (p++).node(); + s->prev->next = s->next; + s->next->prev = s->prev; + delete s; + return (p); } - void pop_front() + + iterator insert(iterator p, const T& v =T()) { - NodePtr newhead = head->next; - newhead->prev = head->prev; - head->prev->next = newhead; - delete head; - head = (head == newhead) ? 0 : newhead; + NodePtr s = p.node(); + NodePtr newnode = new Node; + newnode->value = v; + newnode->prev = s->prev; + newnode->next = s; + s->prev->next = newnode; + s->prev = newnode; + return (iterator(newnode)); } + void push_front(const T& v) + {insert(begin(), v); } + void pop_front() + {erase(begin()); } + void push_back(const T& v) + {insert(end(), v); } + void pop_back() + {erase(--end()); } iterator erase(iterator first, iterator last) { while (first != last) @@ -199,22 +231,7 @@ public: } void clear() {erase(begin(), end()); } - void push_back( T value ) - { - NodePtr p = new Node; - p->value = value; - if ( head ) - { - p->next = head; - p->prev = head->prev; - head->prev->next = p; - head->prev = p; - } - else { - head = p; - p->next = p->prev = p; - } - } + void remove( const T& data ) { iterator last = end(); @@ -225,13 +242,9 @@ public: ++iter; } iterator begin() - {return (iterator(head)); } + {return (iterator(head->next)); } iterator end() - { - if (head ) - return (iterator(head->prev)); - else return (iterator(head)); - } + {return (iterator(head));} protected: NodePtr head; @@ -249,14 +262,14 @@ public: if ( index >= len ) { size_t i; - T* newdata = new T[index+1]; + T* newdata = new T[index]; for ( i = 0; i < len ; i ++ ) newdata[i] = data[i]; - for ( i = len; i < index+1 ; i ++ ) + for ( i = len; i < index ; i ++ ) newdata[i] = 0; if ( data ) delete [] data; data = newdata; - len = index+1; + len = index; } } // Accesses indexed component of vector -- cgit v1.1 From 4ab2c9cd41abe5f904272cb2f5260fa6caed2138 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:20 +0000 Subject: Utilisateur : Fcolin Date : 27/06/01 Heure : 14:24 Archivé dans $/Ivy (vss 5) --- Ivy/DataTypes.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 99b6e05..acc4aa0 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -260,6 +260,9 @@ public: void reserve( size_t index ) { if ( index >= len ) + resize( index ); + } + void resize( size_t index ) { size_t i; T* newdata = new T[index]; @@ -271,7 +274,6 @@ public: data = newdata; len = index; } - } // Accesses indexed component of vector T & operator [](size_t index ) { -- cgit v1.1 From fe66807c8cefa06f12c6af5798d2ed3e14aa953c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:22 +0000 Subject: Utilisateur : Fcolin Date : 5/11/02 Heure : 9:57 Archivé dans $/Bus/Ivy Commentaire: (vss 6) --- Ivy/DataTypes.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index acc4aa0..2267de7 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -79,16 +79,18 @@ public: str.append( right.ptr, right.size); return str; } - operator +=(string s) + const string& operator +=(string s) { - append( s.ptr, s.size ); + return append( s.ptr, s.size ); } - operator +=(const char* s) + const string& operator +=(const char* s) { - append( s, strlen(s) ); + return append( s, strlen(s) ); + } + const string& operator +=(char c) + { + return append( &c, 1); } - operator +=(char c) - { append( &c, 1);} string operator +(string s) const { string str ( ptr, size ); str.append( s.ptr, s.size ); return str; } string operator +(const char c) const -- cgit v1.1 From 52382fb13d0312f26ba0f13da9ad3fb12a218e02 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:24 +0000 Subject: Utilisateur : Fcolin Date : 5/02/04 Heure : 18:32 Archivé dans $/Bus/Ivy Commentaire: (vss 7) --- Ivy/DataTypes.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 2267de7..daf9470 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -79,18 +79,21 @@ public: str.append( right.ptr, right.size); return str; } - const string& operator +=(string s) - { - return append( s.ptr, s.size ); - } - const string& operator +=(const char* s) + + void operator +=(string s) { - return append( s, strlen(s) ); + append( s.ptr, s.size ); } - const string& operator +=(char c) + + void operator +=(const char* s) { - return append( &c, 1); + append( s, strlen(s) ); } + + void operator +=(char c) + { append( &c, 1);} + + string operator +(string s) const { string str ( ptr, size ); str.append( s.ptr, s.size ); return str; } string operator +(const char c) const -- cgit v1.1 From 5d4fda6bd381bf67c37326c74abbcdd33b02f622 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:26 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 8) --- Ivy/DataTypes.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index daf9470..c98a812 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -11,6 +11,9 @@ #include +namespace ivy +{ + class string { public: string(size_t len = 0) @@ -314,3 +317,4 @@ private: size_t len; }; +} \ No newline at end of file -- cgit v1.1 From 8e052a7abf762456b5794468049457335d7a4be9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:28 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:45 Archivé dans $/Bus/Ivy Commentaire: (vss 9) --- Ivy/DataTypes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index c98a812..ea17c37 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -142,7 +142,7 @@ protected: public: - friend class iterator; + //friend class iterator; class iterator { public: iterator() -- cgit v1.1 From 8d5a7b300f69298500e97762987ccd36174c288a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:30 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/DataTypes.h | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index ea17c37..190a7a6 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -16,14 +16,15 @@ namespace ivy class string { public: + static const size_t npos = size_t(-1); string(size_t len = 0) { ptr = allocBuffer( len ); }; string ( const string& s ) { ptr = 0; copy( s.ptr, s.size ); } - string( const char * s, int len = -1 ) + string( const char * s, size_t len = npos ) { ptr = 0; - if ( len < 0 ) + if ( len == npos ) len = strlen(s) ; copy( s, len ); } @@ -34,17 +35,17 @@ public: { return size; } bool empty() const { return size==0; } - void copy( const char * s, int len ) + void copy( const char * s, size_t len ) { if ( ptr ) delete [] ptr; ptr = allocBuffer( len ); strncpy( ptr, s, len ); } - void erase(int start=0, int len = -1) + void erase(size_t start=0, size_t len = npos) { char *newptr; size_t real_len; - real_len = len < 0 ? size - start : len; + real_len = len == npos ? size - start : len; if ( real_len > size ) real_len = size; newptr = allocBuffer( size - real_len ); strncpy( newptr, ptr , start ); @@ -52,14 +53,14 @@ public: delete ptr; ptr = newptr; } - void append( const char *s , int len = -1 ) + void append( const char *s , size_t len = npos ) { insert ( size, s , len ); } - void insert(int index, const char * s, int len = -1) + void insert(size_t index, const char * s, size_t len = npos) { char *newptr; - if ( len < 0 ) len = strlen(s) ; + if ( len == npos ) len = strlen(s) ; newptr = allocBuffer( size + len ); strncpy( newptr , ptr, index ); strncpy( newptr+index , s, len ) ; @@ -67,12 +68,12 @@ public: delete ptr; ptr = newptr; } - string substr( int start, int len = -1 ) + string substr( size_t start, size_t len = npos ) { return string ( &ptr[start], len ); } - int find_first_of( const char* strCharSet ) - { char *fnd = strpbrk( ptr, strCharSet ); if ( fnd ) return fnd - ptr; else return -1; } - int rfind( char c ) - { char *fnd = strrchr( ptr, c); if ( fnd ) return fnd - ptr; else return -1; } + size_t find_first_of( const char* strCharSet ) + { char *fnd = strpbrk( ptr, strCharSet ); if ( fnd ) return (size_t)(fnd - ptr); else return npos; } + size_t rfind( char c ) + { char *fnd = strrchr( ptr, c); if ( fnd ) return (size_t)(fnd - ptr); else return npos; } // friend string operator + (const string& left, const char* right); // friend string operator + (const char* left, const string& right); friend string operator + (const string& left, const string& right) @@ -114,7 +115,7 @@ private: char *ptr; size_t size; // always allocate one extra character for '\0' termination - char *allocBuffer(int len) + char *allocBuffer(size_t len) { char *newptr; size = len; @@ -295,7 +296,7 @@ public: void push_back( const T& value ) { T* newdata = new T[len+1]; - for ( unsigned int i = 0; i < len ; i ++ ) + for ( size_t i = 0; i < len ; i ++ ) newdata[i] = data[i]; newdata[len++] = value; if ( data ) delete [] data; -- cgit v1.1 From e66ce001f6b6ff89fa0804d167d16e73f12a5d4b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:32 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 11) --- Ivy/DataTypes.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 190a7a6..280c2de 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -10,7 +10,7 @@ #endif #include - +#include namespace ivy { @@ -39,17 +39,19 @@ public: { if ( ptr ) delete [] ptr; ptr = allocBuffer( len ); - strncpy( ptr, s, len ); + strncpy_s( ptr, len + 1, s, len ); } void erase(size_t start=0, size_t len = npos) { char *newptr; size_t real_len; + size_t buf_size; real_len = len == npos ? size - start : len; if ( real_len > size ) real_len = size; - newptr = allocBuffer( size - real_len ); - strncpy( newptr, ptr , start ); - strncpy( &newptr[start], &ptr[start+real_len], size - start ); + buf_size = size - real_len; + newptr = allocBuffer( buf_size ); + strncpy_s( newptr, buf_size +1, ptr , start ); + strncpy_s( &newptr[start], buf_size +1 - start, &ptr[start+real_len], size - start ); delete ptr; ptr = newptr; } @@ -61,10 +63,11 @@ public: { char *newptr; if ( len == npos ) len = strlen(s) ; - newptr = allocBuffer( size + len ); - strncpy( newptr , ptr, index ); - strncpy( newptr+index , s, len ) ; - strncpy( newptr+index+len , &ptr[index], size - (index+len) ) ; + size_t buf_len = size + len; + newptr = allocBuffer( buf_len ); + strncpy_s( newptr , buf_len +1, ptr, index ); + strncpy_s( newptr+index, buf_len + 1 - index, s, len ) ; + strncpy_s( newptr+index+len, buf_len + 1 - index -len, &ptr[index], size - (index+len) ) ; delete ptr; ptr = newptr; } -- cgit v1.1 From e69d66f4d8d2871c8643d27b5fc04732826f8459 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:34 +0000 Subject: Utilisateur : Fcolin Date : 17/11/05 Heure : 15:08 Archivé dans $/Bus/Ivy Commentaire: nice Bug in nextArg not reentrant routine due to static variable (vss 12) --- Ivy/DataTypes.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Ivy/DataTypes.h b/Ivy/DataTypes.h index 280c2de..8afc4ce 100644 --- a/Ivy/DataTypes.h +++ b/Ivy/DataTypes.h @@ -1,19 +1,23 @@ #pragma once + +#include + +namespace ivy +{ #ifdef WIN32 #ifdef IVY_EXPORTS -//class _declspec(dllexport) string; +class _declspec(dllexport) string; +template class _declspec(dllexport) list; +template class _declspec(dllexport) vector; #else -//#pragma comment(lib,"Ivy.LIB" ) -//class _declspec(dllimport) string; +#pragma comment(lib,"Ivy.LIB" ) +class _declspec(dllimport) string; +template class _declspec(dllimport) list; +template class _declspec(dllimport) vector; #endif #endif -#include -#include -namespace ivy -{ - class string { public: static const size_t npos = size_t(-1); -- cgit v1.1 From 5039c1e432746a6e34d568818c8a0e1793ceef8f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:42 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:11 Créé Commentaire: (vss 1) --- Ivy/InstIvy/InstIvy.sln | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Ivy/InstIvy/InstIvy.sln diff --git a/Ivy/InstIvy/InstIvy.sln b/Ivy/InstIvy/InstIvy.sln new file mode 100644 index 0000000..212066d --- /dev/null +++ b/Ivy/InstIvy/InstIvy.sln @@ -0,0 +1,32 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\..\..\Program Files\Microsoft Visual Studio\Common\VSS\temp\InstIvy.vdproj", "{E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}" +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 2 + SccProjectUniqueName0 = ..\\..\\..\\..\\Program\u0020Files\\Microsoft\u0020Visual\u0020Studio\\Common\\VSS\\temp\\InstIvy.vdproj + SccLocalPath0 = ..\\..\\..\\..\\Program\u0020Files\\Microsoft\u0020Visual\u0020Studio\\Common\\VSS\\temp + CanCheckoutShared = false + SccProjectName1 = \u0022$/Bus/Install/InstIvy\u0022,\u0020CREAAAAA + SccLocalPath1 = . + SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SolutionUniqueID = {F1027A98-11B4-463A-808C-63E2AD09C2EA} + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Debug.ActiveCfg = Debug + {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Debug.Build.0 = Debug + {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Release.ActiveCfg = Release + {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Release.Build.0 = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From b3f554a08a064410d502dde6a29242b6c45cf40a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:43 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:56 Archivé dans $/Bus/Install/InstIvy Commentaire: (vss 2) --- Ivy/InstIvy/InstIvy.sln | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/Ivy/InstIvy/InstIvy.sln b/Ivy/InstIvy/InstIvy.sln index 212066d..def9de2 100644 --- a/Ivy/InstIvy/InstIvy.sln +++ b/Ivy/InstIvy/InstIvy.sln @@ -1,17 +1,23 @@ Microsoft Visual Studio Solution File, Format Version 7.00 -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "..\..\..\..\Program Files\Microsoft Visual Studio\Common\VSS\temp\InstIvy.vdproj", "{E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}" +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvy", "InstIvy.vdproj", "{8826FCA8-62E5-449E-A1F5-A3203F13EF78}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "..\..\C++\Bus\Ivy\Ivy.vcproj", "{9F40EF6B-8C74-4087-9E25-32A5E7EC2128}" EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = ..\\..\\..\\..\\Program\u0020Files\\Microsoft\u0020Visual\u0020Studio\\Common\\VSS\\temp\\InstIvy.vdproj - SccLocalPath0 = ..\\..\\..\\..\\Program\u0020Files\\Microsoft\u0020Visual\u0020Studio\\Common\\VSS\\temp + SccNumberOfProjects = 3 + SccProjectName0 = \u0022$/Bus/Install/InstIvy\u0022,\u0020CREAAAAA + SccLocalPath0 = . + SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false - SccProjectName1 = \u0022$/Bus/Install/InstIvy\u0022,\u0020CREAAAAA + SolutionUniqueID = {F1027A98-11B4-463A-808C-63E2AD09C2EA} + SccProjectUniqueName1 = InstIvy.vdproj SccLocalPath1 = . - SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false - SolutionUniqueID = {F1027A98-11B4-463A-808C-63E2AD09C2EA} + SccProjectUniqueName2 = ..\\..\\C++\\Bus\\Ivy\\Ivy.vcproj + SccProjectName2 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA + SccLocalPath2 = ..\\..\\C++\\Bus\\Ivy + CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug @@ -20,10 +26,14 @@ Global GlobalSection(ProjectDependencies) = postSolution EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution - {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Debug.ActiveCfg = Debug - {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Debug.Build.0 = Debug - {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Release.ActiveCfg = Release - {E53BCCDB-5CE7-40F8-AC36-0D304E442AB3}.Release.Build.0 = Release + {8826FCA8-62E5-449E-A1F5-A3203F13EF78}.Debug.ActiveCfg = Debug + {8826FCA8-62E5-449E-A1F5-A3203F13EF78}.Debug.Build.0 = Debug + {8826FCA8-62E5-449E-A1F5-A3203F13EF78}.Release.ActiveCfg = Release + {8826FCA8-62E5-449E-A1F5-A3203F13EF78}.Release.Build.0 = Release + {9F40EF6B-8C74-4087-9E25-32A5E7EC2128}.Debug.ActiveCfg = Debug|Win32 + {9F40EF6B-8C74-4087-9E25-32A5E7EC2128}.Debug.Build.0 = Debug|Win32 + {9F40EF6B-8C74-4087-9E25-32A5E7EC2128}.Release.ActiveCfg = Release|Win32 + {9F40EF6B-8C74-4087-9E25-32A5E7EC2128}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From f8fdfba5a57665f623859999b526df40df4645d6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:45 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:54 Créé Commentaire: (vss 1) --- Ivy/InstIvy/InstIvy.vdproj | 190 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 Ivy/InstIvy/InstIvy.vdproj diff --git a/Ivy/InstIvy/InstIvy.vdproj b/Ivy/InstIvy/InstIvy.vdproj new file mode 100644 index 0000000..3c57564 --- /dev/null +++ b/Ivy/InstIvy/InstIvy.vdproj @@ -0,0 +1,190 @@ +"DeployProject" +{ +"VSVersion" = "3:700" +"ProjectType" = "8:{5443560e-dbb4-11d2-8724-00a0c9a8b90c}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:InstIvy" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:\"$/fcolin\", SPEAAAAA" +"SccLocalPath" = "8:..\\.." +"SccAuxPath" = "8:" +"SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_E9F23F82D12A4D518B138018AD21A5C7" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVY.DLL" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvy.msm" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstIvy.msm" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{2FBCB9FF-B6A1-4FA9-9C7C-D1366E178586}:_7BEBD1D67A934D228BFBAE7C11467C9A" + { + "DefaultLocation" = "8:[TARGETDIR]" + "DisplayName" = "8:Dossier Remplacement pour les modules" + "Description" = "8:" + "Name" = "8:Dossier Remplacement pour les modules" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:NEWRETARGETABLEPROPERTY1" + "Folders" + { + } + } + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_95C620F5C6F34995951BBCEA2FDF6B8C" + { + "Name" = "8:#1910" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:CommonFilesFolder" + "Folders" + { + } + } + } + "Shortcut" + { + } + "Sequences" + { + } + "Registry" + { + "HKLM" + { + "Keys" + { + } + } + "HKCU" + { + "Keys" + { + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "ProjectOutput" + { + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_E9F23F82D12A4D518B138018AD21A5C7" + { + "SourcePath" = "8:..\\..\\Program Files\\Debug\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_95C620F5C6F34995951BBCEA2FDF6B8C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + "ShowKeyOutput" = "11:FALSE" + "ExcludeFilters" + { + } + } + } + "Module" + { + "ModuleSignature" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + "Version" = "8:1.0.0.0" + "Title" = "8:Ivy" + "Subject" = "8:" + "Author" = "8:CENA" + "Keywords" = "8:" + "Comments" = "8:" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "MergeModule" + { + } + } +} -- cgit v1.1 From b51ce334270c4989326a2174f9f4d5a3c2db8719 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:47 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/fcolin/Install/InstIvy Commentaire: (vss 2) --- Ivy/InstIvy/InstIvy.vdproj | 209 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 201 insertions(+), 8 deletions(-) diff --git a/Ivy/InstIvy/InstIvy.vdproj b/Ivy/InstIvy/InstIvy.vdproj index 3c57564..c1b3e61 100644 --- a/Ivy/InstIvy/InstIvy.vdproj +++ b/Ivy/InstIvy/InstIvy.vdproj @@ -15,10 +15,58 @@ { "Entry" { - "MsmKey" = "8:_E9F23F82D12A4D518B138018AD21A5C7" + "MsmKey" = "8:_2409E7519F5058B9E967379542A95097" + "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" + } + "Entry" + { + "MsmKey" = "8:_5007A5EA0EE84C13BB6B31EB6F74CB2C" + "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVY.DLL" + } + "Entry" + { + "MsmKey" = "8:_AB0CB817E553832FDD27DD3AAC1EBC00" + "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MFC70D.DLL" + } + "Entry" + { + "MsmKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVY.DLL" } + "Entry" + { + "MsmKey" = "8:_DEA45E14BA5E11950E31ADEE63118ACB" + "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" + } + "Entry" + { + "MsmKey" = "8:_DEA45E14BA5E11950E31ADEE63118ACB" + "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" + } + "Entry" + { + "MsmKey" = "8:_E3EAD04FF43E53C785D576930F186E2B" + "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\WSOCK32.DLL" + } + "Entry" + { + "MsmKey" = "8:_E3EAD04FF43E53C785D576930F186E2B" + "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\WSOCK32.DLL" + } + "Entry" + { + "MsmKey" = "8:_E4F14818A088497C83716F25194F0014" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVYPROBE.EXE" + } } "Configurations" { @@ -68,12 +116,128 @@ } "File" { + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_2409E7519F5058B9E967379542A95097" + { + "Signature" = "8:2000000090c39d10d295c1010802179dc26ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCP70D.dll" + "TargetName" = "8:MSVCP70D.dll" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_5007A5EA0EE84C13BB6B31EB6F74CB2C" + { + "Signature" = "8:200000008da832e3bf6ac2018da832e3bf6ac201d9df8ae3bf6ac2010000000000e0020000000000000000004900760079002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:Ivy.dll" + "TargetName" = "8:Ivy.dll" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_AB0CB817E553832FDD27DD3AAC1EBC00" + { + "Signature" = "8:2000000090eab8acdf95c1014e50259dc26ac20190eab8acdf95c1010000000000801d0000000000000000006d00660063003700300064002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MFC70D.DLL" + "TargetName" = "8:MFC70D.DLL" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:4" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_DEA45E14BA5E11950E31ADEE63118ACB" + { + "Signature" = "8:20000000a04c53fed195c1010802179dc26ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCR70D.dll" + "TargetName" = "8:MSVCR70D.dll" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_E3EAD04FF43E53C785D576930F186E2B" + { + "Signature" = "8:2000000000e08cf6b82fc101360d04f2bc6ac20100e08cf6b82fc10100000000005e00000000000000000000770073006f0063006b00330032002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { } "Folder" { + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_15DCD27905D341429030EE4BA476A488" + { + "Name" = "8:#1910" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:CommonFilesFolder" + "Folders" + { + } + } "{2FBCB9FF-B6A1-4FA9-9C7C-D1366E178586}:_7BEBD1D67A934D228BFBAE7C11467C9A" { "DefaultLocation" = "8:[TARGETDIR]" @@ -88,13 +252,13 @@ { } } - "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_95C620F5C6F34995951BBCEA2FDF6B8C" + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_AEEFF3D8A3364088A698304D464E078E" { - "Name" = "8:#1910" + "Name" = "8:#1914" "AlwaysCreate" = "11:FALSE" "Condition" = "8:" "Transitive" = "11:FALSE" - "Property" = "8:CommonFilesFolder" + "Property" = "8:SystemFolder" "Folders" { } @@ -141,12 +305,41 @@ } "ProjectOutput" { - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_E9F23F82D12A4D518B138018AD21A5C7" + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_BAA443135CA14A7E81EB7A52F5A18EE0" { "SourcePath" = "8:..\\..\\Program Files\\Debug\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_95C620F5C6F34995951BBCEA2FDF6B8C" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:FALSE" + "ExcludeFilters" + { + } + } + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_E4F14818A088497C83716F25194F0014" + { + "SourcePath" = "8:..\\..\\Program Files\\Debug\\IvyProbe.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_15DCD27905D341429030EE4BA476A488" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -163,8 +356,8 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\Ivy\\Ivy.vcproj" - "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + "OutputProjectCanonicalName" = "8:Test\\Test.vcproj" + "OutputProjectGuid" = "8:{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" "ShowKeyOutput" = "11:FALSE" "ExcludeFilters" { -- cgit v1.1 From 69da8670875420110989213ff89cfea36073faa2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:49 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:38 Archivé dans $/Bus/Install/InstIvy Commentaire: (vss 3) --- Ivy/InstIvy/InstIvy.vdproj | 147 +++++++-------------------------------------- 1 file changed, 23 insertions(+), 124 deletions(-) diff --git a/Ivy/InstIvy/InstIvy.vdproj b/Ivy/InstIvy/InstIvy.vdproj index c1b3e61..4346312 100644 --- a/Ivy/InstIvy/InstIvy.vdproj +++ b/Ivy/InstIvy/InstIvy.vdproj @@ -7,66 +7,36 @@ "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" -"SccProjectName" = "8:\"$/fcolin\", SPEAAAAA" -"SccLocalPath" = "8:..\\.." +"SccProjectName" = "8:\"$/Bus/Install/InstIvy\", CREAAAAA" +"SccLocalPath" = "8:." "SccAuxPath" = "8:" "SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" "Hierarchy" { "Entry" { - "MsmKey" = "8:_2409E7519F5058B9E967379542A95097" - "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" - } - "Entry" - { - "MsmKey" = "8:_5007A5EA0EE84C13BB6B31EB6F74CB2C" - "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" - "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVY.DLL" - } - "Entry" - { - "MsmKey" = "8:_AB0CB817E553832FDD27DD3AAC1EBC00" - "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MFC70D.DLL" - } - "Entry" - { - "MsmKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" + "MsmKey" = "8:_1C8127E2CE08470A9FB2772F59EF6C16" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVY.DLL" } "Entry" { - "MsmKey" = "8:_DEA45E14BA5E11950E31ADEE63118ACB" - "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" + "MsmKey" = "8:_474D2E042D971A73B3B54FD999910DF8" + "OwnerKey" = "8:_1C8127E2CE08470A9FB2772F59EF6C16" "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" } "Entry" { - "MsmKey" = "8:_DEA45E14BA5E11950E31ADEE63118ACB" - "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" - } - "Entry" - { - "MsmKey" = "8:_E3EAD04FF43E53C785D576930F186E2B" - "OwnerKey" = "8:_BAA443135CA14A7E81EB7A52F5A18EE0" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\WSOCK32.DLL" + "MsmKey" = "8:_6853BE42500AB02614E13C492A847CC2" + "OwnerKey" = "8:_1C8127E2CE08470A9FB2772F59EF6C16" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" } "Entry" { - "MsmKey" = "8:_E3EAD04FF43E53C785D576930F186E2B" - "OwnerKey" = "8:_E4F14818A088497C83716F25194F0014" + "MsmKey" = "8:_84E197CA5A09A6E635F4F2D20CB9C269" + "OwnerKey" = "8:_1C8127E2CE08470A9FB2772F59EF6C16" "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\WSOCK32.DLL" } - "Entry" - { - "MsmKey" = "8:_E4F14818A088497C83716F25194F0014" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\IVYPROBE.EXE" - } } "Configurations" { @@ -116,32 +86,11 @@ } "File" { - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_2409E7519F5058B9E967379542A95097" - { - "Signature" = "8:2000000090c39d10d295c1010802179dc26ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:MSVCP70D.dll" - "TargetName" = "8:MSVCP70D.dll" - "Tag" = "8:" - "Folder" = "8:_15DCD27905D341429030EE4BA476A488" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_5007A5EA0EE84C13BB6B31EB6F74CB2C" + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_474D2E042D971A73B3B54FD999910DF8" { - "Signature" = "8:200000008da832e3bf6ac2018da832e3bf6ac201d9df8ae3bf6ac2010000000000e0020000000000000000004900760079002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:Ivy.dll" - "TargetName" = "8:Ivy.dll" + "Signature" = "8:20000000a04c53fed195c101662efae5e36ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCR70D.dll" + "TargetName" = "8:MSVCR70D.dll" "Tag" = "8:" "Folder" = "8:_15DCD27905D341429030EE4BA476A488" "Condition" = "8:" @@ -158,32 +107,11 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_AB0CB817E553832FDD27DD3AAC1EBC00" + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_6853BE42500AB02614E13C492A847CC2" { - "Signature" = "8:2000000090eab8acdf95c1014e50259dc26ac20190eab8acdf95c1010000000000801d0000000000000000006d00660063003700300064002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:MFC70D.DLL" - "TargetName" = "8:MFC70D.DLL" - "Tag" = "8:" - "Folder" = "8:_15DCD27905D341429030EE4BA476A488" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:4" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_DEA45E14BA5E11950E31ADEE63118ACB" - { - "Signature" = "8:20000000a04c53fed195c1010802179dc26ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:MSVCR70D.dll" - "TargetName" = "8:MSVCR70D.dll" + "Signature" = "8:2000000090c39d10d295c101662efae5e36ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCP70D.dll" + "TargetName" = "8:MSVCP70D.dll" "Tag" = "8:" "Folder" = "8:_15DCD27905D341429030EE4BA476A488" "Condition" = "8:" @@ -200,9 +128,9 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_E3EAD04FF43E53C785D576930F186E2B" + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_84E197CA5A09A6E635F4F2D20CB9C269" { - "Signature" = "8:2000000000e08cf6b82fc101360d04f2bc6ac20100e08cf6b82fc10100000000005e00000000000000000000770073006f0063006b00330032002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "Signature" = "8:2000000000e08cf6b82fc101bec8e082ea6ac20100e08cf6b82fc10100000000005e00000000000000000000770073006f0063006b00330032002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" "SourcePath" = "8:WSOCK32.dll" "TargetName" = "8:WSOCK32.dll" "Tag" = "8:" @@ -305,7 +233,7 @@ } "ProjectOutput" { - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_BAA443135CA14A7E81EB7A52F5A18EE0" + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_1C8127E2CE08470A9FB2772F59EF6C16" { "SourcePath" = "8:..\\..\\Program Files\\Debug\\Ivy.dll" "TargetName" = "8:" @@ -327,37 +255,8 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" - "ShowKeyOutput" = "11:FALSE" - "ExcludeFilters" - { - } - } - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_E4F14818A088497C83716F25194F0014" - { - "SourcePath" = "8:..\\..\\Program Files\\Debug\\IvyProbe.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_15DCD27905D341429030EE4BA476A488" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:Test\\Test.vcproj" - "OutputProjectGuid" = "8:{BBC2E9DE-EC32-4F3B-9BD9-C6E7C52B6AF9}" + "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9F40EF6B-8C74-4087-9E25-32A5E7EC2128}" "ShowKeyOutput" = "11:FALSE" "ExcludeFilters" { -- cgit v1.1 From 2018775958e289c8a4fd63ceafcdf8dfa85ab871 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:51 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:54 Créé Commentaire: (vss 1) --- Ivy/InstIvy/InstIvy.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/InstIvy/InstIvy.vdproj.vspscc diff --git a/Ivy/InstIvy/InstIvy.vdproj.vspscc b/Ivy/InstIvy/InstIvy.vdproj.vspscc new file mode 100644 index 0000000..492cf62 --- /dev/null +++ b/Ivy/InstIvy/InstIvy.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Install\\InstIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 8d0c3984bd732294ac6b8afbaafa888d051f13a9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:53 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:11 Créé Commentaire: (vss 1) --- Ivy/InstIvy/InstIvy.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/InstIvy/InstIvy.vssscc diff --git a/Ivy/InstIvy/InstIvy.vssscc b/Ivy/InstIvy/InstIvy.vssscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/Ivy/InstIvy/InstIvy.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 16ee7a0da429ed2bd8e573fbf4c6d7e643da2a32 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:55 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:50 Créé Commentaire: (vss 1) --- Ivy/InstIvyDev/InstIvyDev.sln | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Ivy/InstIvyDev/InstIvyDev.sln diff --git a/Ivy/InstIvyDev/InstIvyDev.sln b/Ivy/InstIvyDev/InstIvyDev.sln new file mode 100644 index 0000000..79e9200 --- /dev/null +++ b/Ivy/InstIvyDev/InstIvyDev.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyDev", "InstIvyDev.vdproj", "{07B35ABB-D1C2-4546-8ABA-945C1E8A88FE}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {07B35ABB-D1C2-4546-8ABA-945C1E8A88FE}.Debug.ActiveCfg = Debug + {07B35ABB-D1C2-4546-8ABA-945C1E8A88FE}.Debug.Build.0 = Debug + {07B35ABB-D1C2-4546-8ABA-945C1E8A88FE}.Release.ActiveCfg = Release + {07B35ABB-D1C2-4546-8ABA-945C1E8A88FE}.Release.Build.0 = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From 8c89464de069dab29e1ee1b6d9c27d6f34ea7177 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:58 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Créé Commentaire: (vss 1) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 790 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 790 insertions(+) create mode 100644 Ivy/InstIvyDev/InstIvyDev.vdproj diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj new file mode 100644 index 0000000..8b009f5 --- /dev/null +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -0,0 +1,790 @@ +"DeployProject" +{ +"VSVersion" = "3:700" +"ProjectType" = "8:{5443560c-dbb4-11d2-8724-00a0c9a8b90c}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:InstIvyDev" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:\"$/Bus/InstIvyDev\", VQEAAAAA" +"SccLocalPath" = "8:." +"SccAuxPath" = "8:" +"SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_49CA588930534433BBD092FF33483A60" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvyDev.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstIvyDev.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "Feature" + { + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_4BD15901AAC84D5990E88963A8C59F03" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_6D7C73BF0915401FBCAE371A6B43BDC4" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{EE62640D-12F2-11D3-8D6C-00A0C9CFCEE6}:_97BD9053CEE5430F9BC907C244C522C0" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_4BD06D3C92334052AE64EABA3DE642C3" + { + "Name" = "8:Lib" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_884F08395AE541928DAABB355DC3485B" + "Folders" + { + } + } + "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_64AFC2E36B5346C08FF007A580F68304" + { + "Name" = "8:Include" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_631518C84C224AE680C352EB2F43713C" + "Folders" + { + } + } + "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_823268F0927E471C9AC8D4518AB6C2F5" + { + "Name" = "8:SrcExample" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_D2C6F66A7FE9467184E94EAE96D06FA2" + "Folders" + { + } + } + "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_9CFE50635C5443E68113471C7E3235C3" + { + "Name" = "8:SrcLib" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_A82ABE6889AF4890A9FB2AE77868B9D4" + "Folders" + { + } + } + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "Shortcut" + { + } + "Sequences" + { + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_BB28EFBCAF6D427984A8D12ADA79ED71" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_46BB5FEDD5E54B1DA83F1AEE69B7414D" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_D254D89ED3C54FA68FAE6AD35F7725E3" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_D96808EDD7E448E3BF4976DBB5153FDA" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "ProjectOutput" + { + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_3443BE23ACC842AB8885E291A36FEB88" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + "ExcludeFilter" = "8:*.cpp" + } + } + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_49CA588930534433BBD092FF33483A60" + { + "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectCanonicalName" = "8:..\\..\\Install\\InstIvy\\InstIvy.vdproj" + "OutputProjectGuid" = "8:{E0749AC8-C631-4081-8E2D-02731D95BFDB}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + "KeyOutputModule" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" + "ModuleSignature" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + "Properties" + { + "_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" + { + "Name" = "8:_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" + "DisplayName" = "8:Dossier Remplacement pour les modules" + "Description" = "8:" + "Type" = "3:32769" + "ContextData" = "8:_RetargetableFolder" + "Attributes" = "3:6" + "Setting" = "3:1" + "UsePlugInResources" = "11:FALSE" + } + } + "LanguageId" = "3:1036" + "Exclude" = "11:FALSE" + "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_93BB6066797941388D1B8E9C2D810A60" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_64AFC2E36B5346C08FF007A580F68304" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + "ExcludeFilter" = "8:*.cpp" + } + } + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:InstIvyDev" + "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" + "PackageCode" = "8:{49FE8C5C-E4B4-4BC9-B893-68E91BA65022}" + "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:InstIvyDev" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "MergeModule" + { + } + "UserInterface" + { + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_02EC527B9FF844D88C616726908FDF10" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_BDEB1035C12E4BFEB8737D924C6F4156" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "ModuleSignature" = "8:VsdDialogs.83D22742_1B79_46f6_9A99_DF0F2BD4C077" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_3750316B8DBF425BA6AA4348C0F1CA87" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + "ModuleSignature" = "8:VsdUserInterface.524F4245_5254_5341_4C45_534153783400" + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_51727C53A61B4F6D901F06AED9B3C481" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_BA05984C1F294731B5ED66914BD89A5C" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "ModuleSignature" = "8:VsdDialogs.4FB12620_0D15_42D0_8677_2766FFA6923F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_6FF89DC49B8348899925787F1294FD64" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_9F7D27549F654B418F380589DA56C3ED" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "ModuleSignature" = "8:VsdDialogs.EE9A1AFA_41DD_4514_B727_DF0ACA1D7389" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_8F8434AEBED14452982010E6F3848023" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_97A4AE594BB347ECAD98AAFC6FD3B0FB" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "ModuleSignature" = "8:VsdDialogs.C113BC36_2532_4D45_8099_4818B1133B2F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_E3B1F5B6B5FE4CE6B369C0374CA9AA75" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "ModuleSignature" = "8:VsdDialogs.68F69290_BB7C_474E_A153_6679845F3DDF" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_EA128F65E9D44AE1B2E071C21B8C0010" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "ModuleSignature" = "8:VsdDialogs.6DBC9783_3677_4D68_8BF5_D749558A0AC1" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_9AC53598B4544C15A28E2D88AD28D24E" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + "ModuleSignature" = "8:VsdDialogs.CE4B864F_F1C1_4B85_98D4_2A2BF5FFB12B" + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_D1645593CABE4CAF974F04BA8599A164" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_0EE17FA1A76D4B8C86D0CA3BC7089F16" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "ModuleSignature" = "8:VsdDialogs.E35A0E2C_F131_4B57_B946_59A1A2A8F45F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_B8FA44662FAF40B4A23F14BBE7115F3C" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "ModuleSignature" = "8:VsdDialogs.FA58E60A_A1E8_4876_95FC_2AC3B5AAA5F8" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_F1C7DEE7DB5C4556ADD1217E3B254EC3" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "ModuleSignature" = "8:VsdDialogs.2DED2424_5429_4616_A1AD_4D62837C2ADA" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_FED02DC05BEC48728F86FB64CF2C5B31" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_83F73B2D8F7E44DA9567C4497FA978AB" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "ModuleSignature" = "8:VsdDialogs.1DB77F5A_BA5C_4470_89B6_0B0EC07E3A10" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + } +} -- cgit v1.1 From 8fcf4068e42fa50ae3bdd371ee8e396e936b6241 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:54:59 +0000 Subject: Utilisateur : Fcolin Date : 5/11/02 Heure : 11:11 Archivé dans $/Bus/Install/InstIvyDev Commentaire: (vss 2) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 63 +--------------------------------------- 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj index 8b009f5..e7941e4 100644 --- a/Ivy/InstIvyDev/InstIvyDev.vdproj +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -7,18 +7,12 @@ "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" -"SccProjectName" = "8:\"$/Bus/InstIvyDev\", VQEAAAAA" +"SccProjectName" = "8:\"$/Bus/Install/InstIvyDev\", AREAAAAA" "SccLocalPath" = "8:." "SccAuxPath" = "8:" "SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" "Hierarchy" { - "Entry" - { - "MsmKey" = "8:_49CA588930534433BBD092FF33483A60" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" - } } "Configurations" { @@ -289,61 +283,6 @@ "ExcludeFilter" = "8:*.cpp" } } - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_49CA588930534433BBD092FF33483A60" - { - "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:..\\..\\Install\\InstIvy\\InstIvy.vdproj" - "OutputProjectGuid" = "8:{E0749AC8-C631-4081-8E2D-02731D95BFDB}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - "KeyOutputModule" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" - "ModuleSignature" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" - "Properties" - { - "_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" - { - "Name" = "8:_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" - "DisplayName" = "8:Dossier Remplacement pour les modules" - "Description" = "8:" - "Type" = "3:32769" - "ContextData" = "8:_RetargetableFolder" - "Attributes" = "3:6" - "Setting" = "3:1" - "UsePlugInResources" = "11:FALSE" - } - } - "LanguageId" = "3:1036" - "Exclude" = "11:FALSE" - "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" - "Feature" = "8:" - "IsolateTo" = "8:" - } - } "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_93BB6066797941388D1B8E9C2D810A60" { "SourcePath" = "8:" -- cgit v1.1 From 5864ab3ce96fc326c2db2345582fb4499d13f2fc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:01 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:41 Archivé dans $/Bus/Ivy/InstIvyDev Commentaire: (vss 3) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 440 ++++++++++++++++++++++++++------------- 1 file changed, 301 insertions(+), 139 deletions(-) diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj index e7941e4..ee4c4f3 100644 --- a/Ivy/InstIvyDev/InstIvyDev.vdproj +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -1,18 +1,48 @@ "DeployProject" { -"VSVersion" = "3:700" -"ProjectType" = "8:{5443560c-dbb4-11d2-8724-00a0c9a8b90c}" +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" "IsWebType" = "8:FALSE" -"ProjectName" = "8:InstIvyDev" +"ProjectName" = "8:InstallIvyDev" "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" -"SccProjectName" = "8:\"$/Bus/Install/InstIvyDev\", AREAAAAA" +"SccProjectName" = "8:\"$/Bus/Ivy/InstIvyDev\", FUFAAAAA" "SccLocalPath" = "8:." "SccAuxPath" = "8:" "SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" "Hierarchy" { + "Entry" + { + "MsmKey" = "8:_15EDC5AAD3B44A858CF9F20A9DDACE75" + "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_2A4F621BFD46417A8CC4998092444420" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_38317E81A4F14F7595EC92880E6132D4" + "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6FB50FA4D8F60743C6DAA4C31583C68C" + "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmSig" = "8:_UNDEFINED" + } } "Configurations" { @@ -46,7 +76,7 @@ "CertificateFile" = "8:" "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" + "InstallerBootstrapper" = "3:1" } } "Deployable" @@ -60,18 +90,64 @@ "Title" = "8:" "Description" = "8:" } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } "Feature" { } "File" { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_2A4F621BFD46417A8CC4998092444420" + { + "SourcePath" = "8:..\\Release\\Ivy.lib" + "TargetName" = "8:Ivy.lib" + "Tag" = "8:" + "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_6FB50FA4D8F60743C6DAA4C31583C68C" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { } "Folder" { - "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_4BD15901AAC84D5990E88963A8C59F03" + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_4BD15901AAC84D5990E88963A8C59F03" { "Name" = "8:#1919" "AlwaysCreate" = "11:FALSE" @@ -82,7 +158,7 @@ { } } - "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_6D7C73BF0915401FBCAE371A6B43BDC4" + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_6D7C73BF0915401FBCAE371A6B43BDC4" { "Name" = "8:#1916" "AlwaysCreate" = "11:FALSE" @@ -93,7 +169,7 @@ { } } - "{EE62640D-12F2-11D3-8D6C-00A0C9CFCEE6}:_97BD9053CEE5430F9BC907C244C522C0" + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_97BD9053CEE5430F9BC907C244C522C0" { "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" @@ -103,7 +179,7 @@ "Property" = "8:TARGETDIR" "Folders" { - "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_4BD06D3C92334052AE64EABA3DE642C3" + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_4BD06D3C92334052AE64EABA3DE642C3" { "Name" = "8:Lib" "AlwaysCreate" = "11:FALSE" @@ -114,7 +190,7 @@ { } } - "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_64AFC2E36B5346C08FF007A580F68304" + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_64AFC2E36B5346C08FF007A580F68304" { "Name" = "8:Include" "AlwaysCreate" = "11:FALSE" @@ -125,7 +201,7 @@ { } } - "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_823268F0927E471C9AC8D4518AB6C2F5" + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_823268F0927E471C9AC8D4518AB6C2F5" { "Name" = "8:SrcExample" "AlwaysCreate" = "11:FALSE" @@ -136,7 +212,7 @@ { } } - "{461E96AF-1495-11D3-8D6C-00A0C9CFCEE6}:_9CFE50635C5443E68113471C7E3235C3" + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_9CFE50635C5443E68113471C7E3235C3" { "Name" = "8:SrcLib" "AlwaysCreate" = "11:FALSE" @@ -156,11 +232,34 @@ "Locator" { } - "Shortcut" + "MsiBootstrapper" { + "LangId" = "3:1036" } - "Sequences" + "Product" { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:InstIvyDev" + "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" + "PackageCode" = "8:{D352AFFB-FC99-432F-90E6-CE2432E68692}" + "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:InstIvyDev" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" } "Registry" { @@ -168,7 +267,7 @@ { "Keys" { - "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_BB28EFBCAF6D427984A8D12ADA79ED71" + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_BB28EFBCAF6D427984A8D12ADA79ED71" { "Name" = "8:Software" "Condition" = "8:" @@ -177,7 +276,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_46BB5FEDD5E54B1DA83F1AEE69B7414D" + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_46BB5FEDD5E54B1DA83F1AEE69B7414D" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -202,7 +301,7 @@ { "Keys" { - "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_D254D89ED3C54FA68FAE6AD35F7725E3" + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_D254D89ED3C54FA68FAE6AD35F7725E3" { "Name" = "8:Software" "Condition" = "8:" @@ -211,7 +310,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_D96808EDD7E448E3BF4976DBB5153FDA" + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_D96808EDD7E448E3BF4976DBB5153FDA" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -251,118 +350,28 @@ } } } - "ProjectOutput" - { - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_3443BE23ACC842AB8885E291A36FEB88" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - "ExcludeFilter" = "8:*.cpp" - } - } - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_93BB6066797941388D1B8E9C2D810A60" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_64AFC2E36B5346C08FF007A580F68304" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - "ExcludeFilter" = "8:*.cpp" - } - } - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:InstIvyDev" - "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" - "PackageCode" = "8:{49FE8C5C-E4B4-4BC9-B893-68E91BA65022}" - "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" - "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:CENA" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" - "Title" = "8:InstIvyDev" - "Subject" = "8:" - "ARPCONTACT" = "8:CENA" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" - "ARPURLINFOABOUT" = "8:" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - } - "MsiBootstrapper" + "Sequences" { - "LangId" = "3:1036" } - "MergeModule" + "Shortcut" { } "UserInterface" { - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_02EC527B9FF844D88C616726908FDF10" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_02EC527B9FF844D88C616726908FDF10" { "Name" = "8:#1902" "Sequence" = "3:2" "Attributes" = "3:3" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_BDEB1035C12E4BFEB8737D924C6F4156" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BDEB1035C12E4BFEB8737D924C6F4156" { "Sequence" = "3:100" "DisplayName" = "8:Terminé" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "ModuleSignature" = "8:VsdDialogs.83D22742_1B79_46f6_9A99_DF0F2BD4C077" "Properties" { "BannerBitmap" @@ -380,28 +389,26 @@ } } } - "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_3750316B8DBF425BA6AA4348C0F1CA87" + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_3750316B8DBF425BA6AA4348C0F1CA87" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdUserInterface.wim" - "ModuleSignature" = "8:VsdUserInterface.524F4245_5254_5341_4C45_534153783400" } - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_51727C53A61B4F6D901F06AED9B3C481" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_51727C53A61B4F6D901F06AED9B3C481" { "Name" = "8:#1901" "Sequence" = "3:1" "Attributes" = "3:2" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_BA05984C1F294731B5ED66914BD89A5C" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BA05984C1F294731B5ED66914BD89A5C" { "Sequence" = "3:100" "DisplayName" = "8:Progression" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdProgressDlg.wid" - "ModuleSignature" = "8:VsdDialogs.4FB12620_0D15_42D0_8677_2766FFA6923F" "Properties" { "BannerBitmap" @@ -432,21 +439,20 @@ } } } - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_6FF89DC49B8348899925787F1294FD64" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_6FF89DC49B8348899925787F1294FD64" { "Name" = "8:#1901" "Sequence" = "3:2" "Attributes" = "3:2" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_9F7D27549F654B418F380589DA56C3ED" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9F7D27549F654B418F380589DA56C3ED" { "Sequence" = "3:100" "DisplayName" = "8:Progression" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "ModuleSignature" = "8:VsdDialogs.EE9A1AFA_41DD_4514_B727_DF0ACA1D7389" "Properties" { "BannerBitmap" @@ -477,21 +483,20 @@ } } } - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_8F8434AEBED14452982010E6F3848023" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_8F8434AEBED14452982010E6F3848023" { "Name" = "8:#1900" "Sequence" = "3:1" "Attributes" = "3:1" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_97A4AE594BB347ECAD98AAFC6FD3B0FB" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_97A4AE594BB347ECAD98AAFC6FD3B0FB" { "Sequence" = "3:200" "DisplayName" = "8:Dossier d'installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFolderDlg.wid" - "ModuleSignature" = "8:VsdDialogs.C113BC36_2532_4D45_8099_4818B1133B2F" "Properties" { "BannerBitmap" @@ -507,14 +512,13 @@ } } } - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_E3B1F5B6B5FE4CE6B369C0374CA9AA75" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_E3B1F5B6B5FE4CE6B369C0374CA9AA75" { "Sequence" = "3:100" "DisplayName" = "8:Bienvenue" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "ModuleSignature" = "8:VsdDialogs.68F69290_BB7C_474E_A153_6679845F3DDF" "Properties" { "BannerBitmap" @@ -556,14 +560,13 @@ } } } - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_EA128F65E9D44AE1B2E071C21B8C0010" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_EA128F65E9D44AE1B2E071C21B8C0010" { "Sequence" = "3:300" "DisplayName" = "8:Confirmer l'installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdConfirmDlg.wid" - "ModuleSignature" = "8:VsdDialogs.6DBC9783_3677_4D68_8BF5_D749558A0AC1" "Properties" { "BannerBitmap" @@ -581,28 +584,26 @@ } } } - "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_9AC53598B4544C15A28E2D88AD28D24E" + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_9AC53598B4544C15A28E2D88AD28D24E" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdBasicDialogs.wim" - "ModuleSignature" = "8:VsdDialogs.CE4B864F_F1C1_4B85_98D4_2A2BF5FFB12B" } - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_D1645593CABE4CAF974F04BA8599A164" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D1645593CABE4CAF974F04BA8599A164" { "Name" = "8:#1900" "Sequence" = "3:2" "Attributes" = "3:1" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_0EE17FA1A76D4B8C86D0CA3BC7089F16" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_0EE17FA1A76D4B8C86D0CA3BC7089F16" { "Sequence" = "3:100" "DisplayName" = "8:Bienvenue" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "ModuleSignature" = "8:VsdDialogs.E35A0E2C_F131_4B57_B946_59A1A2A8F45F" "Properties" { "BannerBitmap" @@ -644,14 +645,13 @@ } } } - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_B8FA44662FAF40B4A23F14BBE7115F3C" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_B8FA44662FAF40B4A23F14BBE7115F3C" { "Sequence" = "3:300" "DisplayName" = "8:Confirmer l'installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "ModuleSignature" = "8:VsdDialogs.FA58E60A_A1E8_4876_95FC_2AC3B5AAA5F8" "Properties" { "BannerBitmap" @@ -667,14 +667,13 @@ } } } - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_F1C7DEE7DB5C4556ADD1217E3B254EC3" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F1C7DEE7DB5C4556ADD1217E3B254EC3" { "Sequence" = "3:200" "DisplayName" = "8:Dossier d'installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "ModuleSignature" = "8:VsdDialogs.2DED2424_5429_4616_A1AD_4D62837C2ADA" "Properties" { "BannerBitmap" @@ -692,21 +691,20 @@ } } } - "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_FED02DC05BEC48728F86FB64CF2C5B31" + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_FED02DC05BEC48728F86FB64CF2C5B31" { "Name" = "8:#1902" "Sequence" = "3:1" "Attributes" = "3:3" "Dialogs" { - "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_83F73B2D8F7E44DA9567C4497FA978AB" + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_83F73B2D8F7E44DA9567C4497FA978AB" { "Sequence" = "3:100" "DisplayName" = "8:Terminé" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFinishedDlg.wid" - "ModuleSignature" = "8:VsdDialogs.1DB77F5A_BA5C_4470_89B6_0B0EC07E3A10" "Properties" { "BannerBitmap" @@ -720,10 +718,174 @@ "Setting" = "3:1" "UsePlugInResources" = "11:TRUE" } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } } } } } } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_15EDC5AAD3B44A858CF9F20A9DDACE75" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_38317E81A4F14F7595EC92880E6132D4" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + { + "SourcePath" = "8:..\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B6AD60532F7C461DB33A87A938457122" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_9CFE50635C5443E68113471C7E3235C3" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + "ExcludeFilter" = "8:*.h" + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_D846A39ABCA44B3C894FA624FD34ABA6" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_64AFC2E36B5346C08FF007A580F68304" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + "ExcludeFilter" = "8:*.cxx" + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_D96261DD1EAA4C39B93D8C7259465C8D" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_823268F0927E471C9AC8D4518AB6C2F5" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } } } -- cgit v1.1 From 9654534678702c97cbdaed953c2b7b410852e90c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:03 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Archivé dans $/Bus/Ivy/InstIvyDev Commentaire: (vss 4) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 255 ++++++++++++++++++++++----------------- 1 file changed, 143 insertions(+), 112 deletions(-) diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj index ee4c4f3..b3a6b0c 100644 --- a/Ivy/InstIvyDev/InstIvyDev.vdproj +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -1,7 +1,7 @@ "DeployProject" { -"VSVersion" = "3:701" -"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" "IsWebType" = "8:FALSE" "ProjectName" = "8:InstallIvyDev" "LanguageId" = "3:1036" @@ -15,32 +15,32 @@ { "Entry" { - "MsmKey" = "8:_15EDC5AAD3B44A858CF9F20A9DDACE75" - "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmKey" = "8:_62ED68A2D7494B03BD284E1F5A266D54" + "OwnerKey" = "8:_CC144D67864B484BB467E286722BA415" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A4F621BFD46417A8CC4998092444420" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_6FB50FA4D8F60743C6DAA4C31583C68C" + "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_38317E81A4F14F7595EC92880E6132D4" - "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmKey" = "8:_B656C8E7B4C5444BB7CAA2BB82B22DEB" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6FB50FA4D8F60743C6DAA4C31583C68C" - "OwnerKey" = "8:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "MsmKey" = "8:_CC144D67864B484BB467E286722BA415" + "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" "MsmSig" = "8:_UNDEFINED" } } @@ -61,13 +61,24 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } "Release" { "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\InstIvyDev.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\InstIvyDev.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -77,6 +88,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } } "Deployable" @@ -96,17 +118,14 @@ { } } - "Feature" - { - } "File" { - "{A582A373-4685-4296-BEFE-614B80A702C3}:_2A4F621BFD46417A8CC4998092444420" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6FB50FA4D8F60743C6DAA4C31583C68C" { - "SourcePath" = "8:..\\Release\\Ivy.lib" - "TargetName" = "8:Ivy.lib" + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" "Tag" = "8:" - "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" + "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -118,15 +137,15 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_6FB50FA4D8F60743C6DAA4C31583C68C" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B656C8E7B4C5444BB7CAA2BB82B22DEB" { - "SourcePath" = "8:WSOCK32.dll" - "TargetName" = "8:WSOCK32.dll" + "SourcePath" = "8:..\\..\\release\\Ivy.lib" + "TargetName" = "8:Ivy.lib" "Tag" = "8:" - "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" + "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -137,8 +156,8 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } } @@ -147,29 +166,7 @@ } "Folder" { - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_4BD15901AAC84D5990E88963A8C59F03" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_6D7C73BF0915401FBCAE371A6B43BDC4" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_97BD9053CEE5430F9BC907C244C522C0" + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_97BD9053CEE5430F9BC907C244C522C0" { "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" @@ -179,7 +176,7 @@ "Property" = "8:TARGETDIR" "Folders" { - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_4BD06D3C92334052AE64EABA3DE642C3" + "{9EF0B969-E518-4E46-987F-47570745A589}:_4BD06D3C92334052AE64EABA3DE642C3" { "Name" = "8:Lib" "AlwaysCreate" = "11:FALSE" @@ -190,7 +187,7 @@ { } } - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_64AFC2E36B5346C08FF007A580F68304" + "{9EF0B969-E518-4E46-987F-47570745A589}:_64AFC2E36B5346C08FF007A580F68304" { "Name" = "8:Include" "AlwaysCreate" = "11:FALSE" @@ -201,7 +198,7 @@ { } } - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_823268F0927E471C9AC8D4518AB6C2F5" + "{9EF0B969-E518-4E46-987F-47570745A589}:_823268F0927E471C9AC8D4518AB6C2F5" { "Name" = "8:SrcExample" "AlwaysCreate" = "11:FALSE" @@ -212,7 +209,7 @@ { } } - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_9CFE50635C5443E68113471C7E3235C3" + "{9EF0B969-E518-4E46-987F-47570745A589}:_9CFE50635C5443E68113471C7E3235C3" { "Name" = "8:SrcLib" "AlwaysCreate" = "11:FALSE" @@ -223,6 +220,17 @@ { } } + "{9EF0B969-E518-4E46-987F-47570745A589}:_BE1B10BDB24D49EA8562F4B0A6596F21" + { + "Name" = "8:Bin" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_4839FF1AF6C24020B0C868BA0C7D4D2E" + "Folders" + { + } + } } } } @@ -241,18 +249,19 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:InstIvyDev" "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" - "PackageCode" = "8:{D352AFFB-FC99-432F-90E6-CE2432E68692}" + "PackageCode" = "8:{1FF4A935-F6B1-41D3-966D-41A851491448}" "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:FALSE" "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:CENA" + "Manufacturer" = "8:SDER PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" "Title" = "8:InstIvyDev" "Subject" = "8:" - "ARPCONTACT" = "8:CENA" + "ARPCONTACT" = "8:SDER PII" "Keywords" = "8:" "ARPCOMMENTS" = "8:" "ARPURLINFOABOUT" = "8:" @@ -260,6 +269,10 @@ "ARPIconIndex" = "3:0" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" } "Registry" { @@ -267,7 +280,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_BB28EFBCAF6D427984A8D12ADA79ED71" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_BB28EFBCAF6D427984A8D12ADA79ED71" { "Name" = "8:Software" "Condition" = "8:" @@ -276,7 +289,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_46BB5FEDD5E54B1DA83F1AEE69B7414D" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_46BB5FEDD5E54B1DA83F1AEE69B7414D" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -301,7 +314,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_D254D89ED3C54FA68FAE6AD35F7725E3" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D254D89ED3C54FA68FAE6AD35F7725E3" { "Name" = "8:Software" "Condition" = "8:" @@ -310,7 +323,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_D96808EDD7E448E3BF4976DBB5153FDA" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D96808EDD7E448E3BF4976DBB5153FDA" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -358,17 +371,17 @@ } "UserInterface" { - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_02EC527B9FF844D88C616726908FDF10" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_02EC527B9FF844D88C616726908FDF10" { "Name" = "8:#1902" "Sequence" = "3:2" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BDEB1035C12E4BFEB8737D924C6F4156" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BDEB1035C12E4BFEB8737D924C6F4156" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" @@ -389,23 +402,23 @@ } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_3750316B8DBF425BA6AA4348C0F1CA87" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_3750316B8DBF425BA6AA4348C0F1CA87" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdUserInterface.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_51727C53A61B4F6D901F06AED9B3C481" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_51727C53A61B4F6D901F06AED9B3C481" { "Name" = "8:#1901" "Sequence" = "3:1" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BA05984C1F294731B5ED66914BD89A5C" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BA05984C1F294731B5ED66914BD89A5C" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdProgressDlg.wid" @@ -439,17 +452,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_6FF89DC49B8348899925787F1294FD64" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6FF89DC49B8348899925787F1294FD64" { "Name" = "8:#1901" "Sequence" = "3:2" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9F7D27549F654B418F380589DA56C3ED" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9F7D27549F654B418F380589DA56C3ED" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminProgressDlg.wid" @@ -483,17 +496,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_8F8434AEBED14452982010E6F3848023" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8F8434AEBED14452982010E6F3848023" { "Name" = "8:#1900" "Sequence" = "3:1" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_97A4AE594BB347ECAD98AAFC6FD3B0FB" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_97A4AE594BB347ECAD98AAFC6FD3B0FB" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFolderDlg.wid" @@ -510,12 +523,25 @@ "Setting" = "3:1" "UsePlugInResources" = "11:TRUE" } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_E3B1F5B6B5FE4CE6B369C0374CA9AA75" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E3B1F5B6B5FE4CE6B369C0374CA9AA75" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdWelcomeDlg.wid" @@ -560,10 +586,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_EA128F65E9D44AE1B2E071C21B8C0010" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EA128F65E9D44AE1B2E071C21B8C0010" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdConfirmDlg.wid" @@ -584,23 +610,23 @@ } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_9AC53598B4544C15A28E2D88AD28D24E" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_9AC53598B4544C15A28E2D88AD28D24E" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdBasicDialogs.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D1645593CABE4CAF974F04BA8599A164" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_D1645593CABE4CAF974F04BA8599A164" { "Name" = "8:#1900" "Sequence" = "3:2" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_0EE17FA1A76D4B8C86D0CA3BC7089F16" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0EE17FA1A76D4B8C86D0CA3BC7089F16" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" @@ -645,10 +671,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_B8FA44662FAF40B4A23F14BBE7115F3C" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B8FA44662FAF40B4A23F14BBE7115F3C" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" @@ -667,10 +693,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F1C7DEE7DB5C4556ADD1217E3B254EC3" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F1C7DEE7DB5C4556ADD1217E3B254EC3" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFolderDlg.wid" @@ -691,17 +717,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_FED02DC05BEC48728F86FB64CF2C5B31" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_FED02DC05BEC48728F86FB64CF2C5B31" { "Name" = "8:#1902" "Sequence" = "3:1" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_83F73B2D8F7E44DA9567C4497FA978AB" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_83F73B2D8F7E44DA9567C4497FA978AB" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFinishedDlg.wid" @@ -738,11 +764,11 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_15EDC5AAD3B44A858CF9F20A9DDACE75" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_62ED68A2D7494B03BD284E1F5A266D54" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm" "Properties" { } @@ -752,11 +778,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_38317E81A4F14F7595EC92880E6132D4" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CC144D67864B484BB467E286722BA415" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm" "Properties" { } @@ -769,12 +795,12 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_55FAFABEB2CF432DBC9AD1E024B8ABB0" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0DBE25F652264D9F92A27A1581D093E3" { - "SourcePath" = "8:..\\Release\\Ivy.dll" + "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_4BD06D3C92334052AE64EABA3DE642C3" + "Folder" = "8:_9CFE50635C5443E68113471C7E3235C3" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -785,24 +811,27 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { + "ExcludeFilter" = "8:*.vcproj" + "ExcludeFilter" = "8:*.res" + "ExcludeFilter" = "8:*.h" } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B6AD60532F7C461DB33A87A938457122" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_10C831C856C745B8862A1DA57473BE41" { "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_9CFE50635C5443E68113471C7E3235C3" + "Folder" = "8:_64AFC2E36B5346C08FF007A580F68304" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -813,25 +842,28 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { - "ExcludeFilter" = "8:*.h" + "ExcludeFilter" = "8:*.vcproj" + "ExcludeFilter" = "8:*.cxx" + "ExcludeFilter" = "8:*.res" + "ExcludeFilter" = "8:*.cpp" } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_D846A39ABCA44B3C894FA624FD34ABA6" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3EE353CD5A944D589E7FD68F71A9F409" { "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_64AFC2E36B5346C08FF007A580F68304" + "Folder" = "8:_823268F0927E471C9AC8D4518AB6C2F5" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -848,19 +880,18 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { - "ExcludeFilter" = "8:*.cxx" } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_D96261DD1EAA4C39B93D8C7259465C8D" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BFED66BE7DFC4FC5B625527D0526B5A5" { - "SourcePath" = "8:" + "SourcePath" = "8:..\\..\\release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_823268F0927E471C9AC8D4518AB6C2F5" + "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -876,8 +907,8 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From ac6886461657bb1922c4129ccd1be52163a58799 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:05 +0000 Subject: Utilisateur : Fcolin Date : 28/03/06 Heure : 19:20 Archivé dans $/Bus/Ivy/InstIvyDev Commentaire: (vss 5) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj index b3a6b0c..117485c 100644 --- a/Ivy/InstIvyDev/InstIvyDev.vdproj +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -15,32 +15,32 @@ { "Entry" { - "MsmKey" = "8:_62ED68A2D7494B03BD284E1F5A266D54" - "OwnerKey" = "8:_CC144D67864B484BB467E286722BA415" + "MsmKey" = "8:_1318AC1979884CB68AFB933DF2E7E174" + "OwnerKey" = "8:_4A75722E127148B0B5A33B6FFB8DF746" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6FB50FA4D8F60743C6DAA4C31583C68C" + "MsmKey" = "8:_4A75722E127148B0B5A33B6FFB8DF746" "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B656C8E7B4C5444BB7CAA2BB82B22DEB" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_6FB50FA4D8F60743C6DAA4C31583C68C" + "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" + "MsmKey" = "8:_B656C8E7B4C5444BB7CAA2BB82B22DEB" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC144D67864B484BB467E286722BA415" - "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" + "MsmKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } } @@ -136,7 +136,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -249,7 +249,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:InstIvyDev" "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" - "PackageCode" = "8:{1FF4A935-F6B1-41D3-966D-41A851491448}" + "PackageCode" = "8:{B9640A4C-8E82-4371-8EE9-68F1C590D372}" "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" @@ -764,7 +764,7 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_62ED68A2D7494B03BD284E1F5A266D54" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1318AC1979884CB68AFB933DF2E7E174" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -778,7 +778,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CC144D67864B484BB467E286722BA415" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4A75722E127148B0B5A33B6FFB8DF746" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -811,7 +811,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" @@ -842,7 +842,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" -- cgit v1.1 From a7953e819530325c70b5bd86ea001d29a6ca62d5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:07 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus/Ivy/InstIvyDev Commentaire: (vss 6) --- Ivy/InstIvyDev/InstIvyDev.vdproj | 148 +++++++++++++++++++++++++++++++++++---- 1 file changed, 134 insertions(+), 14 deletions(-) diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj b/Ivy/InstIvyDev/InstIvyDev.vdproj index 117485c..25df386 100644 --- a/Ivy/InstIvyDev/InstIvyDev.vdproj +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj @@ -15,14 +15,26 @@ { "Entry" { - "MsmKey" = "8:_1318AC1979884CB68AFB933DF2E7E174" - "OwnerKey" = "8:_4A75722E127148B0B5A33B6FFB8DF746" + "MsmKey" = "8:_0881ABF5280948D5AA93B02FECFC3956" + "OwnerKey" = "8:_587183B52DD64752997FFA522BC57D0A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4A75722E127148B0B5A33B6FFB8DF746" - "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" + "MsmKey" = "8:_32C90C9C8FC242AE9C65DA1C92DA2700" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_587183B52DD64752997FFA522BC57D0A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6C5F1DCD58734C9D953B306F435ED006" + "OwnerKey" = "8:_7B9C5BFD7A8B4F36A616771B210FF5C8" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -33,6 +45,30 @@ } "Entry" { + "MsmKey" = "8:_7B9C5BFD7A8B4F36A616771B210FF5C8" + "OwnerKey" = "8:_32C90C9C8FC242AE9C65DA1C92DA2700" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9C5BFD7A8B4F36A616771B210FF5C8" + "OwnerKey" = "8:_BFED66BE7DFC4FC5B625527D0526B5A5" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9C5BFD7A8B4F36A616771B210FF5C8" + "OwnerKey" = "8:_587183B52DD64752997FFA522BC57D0A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AB55CBB0776C4E9E90F5CB636E7D660B" + "OwnerKey" = "8:_0881ABF5280948D5AA93B02FECFC3956" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_B656C8E7B4C5444BB7CAA2BB82B22DEB" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -93,7 +129,7 @@ "Enabled" = "11:FALSE" "PromptEnabled" = "11:TRUE" "PrerequisitesLocation" = "2:1" - "Url" = "8:" + "Url" = "8:http://www.tls.cena.fr/products/ivy/download/packages" "ComponentsUrl" = "8:" "Items" { @@ -249,7 +285,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:InstIvyDev" "ProductCode" = "8:{54EEC85D-F868-49E0-A71C-54409C92E02F}" - "PackageCode" = "8:{B9640A4C-8E82-4371-8EE9-68F1C590D372}" + "PackageCode" = "8:{4A4A8B44-7D84-4AEB-98DA-766B603AD502}" "UpgradeCode" = "8:{B61AA283-78E2-443D-A093-4D5D6C0B779A}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" @@ -258,12 +294,12 @@ "ProductVersion" = "8:1.0.0" "Manufacturer" = "8:SDER PII" "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" + "ARPHELPLINK" = "8:http://www.tls.cena.fr/products/ivy" "Title" = "8:InstIvyDev" - "Subject" = "8:" + "Subject" = "8:Ivy" "ARPCONTACT" = "8:SDER PII" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" + "Keywords" = "8:Ivy" + "ARPCOMMENTS" = "8:Ivy Sources and Lib " "ARPURLINFOABOUT" = "8:" "ARPPRODUCTICON" = "8:" "ARPIconIndex" = "3:0" @@ -271,7 +307,7 @@ "UseSystemSearchPath" = "11:TRUE" "TargetPlatform" = "3:0" "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" + "PostBuildEvent" = "8:\"$(ProjectDir)..\\..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\"" "RunPostBuildEvent" = "3:0" } "Registry" @@ -764,7 +800,21 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1318AC1979884CB68AFB933DF2E7E174" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0881ABF5280948D5AA93B02FECFC3956" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:Microsoft_VC80_MFC_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_6C5F1DCD58734C9D953B306F435ED006" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -778,7 +828,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4A75722E127148B0B5A33B6FFB8DF746" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_7B9C5BFD7A8B4F36A616771B210FF5C8" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -792,6 +842,20 @@ "Feature" = "8:" "IsolateTo" = "8:" } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_AB55CBB0776C4E9E90F5CB636E7D660B" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } } "ProjectOutput" { @@ -858,6 +922,34 @@ "ExcludeFilter" = "8:*.cpp" } } + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_32C90C9C8FC242AE9C65DA1C92DA2700" + { + "SourcePath" = "8:..\\..\\release\\pcre.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_BE1B10BDB24D49EA8562F4B0A6596F21" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3EE353CD5A944D589E7FD68F71A9F409" { "SourcePath" = "8:" @@ -886,12 +978,40 @@ { } } + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_587183B52DD64752997FFA522BC57D0A" + { + "SourcePath" = "8:c:\\users\\fcolin\\program files\\release\\IvyProbe.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_BE1B10BDB24D49EA8562F4B0A6596F21" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BFED66BE7DFC4FC5B625527D0526B5A5" { "SourcePath" = "8:..\\..\\release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_97BD9053CEE5430F9BC907C244C522C0" + "Folder" = "8:_BE1B10BDB24D49EA8562F4B0A6596F21" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" -- cgit v1.1 From 06ebad0af57ba0f5efabc4932c6af6e332f2a7f0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:09 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Créé Commentaire: (vss 1) --- Ivy/InstIvyDev/InstIvyDev.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/InstIvyDev/InstIvyDev.vdproj.vspscc diff --git a/Ivy/InstIvyDev/InstIvyDev.vdproj.vspscc b/Ivy/InstIvyDev/InstIvyDev.vdproj.vspscc new file mode 100644 index 0000000..587f3d9 --- /dev/null +++ b/Ivy/InstIvyDev/InstIvyDev.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 1df6fa4f6c1fe0a2e6119c0de63c1ba954764984 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:17 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 14:48 Créé Commentaire: (vss 1) --- Ivy/InstallSource/InstallSource.vdproj | 752 +++++++++++++++++++++++++++++++++ 1 file changed, 752 insertions(+) create mode 100644 Ivy/InstallSource/InstallSource.vdproj diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj new file mode 100644 index 0000000..ae6624f --- /dev/null +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -0,0 +1,752 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:InstallSource" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstallSource.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstallSource.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_34A3F2CD942D42DBBF33B8154F9BE594" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_9A19D5AD4187451890787BE5AAD5D8A2" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_B3B7EB8E946F45E1BA06E9D854393106" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_09678DC790BE461A87B4C5BE4A24046B" + { + "Name" = "8:comIvy" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_33B5EB2D56D7495C87248919CACD5442" + "Folders" + { + } + } + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_982736CE041D479585A839B95041A4C3" + { + "Name" = "8:Ivy" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_E96D066878304D268825DFE0DDE10D44" + "Folders" + { + } + } + "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_D5ABE290941D4E11A32C1B4224453B50" + { + "Name" = "8:IvyProbe" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_D6C5E160784140D3B122D7535BF25441" + "Folders" + { + } + } + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:InstallSource" + "ProductCode" = "8:{9C865A50-9302-4B25-B699-88A034620AEA}" + "PackageCode" = "8:{0E024615-C205-43BC-9494-F7E780B27CBB}" + "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:Nom de société par défaut" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:InstallSource" + "Subject" = "8:" + "ARPCONTACT" = "8:Nom de société par défaut" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_53933E3AD9234F12A4873FFA9773F31B" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_7A4AE5DE0CDC412DB0987B541DAEEA5C" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_44F3154318AA4F4E8261D87380278D24" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_9E06D03F3A794C62A13E46DD90ECF5C2" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0A813400DCAA4CA2AED300FE90057CD5" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_D10C5ED5EBA44D81A8E5ABCD373D3DFB" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0BBD850026394B248C77CF0D6A143DCC" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C6C426B741844BD2B3CEDB5637FA9398" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_138810673D2A4B039E304596343A481D" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F70B3043BFCB4E2CAE3E5D5165AEF3BE" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_14D0F4EA9F4542A9A7180215B5B185E0" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A5F428FF10E64C82A99936F0EEFE6C9A" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BC6CF4D097A54F8796A6DC0991F61A8A" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C59FDD5750904CE69714920B25A7A1D5" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F3608A2FED224610A31E8BA94D72172B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_B959F1B9EF674DF1AAAC84393D11F1F4" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_BF96EE5647E446EE8E09C7161F2D15C6" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_5DD5731B72974577BB1FE53249896CE6" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_6CF0FA0D246440D18CF8219B20779B9B" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_7232E533C8364A2481A6BF178EF00E6E" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D683AF1F16134222A207B5C3D986AFD7" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_6A78AB4A47D846BE8BCFE2FD4B21FED4" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_31B0D0C4AA7F433F8B505436C2D1D325" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_D5ABE290941D4E11A32C1B4224453B50" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_4BDAFC134AA14038BB9F9243DCCD5FFD" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_09678DC790BE461A87B4C5BE4A24046B" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_82D4223AEA774E18932622E6A2FF85ED" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_982736CE041D479585A839B95041A4C3" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From 9d47219ac905f9b43c72e777e37e70db90581df6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:18 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:04 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 2) --- Ivy/InstallSource/InstallSource.vdproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index ae6624f..24d4533 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -158,7 +158,7 @@ "Product" { "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:InstallSource" + "ProductName" = "8:IVY Sources" "ProductCode" = "8:{9C865A50-9302-4B25-B699-88A034620AEA}" "PackageCode" = "8:{0E024615-C205-43BC-9494-F7E780B27CBB}" "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" @@ -166,14 +166,14 @@ "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:Nom de société par défaut" + "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" - "Title" = "8:InstallSource" + "Title" = "8:IVY Sources" "Subject" = "8:" - "ARPCONTACT" = "8:Nom de société par défaut" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" + "ARPCONTACT" = "8:CENA PII" + "Keywords" = "8:Ivy" + "ARPCOMMENTS" = "8:Source de Ivy IvyProbe comIvy" "ARPURLINFOABOUT" = "8:" "ARPPRODUCTICON" = "8:" "ARPIconIndex" = "3:0" -- cgit v1.1 From c8c88c97e6ecd0493aed0b4e2e693d055256e761 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:20 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:31 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 3) --- Ivy/InstallSource/InstallSource.vdproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index 24d4533..2f1cac9 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -37,7 +37,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\InstallSource.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\InstallSource.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -46,7 +46,7 @@ "CertificateFile" = "8:" "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" + "InstallerBootstrapper" = "3:1" } } "Deployable" -- cgit v1.1 From 0c5f407bec2c7ef03fc8e210e00e83ead47e6752 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:22 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:41 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 4) --- Ivy/InstallSource/InstallSource.vdproj | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index 2f1cac9..fe9a25d 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -688,12 +688,12 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_4BDAFC134AA14038BB9F9243DCCD5FFD" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_C9F3C54E38864BB58C113C829A63303E" { "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_09678DC790BE461A87B4C5BE4A24046B" + "Folder" = "8:_B3B7EB8E946F45E1BA06E9D854393106" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -710,35 +710,7 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_82D4223AEA774E18932622E6A2FF85ED" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_982736CE041D479585A839B95041A4C3" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 52856b54b4f51a0a3071fc1116269ebcd3354e78 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:24 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:52 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 5) --- Ivy/InstallSource/InstallSource.vdproj | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index fe9a25d..84b4fce 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -77,28 +77,6 @@ } "Folder" { - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_34A3F2CD942D42DBBF33B8154F9BE594" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_9A19D5AD4187451890787BE5AAD5D8A2" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_B3B7EB8E946F45E1BA06E9D854393106" { "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" @@ -160,7 +138,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IVY Sources" "ProductCode" = "8:{9C865A50-9302-4B25-B699-88A034620AEA}" - "PackageCode" = "8:{0E024615-C205-43BC-9494-F7E780B27CBB}" + "PackageCode" = "8:{616F930C-4377-4C25-A208-D99CDFCC4BA1}" "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" @@ -688,12 +666,12 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_C9F3C54E38864BB58C113C829A63303E" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F7CCDC767F0A43859A12C6B0D26950FD" { "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_B3B7EB8E946F45E1BA06E9D854393106" + "Folder" = "8:_982736CE041D479585A839B95041A4C3" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -710,7 +688,7 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:SourceFiles" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 01f274ef9c168fce7051fce30ab275f7cfab099d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:26 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 11:24 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 6) --- Ivy/InstallSource/InstallSource.vdproj | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index 84b4fce..cfe61fa 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -87,17 +87,6 @@ "Property" = "8:TARGETDIR" "Folders" { - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_09678DC790BE461A87B4C5BE4A24046B" - { - "Name" = "8:comIvy" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_33B5EB2D56D7495C87248919CACD5442" - "Folders" - { - } - } "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_982736CE041D479585A839B95041A4C3" { "Name" = "8:Ivy" @@ -141,7 +130,7 @@ "PackageCode" = "8:{616F930C-4377-4C25-A208-D99CDFCC4BA1}" "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "ProductVersion" = "8:1.0.0" "Manufacturer" = "8:CENA PII" @@ -151,7 +140,7 @@ "Subject" = "8:" "ARPCONTACT" = "8:CENA PII" "Keywords" = "8:Ivy" - "ARPCOMMENTS" = "8:Source de Ivy IvyProbe comIvy" + "ARPCOMMENTS" = "8:Source de Ivy IvyProbe " "ARPURLINFOABOUT" = "8:" "ARPPRODUCTICON" = "8:" "ARPIconIndex" = "3:0" -- cgit v1.1 From d17ef7f1803f893a5821365d54afc8420004c1c7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:28 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 11:38 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 7) --- Ivy/InstallSource/InstallSource.vdproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index cfe61fa..b050b82 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -3,7 +3,7 @@ "VSVersion" = "3:701" "ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" "IsWebType" = "8:FALSE" -"ProjectName" = "8:InstallSource" +"ProjectName" = "8:InstallIvySources" "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" @@ -37,7 +37,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:..\\..\\..\\..\\Install\\InstallSource.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\InstallIvySources.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" -- cgit v1.1 From 88fa145984e7dd94e2cff60c542b7f02f0809ff3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:30 +0000 Subject: Utilisateur : Fcolin Date : 8/03/05 Heure : 15:20 Archivé dans $/Bus/Ivy/InstallSource Commentaire: Bug en cas d'expression vide de subexpression (vss 8) --- Ivy/InstallSource/InstallSource.vdproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index b050b82..0e91743 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -126,13 +126,13 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IVY Sources" - "ProductCode" = "8:{9C865A50-9302-4B25-B699-88A034620AEA}" - "PackageCode" = "8:{616F930C-4377-4C25-A208-D99CDFCC4BA1}" + "ProductCode" = "8:{A4D80C7C-E792-43F3-97D5-F163E43C2592}" + "PackageCode" = "8:{53FFC324-1905-413D-BBFB-D202926583C3}" "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.0.0" + "ProductVersion" = "8:1.1.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" -- cgit v1.1 From 28150fbad47a478297b7a2a2a79f3498fd50abf9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:32 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 9) --- Ivy/InstallSource/InstallSource.vdproj | 101 ++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 32 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index 0e91743..31cbc67 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -1,7 +1,7 @@ "DeployProject" { -"VSVersion" = "3:701" -"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" "IsWebType" = "8:FALSE" "ProjectName" = "8:InstallIvySources" "LanguageId" = "3:1036" @@ -31,6 +31,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } "Release" { @@ -47,6 +58,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } } "Deployable" @@ -66,9 +88,6 @@ { } } - "Feature" - { - } "File" { } @@ -77,7 +96,7 @@ } "Folder" { - "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_B3B7EB8E946F45E1BA06E9D854393106" + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_B3B7EB8E946F45E1BA06E9D854393106" { "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" @@ -87,7 +106,7 @@ "Property" = "8:TARGETDIR" "Folders" { - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_982736CE041D479585A839B95041A4C3" + "{9EF0B969-E518-4E46-987F-47570745A589}:_982736CE041D479585A839B95041A4C3" { "Name" = "8:Ivy" "AlwaysCreate" = "11:FALSE" @@ -98,7 +117,7 @@ { } } - "{F27BD5C5-A65D-4608-96D4-7C5DA1F76302}:_D5ABE290941D4E11A32C1B4224453B50" + "{9EF0B969-E518-4E46-987F-47570745A589}:_D5ABE290941D4E11A32C1B4224453B50" { "Name" = "8:IvyProbe" "AlwaysCreate" = "11:FALSE" @@ -132,6 +151,7 @@ "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:FALSE" "ProductVersion" = "8:1.1.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" @@ -146,6 +166,10 @@ "ARPIconIndex" = "3:0" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" } "Registry" { @@ -153,7 +177,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_53933E3AD9234F12A4873FFA9773F31B" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_53933E3AD9234F12A4873FFA9773F31B" { "Name" = "8:Software" "Condition" = "8:" @@ -162,7 +186,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_7A4AE5DE0CDC412DB0987B541DAEEA5C" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_7A4AE5DE0CDC412DB0987B541DAEEA5C" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -187,7 +211,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_44F3154318AA4F4E8261D87380278D24" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_44F3154318AA4F4E8261D87380278D24" { "Name" = "8:Software" "Condition" = "8:" @@ -196,7 +220,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_9E06D03F3A794C62A13E46DD90ECF5C2" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9E06D03F3A794C62A13E46DD90ECF5C2" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -244,14 +268,14 @@ } "UserInterface" { - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0A813400DCAA4CA2AED300FE90057CD5" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0A813400DCAA4CA2AED300FE90057CD5" { "Name" = "8:#1902" "Sequence" = "3:1" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_D10C5ED5EBA44D81A8E5ABCD373D3DFB" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D10C5ED5EBA44D81A8E5ABCD373D3DFB" { "Sequence" = "3:100" "DisplayName" = "8:Terminé" @@ -288,14 +312,14 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0BBD850026394B248C77CF0D6A143DCC" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0BBD850026394B248C77CF0D6A143DCC" { "Name" = "8:#1901" "Sequence" = "3:2" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C6C426B741844BD2B3CEDB5637FA9398" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C6C426B741844BD2B3CEDB5637FA9398" { "Sequence" = "3:100" "DisplayName" = "8:Progression" @@ -332,14 +356,14 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_138810673D2A4B039E304596343A481D" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_138810673D2A4B039E304596343A481D" { "Name" = "8:#1902" "Sequence" = "3:2" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F70B3043BFCB4E2CAE3E5D5165AEF3BE" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F70B3043BFCB4E2CAE3E5D5165AEF3BE" { "Sequence" = "3:100" "DisplayName" = "8:Terminé" @@ -363,20 +387,20 @@ } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_14D0F4EA9F4542A9A7180215B5B185E0" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_14D0F4EA9F4542A9A7180215B5B185E0" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdBasicDialogs.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A5F428FF10E64C82A99936F0EEFE6C9A" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A5F428FF10E64C82A99936F0EEFE6C9A" { "Name" = "8:#1900" "Sequence" = "3:1" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BC6CF4D097A54F8796A6DC0991F61A8A" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BC6CF4D097A54F8796A6DC0991F61A8A" { "Sequence" = "3:300" "DisplayName" = "8:Confirmer l'installation" @@ -398,7 +422,7 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C59FDD5750904CE69714920B25A7A1D5" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C59FDD5750904CE69714920B25A7A1D5" { "Sequence" = "3:200" "DisplayName" = "8:Dossier d'installation" @@ -418,9 +442,22 @@ "Setting" = "3:1" "UsePlugInResources" = "11:TRUE" } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F3608A2FED224610A31E8BA94D72172B" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F3608A2FED224610A31E8BA94D72172B" { "Sequence" = "3:100" "DisplayName" = "8:Bienvenue" @@ -470,20 +507,20 @@ } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_B959F1B9EF674DF1AAAC84393D11F1F4" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_B959F1B9EF674DF1AAAC84393D11F1F4" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdUserInterface.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_BF96EE5647E446EE8E09C7161F2D15C6" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BF96EE5647E446EE8E09C7161F2D15C6" { "Name" = "8:#1900" "Sequence" = "3:2" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_5DD5731B72974577BB1FE53249896CE6" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5DD5731B72974577BB1FE53249896CE6" { "Sequence" = "3:300" "DisplayName" = "8:Confirmer l'installation" @@ -505,7 +542,7 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_6CF0FA0D246440D18CF8219B20779B9B" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6CF0FA0D246440D18CF8219B20779B9B" { "Sequence" = "3:200" "DisplayName" = "8:Dossier d'installation" @@ -527,7 +564,7 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_7232E533C8364A2481A6BF178EF00E6E" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7232E533C8364A2481A6BF178EF00E6E" { "Sequence" = "3:100" "DisplayName" = "8:Bienvenue" @@ -577,14 +614,14 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D683AF1F16134222A207B5C3D986AFD7" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_D683AF1F16134222A207B5C3D986AFD7" { "Name" = "8:#1901" "Sequence" = "3:1" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_6A78AB4A47D846BE8BCFE2FD4B21FED4" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6A78AB4A47D846BE8BCFE2FD4B21FED4" { "Sequence" = "3:100" "DisplayName" = "8:Progression" @@ -627,7 +664,7 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_31B0D0C4AA7F433F8B505436C2D1D325" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_31B0D0C4AA7F433F8B505436C2D1D325" { "SourcePath" = "8:" "TargetName" = "8:" @@ -655,7 +692,7 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F7CCDC767F0A43859A12C6B0D26950FD" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F7CCDC767F0A43859A12C6B0D26950FD" { "SourcePath" = "8:" "TargetName" = "8:" -- cgit v1.1 From 793f9cf17472974c18610f3f1744b170641a2b4c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:34 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus/Ivy/InstallSource Commentaire: (vss 10) --- Ivy/InstallSource/InstallSource.vdproj | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Ivy/InstallSource/InstallSource.vdproj b/Ivy/InstallSource/InstallSource.vdproj index 31cbc67..72879da 100644 --- a/Ivy/InstallSource/InstallSource.vdproj +++ b/Ivy/InstallSource/InstallSource.vdproj @@ -63,7 +63,7 @@ "Enabled" = "11:FALSE" "PromptEnabled" = "11:TRUE" "PrerequisitesLocation" = "2:1" - "Url" = "8:" + "Url" = "8:http://www.tls.cena.fr/products/ivy/download/packages" "ComponentsUrl" = "8:" "Items" { @@ -146,7 +146,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IVY Sources" "ProductCode" = "8:{A4D80C7C-E792-43F3-97D5-F163E43C2592}" - "PackageCode" = "8:{53FFC324-1905-413D-BBFB-D202926583C3}" + "PackageCode" = "8:{6C9A2D11-2E42-486D-84E1-C0A8A0AA3FB1}" "UpgradeCode" = "8:{779E9266-AC8C-490F-8519-7B26BDA9E0F3}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -155,7 +155,7 @@ "ProductVersion" = "8:1.1.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" + "ARPHELPLINK" = "8:http://www.tls.cena.fr/products/ivy" "Title" = "8:IVY Sources" "Subject" = "8:" "ARPCONTACT" = "8:CENA PII" @@ -168,7 +168,7 @@ "UseSystemSearchPath" = "11:TRUE" "TargetPlatform" = "3:0" "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" + "PostBuildEvent" = "8:\"$(ProjectDir)..\\..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\"" "RunPostBuildEvent" = "3:0" } "Registry" @@ -278,7 +278,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D10C5ED5EBA44D81A8E5ABCD373D3DFB" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFinishedDlg.wid" @@ -322,7 +322,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C6C426B741844BD2B3CEDB5637FA9398" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminProgressDlg.wid" @@ -366,7 +366,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F70B3043BFCB4E2CAE3E5D5165AEF3BE" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" @@ -403,7 +403,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BC6CF4D097A54F8796A6DC0991F61A8A" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdConfirmDlg.wid" @@ -425,7 +425,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C59FDD5750904CE69714920B25A7A1D5" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFolderDlg.wid" @@ -460,7 +460,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F3608A2FED224610A31E8BA94D72172B" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdWelcomeDlg.wid" @@ -523,7 +523,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5DD5731B72974577BB1FE53249896CE6" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" @@ -545,7 +545,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6CF0FA0D246440D18CF8219B20779B9B" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFolderDlg.wid" @@ -567,7 +567,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7232E533C8364A2481A6BF178EF00E6E" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" @@ -624,7 +624,7 @@ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6A78AB4A47D846BE8BCFE2FD4B21FED4" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdProgressDlg.wid" -- cgit v1.1 From 9f0ee5f191900dc0b0d4038ad007a79e1c7c1c0c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:36 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 14:48 Créé Commentaire: (vss 1) --- Ivy/InstallSource/InstallSource.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/InstallSource/InstallSource.vdproj.vspscc diff --git a/Ivy/InstallSource/InstallSource.vdproj.vspscc b/Ivy/InstallSource/InstallSource.vdproj.vspscc new file mode 100644 index 0000000..65fed18 --- /dev/null +++ b/Ivy/InstallSource/InstallSource.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Ivy\\InstallSource" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From feaa8372e6a9849dae2b624a432bf38cd60d6568 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:38 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/Ivy.cxx | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 Ivy/Ivy.cxx diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx new file mode 100644 index 0000000..e3c6bc6 --- /dev/null +++ b/Ivy/Ivy.cxx @@ -0,0 +1,304 @@ +// Ivy.cpp: implementation of the Ivy class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +//#include "libIvy.h" +#include "Ivy.h" + +#include "IvyWatcher.h" +#include "IvyApplication.h" +#include "IvySynchroWnd.h" + + +#define DEFAULT_ADDR "127.255.255.255" +#define SEPARATOR ":" +#define DEFAULT_PORT "2010" +#define DEFAULT_DOMAIN DEFAULT_ADDR/**/SEPARATOR/**/DEFAULT_PORT + + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + + +Ivy::~Ivy() +{ + // remove all app and stop watcher + stop(); + regexp_out.clear(); + + for ( int i = 0; i < callbacks.size(); i ++) + { + delete callbacks[i]; + } + callbacks.clear(); + +// if ( direct_callback ) delete direct_callback; +// if ( application_callback ) delete application_callback; + + delete watcher; + server->Close(); + delete server; + if ( synchronous ) + { + delete IvySynchronousCallback::m_synchro; + delete application_callback; + } +} + + +Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, bool Synchronous) +{ + InitializeCriticalSection( &m_application_cs ); + + synchronous = Synchronous; + if ( synchronous ) + IvySynchronousCallback::m_synchro = new IvySynchroWnd(); + ready_message = ready; + appname = name; + messages_classes_count = 0; + messages_classes = NULL; + application_callback = synchronous ? new IvySynchronousApplicationCallback(callback) : callback; + direct_callback = NULL; + die_callback = NULL; + server = new IvyApplication(this); + applicationPort = server->Create(); + if ( !applicationPort ) + { + TRACE( " Can't Create server %d\n", server->GetLastError( ) ); + return; + } + watcher = new IvyWatcher(this); + + +} +const char * Ivy::GetDomain(const char *domainlist) +{ + // determine domain to use + // the syntax of domain is "IpBroadcastAddr1,IpBroadcastAddr2,IpBroadcastAddr2:port" + if ( domainlist ) + { + domain = domainlist; + } + if ( domain.empty() ) + { + domain = getenv ( "IVYBUS" ); + if ( domain.empty() ) + domain = DEFAULT_DOMAIN; + } + // first find our UDP port + int sep_index = domain.rfind( ':' ); + if ( sep_index == -1 ) + { + domain = DEFAULT_DOMAIN; + TRACE(" Missing ':' in domain list using default domain %s\n", domain.c_str() ); + } + if ( sep_index == 0 ) + { + /* missing addr using localhost */ + domain.insert(0,DEFAULT_ADDR); + } + return domain.c_str(); +} + +void Ivy::start(const char *domain) +{ + watcher->start(domain); +} +void Ivy::stop() +{ + watcher->stop(); + + for ( int pos = 0 ; pos < applications.size() ; pos++ ) + { + IvyApplication *app = applications[pos]; + delete app; + } + applications.clear(); +} +int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) +{ + static int id = 0; + regexp_out.push_back( regexp ); + callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); + + /* send to already connected */ + for ( int pos = 0 ; pos < applications.size() ; pos ++ ) + { + IvyApplication *app = applications[ pos ]; + app->SendMsg(IvyApplication::AddRegexp, id, regexp ); + } + return id++; +} + +void Ivy::UnbindMsg(int id) +{ + regexp_out[ id ] = ""; + callbacks[ id ] = NULL; + /* send to already connected */ + for ( int pos = 0 ; pos < applications.size(); pos ++ ) + { + IvyApplication *app = applications[ pos ]; + app->SendMsg(IvyApplication::DelRegexp, id, "" ); + } + +} + +void Ivy::BindDirectMsg(IvyDirectMessageCallback *callback) +{ +direct_callback = callback; +} + +UINT Ivy::GetApplicationPort() +{ + return applicationPort; +} + +void Ivy::AddApplication(IvyApplication *app) +{ + EnterCriticalSection( &m_application_cs ); + // Check for disconnected Application + for ( int pos = 0; pos < applications.size(); pos ++ ) + { + IvyApplication *disc_app = applications[ pos ]; + if ( disc_app->m_hSocket == INVALID_SOCKET ) + { + //applications.erase( pos ); + delete disc_app; + } + } + applications.push_back( app ); + LeaveCriticalSection( &m_application_cs ); + SendSubscriptions( app ); +} +void Ivy::RemoveApplication(IvyApplication * app) +{ + /// OLD NOT called because of deallocation PB + // the real remove is done at arrival of a new Application + // or at the bus Stop + assert( TRUE ); + if ( app ) + { + for ( int pos = 0; pos < applications.size(); pos ++ ) + { + if ( app == applications[ pos ] ) + { + EnterCriticalSection( &m_application_cs ); + //applications.erase( pos ); + LeaveCriticalSection( &m_application_cs ); + delete app; + } + } + } +} + +void Ivy::SendSubscriptions(IvyApplication *app) +{ + app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); + for ( int id = 0 ; id < regexp_out.size(); id++ ) + { + const string& regexp = regexp_out[id]; + if ( !regexp.empty() ) + app->SendMsg( IvyApplication::AddRegexp, id, regexp.c_str()); + } + app->SendMsg( IvyApplication::EndRegexp, 0); + +} + + +int Ivy::SendMsg(const char * message) +{ + int count = 0; + /* send to already connected */ + for ( int pos = 0 ; pos < applications.size(); pos ++ ) + { + IvyApplication *app = applications[ pos ]; + count += app->SendMsg( message ); + } + return count; +} + + +void Ivy::CallMessageCallback(IvyApplication *app, int id, int argc, const char ** argv) +{ + IvyMessageCallback *callback; + callback = callbacks[ id ]; + if ( callback ) + { + callback->OnMessage( app, argc, argv ); + } +} + +void Ivy::CallDirectMessageCallback(IvyApplication *app, int id, const char *arg) +{ + if ( direct_callback ) + { + direct_callback->OnDirectMessage( app, id, arg ); + } +} + +BOOL Ivy::CallDieCallback(IvyApplication *app, int id, const char *arg) +{ + if ( die_callback ) + { + return die_callback->OnDie( app, id, arg ); + } + return TRUE; +} + +void Ivy::CallApplicationConnectedCallback(IvyApplication * app) +{ + if ( application_callback ) + { + application_callback->OnApplicationConnected( app ); + } +} +void Ivy::CallApplicationDisconnectedCallback(IvyApplication * app) +{ + if ( application_callback ) + { + application_callback->OnApplicationDisconnected( app ); + } +} +void Ivy::SendDirectMsg(IvyApplication * app, int id, const char *message) +{ + app->SendMsg( IvyApplication::DirectMsg, id, message ); +} + +BOOL Ivy::CheckRegexp(const char * exp) +{ + /* accepte tout par default */ + int i; + int regexp_ok = 1; + if ( *exp =='^' && messages_classes_count !=0 ) + { + regexp_ok = 0; + for ( i = 0 ; i < messages_classes_count; i++ ) + { + if (strncmp( messages_classes[i], exp+1, strlen( messages_classes[i] )) == 0) + return 1; + } + } + return regexp_ok; +} + +void Ivy::Classes(int argc, const char **argv ) +{ + messages_classes_count = argc; + messages_classes = argv; +} + +BOOL Ivy::CheckConnected(IvyApplication * app) +{ + if (app->remoteService == 0) /* old application dont check */ + return false; + /* check to see if app already connected */ + for ( int pos = 0; pos < applications.size(); pos++ ) + { + IvyApplication *application = applications[ pos ]; + if ( application != app && application->SameApplication(app)) + return true; + } + return false; +} -- cgit v1.1 From 574e115b9a6ee3e2469084a874bfa04f18316208 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:40 +0000 Subject: Utilisateur : Fcolin Date : 30/06/00 Heure : 9:37 Archivé dans $/Ivy Commentaire: bug si pas de IVYBUS (vss 2) --- Ivy/Ivy.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index e3c6bc6..fd762b6 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -83,7 +83,9 @@ const char * Ivy::GetDomain(const char *domainlist) } if ( domain.empty() ) { - domain = getenv ( "IVYBUS" ); + const char *env = getenv ( "IVYBUS" ); + if ( env ) + domain = env; if ( domain.empty() ) domain = DEFAULT_DOMAIN; } -- cgit v1.1 From 04c9642429d5008dd5cb6a90ca7fa544c20d6fc8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:42 +0000 Subject: Utilisateur : Fcolin Date : 20/07/00 Heure : 10:57 Archivé dans $/Ivy (vss 3) --- Ivy/Ivy.cxx | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index fd762b6..9091264 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -112,9 +112,10 @@ void Ivy::stop() { watcher->stop(); - for ( int pos = 0 ; pos < applications.size() ; pos++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { - IvyApplication *app = applications[pos]; + IvyApplication *app = *iter; delete app; } applications.clear(); @@ -126,9 +127,10 @@ int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); /* send to already connected */ - for ( int pos = 0 ; pos < applications.size() ; pos ++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { - IvyApplication *app = applications[ pos ]; + IvyApplication *app = *iter; app->SendMsg(IvyApplication::AddRegexp, id, regexp ); } return id++; @@ -139,9 +141,10 @@ void Ivy::UnbindMsg(int id) regexp_out[ id ] = ""; callbacks[ id ] = NULL; /* send to already connected */ - for ( int pos = 0 ; pos < applications.size(); pos ++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { - IvyApplication *app = applications[ pos ]; + IvyApplication *app = *iter; app->SendMsg(IvyApplication::DelRegexp, id, "" ); } @@ -161,12 +164,13 @@ void Ivy::AddApplication(IvyApplication *app) { EnterCriticalSection( &m_application_cs ); // Check for disconnected Application - for ( int pos = 0; pos < applications.size(); pos ++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ) { - IvyApplication *disc_app = applications[ pos ]; + IvyApplication *disc_app = *iter++; if ( disc_app->m_hSocket == INVALID_SOCKET ) { - //applications.erase( pos ); + applications.remove( disc_app ); delete disc_app; } } @@ -182,16 +186,11 @@ void Ivy::RemoveApplication(IvyApplication * app) assert( TRUE ); if ( app ) { - for ( int pos = 0; pos < applications.size(); pos ++ ) - { - if ( app == applications[ pos ] ) - { + EnterCriticalSection( &m_application_cs ); - //applications.erase( pos ); + applications.remove( app ); LeaveCriticalSection( &m_application_cs ); delete app; - } - } } } @@ -213,9 +212,10 @@ int Ivy::SendMsg(const char * message) { int count = 0; /* send to already connected */ - for ( int pos = 0 ; pos < applications.size(); pos ++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { - IvyApplication *app = applications[ pos ]; + IvyApplication *app = *iter; count += app->SendMsg( message ); } return count; @@ -296,9 +296,10 @@ BOOL Ivy::CheckConnected(IvyApplication * app) if (app->remoteService == 0) /* old application dont check */ return false; /* check to see if app already connected */ - for ( int pos = 0; pos < applications.size(); pos++ ) + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { - IvyApplication *application = applications[ pos ]; + IvyApplication *application = *iter; if ( application != app && application->SameApplication(app)) return true; } -- cgit v1.1 From 570fc607cb946a8caa2ef7536e024c617df4d243 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:44 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 4) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 9091264..7ab5ac9 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -199,7 +199,7 @@ void Ivy::SendSubscriptions(IvyApplication *app) app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); for ( int id = 0 ; id < regexp_out.size(); id++ ) { - const string& regexp = regexp_out[id]; + const String& regexp = regexp_out[id]; if ( !regexp.empty() ) app->SendMsg( IvyApplication::AddRegexp, id, regexp.c_str()); } -- cgit v1.1 From c3cb3ebbf3e254a0a1e5c0837ff410d44987e87c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:46 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/Ivy.cxx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 7ab5ac9..54b7069 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -83,9 +83,11 @@ const char * Ivy::GetDomain(const char *domainlist) } if ( domain.empty() ) { +#ifdef _WIN_CE const char *env = getenv ( "IVYBUS" ); if ( env ) domain = env; +#endif if ( domain.empty() ) domain = DEFAULT_DOMAIN; } @@ -94,7 +96,7 @@ const char * Ivy::GetDomain(const char *domainlist) if ( sep_index == -1 ) { domain = DEFAULT_DOMAIN; - TRACE(" Missing ':' in domain list using default domain %s\n", domain.c_str() ); + TRACE(" Missing ':' in domain list using default domain %s\n", domain ); } if ( sep_index == 0 ) { @@ -155,7 +157,7 @@ void Ivy::BindDirectMsg(IvyDirectMessageCallback *callback) direct_callback = callback; } -UINT Ivy::GetApplicationPort() +unsigned short Ivy::GetApplicationPort() { return applicationPort; } @@ -183,7 +185,7 @@ void Ivy::RemoveApplication(IvyApplication * app) /// OLD NOT called because of deallocation PB // the real remove is done at arrival of a new Application // or at the bus Stop - assert( TRUE ); + ASSERT( TRUE ); if ( app ) { @@ -199,7 +201,7 @@ void Ivy::SendSubscriptions(IvyApplication *app) app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); for ( int id = 0 ; id < regexp_out.size(); id++ ) { - const String& regexp = regexp_out[id]; + const string& regexp = regexp_out[id]; if ( !regexp.empty() ) app->SendMsg( IvyApplication::AddRegexp, id, regexp.c_str()); } @@ -240,7 +242,7 @@ void Ivy::CallDirectMessageCallback(IvyApplication *app, int id, const char *ar } } -BOOL Ivy::CallDieCallback(IvyApplication *app, int id, const char *arg) +bool Ivy::CallDieCallback(IvyApplication *app, int id, const char *arg) { if ( die_callback ) { @@ -268,14 +270,14 @@ void Ivy::SendDirectMsg(IvyApplication * app, int id, const char *message) app->SendMsg( IvyApplication::DirectMsg, id, message ); } -BOOL Ivy::CheckRegexp(const char * exp) +bool Ivy::CheckRegexp(const char * exp) { /* accepte tout par default */ int i; - int regexp_ok = 1; + bool regexp_ok = true; if ( *exp =='^' && messages_classes_count !=0 ) { - regexp_ok = 0; + regexp_ok = false; for ( i = 0 ; i < messages_classes_count; i++ ) { if (strncmp( messages_classes[i], exp+1, strlen( messages_classes[i] )) == 0) @@ -291,7 +293,7 @@ void Ivy::Classes(int argc, const char **argv ) messages_classes = argv; } -BOOL Ivy::CheckConnected(IvyApplication * app) +bool Ivy::CheckConnected(IvyApplication * app) { if (app->remoteService == 0) /* old application dont check */ return false; -- cgit v1.1 From e0729eb3b7aed25acde9992dad2e4614fda677de Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:48 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 6) --- Ivy/Ivy.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 54b7069..6284c0c 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -3,7 +3,13 @@ ////////////////////////////////////////////////////////////////////// #include "stdafx.h" -//#include "libIvy.h" + +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif + + #include "Ivy.h" #include "IvyWatcher.h" @@ -28,7 +34,7 @@ Ivy::~Ivy() stop(); regexp_out.clear(); - for ( int i = 0; i < callbacks.size(); i ++) + for ( unsigned int i = 0; i < callbacks.size(); i ++) { delete callbacks[i]; } @@ -199,7 +205,7 @@ void Ivy::RemoveApplication(IvyApplication * app) void Ivy::SendSubscriptions(IvyApplication *app) { app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); - for ( int id = 0 ; id < regexp_out.size(); id++ ) + for ( unsigned int id = 0 ; id < regexp_out.size(); id++ ) { const string& regexp = regexp_out[id]; if ( !regexp.empty() ) -- cgit v1.1 From ddfc3e0fa9d9fbf86d2d8ca1ead9ab4223d27dd1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:50 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 7) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 6284c0c..561031c 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -44,7 +44,7 @@ Ivy::~Ivy() // if ( application_callback ) delete application_callback; delete watcher; - server->Close(); +// server->Close(); delete server; if ( synchronous ) { -- cgit v1.1 From 00cf18f4f75ac42dad7337ad22c1808e53b62a3e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:52 +0000 Subject: Utilisateur : Fcolin Date : 20/02/01 Heure : 10:27 Archivé dans $/Ivy (vss 8) --- Ivy/Ivy.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 561031c..3f8daed 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -9,7 +9,6 @@ #define new DEBUG_NEW #endif - #include "Ivy.h" #include "IvyWatcher.h" -- cgit v1.1 From 121227691c09257a90493aa8dbf0a57f2f8ad199 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:54 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 9) --- Ivy/Ivy.cxx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 3f8daed..c56356c 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -4,11 +4,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif - #include "Ivy.h" #include "IvyWatcher.h" -- cgit v1.1 From 9af56b54bfcef47df42532d79ab7743548e32c0b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:56 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 10) --- Ivy/Ivy.cxx | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index c56356c..3906333 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -83,7 +83,7 @@ const char * Ivy::GetDomain(const char *domainlist) } if ( domain.empty() ) { -#ifdef _WIN_CE +#ifndef _WIN_CE const char *env = getenv ( "IVYBUS" ); if ( env ) domain = env; @@ -210,19 +210,44 @@ void Ivy::SendSubscriptions(IvyApplication *app) } -int Ivy::SendMsg(const char * message) +int Ivy::SendMsg(const char * message, ... ) { int count = 0; + char buffer[4096]; + va_list args; + + va_start( args, message ); /* Initialize variable arguments. */ + vsprintf( buffer, message, args ); + va_end( args); /* send to already connected */ IvyApplicationList::iterator iter; for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { IvyApplication *app = *iter; - count += app->SendMsg( message ); + count += app->SendMsg( buffer ); } return count; } - +void Ivy::SendDieMsg( IvyApplication *app ) +{ + app->SendMsg( IvyApplication::Die, 0 ); +} +IvyApplication * Ivy::GetApplication(const char *name) +{ + EnterCriticalSection( &m_application_cs ); + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ) + { + IvyApplication *app = *iter++; + if ( (app->m_hSocket != INVALID_SOCKET) && app->appname == name ) + { + return app; + } + } + LeaveCriticalSection( &m_application_cs ); + return NULL; +} + void Ivy::CallMessageCallback(IvyApplication *app, int id, int argc, const char ** argv) { -- cgit v1.1 From 49ebd55611e86e6fc63d8afcc38888c5991799fc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:55:58 +0000 Subject: Utilisateur : Fcolin Date : 7/06/02 Heure : 9:35 Archivé dans $/Ivy (vss 11) --- Ivy/Ivy.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 3906333..c10785f 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -28,11 +28,15 @@ Ivy::~Ivy() stop(); regexp_out.clear(); - for ( unsigned int i = 0; i < callbacks.size(); i ++) - { + if ( synchronous ) + { + for ( unsigned int i = 0; i < callbacks.size(); i ++) + { delete callbacks[i]; - } + } + } callbacks.clear(); + // if ( direct_callback ) delete direct_callback; // if ( application_callback ) delete application_callback; -- cgit v1.1 From 3b071ef64481621c5fdea7c0117ff88407b87269 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:00 +0000 Subject: Utilisateur : Fcolin Date : 19/06/02 Heure : 15:14 Archivé dans $/Ivy (vss 12) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index c10785f..a6757c2 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -161,7 +161,7 @@ void Ivy::BindDirectMsg(IvyDirectMessageCallback *callback) direct_callback = callback; } -unsigned short Ivy::GetApplicationPort() +unsigned int Ivy::GetApplicationPort() { return applicationPort; } -- cgit v1.1 From b92f4c6128c14ad1c63a37a9d71cc2b0e42c056f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:02 +0000 Subject: Utilisateur : Fcolin Date : 25/11/02 Heure : 16:15 Archivé dans $/Bus/Ivy Commentaire: (vss 13) --- Ivy/Ivy.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index a6757c2..e5b11ea 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -122,6 +122,7 @@ void Ivy::stop() for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { IvyApplication *app = *iter; + app->Close(); delete app; } applications.clear(); -- cgit v1.1 From 8538e20f9ef0bb69a6b7a82f8b46e662d59ce398 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:04 +0000 Subject: Utilisateur : Fcolin Date : 6/01/03 Heure : 14:47 Archivé dans $/Bus/Ivy Commentaire: (vss 14) --- Ivy/Ivy.cxx | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index e5b11ea..8b26e77 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -27,6 +27,7 @@ Ivy::~Ivy() // remove all app and stop watcher stop(); regexp_out.clear(); + if ( synchronous ) { @@ -55,7 +56,7 @@ Ivy::~Ivy() Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, bool Synchronous) { InitializeCriticalSection( &m_application_cs ); - + regexp_id = 0; synchronous = Synchronous; if ( synchronous ) IvySynchronousCallback::m_synchro = new IvySynchroWnd(); @@ -129,7 +130,6 @@ void Ivy::stop() } int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) { - static int id = 0; regexp_out.push_back( regexp ); callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); @@ -138,11 +138,32 @@ int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { IvyApplication *app = *iter; - app->SendMsg(IvyApplication::AddRegexp, id, regexp ); + app->SendMsg(IvyApplication::AddRegexp, regexp_id, regexp ); } - return id++; + return regexp_id++; } +int Ivy::BindMsg( IvyMessageCallback *cb, const char *regexp, ... ) +{ + char buffer[4096]; + va_list args; + + va_start( args, regexp ); /* Initialize variable arguments. */ + vsprintf( buffer, regexp, args ); + va_end( args); + + regexp_out.push_back( regexp ); + callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); + /* send to already connected */ + IvyApplicationList::iterator iter; + for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) + { + IvyApplication *app = *iter; + app->SendMsg(IvyApplication::AddRegexp, regexp_id, buffer ); + } + return regexp_id++; +} + void Ivy::UnbindMsg(int id) { regexp_out[ id ] = ""; -- cgit v1.1 From 9477367dc0a9a232bf57edaa5e1e2595bb70cba7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:06 +0000 Subject: Utilisateur : Fcolin Date : 4/02/03 Heure : 8:59 Archivé dans $/Bus/Ivy Commentaire: (vss 15) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 8b26e77..b592c11 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -88,7 +88,7 @@ const char * Ivy::GetDomain(const char *domainlist) } if ( domain.empty() ) { -#ifndef _WIN_CE +#ifndef UNDER_CE const char *env = getenv ( "IVYBUS" ); if ( env ) domain = env; -- cgit v1.1 From 3f87f03a578226cd5a8700889deb6f2a06264b9e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:08 +0000 Subject: Utilisateur : Fcolin Date : 30/09/03 Heure : 16:49 Archivé dans $/Bus/Ivy Commentaire: (vss 16) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index b592c11..609733d 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -101,7 +101,7 @@ const char * Ivy::GetDomain(const char *domainlist) if ( sep_index == -1 ) { domain = DEFAULT_DOMAIN; - TRACE(" Missing ':' in domain list using default domain %s\n", domain ); + TRACE(" Missing ':' in domain list using default domain %s\n", domain.c_str() ); } if ( sep_index == 0 ) { -- cgit v1.1 From f2271c04c9c833d3c4c8a9dc2d5cd579cb97913d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:10 +0000 Subject: Utilisateur : Fcolin Date : 5/02/04 Heure : 18:32 Archivé dans $/Bus/Ivy Commentaire: (vss 17) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 609733d..b592c11 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -101,7 +101,7 @@ const char * Ivy::GetDomain(const char *domainlist) if ( sep_index == -1 ) { domain = DEFAULT_DOMAIN; - TRACE(" Missing ':' in domain list using default domain %s\n", domain.c_str() ); + TRACE(" Missing ':' in domain list using default domain %s\n", domain ); } if ( sep_index == 0 ) { -- cgit v1.1 From d05917942b4a46fccad770655235fbfdc06bbf99 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:12 +0000 Subject: Utilisateur : Fcolin Date : 12/05/05 Heure : 14:05 Archivé dans $/Bus/Ivy Commentaire: Bug dans Ivy GetApplication ( name ) pas de release de la section critique!! (vss 18) --- Ivy/Ivy.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index b592c11..e7505d1 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -260,18 +260,20 @@ void Ivy::SendDieMsg( IvyApplication *app ) } IvyApplication * Ivy::GetApplication(const char *name) { + IvyApplication *app = NULL; EnterCriticalSection( &m_application_cs ); IvyApplicationList::iterator iter; for ( iter = applications.begin() ; iter != applications.end() ; ) { - IvyApplication *app = *iter++; - if ( (app->m_hSocket != INVALID_SOCKET) && app->appname == name ) + IvyApplication *ap = *iter++; + if ( (ap->m_hSocket != INVALID_SOCKET) && ap->appname == name ) { - return app; + app = ap; + break; // dont return because of LeaveCriticalSection !!! } } LeaveCriticalSection( &m_application_cs ); - return NULL; + return app; } -- cgit v1.1 From b1d9a197c185ccc3b0f67ee55713f16cdebad461 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:14 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 19) --- Ivy/Ivy.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index e7505d1..7cd8dde 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -2,7 +2,7 @@ // ////////////////////////////////////////////////////////////////////// -#include "stdafx.h" +#include "IvyStdAfx.h" #include "Ivy.h" @@ -148,7 +148,7 @@ int Ivy::BindMsg( IvyMessageCallback *cb, const char *regexp, ... ) va_list args; va_start( args, regexp ); /* Initialize variable arguments. */ - vsprintf( buffer, regexp, args ); + _vsnprintf( buffer, sizeof(buffer), regexp, args ); va_end( args); regexp_out.push_back( regexp ); @@ -243,7 +243,7 @@ int Ivy::SendMsg(const char * message, ... ) va_list args; va_start( args, message ); /* Initialize variable arguments. */ - vsprintf( buffer, message, args ); + _vsnprintf( buffer, sizeof(buffer), message, args ); va_end( args); /* send to already connected */ IvyApplicationList::iterator iter; -- cgit v1.1 From 36b8ea1503500ad1e4220090b90f1b0001da896f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:16 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 20) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 7cd8dde..3ef0ce2 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -227,7 +227,7 @@ void Ivy::SendSubscriptions(IvyApplication *app) app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); for ( unsigned int id = 0 ; id < regexp_out.size(); id++ ) { - const string& regexp = regexp_out[id]; + const ivy::string& regexp = regexp_out[id]; if ( !regexp.empty() ) app->SendMsg( IvyApplication::AddRegexp, id, regexp.c_str()); } -- cgit v1.1 From e2773f2d3c326d4492311332cedbc33dc71d9205 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:18 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 21) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 3ef0ce2..c70d23f 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -97,7 +97,7 @@ const char * Ivy::GetDomain(const char *domainlist) domain = DEFAULT_DOMAIN; } // first find our UDP port - int sep_index = domain.rfind( ':' ); + size_t sep_index = domain.rfind( ':' ); if ( sep_index == -1 ) { domain = DEFAULT_DOMAIN; -- cgit v1.1 From 875e598e3e1b09ee41a3aeaefc3b8bc78ac68d48 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:20 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 22) --- Ivy/Ivy.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index c70d23f..daa2129 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -89,9 +89,17 @@ const char * Ivy::GetDomain(const char *domainlist) if ( domain.empty() ) { #ifndef UNDER_CE - const char *env = getenv ( "IVYBUS" ); - if ( env ) + size_t requiredSize; + + getenv_s( &requiredSize, NULL, 0, "IVYBUS"); + + if ( requiredSize ) + { + char *env = (char*)malloc( requiredSize * sizeof(char)); + getenv_s( &requiredSize, env, requiredSize, "IVYBUS"); domain = env; + free( env ); + } #endif if ( domain.empty() ) domain = DEFAULT_DOMAIN; @@ -148,7 +156,7 @@ int Ivy::BindMsg( IvyMessageCallback *cb, const char *regexp, ... ) va_list args; va_start( args, regexp ); /* Initialize variable arguments. */ - _vsnprintf( buffer, sizeof(buffer), regexp, args ); + _vsnprintf_s( buffer, sizeof(buffer), sizeof(buffer)-1, regexp, args ); va_end( args); regexp_out.push_back( regexp ); @@ -243,7 +251,7 @@ int Ivy::SendMsg(const char * message, ... ) va_list args; va_start( args, message ); /* Initialize variable arguments. */ - _vsnprintf( buffer, sizeof(buffer), message, args ); + _vsnprintf_s( buffer, sizeof(buffer), sizeof(buffer)-1, message, args ); va_end( args); /* send to already connected */ IvyApplicationList::iterator iter; -- cgit v1.1 From e5faff1c9281641151f0fb6cff53d223fc1d1b91 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:22 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 23) --- Ivy/Ivy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index daa2129..49be33b 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -219,7 +219,7 @@ void Ivy::RemoveApplication(IvyApplication * app) /// OLD NOT called because of deallocation PB // the real remove is done at arrival of a new Application // or at the bus Stop - ASSERT( TRUE ); + TRACE( "Ivy::RemoveApplication %lu\n", app ); if ( app ) { -- cgit v1.1 From 4012d9d589b8063a57be612b913dfa7270f5a017 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:24 +0000 Subject: Utilisateur : Fcolin Date : 23/05/06 Heure : 18:18 Archivé dans $/Bus/Ivy Commentaire: Modification protocol UDP (vss 24) --- Ivy/Ivy.cxx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 49be33b..66c1715 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -61,7 +61,7 @@ Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, if ( synchronous ) IvySynchronousCallback::m_synchro = new IvySynchroWnd(); ready_message = ready; - appname = name; + ApplicationName = name; messages_classes_count = 0; messages_classes = NULL; application_callback = synchronous ? new IvySynchronousApplicationCallback(callback) : callback; @@ -74,10 +74,21 @@ Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, TRACE( " Can't Create server %d\n", server->GetLastError( ) ); return; } + ApplicationID = GenApplicationUniqueIdentifier(); watcher = new IvyWatcher(this); } +const char *Ivy::GenApplicationUniqueIdentifier() +{ + static char appid[2048]; + long curtime; + curtime = GetTickCount(); + srand( curtime ); + sprintf(appid,"%d:%ld:%d",rand(),curtime,applicationPort); + return appid; +} + const char * Ivy::GetDomain(const char *domainlist) { // determine domain to use @@ -232,7 +243,7 @@ void Ivy::RemoveApplication(IvyApplication * app) void Ivy::SendSubscriptions(IvyApplication *app) { - app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), appname.c_str()); + app->SendMsg( IvyApplication::StartRegexp, GetApplicationPort(), ApplicationName.c_str()); for ( unsigned int id = 0 ; id < regexp_out.size(); id++ ) { const ivy::string& regexp = regexp_out[id]; -- cgit v1.1 From 3e928d698cf896b413b894a5c2df83562872ec4f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:26 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 25) --- Ivy/Ivy.cxx | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 66c1715..2da3766 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -64,6 +64,7 @@ Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, ApplicationName = name; messages_classes_count = 0; messages_classes = NULL; + binding_callback = NULL; application_callback = synchronous ? new IvySynchronousApplicationCallback(callback) : callback; direct_callback = NULL; die_callback = NULL; @@ -337,6 +338,27 @@ void Ivy::CallApplicationDisconnectedCallback(IvyApplication * app) application_callback->OnApplicationDisconnected( app ); } } +void Ivy::CallBindingAddCallback(IvyApplication * app, int id, const char * regexp) +{ + if ( binding_callback ) + { + binding_callback->OnAddBind( app, id, regexp ); + } +} +void Ivy::CallBindingRemoveCallback(IvyApplication * app, int id, const char * regexp) +{ + if ( binding_callback ) + { + binding_callback->OnRemoveBind( app, id, regexp ); + } +} +void Ivy::CallBindingFilterCallback(IvyApplication * app, int id, const char * regexp) +{ + if ( binding_callback ) + { + binding_callback->OnFilterBind( app, id, regexp ); + } +} void Ivy::SendDirectMsg(IvyApplication * app, int id, const char *message) { app->SendMsg( IvyApplication::DirectMsg, id, message ); @@ -358,8 +380,12 @@ bool Ivy::CheckRegexp(const char * exp) } return regexp_ok; } - -void Ivy::Classes(int argc, const char **argv ) +void Ivy::SetBindCallback( IvyBindingCallback* bind_callback ) +{ + binding_callback = synchronous ? new IvySynchronousBindingCallback(bind_callback) : bind_callback; +} + +void Ivy::SetFilter(int argc, const char **argv ) { messages_classes_count = argc; messages_classes = argv; -- cgit v1.1 From d7ee0aeb171c78ab5ec980d869ae67747a9bc87c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:28 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Archivé dans $/Bus/Ivy Commentaire: Separation module de traitement regexp (vss 26) --- Ivy/Ivy.cxx | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 2da3766..60ba574 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -9,7 +9,7 @@ #include "IvyWatcher.h" #include "IvyApplication.h" #include "IvySynchroWnd.h" - +#include "IvyBinding.h" #define DEFAULT_ADDR "127.255.255.255" #define SEPARATOR ":" @@ -62,8 +62,7 @@ Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, IvySynchronousCallback::m_synchro = new IvySynchroWnd(); ready_message = ready; ApplicationName = name; - messages_classes_count = 0; - messages_classes = NULL; + binding_callback = NULL; application_callback = synchronous ? new IvySynchronousApplicationCallback(callback) : callback; direct_callback = NULL; @@ -364,22 +363,6 @@ void Ivy::SendDirectMsg(IvyApplication * app, int id, const char *message) app->SendMsg( IvyApplication::DirectMsg, id, message ); } -bool Ivy::CheckRegexp(const char * exp) -{ - /* accepte tout par default */ - int i; - bool regexp_ok = true; - if ( *exp =='^' && messages_classes_count !=0 ) - { - regexp_ok = false; - for ( i = 0 ; i < messages_classes_count; i++ ) - { - if (strncmp( messages_classes[i], exp+1, strlen( messages_classes[i] )) == 0) - return 1; - } - } - return regexp_ok; -} void Ivy::SetBindCallback( IvyBindingCallback* bind_callback ) { binding_callback = synchronous ? new IvySynchronousBindingCallback(bind_callback) : bind_callback; @@ -387,8 +370,7 @@ void Ivy::SetBindCallback( IvyBindingCallback* bind_callback ) void Ivy::SetFilter(int argc, const char **argv ) { - messages_classes_count = argc; - messages_classes = argv; + IvyBinding::SetFilter(argc, argv ); } bool Ivy::CheckConnected(IvyApplication * app) -- cgit v1.1 From fd7e142c90b804b21c86e8905922897f7f2ec4c5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:30 +0000 Subject: Utilisateur : Fcolin Date : 2/06/06 Heure : 17:00 Archivé dans $/Bus/Ivy Commentaire: correction pb signe dans applicationUniqueID (vss 27) --- Ivy/Ivy.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 60ba574..d4c6056 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -82,10 +82,10 @@ Ivy::Ivy(const char* name, const char * ready, IvyApplicationCallback *callback, const char *Ivy::GenApplicationUniqueIdentifier() { static char appid[2048]; - long curtime; + unsigned long curtime; curtime = GetTickCount(); srand( curtime ); - sprintf(appid,"%d:%ld:%d",rand(),curtime,applicationPort); + sprintf(appid,"%d:%lu:%d",rand(),curtime,applicationPort); return appid; } -- cgit v1.1 From 19723f6393be5d66a750ce9a21ca4e4dba264cac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:32 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Archivé dans $/Bus/Ivy Commentaire: (vss 28) --- Ivy/Ivy.cxx | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index d4c6056..0a09c91 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -10,6 +10,7 @@ #include "IvyApplication.h" #include "IvySynchroWnd.h" #include "IvyBinding.h" +#include "intervalRegexp.h" #define DEFAULT_ADDR "127.255.255.255" #define SEPARATOR ":" @@ -149,7 +150,10 @@ void Ivy::stop() } int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) { - regexp_out.push_back( regexp ); + char buffer[8192]; + + SubstituteInterval( regexp, buffer, sizeof( buffer ) ); + regexp_out.push_back( buffer ); callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); /* send to already connected */ @@ -157,20 +161,23 @@ int Ivy::BindMsg(const char *regexp, IvyMessageCallback *cb) for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { IvyApplication *app = *iter; - app->SendMsg(IvyApplication::AddRegexp, regexp_id, regexp ); + app->SendMsg(IvyApplication::AddRegexp, regexp_id, buffer ); } return regexp_id++; } int Ivy::BindMsg( IvyMessageCallback *cb, const char *regexp, ... ) { char buffer[4096]; + char buffer2[8192]; va_list args; va_start( args, regexp ); /* Initialize variable arguments. */ _vsnprintf_s( buffer, sizeof(buffer), sizeof(buffer)-1, regexp, args ); va_end( args); - regexp_out.push_back( regexp ); + SubstituteInterval( buffer, buffer2, sizeof( buffer2 ) ); + + regexp_out.push_back( buffer2 ); callbacks.push_back( synchronous ? new IvySynchronousMessageCallback(cb) : cb ); /* send to already connected */ @@ -178,7 +185,7 @@ int Ivy::BindMsg( IvyMessageCallback *cb, const char *regexp, ... ) for ( iter = applications.begin() ; iter != applications.end() ; ++iter ) { IvyApplication *app = *iter; - app->SendMsg(IvyApplication::AddRegexp, regexp_id, buffer ); + app->SendMsg(IvyApplication::AddRegexp, regexp_id, buffer2 ); } return regexp_id++; } @@ -387,3 +394,44 @@ bool Ivy::CheckConnected(IvyApplication * app) } return false; } +void Ivy::SubstituteInterval (const char *src, char *dst, size_t dst_len) +{ +// #ifdef INTERVALREGEXP + + // pas de traitement couteux s'il n'y a rien à interpoler + if (strstr (src, "(?I") == NULL) { + return; + } else { + char *curPos; + char *itvPos; + char *dstPos = dst; + + curPos = (char *)src; + while ((itvPos = strstr (curPos, "(?I")) != NULL) { + // copie depuis la position courante jusqu'à l'intervalle + int lenCp, min,max; + char withDecimal; + lenCp = itvPos-curPos; + memcpy ( dstPos, curPos, lenCp); + curPos=itvPos; + dstPos += lenCp; + + // extraction des paramètres de l'intervalle + sscanf (itvPos, "(?I%d#%d%c", &min, &max, &withDecimal); + + // printf ("DBG> substituteInterval min=%d max=%d withDecimal=%d\n", + // min, max, (withDecimal != 'i')); + + // generation et copie de l'intervalle + regexpGen (dstPos, dst_len-(dstPos-dst), min, max, (withDecimal != 'i')); + dstPos = dst + strlen (dst); + + // consommation des caractères décrivant intervalle dans la chaine source + curPos = strstr (curPos, ")"); + curPos++; + } + strncat (dstPos, curPos, dst_len-(dstPos-dst)); + } +// #endif +} + -- cgit v1.1 From 0bae5197999f5ed9e52bf3b94acb9e3f107a20e6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:34 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 18:11 Archivé dans $/Bus/Ivy Commentaire: ajout intervalRegexp (vss 29) --- Ivy/Ivy.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.cxx b/Ivy/Ivy.cxx index 0a09c91..4564c6f 100644 --- a/Ivy/Ivy.cxx +++ b/Ivy/Ivy.cxx @@ -396,10 +396,10 @@ bool Ivy::CheckConnected(IvyApplication * app) } void Ivy::SubstituteInterval (const char *src, char *dst, size_t dst_len) { -// #ifdef INTERVALREGEXP // pas de traitement couteux s'il n'y a rien à interpoler if (strstr (src, "(?I") == NULL) { + strcpy (dst,src); return; } else { char *curPos; @@ -432,6 +432,6 @@ void Ivy::SubstituteInterval (const char *src, char *dst, size_t dst_len) } strncat (dstPos, curPos, dst_len-(dstPos-dst)); } -// #endif + } -- cgit v1.1 From 749bdfcc57e0b35e35cc8a0ac32178c5155d67b0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:42 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/Ivy.dsp | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 Ivy/Ivy.dsp diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp new file mode 100644 index 0000000..7fc2af4 --- /dev/null +++ b/Ivy/Ivy.dsp @@ -0,0 +1,183 @@ +# Microsoft Developer Studio Project File - Name="Ivy" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=Ivy - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Ivy.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Ivy.mak" CFG="Ivy - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Ivy - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "Ivy - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName ""$/Ivy", NBEAAAAA" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Ivy - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "NDEBUG" +# ADD RSC /l 0x40c /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 + +!ELSEIF "$(CFG)" == "Ivy - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "_DEBUG" +# ADD RSC /l 0x40c /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Ivy - Win32 Release" +# Name "Ivy - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\BufferedSocket.cxx +# End Source File +# Begin Source File + +SOURCE=.\Ivy.cxx +# End Source File +# Begin Source File + +SOURCE=.\IvyApplication.cxx +# End Source File +# Begin Source File + +SOURCE=.\IvyDllMain.cpp +# End Source File +# Begin Source File + +SOURCE=.\IvySynchroWnd.cxx +# End Source File +# Begin Source File + +SOURCE=.\IvyWatcher.cxx +# End Source File +# Begin Source File + +SOURCE=.\Regexp.cxx +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp + +!IF "$(CFG)" == "Ivy - Win32 Release" + +!ELSEIF "$(CFG)" == "Ivy - Win32 Debug" + +# ADD CPP /Yc"stdafx.h" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\ThreadedSocket.cxx +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\BufferedSocket.h +# End Source File +# Begin Source File + +SOURCE=.\Ivy.h +# End Source File +# Begin Source File + +SOURCE=.\IvyApplication.h +# End Source File +# Begin Source File + +SOURCE=.\IvyCallback.h +# End Source File +# Begin Source File + +SOURCE=.\IvySynchroWnd.h +# End Source File +# Begin Source File + +SOURCE=.\IvyWatcher.h +# End Source File +# Begin Source File + +SOURCE=.\Regexp.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\ThreadedSocket.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project -- cgit v1.1 From b38a61af750db7bf581929e5fde47673b734b121 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:43 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:40 Archivé dans $/Ivy Commentaire: Init dll socket dans DLLMain (vss 2) --- Ivy/Ivy.dsp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 7fc2af4..56180d9 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -67,8 +67,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"d:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept !ENDIF -- cgit v1.1 From 4c3e81594dd3d471996614420e90a5a0bfd1eaa6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:45 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Ivy Commentaire: Version multicast (vss 3) --- Ivy/Ivy.dsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 56180d9..f94cce7 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"d:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept +# ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"d:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept !ENDIF -- cgit v1.1 From 02058bb1dbce22c23334fe15489cb1cbd480a80c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:47 +0000 Subject: Utilisateur : Fcolin Date : 4/01/01 Heure : 15:36 Archivé dans $/Ivy (vss 4) --- Ivy/Ivy.dsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index f94cce7..81134f9 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"d:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept +# ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"c:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept !ENDIF -- cgit v1.1 From 5f49bec37b16a439cab14bcdb282a84218d6599e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:49 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/Ivy.dsp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 81134f9..7f06599 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -68,7 +68,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" @@ -144,6 +144,10 @@ SOURCE=.\BufferedSocket.h # End Source File # Begin Source File +SOURCE=.\DataTypes.h +# End Source File +# Begin Source File + SOURCE=.\Ivy.h # End Source File # Begin Source File -- cgit v1.1 From ec949dd5fdbf59c2bdb40debdb8ff92722929814 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:51 +0000 Subject: Utilisateur : Fcolin Date : 23/05/01 Heure : 10:24 Archivé dans $/Ivy (vss 6) --- Ivy/Ivy.dsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 7f06599..0d72efc 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -68,7 +68,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /D "NO_IVY_DEBUG" /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" -- cgit v1.1 From 75c086d9500f40c5a5b8f085f2fa4e7f74492839 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:53 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 7) --- Ivy/Ivy.dsp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 0d72efc..137abf0 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -40,9 +40,10 @@ RSC=rc.exe # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "NDEBUG" @@ -52,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /machine:I386 !ELSEIF "$(CFG)" == "Ivy - Win32 Debug" @@ -68,7 +69,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /D "NO_IVY_DEBUG" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /D "NO_IVY_DEBUG" /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" @@ -78,7 +79,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /debug /machine:I386 /out:"c:\users\fcolin\Program Files\Debug\Ivy.dll" /pdbtype:sept +# ADD LINK32 wsock32.lib user32.lib /nologo /dll /profile /debug /machine:I386 /out:"c:\users\fcolin\Program Files\Debug\Ivy.dll" !ENDIF -- cgit v1.1 From b6c55ededcfaa1e5fb4bf75c6261b4a2e3d687ca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:55 +0000 Subject: Utilisateur : Fcolin Date : 19/07/01 Heure : 19:21 Archivé dans $/Ivy (vss 8) --- Ivy/Ivy.dsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 137abf0..015ae11 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -69,7 +69,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IVY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /D "NO_IVY_DEBUG" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "IVY_EXPORTS" /D "NO_IVY_DEBUG" /FR /Yu"stdafx.h" /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40c /d "_DEBUG" -- cgit v1.1 From dd63aa2213ef0a19d446bdaaaf37de3f0bcad264 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:57 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 9) --- Ivy/Ivy.dsp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.dsp b/Ivy/Ivy.dsp index 015ae11..d36f170 100644 --- a/Ivy/Ivy.dsp +++ b/Ivy/Ivy.dsp @@ -25,7 +25,7 @@ CFG=Ivy - Win32 Debug # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName ""$/Ivy", NBEAAAAA" # PROP Scc_LocalPath "." -CPP=cl.exe +CPP=xicl6.exe MTL=midl.exe RSC=rc.exe @@ -51,7 +51,7 @@ RSC=rc.exe BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo -LINK32=link.exe +LINK32=xilink6.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD LINK32 wsock32.lib ws2_32.lib user32.lib /nologo /dll /machine:I386 @@ -77,7 +77,7 @@ LINK32=link.exe BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo -LINK32=link.exe +LINK32=xilink6.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 wsock32.lib user32.lib /nologo /dll /profile /debug /machine:I386 /out:"c:\users\fcolin\Program Files\Debug\Ivy.dll" @@ -104,6 +104,10 @@ SOURCE=.\IvyApplication.cxx # End Source File # Begin Source File +SOURCE=.\IvyCbindings.cxx +# End Source File +# Begin Source File + SOURCE=.\IvyDllMain.cpp # End Source File # Begin Source File @@ -161,6 +165,10 @@ SOURCE=.\IvyCallback.h # End Source File # Begin Source File +SOURCE=.\IvyCbindings.h +# End Source File +# Begin Source File + SOURCE=.\IvySynchroWnd.h # End Source File # Begin Source File -- cgit v1.1 From 3a4b32280456fd880bbd2282171f7087a9137314 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:56:59 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/Ivy.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Ivy/Ivy.h diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h new file mode 100644 index 0000000..4fa1859 --- /dev/null +++ b/Ivy/Ivy.h @@ -0,0 +1,97 @@ +// Ivy.h: interface for the Ivy class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +#ifdef WIN32 +#ifdef IVY_EXPORTS +class _declspec(dllexport) IvyWatcher; +class _declspec(dllexport) IvyApplication; +class _declspec(dllexport) Ivy; +#else +#pragma comment(lib,"Ivy.LIB" ) +class _declspec(dllimport) IvyWatcher; +class _declspec(dllimport) IvyApplication; +class _declspec(dllimport) Ivy; +#endif +#endif + +#include "stdafx.h" + +#include "IvyCallback.h" + +class IvyWatcher; + +class IvyApplication; + +class Ivy +{ +private: + + UINT applicationPort; + void SendSubscriptions(IvyApplication *app); + +public: + void AddApplication( IvyApplication *app ); + void RemoveApplication( IvyApplication *app); + + BOOL CheckConnected( IvyApplication *app ); + BOOL CheckRegexp( const char *exp ); + void CallApplicationConnectedCallback( IvyApplication *app ); + void CallApplicationDisconnectedCallback( IvyApplication *app ); + BOOL CallDieCallback( IvyApplication *app, int id, const char *arg ); + void CallDirectMessageCallback( IvyApplication *app, int id, const char *arg ); + void CallMessageCallback( IvyApplication *app, int id, int argc, const char **argv ); + + +public: + + void Classes( int argc, const char **argv ); + + void SendDirectMsg( IvyApplication *app, int id, const char *message); + void BindDirectMsg( IvyDirectMessageCallback *callback ); + int SendMsg( const char *message ); + + const char *GetDomain(const char *domainlist); + UINT GetApplicationPort(); + int BindMsg( const char *regexp, IvyMessageCallback *cb ); + void UnbindMsg( int id ); + Ivy( const char *name, const char* ready, IvyApplicationCallback *callback, bool Synchronous = true ); + void start(const char *domain); + void stop(); + virtual ~Ivy(); + + /* message a emettre sur connection nouvelle application */ + string ready_message; + +protected: + bool synchronous; // use Window Shink to made CB mono thread like + IvyApplication * server; + IvyWatcher * watcher; + IvyDieCallback *die_callback; + IvyDirectMessageCallback *direct_callback; + IvyApplicationCallback *application_callback; + /* list des adresses de broadcast */ + string domain; + /* nom de l'appliction */ + string appname; + /* liste des clients connectes */ + CRITICAL_SECTION m_application_cs; + std::vector applications; + + /* liste des souscriptions locale a emettre aux autres applications */ + std::vector regexp_out; + /* liste des callbacks a appeler */ + std::vector< IvyMessageCallback* > callbacks; + /* classes de messages emis par l'application utilise pour le filtrage */ + int messages_classes_count; + const char **messages_classes; + +}; + +#endif // !defined(AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From 38ea33b22d7de3fe79da5ee0b539f5eef251516f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:01 +0000 Subject: Utilisateur : Fcolin Date : 20/07/00 Heure : 10:57 Archivé dans $/Ivy (vss 2) --- Ivy/Ivy.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 4fa1859..b0a175e 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -82,7 +82,8 @@ protected: string appname; /* liste des clients connectes */ CRITICAL_SECTION m_application_cs; - std::vector applications; + typedef std::list IvyApplicationList; + IvyApplicationList applications; /* liste des souscriptions locale a emettre aux autres applications */ std::vector regexp_out; -- cgit v1.1 From 30647835ffd705bf9915c2990654d731946b9c24 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:03 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 3) --- Ivy/Ivy.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index b0a175e..451a6c7 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -67,7 +67,7 @@ public: virtual ~Ivy(); /* message a emettre sur connection nouvelle application */ - string ready_message; + String ready_message; protected: bool synchronous; // use Window Shink to made CB mono thread like @@ -77,16 +77,16 @@ protected: IvyDirectMessageCallback *direct_callback; IvyApplicationCallback *application_callback; /* list des adresses de broadcast */ - string domain; + String domain; /* nom de l'appliction */ - string appname; + String appname; /* liste des clients connectes */ CRITICAL_SECTION m_application_cs; typedef std::list IvyApplicationList; IvyApplicationList applications; /* liste des souscriptions locale a emettre aux autres applications */ - std::vector regexp_out; + std::vector regexp_out; /* liste des callbacks a appeler */ std::vector< IvyMessageCallback* > callbacks; /* classes de messages emis par l'application utilise pour le filtrage */ -- cgit v1.1 From 214894a6685c10e3a0576e3f2acef2977f3d1b7d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:05 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/Ivy.h | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 451a6c7..e2258b7 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -2,12 +2,9 @@ // ////////////////////////////////////////////////////////////////////// -#if !defined(AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_) -#define AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 + #ifdef WIN32 #ifdef IVY_EXPORTS class _declspec(dllexport) IvyWatcher; @@ -33,18 +30,18 @@ class Ivy { private: - UINT applicationPort; + unsigned short applicationPort; void SendSubscriptions(IvyApplication *app); public: void AddApplication( IvyApplication *app ); void RemoveApplication( IvyApplication *app); - BOOL CheckConnected( IvyApplication *app ); - BOOL CheckRegexp( const char *exp ); + bool CheckConnected( IvyApplication *app ); + bool CheckRegexp( const char *exp ); void CallApplicationConnectedCallback( IvyApplication *app ); void CallApplicationDisconnectedCallback( IvyApplication *app ); - BOOL CallDieCallback( IvyApplication *app, int id, const char *arg ); + bool CallDieCallback( IvyApplication *app, int id, const char *arg ); void CallDirectMessageCallback( IvyApplication *app, int id, const char *arg ); void CallMessageCallback( IvyApplication *app, int id, int argc, const char **argv ); @@ -58,7 +55,7 @@ public: int SendMsg( const char *message ); const char *GetDomain(const char *domainlist); - UINT GetApplicationPort(); + unsigned short GetApplicationPort(); int BindMsg( const char *regexp, IvyMessageCallback *cb ); void UnbindMsg( int id ); Ivy( const char *name, const char* ready, IvyApplicationCallback *callback, bool Synchronous = true ); @@ -67,7 +64,7 @@ public: virtual ~Ivy(); /* message a emettre sur connection nouvelle application */ - String ready_message; + string ready_message; protected: bool synchronous; // use Window Shink to made CB mono thread like @@ -77,22 +74,20 @@ protected: IvyDirectMessageCallback *direct_callback; IvyApplicationCallback *application_callback; /* list des adresses de broadcast */ - String domain; + string domain; /* nom de l'appliction */ - String appname; + string appname; /* liste des clients connectes */ CRITICAL_SECTION m_application_cs; - typedef std::list IvyApplicationList; + typedef list IvyApplicationList; IvyApplicationList applications; /* liste des souscriptions locale a emettre aux autres applications */ - std::vector regexp_out; + vector regexp_out; /* liste des callbacks a appeler */ - std::vector< IvyMessageCallback* > callbacks; + vector< IvyMessageCallback* > callbacks; /* classes de messages emis par l'application utilise pour le filtrage */ int messages_classes_count; const char **messages_classes; }; - -#endif // !defined(AFX_BUS_H__F7F08FE9_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From 71900ebe5eb5c5649f3a1743295a97c9edab4fca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:07 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/Ivy.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index e2258b7..da73f08 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -10,11 +10,15 @@ class _declspec(dllexport) IvyWatcher; class _declspec(dllexport) IvyApplication; class _declspec(dllexport) Ivy; +class _declspec(dllexport) CThreadedSocket; +class _declspec(dllexport) CBufferedSocket; #else #pragma comment(lib,"Ivy.LIB" ) class _declspec(dllimport) IvyWatcher; class _declspec(dllimport) IvyApplication; class _declspec(dllimport) Ivy; +class _declspec(dllimport) CThreadedSocket; +class _declspec(dllimport) CBufferedSocket; #endif #endif -- cgit v1.1 From de259aa0ec84e486e0c4e41b7b210061c4a469ad Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:09 +0000 Subject: Utilisateur : Fcolin Date : 18/10/01 Heure : 18:32 Archivé dans $/Ivy (vss 6) --- Ivy/Ivy.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index da73f08..77636ed 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -22,8 +22,6 @@ class _declspec(dllimport) CBufferedSocket; #endif #endif -#include "stdafx.h" - #include "IvyCallback.h" class IvyWatcher; -- cgit v1.1 From 5c51566c46abd63b37fea5f64c9b5b8ae5c5df31 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:11 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 7) --- Ivy/Ivy.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 77636ed..02538d7 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -22,6 +22,27 @@ class _declspec(dllimport) CBufferedSocket; #endif #endif +#include + +#ifndef UNDER_CE +#define STL +#endif +#ifdef STL +#include +#include +#include + +using std::string; +using std::vector; +using std::list; +#else +#include "DataTypes.h" +#endif + +#pragma warning(disable: 4275) +#pragma warning(disable: 4251) +#pragma warning(disable: 4786) + #include "IvyCallback.h" class IvyWatcher; @@ -51,10 +72,11 @@ public: public: void Classes( int argc, const char **argv ); - + void SendDieMsg( IvyApplication *app ); + IvyApplication *GetApplication(const char *name); void SendDirectMsg( IvyApplication *app, int id, const char *message); void BindDirectMsg( IvyDirectMessageCallback *callback ); - int SendMsg( const char *message ); + int SendMsg( const char *message, ... ); const char *GetDomain(const char *domainlist); unsigned short GetApplicationPort(); -- cgit v1.1 From 068c8777dab6cae18e85f08d8d2425ffcfec0cf7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:13 +0000 Subject: Utilisateur : Fcolin Date : 19/06/02 Heure : 15:14 Archivé dans $/Ivy (vss 8) --- Ivy/Ivy.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 02538d7..07e18fe 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -53,7 +53,7 @@ class Ivy { private: - unsigned short applicationPort; + unsigned int applicationPort; void SendSubscriptions(IvyApplication *app); public: @@ -79,7 +79,7 @@ public: int SendMsg( const char *message, ... ); const char *GetDomain(const char *domainlist); - unsigned short GetApplicationPort(); + unsigned int GetApplicationPort(); int BindMsg( const char *regexp, IvyMessageCallback *cb ); void UnbindMsg( int id ); Ivy( const char *name, const char* ready, IvyApplicationCallback *callback, bool Synchronous = true ); -- cgit v1.1 From c20e4834742ba86360be15092e34d34845083073 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:15 +0000 Subject: Utilisateur : Fcolin Date : 6/01/03 Heure : 14:47 Archivé dans $/Bus/Ivy Commentaire: (vss 9) --- Ivy/Ivy.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 07e18fe..c861fae 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -52,7 +52,7 @@ class IvyApplication; class Ivy { private: - + int regexp_id; unsigned int applicationPort; void SendSubscriptions(IvyApplication *app); @@ -81,6 +81,7 @@ public: const char *GetDomain(const char *domainlist); unsigned int GetApplicationPort(); int BindMsg( const char *regexp, IvyMessageCallback *cb ); + int BindMsg( IvyMessageCallback *cb, const char *regexp, ... ); void UnbindMsg( int id ); Ivy( const char *name, const char* ready, IvyApplicationCallback *callback, bool Synchronous = true ); void start(const char *domain); -- cgit v1.1 From 239cf6df4b6d30950869b5ecefaeaaacc3eda91b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:17 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/Ivy.h | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index c861fae..185f93d 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -24,20 +24,7 @@ class _declspec(dllimport) CBufferedSocket; #include -#ifndef UNDER_CE -#define STL -#endif -#ifdef STL -#include -#include -#include - -using std::string; -using std::vector; -using std::list; -#else #include "DataTypes.h" -#endif #pragma warning(disable: 4275) #pragma warning(disable: 4251) -- cgit v1.1 From bb7e4c76744e4b9684e95757eb58fd6c06560fcb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:19 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 11) --- Ivy/Ivy.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 185f93d..7c6b523 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -76,7 +76,7 @@ public: virtual ~Ivy(); /* message a emettre sur connection nouvelle application */ - string ready_message; + ivy::string ready_message; protected: bool synchronous; // use Window Shink to made CB mono thread like @@ -86,18 +86,18 @@ protected: IvyDirectMessageCallback *direct_callback; IvyApplicationCallback *application_callback; /* list des adresses de broadcast */ - string domain; + ivy::string domain; /* nom de l'appliction */ - string appname; + ivy::string appname; /* liste des clients connectes */ CRITICAL_SECTION m_application_cs; - typedef list IvyApplicationList; + typedef ivy::list IvyApplicationList; IvyApplicationList applications; /* liste des souscriptions locale a emettre aux autres applications */ - vector regexp_out; + ivy::vector regexp_out; /* liste des callbacks a appeler */ - vector< IvyMessageCallback* > callbacks; + ivy::vector< IvyMessageCallback* > callbacks; /* classes de messages emis par l'application utilise pour le filtrage */ int messages_classes_count; const char **messages_classes; -- cgit v1.1 From bac78b00bd3f02e949ffa370fb2ae18641c32b23 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:21 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 12) --- Ivy/Ivy.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 7c6b523..fea2a93 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -26,10 +26,6 @@ class _declspec(dllimport) CBufferedSocket; #include "DataTypes.h" -#pragma warning(disable: 4275) -#pragma warning(disable: 4251) -#pragma warning(disable: 4786) - #include "IvyCallback.h" class IvyWatcher; -- cgit v1.1 From 1e1ff4438b0ccea93ccf5a746ff6c1fd8a3a4666 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:23 +0000 Subject: Utilisateur : Fcolin Date : 17/11/05 Heure : 15:08 Archivé dans $/Bus/Ivy Commentaire: nice Bug in nextArg not reentrant routine due to static variable (vss 13) --- Ivy/Ivy.h | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index fea2a93..7536f32 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -28,18 +28,41 @@ class _declspec(dllimport) CBufferedSocket; #include "IvyCallback.h" -class IvyWatcher; - -class IvyApplication; class Ivy { + friend class IvyWatcher; + + friend class IvyApplication; + private: int regexp_id; unsigned int applicationPort; void SendSubscriptions(IvyApplication *app); + bool synchronous; // use Window Shink to made CB mono thread like + IvyApplication * server; + IvyWatcher * watcher; + IvyDieCallback *die_callback; + IvyDirectMessageCallback *direct_callback; + IvyApplicationCallback *application_callback; + /* list des adresses de broadcast */ + ivy::string domain; + /* nom de l'appliction */ + ivy::string appname; + /* liste des clients connectes */ + CRITICAL_SECTION m_application_cs; + typedef ivy::list IvyApplicationList; + IvyApplicationList applications; -public: + /* liste des souscriptions locale a emettre aux autres applications */ + ivy::vector regexp_out; + /* liste des callbacks a appeler */ + ivy::vector< IvyMessageCallback* > callbacks; + /* classes de messages emis par l'application utilise pour le filtrage */ + int messages_classes_count; + const char **messages_classes; + +protected: void AddApplication( IvyApplication *app ); void RemoveApplication( IvyApplication *app); @@ -75,27 +98,6 @@ public: ivy::string ready_message; protected: - bool synchronous; // use Window Shink to made CB mono thread like - IvyApplication * server; - IvyWatcher * watcher; - IvyDieCallback *die_callback; - IvyDirectMessageCallback *direct_callback; - IvyApplicationCallback *application_callback; - /* list des adresses de broadcast */ - ivy::string domain; - /* nom de l'appliction */ - ivy::string appname; - /* liste des clients connectes */ - CRITICAL_SECTION m_application_cs; - typedef ivy::list IvyApplicationList; - IvyApplicationList applications; - /* liste des souscriptions locale a emettre aux autres applications */ - ivy::vector regexp_out; - /* liste des callbacks a appeler */ - ivy::vector< IvyMessageCallback* > callbacks; - /* classes de messages emis par l'application utilise pour le filtrage */ - int messages_classes_count; - const char **messages_classes; }; -- cgit v1.1 From 8760f54d8e7bec49438691895c88278480cf236d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:25 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 14) --- Ivy/Ivy.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 7536f32..38527ea 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -22,10 +22,20 @@ class _declspec(dllimport) CBufferedSocket; #endif #endif -#include +#ifdef IVY_USE_OWN_DATATYPES #include "DataTypes.h" +#else + +#include +#include +#include + +namespace ivy = std; + +#endif + #include "IvyCallback.h" -- cgit v1.1 From edb7e6c16b0825f319619b9a308e97509447a9e0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:27 +0000 Subject: Utilisateur : Fcolin Date : 29/11/05 Heure : 18:47 Archivé dans $/Bus/Ivy Commentaire: (vss 15) --- Ivy/Ivy.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 38527ea..806c205 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -107,7 +107,5 @@ public: /* message a emettre sur connection nouvelle application */ ivy::string ready_message; -protected: - }; -- cgit v1.1 From f00e0cfa7fe02afa232ee5d4f3fd634e9ea78c2e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:29 +0000 Subject: Utilisateur : Fcolin Date : 23/05/06 Heure : 18:18 Archivé dans $/Bus/Ivy Commentaire: Modification protocol UDP (vss 16) --- Ivy/Ivy.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 806c205..ddbc752 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -58,7 +58,9 @@ private: /* list des adresses de broadcast */ ivy::string domain; /* nom de l'appliction */ - ivy::string appname; + ivy::string ApplicationName; + /* Aplication Unique ID */ + ivy::string ApplicationID; /* liste des clients connectes */ CRITICAL_SECTION m_application_cs; typedef ivy::list IvyApplicationList; @@ -84,7 +86,7 @@ protected: void CallDirectMessageCallback( IvyApplication *app, int id, const char *arg ); void CallMessageCallback( IvyApplication *app, int id, int argc, const char **argv ); - + const char *GenApplicationUniqueIdentifier(); public: void Classes( int argc, const char **argv ); -- cgit v1.1 From 1d992982b8385d757a9a9cce4f20077b70bff108 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:31 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 17) --- Ivy/Ivy.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index ddbc752..08977cd 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -55,6 +55,7 @@ private: IvyDieCallback *die_callback; IvyDirectMessageCallback *direct_callback; IvyApplicationCallback *application_callback; + IvyBindingCallback *binding_callback; /* list des adresses de broadcast */ ivy::string domain; /* nom de l'appliction */ @@ -82,14 +83,18 @@ protected: bool CheckRegexp( const char *exp ); void CallApplicationConnectedCallback( IvyApplication *app ); void CallApplicationDisconnectedCallback( IvyApplication *app ); + void CallBindingAddCallback(IvyApplication * app, int id, const char * regexp); + void CallBindingRemoveCallback(IvyApplication * app, int id, const char * regexp); + void CallBindingFilterCallback(IvyApplication * app, int id, const char * regexp); bool CallDieCallback( IvyApplication *app, int id, const char *arg ); void CallDirectMessageCallback( IvyApplication *app, int id, const char *arg ); void CallMessageCallback( IvyApplication *app, int id, int argc, const char **argv ); const char *GenApplicationUniqueIdentifier(); public: - - void Classes( int argc, const char **argv ); + + void SetBindCallback( IvyBindingCallback* bind_callback ); + void SetFilter( int argc, const char **argv ); void SendDieMsg( IvyApplication *app ); IvyApplication *GetApplication(const char *name); void SendDirectMsg( IvyApplication *app, int id, const char *message); -- cgit v1.1 From eb10d0ca0c53bffa9956cb182c662c1df4b5f9f4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:33 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Archivé dans $/Bus/Ivy Commentaire: Separation module de traitement regexp (vss 18) --- Ivy/Ivy.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 08977cd..ee55e22 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -71,16 +71,12 @@ private: ivy::vector regexp_out; /* liste des callbacks a appeler */ ivy::vector< IvyMessageCallback* > callbacks; - /* classes de messages emis par l'application utilise pour le filtrage */ - int messages_classes_count; - const char **messages_classes; - + protected: void AddApplication( IvyApplication *app ); void RemoveApplication( IvyApplication *app); bool CheckConnected( IvyApplication *app ); - bool CheckRegexp( const char *exp ); void CallApplicationConnectedCallback( IvyApplication *app ); void CallApplicationDisconnectedCallback( IvyApplication *app ); void CallBindingAddCallback(IvyApplication * app, int id, const char * regexp); -- cgit v1.1 From c09ff411bfd2401bf1e62ed457c2460ffa338f9e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:35 +0000 Subject: Utilisateur : Fcolin Date : 6/06/06 Heure : 16:43 Archivé dans $/Bus/Ivy Commentaire: (vss 19) --- Ivy/Ivy.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index ee55e22..fe204f7 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -31,6 +31,7 @@ class _declspec(dllimport) CBufferedSocket; #include #include #include +#include namespace ivy = std; -- cgit v1.1 From 1c9db09141be61792996e21ed2f534c6a1e8eb5e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:37 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/Ivy Commentaire: (vss 20) --- Ivy/Ivy.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index fe204f7..9bf137b 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -88,6 +88,10 @@ protected: void CallMessageCallback( IvyApplication *app, int id, int argc, const char **argv ); const char *GenApplicationUniqueIdentifier(); + + /* message a emettre sur connection nouvelle application */ + ivy::string ready_message; + public: void SetBindCallback( IvyBindingCallback* bind_callback ); @@ -108,8 +112,6 @@ public: void stop(); virtual ~Ivy(); - /* message a emettre sur connection nouvelle application */ - ivy::string ready_message; }; -- cgit v1.1 From b990a6aff7b0ff2657f6acf9b63e5a691d3ef2d6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:39 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Archivé dans $/Bus/Ivy Commentaire: (vss 21) --- Ivy/Ivy.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 9bf137b..78e87ca 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -74,6 +74,7 @@ private: ivy::vector< IvyMessageCallback* > callbacks; protected: + void SubstituteInterval (const char *src, char *dst, size_t dst_len); void AddApplication( IvyApplication *app ); void RemoveApplication( IvyApplication *app); -- cgit v1.1 From b357419b3ee411d032ea8a061a2764e52f4356e6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:41 +0000 Subject: Utilisateur : Fcolin Date : 22/01/07 Heure : 13:56 Archivé dans $/Bus/Ivy Commentaire: pour eviter les Warning sur les lib standarts (vss 22) --- Ivy/Ivy.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.h b/Ivy/Ivy.h index 78e87ca..cf90bdd 100644 --- a/Ivy/Ivy.h +++ b/Ivy/Ivy.h @@ -4,6 +4,7 @@ #pragma once +#pragma warning(disable: 4251) #ifdef WIN32 #ifdef IVY_EXPORTS -- cgit v1.1 From d96d8eede291a98b769d420fadda6fab5e746aa6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:43 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:34 Créé Commentaire: (vss 1) --- Ivy/Ivy.vcproj | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 Ivy/Ivy.vcproj diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj new file mode 100644 index 0000000..754d4c1 --- /dev/null +++ b/Ivy/Ivy.vcproj @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From e8fc397b27e337273cdf722b543662f24a152d2f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:45 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 15:53 Archivé dans $/Ivy Commentaire: (vss 2) --- Ivy/Ivy.vcproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 754d4c1..891b860 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,6 +3,7 @@ ProjectType="Visual C++" Version="7.00" Name="Ivy" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" SccProjectName=""$/Ivy", NBEAAAAA" SccAuxPath="" SccLocalPath="." -- cgit v1.1 From 71157dee388d3a95c82ca7c1d02d46bc349fa496 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:47 +0000 Subject: Utilisateur : Fcolin Date : 11/06/02 Heure : 18:34 Archivé dans $/Ivy Commentaire: (vss 3) --- Ivy/Ivy.vcproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 891b860..1af96da 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -47,7 +47,8 @@ SuppressStartupBanner="TRUE" GenerateDebugInformation="TRUE" ProgramDatabaseFile=".\Debug/Ivy.pdb" - ImportLibrary=".\Debug/Ivy.lib"/> + ImportLibrary=".\Debug/Ivy.lib" + TargetMachine="1"/> + CharacterSet="0"> + ImportLibrary=".\Debug/Ivy.lib"/> + CharacterSet="2"> -- cgit v1.1 From 6df69dcb52a2b0faa318840888c45b7e606decd3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:57:57 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/Bus/Ivy Commentaire: (vss 8) --- Ivy/Ivy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 8de782b..b18939a 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -14,7 +14,7 @@ + CharacterSet="0"> + Name="VCPostBuildEventTool" + Description="Copying libraries, headers & dll's..." + CommandLine="copy "$(TargetDir)$(TargetName).dll" "C:\users\fcolin\Program Files\$(OutDir)" +copy "$(TargetDir)$(TargetName).lib" "C:\users\fcolin\Program Files\lib\$(OutDir)" +copy Ivy.h "C:\users\fcolin\Program Files\Include\" +copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" +copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" +copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" +copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\""/> + Name="VCPostBuildEventTool" + Description="Copying libraries, headers & dll's..." + CommandLine="copy "$(TargetDir)$(TargetName).dll" "C:\users\fcolin\Program Files\$(OutDir)" +copy "$(TargetDir)$(TargetName).lib" "C:\users\fcolin\Program Files\lib\$(OutDir)" +copy Ivy.h "C:\users\fcolin\Program Files\Include\" +copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" +copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" +copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" +copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\""/> -- cgit v1.1 From 72324c03ec0c0eeca61dce4a9e17a2c11c332339 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:09 +0000 Subject: Utilisateur : Fcolin Date : 16/12/02 Heure : 10:12 Archivé dans $/Bus/Ivy Commentaire: Nouvelle version sans GLUT (vss 14) --- Ivy/Ivy.vcproj | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 85b050f..22d8a2c 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -65,7 +65,8 @@ copy Ivy.h "C:\users\fcolin\Program Files\Include\" copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" -copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\""/> +copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" +"/> Name="VCCLCompilerTool" AdditionalOptions="" InlineFunctionExpansion="1" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IVY_EXPORTS" + PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;IVY_EXPORTS" StringPooling="TRUE" RuntimeLibrary="2" EnableFunctionLevelLinking="TRUE" @@ -128,7 +129,8 @@ copy Ivy.h "C:\users\fcolin\Program Files\Include\" copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" -copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\""/> +copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" +"/> + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 02a99bfffab6cf5d1a5c64f8ed5c542772951c85 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:15 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 14:02 Archivé dans $/Bus/Ivy Commentaire: Passage a la lib PCRE (vss 17) --- Ivy/Ivy.vcproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 87ef2ea..8fecdd9 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -24,7 +24,8 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;IVY_EXPORTS;NO_IVY_DEBUG" + AdditionalIncludeDirectories=""C:\Program Files\GnuWin32\include"" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;IVY_EXPORTS;NO_IVY_DEBUG;USE_PCRE" BasicRuntimeChecks="3" RuntimeLibrary="3" BufferSecurityCheck="TRUE" @@ -43,9 +44,10 @@ -- cgit v1.1 From 3d0d36aa152ce5b6aaac1bcc7ab540e7df74a358 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:17 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 18:40 Archivé dans $/Bus/Ivy Commentaire: modif pour lecture dans le scenario de la config center et radius affiché (vss 18) --- Ivy/Ivy.vcproj | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 8fecdd9..1d888f6 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -25,7 +25,7 @@ AdditionalOptions="" Optimization="0" AdditionalIncludeDirectories=""C:\Program Files\GnuWin32\include"" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;IVY_EXPORTS;NO_IVY_DEBUG;USE_PCRE" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;IVY_EXPORTS;NO_IVY_DEBUG" BasicRuntimeChecks="3" RuntimeLibrary="3" BufferSecurityCheck="TRUE" @@ -100,6 +100,7 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" Name="VCCLCompilerTool" AdditionalOptions="" InlineFunctionExpansion="1" + AdditionalIncludeDirectories=""C:\Program Files\GnuWin32\include"" PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;IVY_EXPORTS" StringPooling="TRUE" RuntimeLibrary="2" @@ -116,9 +117,10 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" + + + + + - - - - - @@ -299,6 +298,9 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" RelativePath=".\IvyCbindings.h"> + + - - -- cgit v1.1 From af73ca15252b447b65c8bbd7d66685803d9470ff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:21 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:51 Archivé dans $/Bus/Ivy Commentaire: (vss 20) --- Ivy/Ivy.vcproj | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 7943699..7f39b34 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -105,7 +105,8 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" StringPooling="TRUE" RuntimeLibrary="2" EnableFunctionLevelLinking="TRUE" - UsePrecompiledHeader="2" + UsePrecompiledHeader="3" + PrecompiledHeaderThrough="IvyStdAfx.h" PrecompiledHeaderFile=".\Release/Ivy.pch" AssemblerListingLocation=".\Release/" ObjectFile=".\Release/" @@ -262,6 +263,12 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" Name="VCCLCompilerTool" UsePrecompiledHeader="1"/> + + + @@ -274,6 +281,12 @@ copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" + + + @@ -141,7 +142,7 @@ copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" -"/> +copy DataTypes.h "C:\users\fcolin\Program Files\Include\""/> @@ -142,7 +143,8 @@ copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" -copy DataTypes.h "C:\users\fcolin\Program Files\Include\""/> +copy DataTypes.h "C:\users\fcolin\Program Files\Include\" +"/> + SccProvider="MSSCCI:Microsoft Visual SourceSafe" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + SuppressStartupBanner="true" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + + + Name="VCPreLinkEventTool" + /> + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + /> + Name="VCALinkTool" + /> + + + + + + + CommandLine="rem copy "$(TargetDir)$(TargetName).dll" "C:\users\fcolin\Program Files\$(OutDir)" rem copy "$(TargetDir)$(TargetName).lib" "C:\users\fcolin\Program Files\lib\$(OutDir)" rem copy Ivy.h "C:\users\fcolin\Program Files\Include\" rem copy IvyApplication.h "C:\users\fcolin\Program Files\Include\" rem copy IvyCallback.h "C:\users\fcolin\Program Files\Include\" rem copy BufferedSocket.h "C:\users\fcolin\Program Files\Include\" rem copy ThreadedSocket.h "C:\users\fcolin\Program Files\Include\" rem copy DataTypes.h "C:\users\fcolin\Program Files\Include\" " + /> + + + + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + Culture="1036" + /> + + + + + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCWebDeploymentTool" + /> + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + - + SuppressStartupBanner="true" + /> + Name="VCManagedResourceCompilerTool" + /> + Culture="1036" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + AdditionalDependencies="wsock32.lib" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCWebDeploymentTool" + /> + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + + SuppressStartupBanner="true" + Detect64BitPortabilityProblems="true" + /> + Name="VCManagedResourceCompilerTool" + /> - + Culture="1036" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + AdditionalDependencies="wsock32.lib" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + TargetMachine="17" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCWebDeploymentTool" + /> + + + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + RelativePath=".\BufferedSocket.cxx" + > + RelativePath=".\Ivy.cxx" + > + RelativePath=".\IvyApplication.cxx" + > + RelativePath=".\IvyCbindings.cxx" + > + RelativePath=".\IvyDllMain.cpp" + > + RelativePath=".\IvyStdAfx.cpp" + > + + + + + + + Name="Release|Win32" + > + UsePrecompiledHeader="1" + /> + Name="Release|x64" + > + UsePrecompiledHeader="1" + /> + RelativePath=".\IvySynchroWnd.cxx" + > + RelativePath=".\IvyWatcher.cxx" + > + RelativePath=".\Regexp.cxx" + > + RelativePath=".\ThreadedSocket.cxx" + > + + + + Name="Release|x64" + > + UsePrecompiledHeader="2" + /> + Filter="h;hpp;hxx;hm;inl" + > + RelativePath=".\BufferedSocket.h" + > + RelativePath=".\DataTypes.h" + > + RelativePath=".\Ivy.h" + > + RelativePath=".\IvyApplication.h" + > + RelativePath=".\IvyCallback.h" + > + RelativePath=".\IvyCbindings.h" + > + RelativePath=".\IvyStdAfx.h" + > + RelativePath=".\IvySynchroWnd.h" + > + RelativePath=".\IvyWatcher.h" + > + RelativePath=".\Regexp.h" + > + RelativePath=".\ThreadedSocket.h" + > + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > -- cgit v1.1 From d2521edcc6464a5aeb023b524475f2575dc46843 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:31 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 25) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 93f8f8d..ea66f8c 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 76c3c45a5a3a22e08656b16f93a92dc3a93ec12a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:33 +0000 Subject: Utilisateur : Fcolin Date : 29/11/05 Heure : 18:47 Archivé dans $/Bus/Ivy Commentaire: (vss 26) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ea66f8c..93f8f8d 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 30a785964b4a79646dfe32d4988cd84f2fa6b5b0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:35 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus/Ivy Commentaire: (vss 27) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 93f8f8d..ea66f8c 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 454c814a3bcbe0c8e79f0a244f4af51e3a9a1797 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:37 +0000 Subject: Utilisateur : Fcolin Date : 14/12/05 Heure : 11:21 Archivé dans $/Bus/Ivy Commentaire: (vss 28) --- Ivy/Ivy.vcproj | 66 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ea66f8c..fa055af 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -113,13 +113,14 @@ /> -- cgit v1.1 From aeaadb9a8cc3dd7acb08948d4e2343d11f1492ac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:43 +0000 Subject: Utilisateur : Fcolin Date : 22/12/05 Heure : 10:09 Archivé dans $/Bus/Ivy Commentaire: (vss 31) --- Ivy/Ivy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index be6a4f5..c7fe386 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -386,7 +386,7 @@ -- cgit v1.1 From 890b8afa8267b27ed79536168f892ecc45234fb1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:45 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Archivé dans $/Bus/Ivy Commentaire: (vss 32) --- Ivy/Ivy.vcproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index c7fe386..b7e8c69 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -288,8 +288,8 @@ /> -- cgit v1.1 From 0b93291c3ee853954b55621ceda32d89d03a84dd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:49 +0000 Subject: Utilisateur : Fcolin Date : 2/02/06 Heure : 10:48 Archivé dans $/Bus/Ivy Commentaire: (vss 34) --- Ivy/Ivy.vcproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 4a5fbd8..b0b97bc 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -511,6 +511,10 @@ > + + -- cgit v1.1 From 14adba27a2e8c42c58b6c76ddb04d9b4e7a7c382 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:51 +0000 Subject: Utilisateur : Fcolin Date : 28/03/06 Heure : 17:45 Archivé dans $/Bus/Ivy Commentaire: (vss 35) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index b0b97bc..cdfcb25 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 22a7779802349afeb58bd688b675531c83b8bbbe Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:53 +0000 Subject: Utilisateur : Fcolin Date : 31/03/06 Heure : 17:46 Archivé dans $/Bus/Ivy Commentaire: (vss 36) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index cdfcb25..b0b97bc 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 928a91c1c54ffbabcc831adbae246c0897bcbafe Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:58:55 +0000 Subject: Utilisateur : Fcolin Date : 11/04/06 Heure : 11:18 Archivé dans $/Bus/Ivy Commentaire: (vss 37) --- Ivy/Ivy.vcproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index b0b97bc..6f57927 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -190,6 +190,7 @@ /> - - -- cgit v1.1 From 515e62f9b5fe2b60611ee5e9526516197e0681a2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:03 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Archivé dans $/Bus/Ivy Commentaire: Separation module de traitement regexp (vss 41) --- Ivy/Ivy.vcproj | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 4816888..ce0f3c0 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -200,8 +200,7 @@ /> + + @@ -504,6 +507,10 @@ > + + -- cgit v1.1 From 516adcee82535508ac26947ec8de5862911d6e79 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:05 +0000 Subject: Utilisateur : Fcolin Date : 6/06/06 Heure : 16:43 Archivé dans $/Bus/Ivy Commentaire: (vss 42) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ce0f3c0..7706147 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 13a76681e88fefd44da4f4f31e754628523c787e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:07 +0000 Subject: Utilisateur : Fcolin Date : 6/07/06 Heure : 11:37 Archivé dans $/Bus/Ivy Commentaire: (vss 43) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 7706147..ce0f3c0 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 4317e8dab3ba7c2c555c79e72e5cba33fc16fd04 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:09 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 9:48 Archivé dans $/Bus/Ivy Commentaire: (vss 44) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ce0f3c0..7706147 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 63b944708b463f8d5cd83883d42f8c86d34119a5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:11 +0000 Subject: Utilisateur : Fcolin Date : 2/08/06 Heure : 18:08 Archivé dans $/Bus/Ivy Commentaire: (vss 45) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 7706147..ce0f3c0 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From ca340719e77c6a7a7397bfcdcf46cffcb70fc9e7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:13 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/Ivy Commentaire: (vss 46) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ce0f3c0..7706147 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 4c86806e19bec37f9ef931af30cea67aba3b7882 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:15 +0000 Subject: Utilisateur : Fcolin Date : 11/08/06 Heure : 11:42 Archivé dans $/Bus/Ivy Commentaire: modif TRACE MUTEX (vss 47) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 7706147..ce0f3c0 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From 0229cc94684d7d0ae0f0959d472a8344927a9a65 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:17 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Archivé dans $/Bus/Ivy Commentaire: (vss 48) --- Ivy/Ivy.vcproj | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index ce0f3c0..1a0c185 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -398,6 +398,42 @@ > + + + + + + + + + + + + + + @@ -499,6 +535,10 @@ > + + -- cgit v1.1 From 4f5aec6957094109e2c9a958a39cb8919b8e89dc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:19 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 18:11 Archivé dans $/Bus/Ivy Commentaire: ajout intervalRegexp (vss 49) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 1a0c185..f9e983a 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From ca900b0e1c1404ce20773565870e9ad128117618 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:21 +0000 Subject: Utilisateur : Fcolin Date : 10/11/06 Heure : 13:43 Archivé dans $/Bus/Ivy Commentaire: (vss 50) --- Ivy/Ivy.vcproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index f9e983a..1a0c185 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." -- cgit v1.1 From c22678b9ac993e1cd43ccb52eeab214007880776 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:23 +0000 Subject: Utilisateur : Fcolin Date : 20/11/06 Heure : 18:36 Archivé dans $/Bus/Ivy Commentaire: (vss 51) --- Ivy/Ivy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 1a0c185..5d1ef01 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{9BD87B7A-517E-4900-B3EA-A358885CD876}" + ProjectGUID="{84E0039A-6721-4B18-9792-E9AE4274AC0E}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -385,7 +385,7 @@ -- cgit v1.1 From aef65fa5cab9d61efb9c7209c5d9e94b90dffba5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:25 +0000 Subject: Utilisateur : Fcolin Date : 24/11/06 Heure : 12:47 Archivé dans $/Bus/Ivy Commentaire: (vss 52) --- Ivy/Ivy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/Ivy.vcproj b/Ivy/Ivy.vcproj index 5d1ef01..f9e983a 100644 --- a/Ivy/Ivy.vcproj +++ b/Ivy/Ivy.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="8,00" Name="Ivy" - ProjectGUID="{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + ProjectGUID="{9818D652-CC05-463E-880D-AFCA2C7BFABE}" RootNamespace="Ivy" SccProjectName=""$/Bus/Ivy", QPEAAAAA" SccLocalPath="." @@ -385,7 +385,7 @@ -- cgit v1.1 From f99d050c1f337f4cb0b7bf149797d6f072fb4444 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:27 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Créé Commentaire: (vss 1) --- Ivy/Ivy.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/Ivy.vcproj.vspscc diff --git a/Ivy/Ivy.vcproj.vspscc b/Ivy/Ivy.vcproj.vspscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/Ivy/Ivy.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From cb4acfaf1f4b6a1a1fe0ee4722592022893f1d2a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:29 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyApplication.cxx | 307 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 Ivy/IvyApplication.cxx diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx new file mode 100644 index 0000000..26d0adf --- /dev/null +++ b/Ivy/IvyApplication.cxx @@ -0,0 +1,307 @@ +// IvyApplication.cpp : implementation file +// + +#include "stdafx.h" +//#include "libIvy.h" +#include "IvyApplication.h" +#include "Regexp.h" + +//#define DEBUG + +#define ARG_START "\002" +#define ARG_END "\003" + + +///////////////////////////////////////////////////////////////////////////// +// IvyApplication + +IvyApplication::IvyApplication(Ivy * bus) +{ + this->bus = bus; + remoteService = 0; /* unknown or unconnected application */ + appname = "Unknown"; + AppConnectedCallbackCalled = false; +} + +IvyApplication::~IvyApplication() +{ +// bus->RemoveApplication( this ); + for ( int i = 0; i < regexp_in.size(); i++) + delete regexp_in[i]; + regexp_in.clear(); + if ( m_hSocket != INVALID_SOCKET ) + Close(); +} + + +///////////////////////////////////////////////////////////////////////////// +// IvyApplication member functions + + +void IvyApplication::Create(const char* host, UINT & port) +{ + // Exception to catch + CBufferedSocket::Create(); + Connect(host, port); +} + + + +UINT IvyApplication::Create() +{ + string host; + UINT port; + CBufferedSocket::Create(); + // Max Listen Connexion + Listen( SOMAXCONN ); + GetSockName( host, port ); + TRACE(" TCP %s:%d\n", host.c_str(), port ); +#ifdef DEBUG + TRACE( "IvyApplication::Create server socket %d\n", m_hSocket ); +#endif + return port; +} + +void IvyApplication::OnReceive(char * line) +{ + int err,id; + int kind_of_msg = Bye; + Regexp *exp; + + + int argc = 0; + const char *argv[Regexp::NSUBEXP]; + char *arg; + +#ifdef DEBUG + TRACE("Receive %s\n",line); +#endif //DEBUG + + err = sscanf( line ,"%d %d", &kind_of_msg, &id); + arg = strstr( line , ARG_START ); + if ( (err != 2) || (arg == NULL) ) + { + TRACE("Quitting bad format %s\n", line); + SendMsg(Error, Error, "bad format request expected 'type id ...'"); +// bus->RemoveApplication( this ); + Close(); + return; + } + arg++; + switch( kind_of_msg ) + { + case Bye: + +#ifdef DEBUG + TRACE("Quitting %s\n", line); +#endif //DEBUG + +// bus->RemoveApplication( this ); + Close(); + break; + case Error: + +#ifdef DEBUG + TRACE("Receive error %d %s\n", id, arg); +#endif //DEBUG + + break; + case AddRegexp: + +#ifdef DEBUG + TRACE("Regexp id=%d exp='%s'\n", id, arg); +#endif //DEBUG + + if ( !bus->CheckRegexp( arg ) ) + { +#ifdef DEBUG + TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname); +#endif //DEBUG + return; + } + exp = new Regexp( arg ); + if ( !exp->CompiledOK() ) + { + string regerr = exp->GetErrorString(); + string err; + err = "Error can't compile regexp '"+string(arg)+"' error "+regerr; + SendMsg( Error, Error, err.c_str() ); + TRACE("IvyApplication %s\n",err.c_str()); + return; + } + if ( id +1 < regexp_in.size() ) + regexp_in[ id ] = exp ; + else regexp_in.push_back( exp ); + break; + case DelRegexp: + +#ifdef DEBUG + TRACE("Regexp Delete id=%d\n", id); +#endif //DEBUG + if ( id < regexp_in.size() ) + { + exp = regexp_in[ id ]; + delete exp; + regexp_in[ id ] = NULL ; + } + break; + case StartRegexp: + +#ifdef DEBUG + TRACE("Regexp Start id=%d\n", id); +#endif //DEBUG + + appname = arg; + /* remote socket port */ + remoteService = id; + if ( bus->CheckConnected( this ) ) + { + TRACE("Quitting already connected %s\n", appname); + SendMsg( Error, Error, "already connected" ); +// bus->RemoveApplication( this ); + Close(); + } + break; + case EndRegexp: + +#ifdef DEBUG + TRACE("Regexp End id=%d\n", id); +#endif //DEBUG + + bus->CallApplicationConnectedCallback( this ); + AppConnectedCallbackCalled = true; + if ( !bus->ready_message.empty() ) + SendMsg( bus->ready_message.c_str() ); + break; + case Msg: + +#ifdef DEBUG + TRACE("Message id=%d msg='%s'\n", id, arg); +#endif //DEBUG + + arg = strtok( arg, ARG_END); + while ( arg ) + { + argv[argc++] = arg; + arg = strtok( NULL, ARG_END ); + } + bus->CallMessageCallback( this, id, argc, argv ); + break; + case DirectMsg: + +#ifdef DEBUG + TRACE("Direct Message id=%d msg='%s'\n", id, arg); +#endif //DEBUG + + bus->CallDirectMessageCallback( this, id, arg ); + break; + case Die: + +#ifdef DEBUG + TRACE("Die Message id=%d msg='%s'\n", id, arg); +#endif //DEBUG + + if ( bus->CallDieCallback( this, id, arg ) ) + { + PostMessage( NULL, WM_CLOSE, 0, 0); + } + break; + + default: + TRACE("Receive unhandled message %s\n", line); + break; + } +} + + +void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) +{ + char buffer[1024]; + if ( arg ) + sprintf( buffer, "%d %d" ARG_START "%s\n", msg, id, arg ); + else sprintf( buffer, "%d %d" ARG_START "\n", msg, id ); + +#ifdef DEBUG + TRACE("SendMsg %s\n",buffer); +#endif //DEBUG + Send( buffer ); +} + +void IvyApplication::OnAccept(int nErrorCode) +{ + string remotehost; + UINT remoteport; + + // construct a new, empty socket + + IvyApplication *newapp = new IvyApplication(bus); + + // accept connection + + Accept( *newapp ); + newapp->GetPeerName( remotehost, remoteport ); + TRACE("Connexion de %s:%u\n", remotehost.c_str(), remoteport ); + bus->AddApplication( newapp ); +} + +void IvyApplication::OnClose(int nErrorCode) +{ + string remotehost; + UINT remoteport; + GetPeerName( remotehost, remoteport ); + TRACE("Deconnexion de %s:%u\n", remotehost.c_str(), remoteport ); + if ( AppConnectedCallbackCalled ) + bus->CallApplicationDisconnectedCallback( this ); +// bus->RemoveApplication( this ); + for ( int i = 0; i < regexp_in.size(); i++) + delete regexp_in[i]; + regexp_in.clear(); + Close(); +} + +int IvyApplication::SendMsg(const char *message) +{ + int count = 0; + Regexp *exp; + + /* send to already connected */ + for ( int id = 0; id < regexp_in.size(); id++ ) + { + exp = regexp_in[ id ]; + + if ( exp && exp->Match( message ) ) + { + string buffer; + for ( int i = 1; i < exp->SubStrings()+1; i++ ) + { + buffer += (*exp)[i]; + buffer += ARG_END; + } + SendMsg( Msg, id, buffer.c_str() ); + count++; + } + } + return count; +} + +const char *IvyApplication::GetName(void) +{ +return appname.c_str(); +} + + +BOOL IvyApplication::SameApplication(IvyApplication * app) +{ + string host1; + UINT port1; + string host2; + UINT port2; + if ( (remoteService != 0) && (remoteService == app->remoteService) ) + { + GetPeerName( host1, port1 ); + app->GetPeerName( host2, port2 ); + TRACE( "IvyApplication::SameApplication %s:%d %s:%d\n", host1.c_str(),port1, host2.c_str(),port2); + return ( host1 == host2 ); + } + return false; +} -- cgit v1.1 From 2e418cb4dd7804abf714cea0fb94903bad70a985 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:31 +0000 Subject: Utilisateur : Fcolin Date : 20/07/00 Heure : 10:57 Archivé dans $/Ivy (vss 2) --- Ivy/IvyApplication.cxx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 26d0adf..de43bd0 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -129,20 +129,18 @@ void IvyApplication::OnReceive(char * line) TRACE("IvyApplication %s\n",err.c_str()); return; } - if ( id +1 < regexp_in.size() ) - regexp_in[ id ] = exp ; - else regexp_in.push_back( exp ); + regexp_in[ id ] = exp ; break; case DelRegexp: #ifdef DEBUG TRACE("Regexp Delete id=%d\n", id); #endif //DEBUG - if ( id < regexp_in.size() ) + if ( regexp_in.find(id) != regexp_in.end() ) { exp = regexp_in[ id ]; delete exp; - regexp_in[ id ] = NULL ; + regexp_in.erase( id ); } break; case StartRegexp: @@ -263,11 +261,12 @@ int IvyApplication::SendMsg(const char *message) { int count = 0; Regexp *exp; - + map::iterator iter; /* send to already connected */ - for ( int id = 0; id < regexp_in.size(); id++ ) + if ( !regexp_in.empty() ) + for ( iter = regexp_in.begin(); iter != regexp_in.end(); iter++ ) { - exp = regexp_in[ id ]; + exp = (*iter).second; if ( exp && exp->Match( message ) ) { @@ -277,7 +276,7 @@ int IvyApplication::SendMsg(const char *message) buffer += (*exp)[i]; buffer += ARG_END; } - SendMsg( Msg, id, buffer.c_str() ); + SendMsg( Msg, (*iter).first, buffer.c_str() ); count++; } } -- cgit v1.1 From 98f393ff247e0073b052cd7484584719cf93fdaf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:33 +0000 Subject: Utilisateur : Fcolin Date : 30/11/00 Heure : 15:34 Archivé dans $/Ivy Commentaire: pb sur l'exit le postMessage se fait sur une Thread Ivy donc pas de fenetre (vss 3) --- Ivy/IvyApplication.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index de43bd0..cd0e70c 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -202,6 +202,7 @@ void IvyApplication::OnReceive(char * line) if ( bus->CallDieCallback( this, id, arg ) ) { PostMessage( NULL, WM_CLOSE, 0, 0); + exit(-1); } break; -- cgit v1.1 From db8db20b17a99485aaa54d8839f044acb99d29b9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:35 +0000 Subject: Utilisateur : Fcolin Date : 16/01/01 Heure : 14:56 Archivé dans $/Ivy (vss 4) --- Ivy/IvyApplication.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index cd0e70c..d949845 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -115,7 +115,7 @@ void IvyApplication::OnReceive(char * line) if ( !bus->CheckRegexp( arg ) ) { #ifdef DEBUG - TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname); + TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname.c_str()); #endif //DEBUG return; } @@ -154,7 +154,7 @@ void IvyApplication::OnReceive(char * line) remoteService = id; if ( bus->CheckConnected( this ) ) { - TRACE("Quitting already connected %s\n", appname); + TRACE("Quitting already connected %s\n", appname.c_str()); SendMsg( Error, Error, "already connected" ); // bus->RemoveApplication( this ); Close(); -- cgit v1.1 From 439a1c2233af689583e026d1841578b241b335d0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:37 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 5) --- Ivy/IvyApplication.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index d949845..79110e1 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -49,7 +49,7 @@ void IvyApplication::Create(const char* host, UINT & port) UINT IvyApplication::Create() { - string host; + String host; UINT port; CBufferedSocket::Create(); // Max Listen Connexion @@ -122,9 +122,9 @@ void IvyApplication::OnReceive(char * line) exp = new Regexp( arg ); if ( !exp->CompiledOK() ) { - string regerr = exp->GetErrorString(); - string err; - err = "Error can't compile regexp '"+string(arg)+"' error "+regerr; + String regerr = exp->GetErrorString(); + String err; + err = "Error can't compile regexp '"+String(arg)+"' error "+regerr; SendMsg( Error, Error, err.c_str() ); TRACE("IvyApplication %s\n",err.c_str()); return; @@ -228,7 +228,7 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) void IvyApplication::OnAccept(int nErrorCode) { - string remotehost; + String remotehost; UINT remoteport; // construct a new, empty socket @@ -245,7 +245,7 @@ void IvyApplication::OnAccept(int nErrorCode) void IvyApplication::OnClose(int nErrorCode) { - string remotehost; + String remotehost; UINT remoteport; GetPeerName( remotehost, remoteport ); TRACE("Deconnexion de %s:%u\n", remotehost.c_str(), remoteport ); @@ -262,7 +262,7 @@ int IvyApplication::SendMsg(const char *message) { int count = 0; Regexp *exp; - map::iterator iter; + std::map::iterator iter; /* send to already connected */ if ( !regexp_in.empty() ) for ( iter = regexp_in.begin(); iter != regexp_in.end(); iter++ ) @@ -271,7 +271,7 @@ int IvyApplication::SendMsg(const char *message) if ( exp && exp->Match( message ) ) { - string buffer; + String buffer; for ( int i = 1; i < exp->SubStrings()+1; i++ ) { buffer += (*exp)[i]; @@ -292,9 +292,9 @@ return appname.c_str(); BOOL IvyApplication::SameApplication(IvyApplication * app) { - string host1; + String host1; UINT port1; - string host2; + String host2; UINT port2; if ( (remoteService != 0) && (remoteService == app->remoteService) ) { -- cgit v1.1 From a2ad73d7b7c3812434be4d82eb1155dc4e6a6380 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:39 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 6) --- Ivy/IvyApplication.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 79110e1..7d55bf1 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -49,7 +49,7 @@ void IvyApplication::Create(const char* host, UINT & port) UINT IvyApplication::Create() { - String host; + string host; UINT port; CBufferedSocket::Create(); // Max Listen Connexion @@ -122,9 +122,9 @@ void IvyApplication::OnReceive(char * line) exp = new Regexp( arg ); if ( !exp->CompiledOK() ) { - String regerr = exp->GetErrorString(); - String err; - err = "Error can't compile regexp '"+String(arg)+"' error "+regerr; + string regerr = exp->GetErrorString(); + string err; + err = "Error can't compile regexp '"+string(arg)+"' error "+regerr; SendMsg( Error, Error, err.c_str() ); TRACE("IvyApplication %s\n",err.c_str()); return; @@ -228,7 +228,7 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) void IvyApplication::OnAccept(int nErrorCode) { - String remotehost; + string remotehost; UINT remoteport; // construct a new, empty socket @@ -245,7 +245,7 @@ void IvyApplication::OnAccept(int nErrorCode) void IvyApplication::OnClose(int nErrorCode) { - String remotehost; + string remotehost; UINT remoteport; GetPeerName( remotehost, remoteport ); TRACE("Deconnexion de %s:%u\n", remotehost.c_str(), remoteport ); @@ -271,7 +271,7 @@ int IvyApplication::SendMsg(const char *message) if ( exp && exp->Match( message ) ) { - String buffer; + string buffer; for ( int i = 1; i < exp->SubStrings()+1; i++ ) { buffer += (*exp)[i]; @@ -292,9 +292,9 @@ return appname.c_str(); BOOL IvyApplication::SameApplication(IvyApplication * app) { - String host1; + string host1; UINT port1; - String host2; + string host2; UINT port2; if ( (remoteService != 0) && (remoteService == app->remoteService) ) { -- cgit v1.1 From 86f4b157ddaee8993b6e5b9591967a077ff8ff85 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:41 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 7) --- Ivy/IvyApplication.cxx | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 7d55bf1..cbb3ee6 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -2,7 +2,12 @@ // #include "stdafx.h" -//#include "libIvy.h" + +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif + #include "IvyApplication.h" #include "Regexp.h" @@ -26,7 +31,7 @@ IvyApplication::IvyApplication(Ivy * bus) IvyApplication::~IvyApplication() { // bus->RemoveApplication( this ); - for ( int i = 0; i < regexp_in.size(); i++) + for ( unsigned int i = 0; i < regexp_in.size(); i++) delete regexp_in[i]; regexp_in.clear(); if ( m_hSocket != INVALID_SOCKET ) @@ -122,25 +127,27 @@ void IvyApplication::OnReceive(char * line) exp = new Regexp( arg ); if ( !exp->CompiledOK() ) { - string regerr = exp->GetErrorString(); - string err; - err = "Error can't compile regexp '"+string(arg)+"' error "+regerr; + string err( "Error can't compile regexp '" ); + err += arg; + err += "' error "; + err += exp->GetErrorString(); SendMsg( Error, Error, err.c_str() ); TRACE("IvyApplication %s\n",err.c_str()); return; } - regexp_in[ id ] = exp ; + regexp_in.reserve( id +1 ); + regexp_in[ id ] = exp; break; case DelRegexp: #ifdef DEBUG TRACE("Regexp Delete id=%d\n", id); #endif //DEBUG - if ( regexp_in.find(id) != regexp_in.end() ) + if ( regexp_in[id] ) { exp = regexp_in[ id ]; delete exp; - regexp_in.erase( id ); + regexp_in[ id ] = NULL; } break; case StartRegexp: @@ -252,7 +259,7 @@ void IvyApplication::OnClose(int nErrorCode) if ( AppConnectedCallbackCalled ) bus->CallApplicationDisconnectedCallback( this ); // bus->RemoveApplication( this ); - for ( int i = 0; i < regexp_in.size(); i++) + for ( unsigned int i = 0; i < regexp_in.size(); i++) delete regexp_in[i]; regexp_in.clear(); Close(); @@ -262,12 +269,10 @@ int IvyApplication::SendMsg(const char *message) { int count = 0; Regexp *exp; - std::map::iterator iter; /* send to already connected */ - if ( !regexp_in.empty() ) - for ( iter = regexp_in.begin(); iter != regexp_in.end(); iter++ ) + for ( unsigned int i = 0; i < regexp_in.size(); i++ ) { - exp = (*iter).second; + exp = regexp_in[i]; if ( exp && exp->Match( message ) ) { @@ -277,7 +282,7 @@ int IvyApplication::SendMsg(const char *message) buffer += (*exp)[i]; buffer += ARG_END; } - SendMsg( Msg, (*iter).first, buffer.c_str() ); + SendMsg( Msg, i, buffer.c_str() ); count++; } } -- cgit v1.1 From a46b379fb2a8a1399606db6a753c85a6546f5336 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:43 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 8) --- Ivy/IvyApplication.cxx | 52 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index cbb3ee6..ef72bd1 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -11,7 +11,7 @@ #include "IvyApplication.h" #include "Regexp.h" -//#define DEBUG +#define IVY_DEBUG #define ARG_START "\002" #define ARG_END "\003" @@ -61,7 +61,7 @@ UINT IvyApplication::Create() Listen( SOMAXCONN ); GetSockName( host, port ); TRACE(" TCP %s:%d\n", host.c_str(), port ); -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE( "IvyApplication::Create server socket %d\n", m_hSocket ); #endif return port; @@ -78,9 +78,9 @@ void IvyApplication::OnReceive(char * line) const char *argv[Regexp::NSUBEXP]; char *arg; -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Receive %s\n",line); -#endif //DEBUG +#endif //IVY_DEBUG err = sscanf( line ,"%d %d", &kind_of_msg, &id); arg = strstr( line , ARG_START ); @@ -97,31 +97,31 @@ void IvyApplication::OnReceive(char * line) { case Bye: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Quitting %s\n", line); -#endif //DEBUG +#endif //IVY_DEBUG // bus->RemoveApplication( this ); Close(); break; case Error: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Receive error %d %s\n", id, arg); -#endif //DEBUG +#endif //IVY_DEBUG break; case AddRegexp: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Regexp id=%d exp='%s'\n", id, arg); -#endif //DEBUG +#endif //IVY_DEBUG if ( !bus->CheckRegexp( arg ) ) { -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname.c_str()); -#endif //DEBUG +#endif //IVY_DEBUG return; } exp = new Regexp( arg ); @@ -140,9 +140,9 @@ void IvyApplication::OnReceive(char * line) break; case DelRegexp: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Regexp Delete id=%d\n", id); -#endif //DEBUG +#endif //IVY_DEBUG if ( regexp_in[id] ) { exp = regexp_in[ id ]; @@ -152,9 +152,9 @@ void IvyApplication::OnReceive(char * line) break; case StartRegexp: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Regexp Start id=%d\n", id); -#endif //DEBUG +#endif //IVY_DEBUG appname = arg; /* remote socket port */ @@ -169,9 +169,9 @@ void IvyApplication::OnReceive(char * line) break; case EndRegexp: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Regexp End id=%d\n", id); -#endif //DEBUG +#endif //IVY_DEBUG bus->CallApplicationConnectedCallback( this ); AppConnectedCallbackCalled = true; @@ -180,9 +180,9 @@ void IvyApplication::OnReceive(char * line) break; case Msg: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Message id=%d msg='%s'\n", id, arg); -#endif //DEBUG +#endif //IVY_DEBUG arg = strtok( arg, ARG_END); while ( arg ) @@ -194,17 +194,17 @@ void IvyApplication::OnReceive(char * line) break; case DirectMsg: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Direct Message id=%d msg='%s'\n", id, arg); -#endif //DEBUG +#endif //IVY_DEBUG bus->CallDirectMessageCallback( this, id, arg ); break; case Die: -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("Die Message id=%d msg='%s'\n", id, arg); -#endif //DEBUG +#endif //IVY_DEBUG if ( bus->CallDieCallback( this, id, arg ) ) { @@ -227,9 +227,9 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) sprintf( buffer, "%d %d" ARG_START "%s\n", msg, id, arg ); else sprintf( buffer, "%d %d" ARG_START "\n", msg, id ); -#ifdef DEBUG +#ifdef IVY_DEBUG TRACE("SendMsg %s\n",buffer); -#endif //DEBUG +#endif //IVY_DEBUG Send( buffer ); } -- cgit v1.1 From 2ffcb31f76e9358254f9da9d9cefb9441a10dcaf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:45 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:37 Archivé dans $/Ivy (vss 9) --- Ivy/IvyApplication.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index ef72bd1..2d1f937 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -11,7 +11,7 @@ #include "IvyApplication.h" #include "Regexp.h" -#define IVY_DEBUG +//#define IVY_DEBUG #define ARG_START "\002" #define ARG_END "\003" @@ -137,6 +137,9 @@ void IvyApplication::OnReceive(char * line) } regexp_in.reserve( id +1 ); regexp_in[ id ] = exp; +#ifdef IVY_DEBUG + TRACE("Adding regexp[%d]='%s'\n",id,arg); +#endif //IVY_DEBUG break; case DelRegexp: @@ -277,9 +280,9 @@ int IvyApplication::SendMsg(const char *message) if ( exp && exp->Match( message ) ) { string buffer; - for ( int i = 1; i < exp->SubStrings()+1; i++ ) + for ( int j = 1; j < exp->SubStrings()+1; j++ ) { - buffer += (*exp)[i]; + buffer += (*exp)[j]; buffer += ARG_END; } SendMsg( Msg, i, buffer.c_str() ); -- cgit v1.1 From f95aae747dc2b2511bd934d3084b24c77e895cf0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:47 +0000 Subject: Utilisateur : Fcolin Date : 6/06/01 Heure : 8:50 Archivé dans $/Ivy Commentaire: Pb avec vector resize reserve et ajout de regexp !!! => replace list (vss 10) --- Ivy/IvyApplication.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 2d1f937..6d3b7ea 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -135,10 +135,10 @@ void IvyApplication::OnReceive(char * line) TRACE("IvyApplication %s\n",err.c_str()); return; } - regexp_in.reserve( id +1 ); + regexp_in.resize( id +1 ); regexp_in[ id ] = exp; #ifdef IVY_DEBUG - TRACE("Adding regexp[%d]='%s'\n",id,arg); + TRACE("Adding regexp[%d]='%s' size:%d\n",id,arg,regexp_in.size()); #endif //IVY_DEBUG break; case DelRegexp: -- cgit v1.1 From 362bf21b18d9bfd64e598d0a259f5d38bce5e7ac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:49 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 11) --- Ivy/IvyApplication.cxx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 6d3b7ea..245381a 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -3,11 +3,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif - #include "IvyApplication.h" #include "Regexp.h" -- cgit v1.1 From d48ae3305891a6fab5d9ae1eee90afbe57934eb1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:51 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 16:44 Archivé dans $/Ivy Commentaire: correction BUG Ivy socket Listen apres start Listener et regexp_in.resize (vss 12) --- Ivy/IvyApplication.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 245381a..33d62b0 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -6,7 +6,7 @@ #include "IvyApplication.h" #include "Regexp.h" -//#define IVY_DEBUG +#define IVY_DEBUG #define ARG_START "\002" #define ARG_END "\003" @@ -130,10 +130,11 @@ void IvyApplication::OnReceive(char * line) TRACE("IvyApplication %s\n",err.c_str()); return; } - regexp_in.resize( id +1 ); + if ( regexp_in.size() < (id + 1) ) + regexp_in.resize( id + 1 ); regexp_in[ id ] = exp; #ifdef IVY_DEBUG - TRACE("Adding regexp[%d]='%s' size:%d\n",id,arg,regexp_in.size()); + TRACE("Adding regexp[%d]='%s' size: %d\n",id,arg,regexp_in.size()); #endif //IVY_DEBUG break; case DelRegexp: -- cgit v1.1 From fd1b7bce694095d4cecb2724b6dfe71449f16f6f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:53 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 16:53 Archivé dans $/Ivy (vss 13) --- Ivy/IvyApplication.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 33d62b0..b27b77b 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -6,7 +6,7 @@ #include "IvyApplication.h" #include "Regexp.h" -#define IVY_DEBUG +//#define IVY_DEBUG #define ARG_START "\002" #define ARG_END "\003" -- cgit v1.1 From 0a4563c486f43bf613730d1f00fb7ba876eae868 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:55 +0000 Subject: Utilisateur : Fcolin Date : 8/10/01 Heure : 14:15 Archivé dans $/Ivy Commentaire: bug strtok si argument vide !!! (vss 14) --- Ivy/IvyApplication.cxx | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index b27b77b..7f798c2 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -11,7 +11,25 @@ #define ARG_START "\002" #define ARG_END "\003" - +/* +function like strok but do not eat consecutive separator +*/ +static char * nextArg( char *s, const char *separator ) +{ + static char *start = NULL; + static char *end = NULL; + if ( s ) + { + end = s; + } + start = end; + + while ( *end && *end != *separator ) + end++; + if ( *end == *separator ) *end++ = '\0'; + if ( end == start ) return NULL; + return start; +} ///////////////////////////////////////////////////////////////////////////// // IvyApplication @@ -183,11 +201,11 @@ void IvyApplication::OnReceive(char * line) TRACE("Message id=%d msg='%s'\n", id, arg); #endif //IVY_DEBUG - arg = strtok( arg, ARG_END); + arg = nextArg( arg, ARG_END); while ( arg ) { argv[argc++] = arg; - arg = strtok( NULL, ARG_END ); + arg = nextArg( NULL, ARG_END ); } bus->CallMessageCallback( this, id, argc, argv ); break; -- cgit v1.1 From 1da73b3dd4ed8ef47e7b1367ad99c5c1070423ff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:57 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 12:53 Archivé dans $/Ivy Commentaire: (vss 15) --- Ivy/IvyApplication.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 7f798c2..c4d4ed0 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -82,7 +82,8 @@ UINT IvyApplication::Create() void IvyApplication::OnReceive(char * line) { - int err,id; + int err; + unsigned int id; int kind_of_msg = Bye; Regexp *exp; -- cgit v1.1 From 67abfec93d33a97a97433e01d9efa78ab430ea45 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 12:59:59 +0000 Subject: Utilisateur : Fcolin Date : 14/11/02 Heure : 15:45 Archivé dans $/Bus/Ivy Commentaire: (vss 16) --- Ivy/IvyApplication.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index c4d4ed0..96023c7 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -11,6 +11,16 @@ #define ARG_START "\002" #define ARG_END "\003" +static char * firstArg( char *s, const char *separator ) +{ + char *ptr = s; + + while ( *ptr && *ptr != *separator ) + ptr++; + if ( *ptr == *separator ) + return ptr++ ; + else return NULL; +} /* function like strok but do not eat consecutive separator */ @@ -97,7 +107,7 @@ void IvyApplication::OnReceive(char * line) #endif //IVY_DEBUG err = sscanf( line ,"%d %d", &kind_of_msg, &id); - arg = strstr( line , ARG_START ); + arg = firstArg( line , ARG_START ); if ( (err != 2) || (arg == NULL) ) { TRACE("Quitting bad format %s\n", line); -- cgit v1.1 From 4cd382a0d401eb9a4447473555d82d30a8d44e16 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:01 +0000 Subject: Utilisateur : Fcolin Date : 15/12/03 Heure : 16:54 Archivé dans $/Bus/Ivy Commentaire: (vss 17) --- Ivy/IvyApplication.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 96023c7..008be70 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -126,7 +126,8 @@ void IvyApplication::OnReceive(char * line) #endif //IVY_DEBUG // bus->RemoveApplication( this ); - Close(); + OnClose(0); + //Close(); break; case Error: -- cgit v1.1 From fc091c2b6c66878f01575c3c24121f3dde9450a3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:03 +0000 Subject: Utilisateur : Fcolin Date : 9/02/04 Heure : 16:14 Archivé dans $/Bus/Ivy Commentaire: (vss 18) --- Ivy/IvyApplication.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 008be70..f0d4f75 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -287,11 +287,12 @@ void IvyApplication::OnClose(int nErrorCode) TRACE("Deconnexion de %s:%u\n", remotehost.c_str(), remoteport ); if ( AppConnectedCallbackCalled ) bus->CallApplicationDisconnectedCallback( this ); -// bus->RemoveApplication( this ); + for ( unsigned int i = 0; i < regexp_in.size(); i++) delete regexp_in[i]; regexp_in.clear(); Close(); +// bus->RemoveApplication( this ); } int IvyApplication::SendMsg(const char *message) -- cgit v1.1 From 3340cd8c77dc2335915a3bb9a766f9a089774e1d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:05 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 14:02 Archivé dans $/Bus/Ivy Commentaire: Passage a la lib PCRE (vss 19) --- Ivy/IvyApplication.cxx | 66 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index f0d4f75..faafaf4 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -4,7 +4,8 @@ #include "stdafx.h" #include "IvyApplication.h" -#include "Regexp.h" + + //#define IVY_DEBUG @@ -55,7 +56,10 @@ IvyApplication::~IvyApplication() { // bus->RemoveApplication( this ); for ( unsigned int i = 0; i < regexp_in.size(); i++) +#ifdef USE_PCRE +#else delete regexp_in[i]; +#endif regexp_in.clear(); if ( m_hSocket != INVALID_SOCKET ) Close(); @@ -95,12 +99,19 @@ void IvyApplication::OnReceive(char * line) int err; unsigned int id; int kind_of_msg = Bye; + char *arg; + int argc = 0; + +#ifdef USE_PCRE + pcre *exp; + const char *argv[max_subexp]; + const char *errmsg; + int erroffset; +#else Regexp *exp; - - - int argc = 0; const char *argv[Regexp::NSUBEXP]; - char *arg; +#endif + #ifdef IVY_DEBUG TRACE("Receive %s\n",line); @@ -149,6 +160,19 @@ void IvyApplication::OnReceive(char * line) #endif //IVY_DEBUG return; } +#ifdef USE_PCRE + exp = pcre_compile( arg, PCRE_CASELESS, &errmsg, &erroffset, NULL ); + if ( !exp ) + { + string err( "Error can't compile regexp '" ); + err += arg; + err += "' error "; + err += errmsg; + SendMsg( Error, Error, err.c_str() ); + TRACE("IvyApplication %s\n",err.c_str()); + return; + } +#else exp = new Regexp( arg ); if ( !exp->CompiledOK() ) { @@ -160,6 +184,7 @@ void IvyApplication::OnReceive(char * line) TRACE("IvyApplication %s\n",err.c_str()); return; } +#endif if ( regexp_in.size() < (id + 1) ) regexp_in.resize( id + 1 ); regexp_in[ id ] = exp; @@ -175,7 +200,10 @@ void IvyApplication::OnReceive(char * line) if ( regexp_in[id] ) { exp = regexp_in[ id ]; +#ifdef USE_PCRE +#else delete exp; +#endif regexp_in[ id ] = NULL; } break; @@ -289,7 +317,11 @@ void IvyApplication::OnClose(int nErrorCode) bus->CallApplicationDisconnectedCallback( this ); for ( unsigned int i = 0; i < regexp_in.size(); i++) +#ifdef USE_PCRE + pcre_free( regexp_in[i] ); +#else delete regexp_in[i]; +#endif regexp_in.clear(); Close(); // bus->RemoveApplication( this ); @@ -298,12 +330,33 @@ void IvyApplication::OnClose(int nErrorCode) int IvyApplication::SendMsg(const char *message) { int count = 0; +#ifdef USE_PCRE + pcre *exp; + int ovector[max_subexp*3]; +#else Regexp *exp; +#endif /* send to already connected */ for ( unsigned int i = 0; i < regexp_in.size(); i++ ) { exp = regexp_in[i]; - +#ifdef USE_PCRE + int match_count = pcre_exec( exp, NULL, message, strlen( message ), 0, 0, ovector, max_subexp ); + if ( match_count > 1 ) + { + string buffer; + const char *substring; + for ( int j = 1; j < match_count; j++ ) + { + pcre_get_substring(message, ovector, match_count, j, &substring); + buffer += substring; + buffer += ARG_END; + pcre_free_substring( substring ); + } + SendMsg( Msg, i, buffer.c_str() ); + count++; + } +#else if ( exp && exp->Match( message ) ) { string buffer; @@ -315,6 +368,7 @@ int IvyApplication::SendMsg(const char *message) SendMsg( Msg, i, buffer.c_str() ); count++; } +#endif } return count; } -- cgit v1.1 From 03f69b1c55a75ecf83a81ec4a342b924c95b68e5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:07 +0000 Subject: Utilisateur : Fcolin Date : 8/03/05 Heure : 15:20 Archivé dans $/Bus/Ivy Commentaire: Bug en cas d'expression vide de subexpression (vss 20) --- Ivy/IvyApplication.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index faafaf4..23abfbf 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -342,7 +342,7 @@ int IvyApplication::SendMsg(const char *message) exp = regexp_in[i]; #ifdef USE_PCRE int match_count = pcre_exec( exp, NULL, message, strlen( message ), 0, 0, ovector, max_subexp ); - if ( match_count > 1 ) + if ( match_count > 0 ) { string buffer; const char *substring; -- cgit v1.1 From 009f570f9c4e60137201d782d7c1f6a3b918232f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:09 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 21) --- Ivy/IvyApplication.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 23abfbf..3eaecdb 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -1,7 +1,7 @@ // IvyApplication.cpp : implementation file // -#include "stdafx.h" +#include "IvyStdAfx.h" #include "IvyApplication.h" @@ -281,7 +281,7 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) { char buffer[1024]; if ( arg ) - sprintf( buffer, "%d %d" ARG_START "%s\n", msg, id, arg ); + _snprintf( buffer, sizeof( buffer ), "%d %d" ARG_START "%s\n", msg, id, arg ); else sprintf( buffer, "%d %d" ARG_START "\n", msg, id ); #ifdef IVY_DEBUG -- cgit v1.1 From f872905e098d43cc350bfad3903a8ce9756e07e2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:11 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 22) --- Ivy/IvyApplication.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 3eaecdb..fb399a6 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -81,7 +81,7 @@ void IvyApplication::Create(const char* host, UINT & port) UINT IvyApplication::Create() { - string host; + ivy::string host; UINT port; CBufferedSocket::Create(); // Max Listen Connexion @@ -164,7 +164,7 @@ void IvyApplication::OnReceive(char * line) exp = pcre_compile( arg, PCRE_CASELESS, &errmsg, &erroffset, NULL ); if ( !exp ) { - string err( "Error can't compile regexp '" ); + ivy::string err( "Error can't compile regexp '" ); err += arg; err += "' error "; err += errmsg; @@ -176,7 +176,7 @@ void IvyApplication::OnReceive(char * line) exp = new Regexp( arg ); if ( !exp->CompiledOK() ) { - string err( "Error can't compile regexp '" ); + ivy::string err( "Error can't compile regexp '" ); err += arg; err += "' error "; err += exp->GetErrorString(); @@ -292,7 +292,7 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) void IvyApplication::OnAccept(int nErrorCode) { - string remotehost; + ivy::string remotehost; UINT remoteport; // construct a new, empty socket @@ -309,7 +309,7 @@ void IvyApplication::OnAccept(int nErrorCode) void IvyApplication::OnClose(int nErrorCode) { - string remotehost; + ivy::string remotehost; UINT remoteport; GetPeerName( remotehost, remoteport ); TRACE("Deconnexion de %s:%u\n", remotehost.c_str(), remoteport ); @@ -344,7 +344,7 @@ int IvyApplication::SendMsg(const char *message) int match_count = pcre_exec( exp, NULL, message, strlen( message ), 0, 0, ovector, max_subexp ); if ( match_count > 0 ) { - string buffer; + ivy::string buffer; const char *substring; for ( int j = 1; j < match_count; j++ ) { @@ -359,7 +359,7 @@ int IvyApplication::SendMsg(const char *message) #else if ( exp && exp->Match( message ) ) { - string buffer; + ivy::string buffer; for ( int j = 1; j < exp->SubStrings()+1; j++ ) { buffer += (*exp)[j]; @@ -381,9 +381,9 @@ return appname.c_str(); BOOL IvyApplication::SameApplication(IvyApplication * app) { - string host1; + ivy::string host1; UINT port1; - string host2; + ivy::string host2; UINT port2; if ( (remoteService != 0) && (remoteService == app->remoteService) ) { -- cgit v1.1 From 914228ac4531f1ea31ae2987ab875017a28e3b57 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:13 +0000 Subject: Utilisateur : Fcolin Date : 14/06/05 Heure : 11:02 Archivé dans $/Bus/Ivy Commentaire: get all the pcre sublist in one time (vss 23) --- Ivy/IvyApplication.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index fb399a6..91a2d98 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -345,14 +345,14 @@ int IvyApplication::SendMsg(const char *message) if ( match_count > 0 ) { ivy::string buffer; - const char *substring; + const char **substring; + pcre_get_substring_list(message,ovector, match_count, &substring); for ( int j = 1; j < match_count; j++ ) { - pcre_get_substring(message, ovector, match_count, j, &substring); - buffer += substring; + buffer += substring[j]; buffer += ARG_END; - pcre_free_substring( substring ); } + pcre_free_substring_list(substring); SendMsg( Msg, i, buffer.c_str() ); count++; } -- cgit v1.1 From 80dc36e4b37ee8b6de9b9b3d6954f6ec11d43324 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:15 +0000 Subject: Utilisateur : Fcolin Date : 14/06/05 Heure : 11:37 Archivé dans $/Bus/Ivy Commentaire: (vss 24) --- Ivy/IvyApplication.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 91a2d98..7ed553c 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -346,7 +346,12 @@ int IvyApplication::SendMsg(const char *message) { ivy::string buffer; const char **substring; - pcre_get_substring_list(message,ovector, match_count, &substring); + int err = pcre_get_substring_list(message,ovector, match_count, &substring); + if ( err != 0 ) + { + SendMsg( Error, Error, "Memory Alloc Error" ); + } + else { for ( int j = 1; j < match_count; j++ ) { buffer += substring[j]; @@ -355,6 +360,7 @@ int IvyApplication::SendMsg(const char *message) pcre_free_substring_list(substring); SendMsg( Msg, i, buffer.c_str() ); count++; + } } #else if ( exp && exp->Match( message ) ) -- cgit v1.1 From 66549353d2e6f98710579f6af961e2d10ec2b031 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:17 +0000 Subject: Utilisateur : Fcolin Date : 28/06/05 Heure : 14:14 Archivé dans $/Bus/Ivy Commentaire: (vss 25) --- Ivy/IvyApplication.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 7ed553c..6aa3668 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -57,6 +57,7 @@ IvyApplication::~IvyApplication() // bus->RemoveApplication( this ); for ( unsigned int i = 0; i < regexp_in.size(); i++) #ifdef USE_PCRE + pcre_free( regexp_in[i] ); #else delete regexp_in[i]; #endif @@ -201,6 +202,7 @@ void IvyApplication::OnReceive(char * line) { exp = regexp_in[ id ]; #ifdef USE_PCRE + pcre_free( exp ); #else delete exp; #endif -- cgit v1.1 From 896c064fa646fb30d446aaf66567f81d7590f9e9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:19 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 26) --- Ivy/IvyApplication.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 6aa3668..5a50b96 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -118,7 +118,7 @@ void IvyApplication::OnReceive(char * line) TRACE("Receive %s\n",line); #endif //IVY_DEBUG - err = sscanf( line ,"%d %d", &kind_of_msg, &id); + err = sscanf_s( line ,"%d %d", &kind_of_msg, &id); arg = firstArg( line , ARG_START ); if ( (err != 2) || (arg == NULL) ) { @@ -283,8 +283,8 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) { char buffer[1024]; if ( arg ) - _snprintf( buffer, sizeof( buffer ), "%d %d" ARG_START "%s\n", msg, id, arg ); - else sprintf( buffer, "%d %d" ARG_START "\n", msg, id ); + _snprintf_s( buffer, sizeof( buffer ),sizeof( buffer )-1, "%d %d" ARG_START "%s\n", msg, id, arg ); + else sprintf_s( buffer,sizeof( buffer ), "%d %d" ARG_START "\n", msg, id ); #ifdef IVY_DEBUG TRACE("SendMsg %s\n",buffer); @@ -343,7 +343,7 @@ int IvyApplication::SendMsg(const char *message) { exp = regexp_in[i]; #ifdef USE_PCRE - int match_count = pcre_exec( exp, NULL, message, strlen( message ), 0, 0, ovector, max_subexp ); + int match_count = pcre_exec( exp, NULL, message, (int) strlen( message ), 0, 0, ovector, max_subexp ); if ( match_count > 0 ) { ivy::string buffer; -- cgit v1.1 From 2132f900f65f521c61e60a3541716104d83ee384 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:21 +0000 Subject: Utilisateur : Fcolin Date : 17/11/05 Heure : 15:08 Archivé dans $/Bus/Ivy Commentaire: nice Bug in nextArg not reentrant routine due to static variable (vss 27) --- Ivy/IvyApplication.cxx | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 5a50b96..32b89a2 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -9,36 +9,32 @@ //#define IVY_DEBUG -#define ARG_START "\002" -#define ARG_END "\003" +#define ARG_START 2 +#define ARG_END 3 -static char * firstArg( char *s, const char *separator ) +static char * firstArg( char *s, const char separator ) { char *ptr = s; - while ( *ptr && *ptr != *separator ) + while ( *ptr && *ptr != separator ) ptr++; - if ( *ptr == *separator ) + if ( *ptr == separator ) return ptr++ ; else return NULL; } /* function like strok but do not eat consecutive separator */ -static char * nextArg( char *s, const char *separator ) +static char * nextArg( char **s, const char separator ) { - static char *start = NULL; - static char *end = NULL; - if ( s ) - { - end = s; - } - start = end; + char *start = *s; + char *end = *s; - while ( *end && *end != *separator ) + while ( *end && *end != separator ) end++; - if ( *end == *separator ) *end++ = '\0'; + if ( *end == separator ) *end++ = '\0'; if ( end == start ) return NULL; + *s = end; return start; } ///////////////////////////////////////////////////////////////////////////// @@ -102,6 +98,7 @@ void IvyApplication::OnReceive(char * line) int kind_of_msg = Bye; char *arg; int argc = 0; + char *arg_ptr; #ifdef USE_PCRE pcre *exp; @@ -243,11 +240,12 @@ void IvyApplication::OnReceive(char * line) TRACE("Message id=%d msg='%s'\n", id, arg); #endif //IVY_DEBUG - arg = nextArg( arg, ARG_END); + arg_ptr = arg; + arg = nextArg( &arg_ptr, ARG_END); while ( arg ) { argv[argc++] = arg; - arg = nextArg( NULL, ARG_END ); + arg = nextArg( &arg_ptr, ARG_END ); } bus->CallMessageCallback( this, id, argc, argv ); break; @@ -283,8 +281,8 @@ void IvyApplication::SendMsg(MsgType msg, int id, const char * arg) { char buffer[1024]; if ( arg ) - _snprintf_s( buffer, sizeof( buffer ),sizeof( buffer )-1, "%d %d" ARG_START "%s\n", msg, id, arg ); - else sprintf_s( buffer,sizeof( buffer ), "%d %d" ARG_START "\n", msg, id ); + _snprintf_s( buffer, sizeof( buffer ),sizeof( buffer )-1, "%d %d%c%s\n", msg, id, ARG_START, arg ); + else sprintf_s( buffer,sizeof( buffer ), "%d %d%c\n", msg, id, ARG_START); #ifdef IVY_DEBUG TRACE("SendMsg %s\n",buffer); -- cgit v1.1 From 836c3cea5435c0313827691cb6cc71de3c872237 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:23 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 28) --- Ivy/IvyApplication.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 32b89a2..b0fa052 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -324,7 +324,7 @@ void IvyApplication::OnClose(int nErrorCode) #endif regexp_in.clear(); Close(); -// bus->RemoveApplication( this ); + //bus->RemoveApplication( this ); } int IvyApplication::SendMsg(const char *message) -- cgit v1.1 From abb65226983bbee29c17c004b75bc50918d15003 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:25 +0000 Subject: Utilisateur : Fcolin Date : 19/04/06 Heure : 15:07 Archivé dans $/Bus/Ivy Commentaire: (vss 29) --- Ivy/IvyApplication.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index b0fa052..c9ba0e4 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -162,12 +162,12 @@ void IvyApplication::OnReceive(char * line) exp = pcre_compile( arg, PCRE_CASELESS, &errmsg, &erroffset, NULL ); if ( !exp ) { - ivy::string err( "Error can't compile regexp '" ); - err += arg; - err += "' error "; - err += errmsg; - SendMsg( Error, Error, err.c_str() ); - TRACE("IvyApplication %s\n",err.c_str()); + ivy::string errstr( "Error can't compile regexp '" ); + errstr += arg; + errstr += "' error "; + errstr += errmsg; + SendMsg( Error, Error, errstr.c_str() ); + TRACE("IvyApplication %s\n",errstr.c_str()); return; } #else -- cgit v1.1 From 4a8451ff484c9fe7656acab4edd61713e2212ed6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:27 +0000 Subject: Utilisateur : Fcolin Date : 23/05/06 Heure : 18:18 Archivé dans $/Bus/Ivy Commentaire: Modification protocol UDP (vss 30) --- Ivy/IvyApplication.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index c9ba0e4..c4de075 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -67,8 +67,9 @@ IvyApplication::~IvyApplication() // IvyApplication member functions -void IvyApplication::Create(const char* host, UINT & port) +void IvyApplication::Create(const char* host, UINT & port, const char* name) { + appname = name; // Exception to catch CBufferedSocket::Create(); Connect(host, port); -- cgit v1.1 From 8e63bb805a09c8c1bd019347071dad478ea034b9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:29 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 31) --- Ivy/IvyApplication.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index c4de075..c3f6f02 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -157,6 +157,7 @@ void IvyApplication::OnReceive(char * line) #ifdef IVY_DEBUG TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname.c_str()); #endif //IVY_DEBUG + bus->CallBindingFilterCallback( this, id, arg ); return; } #ifdef USE_PCRE @@ -185,11 +186,16 @@ void IvyApplication::OnReceive(char * line) } #endif if ( regexp_in.size() < (id + 1) ) + { regexp_in.resize( id + 1 ); + regexp_str_in.resize( id + 1 ); + } regexp_in[ id ] = exp; + regexp_str_in[ id ] = arg; #ifdef IVY_DEBUG TRACE("Adding regexp[%d]='%s' size: %d\n",id,arg,regexp_in.size()); #endif //IVY_DEBUG + bus->CallBindingAddCallback( this, id, arg ); break; case DelRegexp: @@ -199,6 +205,7 @@ void IvyApplication::OnReceive(char * line) if ( regexp_in[id] ) { exp = regexp_in[ id ]; + bus->CallBindingRemoveCallback( this, id, regexp_str_in[id].c_str() ); #ifdef USE_PCRE pcre_free( exp ); #else -- cgit v1.1 From ea91919a2278f4894f11b47d1397e99f4a28f85f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:31 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Archivé dans $/Bus/Ivy Commentaire: Separation module de traitement regexp (vss 32) --- Ivy/IvyApplication.cxx | 92 ++++++++++++-------------------------------------- 1 file changed, 21 insertions(+), 71 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index c3f6f02..53341bc 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -4,7 +4,7 @@ #include "IvyStdAfx.h" #include "IvyApplication.h" - +#include "IvyBinding.h" //#define IVY_DEBUG @@ -52,11 +52,7 @@ IvyApplication::~IvyApplication() { // bus->RemoveApplication( this ); for ( unsigned int i = 0; i < regexp_in.size(); i++) -#ifdef USE_PCRE - pcre_free( regexp_in[i] ); -#else delete regexp_in[i]; -#endif regexp_in.clear(); if ( m_hSocket != INVALID_SOCKET ) Close(); @@ -100,18 +96,13 @@ void IvyApplication::OnReceive(char * line) char *arg; int argc = 0; char *arg_ptr; - -#ifdef USE_PCRE - pcre *exp; + static const int max_subexp = 200; const char *argv[max_subexp]; - const char *errmsg; - int erroffset; -#else - Regexp *exp; - const char *argv[Regexp::NSUBEXP]; -#endif - + IvyBinding *exp; + int erroffset; + const char *errmsg; + #ifdef IVY_DEBUG TRACE("Receive %s\n",line); #endif //IVY_DEBUG @@ -152,7 +143,7 @@ void IvyApplication::OnReceive(char * line) TRACE("Regexp id=%d exp='%s'\n", id, arg); #endif //IVY_DEBUG - if ( !bus->CheckRegexp( arg ) ) + if ( !IvyBinding::Filter( arg ) ) { #ifdef IVY_DEBUG TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname.c_str()); @@ -160,9 +151,8 @@ void IvyApplication::OnReceive(char * line) bus->CallBindingFilterCallback( this, id, arg ); return; } -#ifdef USE_PCRE - exp = pcre_compile( arg, PCRE_CASELESS, &errmsg, &erroffset, NULL ); - if ( !exp ) + exp = new IvyBinding(); + if ( !exp->Compile(arg, &erroffset, &errmsg ) ) { ivy::string errstr( "Error can't compile regexp '" ); errstr += arg; @@ -170,21 +160,10 @@ void IvyApplication::OnReceive(char * line) errstr += errmsg; SendMsg( Error, Error, errstr.c_str() ); TRACE("IvyApplication %s\n",errstr.c_str()); + delete exp; return; } -#else - exp = new Regexp( arg ); - if ( !exp->CompiledOK() ) - { - ivy::string err( "Error can't compile regexp '" ); - err += arg; - err += "' error "; - err += exp->GetErrorString(); - SendMsg( Error, Error, err.c_str() ); - TRACE("IvyApplication %s\n",err.c_str()); - return; - } -#endif + if ( regexp_in.size() < (id + 1) ) { regexp_in.resize( id + 1 ); @@ -206,11 +185,8 @@ void IvyApplication::OnReceive(char * line) { exp = regexp_in[ id ]; bus->CallBindingRemoveCallback( this, id, regexp_str_in[id].c_str() ); -#ifdef USE_PCRE - pcre_free( exp ); -#else + delete exp; -#endif regexp_in[ id ] = NULL; } break; @@ -325,11 +301,7 @@ void IvyApplication::OnClose(int nErrorCode) bus->CallApplicationDisconnectedCallback( this ); for ( unsigned int i = 0; i < regexp_in.size(); i++) -#ifdef USE_PCRE - pcre_free( regexp_in[i] ); -#else delete regexp_in[i]; -#endif regexp_in.clear(); Close(); //bus->RemoveApplication( this ); @@ -338,51 +310,29 @@ void IvyApplication::OnClose(int nErrorCode) int IvyApplication::SendMsg(const char *message) { int count = 0; -#ifdef USE_PCRE - pcre *exp; - int ovector[max_subexp*3]; -#else - Regexp *exp; -#endif + IvyBinding *exp; + /* send to already connected */ for ( unsigned int i = 0; i < regexp_in.size(); i++ ) { exp = regexp_in[i]; -#ifdef USE_PCRE - int match_count = pcre_exec( exp, NULL, message, (int) strlen( message ), 0, 0, ovector, max_subexp ); + int match_count = exp->Exec( message ); if ( match_count > 0 ) { ivy::string buffer; - const char **substring; - int err = pcre_get_substring_list(message,ovector, match_count, &substring); - if ( err != 0 ) - { - SendMsg( Error, Error, "Memory Alloc Error" ); - } - else { + int arglen; + const char *arg; + for ( int j = 1; j < match_count; j++ ) { - buffer += substring[j]; + exp->Match(message, j, &arglen, &arg); + buffer += arg; buffer += ARG_END; } - pcre_free_substring_list(substring); SendMsg( Msg, i, buffer.c_str() ); count++; - } } -#else - if ( exp && exp->Match( message ) ) - { - ivy::string buffer; - for ( int j = 1; j < exp->SubStrings()+1; j++ ) - { - buffer += (*exp)[j]; - buffer += ARG_END; - } - SendMsg( Msg, i, buffer.c_str() ); - count++; - } -#endif + } return count; } -- cgit v1.1 From c7734bf97cb2c4df14edd238257b95a6136c614a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:33 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 16:40 Archivé dans $/Bus/Ivy Commentaire: correction bug du a la separation du module regexp transformation des tables de regexp en table de Hash (vss 33) --- Ivy/IvyApplication.cxx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index 53341bc..bad4910 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -51,8 +51,8 @@ IvyApplication::IvyApplication(Ivy * bus) IvyApplication::~IvyApplication() { // bus->RemoveApplication( this ); - for ( unsigned int i = 0; i < regexp_in.size(); i++) - delete regexp_in[i]; + for ( Bindings::iterator iter = regexp_in.begin( ); iter != regexp_in.end( ); iter++ ) + delete iter->second; regexp_in.clear(); if ( m_hSocket != INVALID_SOCKET ) Close(); @@ -164,11 +164,11 @@ void IvyApplication::OnReceive(char * line) return; } - if ( regexp_in.size() < (id + 1) ) + /*if ( regexp_in.size() < (id + 1) ) { regexp_in.resize( id + 1 ); regexp_str_in.resize( id + 1 ); - } + }*/ regexp_in[ id ] = exp; regexp_str_in[ id ] = arg; #ifdef IVY_DEBUG @@ -300,8 +300,8 @@ void IvyApplication::OnClose(int nErrorCode) if ( AppConnectedCallbackCalled ) bus->CallApplicationDisconnectedCallback( this ); - for ( unsigned int i = 0; i < regexp_in.size(); i++) - delete regexp_in[i]; + for ( Bindings::iterator iter = regexp_in.begin( ); iter != regexp_in.end( ); iter++) + delete iter->second; regexp_in.clear(); Close(); //bus->RemoveApplication( this ); @@ -313,9 +313,11 @@ int IvyApplication::SendMsg(const char *message) IvyBinding *exp; /* send to already connected */ - for ( unsigned int i = 0; i < regexp_in.size(); i++ ) + for ( Bindings::iterator iter = regexp_in.begin( ); iter != regexp_in.end( ); iter++ ) { - exp = regexp_in[i]; + exp = iter->second; + if ( !exp ) + continue; int match_count = exp->Exec( message ); if ( match_count > 0 ) { @@ -326,10 +328,10 @@ int IvyApplication::SendMsg(const char *message) for ( int j = 1; j < match_count; j++ ) { exp->Match(message, j, &arglen, &arg); - buffer += arg; + buffer += ivy::string(arg,arglen ); buffer += ARG_END; } - SendMsg( Msg, i, buffer.c_str() ); + SendMsg( Msg, iter->first, buffer.c_str() ); count++; } -- cgit v1.1 From 27cc7f3435b1561d686aa214c5083aa2a41b39f1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:35 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 9:48 Archivé dans $/Bus/Ivy Commentaire: (vss 34) --- Ivy/IvyApplication.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Ivy/IvyApplication.cxx b/Ivy/IvyApplication.cxx index bad4910..07f37be 100644 --- a/Ivy/IvyApplication.cxx +++ b/Ivy/IvyApplication.cxx @@ -253,6 +253,19 @@ void IvyApplication::OnReceive(char * line) exit(-1); } break; + case Ping: +#ifdef IVY_DEBUG + TRACE("Ping Message\n"); +#endif //IVY_DEBUG + this->SendMsg( Pong, 0, "beurk" ); + break; + + case Pong: +#ifdef IVY_DEBUG + TRACE("Pong Message\n"); +#endif //IVY_DEBUG + TRACE("Receive unhandled Pong message (ivy-c++ not able to send ping)\n"); + break; default: TRACE("Receive unhandled message %s\n", line); -- cgit v1.1 From 500e25c685a49ff50e486a23f2171cd1b737f140 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:37 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyApplication.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Ivy/IvyApplication.h diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h new file mode 100644 index 0000000..8884735 --- /dev/null +++ b/Ivy/IvyApplication.h @@ -0,0 +1,80 @@ +#if !defined(AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// IvyApplication.h : header file +// +#include "BufferedSocket.h" +#include "Ivy.h" + +class Regexp; + +///////////////////////////////////////////////////////////////////////////// +// IvyApplication command target + +class IvyApplication : public CBufferedSocket +{ +// Attributes +public: + + + typedef enum { + + Bye, /* quit l'application ( non utilise ) */ + AddRegexp, /* expression reguliere d'un client */ + Msg, /* message reel */ + Error, /* error message */ + DelRegexp, /* Remove expression reguliere */ + EndRegexp, /* end of the regexp list */ + StartRegexp, /* debut des expressions */ + DirectMsg, /* message direct a destination de l'appli */ + Die /* demande de terminaison de l'appli */ + + }MsgType; + + +// Operations +public: + IvyApplication(Ivy *bus); + virtual ~IvyApplication(); + +// Overrides +public: + BOOL SameApplication( IvyApplication *app ); + UINT remoteService; + const char *GetName(void); + int SendMsg( const char *message ); + void SendMsg( MsgType msg, int id, const char * arg = NULL); + UINT Create(); + void OnReceive( char *line ); + void Create( const char * host, UINT &port ); + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(IvyApplication) + public: + virtual void OnAccept(int nErrorCode); + virtual void OnClose(int nErrorCode); + //}}AFX_VIRTUAL + + // Generated message map functions + //{{AFX_MSG(IvyApplication) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + +// Implementation +protected: + string appname; + bool AppConnectedCallbackCalled; + Ivy *bus; + /* liste des souscriptions remote */ + vector regexp_in; + +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From e4d99620849c75fa3c993636de25c29a1dd00d2b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:40 +0000 Subject: Utilisateur : Fcolin Date : 20/07/00 Heure : 10:57 Archivé dans $/Ivy (vss 2) --- Ivy/IvyApplication.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 8884735..d7823f0 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -68,7 +68,7 @@ protected: bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ - vector regexp_in; + map regexp_in; }; -- cgit v1.1 From f244a5f6162f4fa06f78844dc32edb8d23cf1b03 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:41 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 3) --- Ivy/IvyApplication.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index d7823f0..8a31888 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -64,11 +64,11 @@ public: // Implementation protected: - string appname; + String appname; bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ - map regexp_in; + std::map regexp_in; }; -- cgit v1.1 From bd891794763914ac8e2aed8530512eabfe5ccdfe Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:43 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/IvyApplication.h | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 8a31888..13e7534 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -1,9 +1,6 @@ -#if !defined(AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_) -#define AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 + // IvyApplication.h : header file // #include "BufferedSocket.h" @@ -50,31 +47,16 @@ public: UINT Create(); void OnReceive( char *line ); void Create( const char * host, UINT &port ); - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(IvyApplication) - public: virtual void OnAccept(int nErrorCode); virtual void OnClose(int nErrorCode); - //}}AFX_VIRTUAL - // Generated message map functions - //{{AFX_MSG(IvyApplication) - // NOTE - the ClassWizard will add and remove member functions here. - //}}AFX_MSG // Implementation protected: - String appname; + string appname; bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ - std::map regexp_in; + map regexp_in; }; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_BUSAPPLICATION_H__F7F08FE8_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From b2b0d35764eb7b161b863259fd3c85ff913382ab Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:45 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/IvyApplication.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 13e7534..2f97805 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -57,6 +57,7 @@ protected: bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ - map regexp_in; + typedef vector RegexpVector; + RegexpVector regexp_in; }; -- cgit v1.1 From 691f8caef0ed2b55a8e481d1dd62ff1fc36856c2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:47 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 6) --- Ivy/IvyApplication.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 2f97805..8549a30 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -60,4 +60,5 @@ protected: typedef vector RegexpVector; RegexpVector regexp_in; + friend class Ivy; }; -- cgit v1.1 From e3e468ae17cea2149cf3b06bd64167459adf97c9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:49 +0000 Subject: Utilisateur : Fcolin Date : 14/02/03 Heure : 18:19 Archivé dans $/Bus/Ivy Commentaire: (vss 7) --- Ivy/IvyApplication.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 8549a30..e39e4a7 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -42,6 +42,7 @@ public: BOOL SameApplication( IvyApplication *app ); UINT remoteService; const char *GetName(void); + inline Ivy *GetBus(void){ return bus;}; int SendMsg( const char *message ); void SendMsg( MsgType msg, int id, const char * arg = NULL); UINT Create(); -- cgit v1.1 From 0c6442aa2e7dbf28f99a76840e005533d0d90b11 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:51 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 14:02 Archivé dans $/Bus/Ivy Commentaire: Passage a la lib PCRE (vss 8) --- Ivy/IvyApplication.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index e39e4a7..906e16c 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -6,7 +6,11 @@ #include "BufferedSocket.h" #include "Ivy.h" -class Regexp; +#ifdef USE_PCRE +#include "pcre.h" +#else +#include "Regexp.h" +#endif ///////////////////////////////////////////////////////////////////////////// // IvyApplication command target @@ -58,7 +62,12 @@ protected: bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ - typedef vector RegexpVector; +#ifdef USE_PCRE + static const int max_subexp = 200; + typedef vector RegexpVector; +#else + typedef vector RegexpVector; +#endif RegexpVector regexp_in; friend class Ivy; -- cgit v1.1 From f2dfb0633a7ee0cf6b803d3e8575c3710d98f954 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:53 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 14:13 Archivé dans $/Bus/Ivy Commentaire: (vss 9) --- Ivy/IvyApplication.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 906e16c..61b4432 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -6,6 +6,8 @@ #include "BufferedSocket.h" #include "Ivy.h" +#define USE_PCRE + #ifdef USE_PCRE #include "pcre.h" #else -- cgit v1.1 From 299c93cb71c2b55321a11be3e14800a6be320081 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:55 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 10) --- Ivy/IvyApplication.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 61b4432..7171fef 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -60,15 +60,15 @@ public: // Implementation protected: - string appname; + ivy::string appname; bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ #ifdef USE_PCRE static const int max_subexp = 200; - typedef vector RegexpVector; + typedef ivy::vector RegexpVector; #else - typedef vector RegexpVector; + typedef ivy::vector RegexpVector; #endif RegexpVector regexp_in; -- cgit v1.1 From 23bd912a8e86466c79f2dcbed02f4e34e00aca27 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:57 +0000 Subject: Utilisateur : Fcolin Date : 23/05/06 Heure : 18:18 Archivé dans $/Bus/Ivy Commentaire: Modification protocol UDP (vss 11) --- Ivy/IvyApplication.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 7171fef..babd82e 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -53,7 +53,7 @@ public: void SendMsg( MsgType msg, int id, const char * arg = NULL); UINT Create(); void OnReceive( char *line ); - void Create( const char * host, UINT &port ); + void Create( const char * host, UINT &port, const char* name ); virtual void OnAccept(int nErrorCode); virtual void OnClose(int nErrorCode); -- cgit v1.1 From f9406cab857e7eb87627c014a880ed859df3bf22 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:00:59 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 12) --- Ivy/IvyApplication.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index babd82e..ffa6ecb 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -64,6 +64,9 @@ protected: bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ + /* en clair */ + ivy::vector regexp_str_in; + /* compile */ #ifdef USE_PCRE static const int max_subexp = 200; typedef ivy::vector RegexpVector; -- cgit v1.1 From 224519ededa0125951cf0ca7e13a2b25952321e6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:01 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Archivé dans $/Bus/Ivy Commentaire: Separation module de traitement regexp (vss 13) --- Ivy/IvyApplication.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index ffa6ecb..c32ca5f 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -5,14 +5,7 @@ // #include "BufferedSocket.h" #include "Ivy.h" - -#define USE_PCRE - -#ifdef USE_PCRE -#include "pcre.h" -#else -#include "Regexp.h" -#endif +#include "IvyBinding.h" ///////////////////////////////////////////////////////////////////////////// // IvyApplication command target @@ -67,12 +60,7 @@ protected: /* en clair */ ivy::vector regexp_str_in; /* compile */ -#ifdef USE_PCRE - static const int max_subexp = 200; - typedef ivy::vector RegexpVector; -#else - typedef ivy::vector RegexpVector; -#endif + typedef ivy::vector RegexpVector; RegexpVector regexp_in; friend class Ivy; -- cgit v1.1 From fbbba9efa5f7e22b7d6d824b5126af3e20c0479e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:03 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 16:40 Archivé dans $/Bus/Ivy Commentaire: correction bug du a la separation du module regexp transformation des tables de regexp en table de Hash (vss 14) --- Ivy/IvyApplication.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index c32ca5f..64aa49f 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -58,10 +58,10 @@ protected: Ivy *bus; /* liste des souscriptions remote */ /* en clair */ - ivy::vector regexp_str_in; + ivy::map regexp_str_in; /* compile */ - typedef ivy::vector RegexpVector; - RegexpVector regexp_in; + typedef ivy::map Bindings; + Bindings regexp_in; friend class Ivy; }; -- cgit v1.1 From 74967da76a4c47cc6ca1223eb4be776d2a83745a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:05 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 9:48 Archivé dans $/Bus/Ivy Commentaire: (vss 15) --- Ivy/IvyApplication.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyApplication.h b/Ivy/IvyApplication.h index 64aa49f..7191400 100644 --- a/Ivy/IvyApplication.h +++ b/Ivy/IvyApplication.h @@ -26,7 +26,9 @@ public: EndRegexp, /* end of the regexp list */ StartRegexp, /* debut des expressions */ DirectMsg, /* message direct a destination de l'appli */ - Die /* demande de terminaison de l'appli */ + Die, /* demande de terminaison de l'appli */ + Ping, /* message de controle ivy */ + Pong /* ivy doit renvoyer ce message à la reception d'un ping */ }MsgType; -- cgit v1.1 From 92fc57ceb4fb03e732a2edeef701922a3f570ddc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:07 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Créé Commentaire: Separation module de traitement regexp (vss 1) --- Ivy/IvyBinding.cxx | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 Ivy/IvyBinding.cxx diff --git a/Ivy/IvyBinding.cxx b/Ivy/IvyBinding.cxx new file mode 100644 index 0000000..f3000fd --- /dev/null +++ b/Ivy/IvyBinding.cxx @@ -0,0 +1,189 @@ +/* + * Ivy, C++ interface + * + * Copyright (C) 1997-2000 + * Centre d'Études de la Navigation Aérienne + * + * Bind syntax for extracting message comtent + * using regexp or other + * + * Authors: François-Régis Colin + * + * $Id: ivybind.c,v 1.9.2.7 2006/06/01 12:07:17 bustico Exp $ + * + * Please refer to file version.h for the + * copyright notice regarding this software + */ +/* Module de gestion de la syntaxe des messages Ivy */ +#include "IvyStdAfx.h" + +#include "IvyBinding.h" + +static int err_offset; + +#ifdef USE_PCRE + static const char *err_buf; +#else /* we don't USE_PCRE */ + static char err_buf[4096]; +#endif /* USE_PCRE */ + +/* classes de messages emis par l'application utilise pour le filtrage */ +static int messages_classes_count = 0; +static const char **messages_classes = 0; +/* regexp d'extraction du mot clef des regexp client pour le filtrage des regexp , ca va c'est clair ??? */ +static IvyBinding token_extract; + +IvyBinding::IvyBinding() +{ +#ifdef USE_PCRE + regexp = NULL; + inspect = NULL; +#else /* we don't USE_PCRE */ + free( regexp ); +#endif /* USE_PCRE */ + nb_match = 0; +} +IvyBinding::~IvyBinding() +{ +#ifdef USE_PCRE + if (inspect!=NULL) + pcre_free(inspect); + if (regexp!=NULL) + pcre_free(regexp); +#else /* we don't USE_PCRE */ + free( regexp ); +#endif /* USE_PCRE */ +} +bool IvyBinding::Compile( const char * expression, int *erroffset, const char **errmessage ) +{ + bool compile = false; +#ifdef USE_PCRE + regexp = pcre_compile(expression, PCRE_CASELESS, &err_buf, &err_offset, NULL); + if ( regexp != NULL ) + { + this->inspect = pcre_study(regexp,0,&err_buf); + if (err_buf!=NULL) + { + printf("Error studying %s, message: %s\n",expression,err_buf); + } + compile = true; + } + else + { + *erroffset = err_offset; + *errmessage = err_buf; + printf("Error compiling '%s', %s\n", expression, err_buf); + } +#else /* we don't USE_PCRE */ + regex_t regexp; + int reg; + reg = regcomp(®exp, expression, REGCOMP_OPT|REG_EXTENDED); + if ( reg == 0 ) + { + this->next = NULL; + } + else + { + regerror (reg, ®exp, err_buf, sizeof(err_buf) ); + *erroffset = err_offset; + *errmessage = err_buf; + printf("Error compiling '%s', %s\n", expression, err_buf); + } +#endif /* USE_PCRE */ + return compile; +} + + +int IvyBinding::Exec( const char * message ) +{ +#ifdef USE_PCRE + + nb_match = pcre_exec( + regexp, + inspect, + message, + strlen(message), + 0, /* debut */ + 0, /* no other regexp option */ + ovector, + OVECSIZE); + if (nb_match<1) return 0; /* no match */ +#else /* we don't USE_PCRE */ + memset( match, -1, sizeof(match )); /* work around bug !!!*/ + nb_match = regexec (®exp, message, MAX_MSG_FIELDS, match, 0) + if (nb_match == REG_NOMATCH) + return 0; + for ( index = 1; index < MAX_MSG_FIELDS; index++ ) + { + if ( match[i].rm_so != -1 ) + nb_match++; + } +#endif /* USE_PCRE */ + return nb_match; +} + +void IvyBinding::Match( const char *message, int argnum, int *arglen, const char **arg) +{ +#ifdef USE_PCRE + + *arglen = ovector[2*argnum+1]- ovector[2*argnum]; + *arg = message + ovector[2*argnum]; +#else /* we don't USE_PCRE */ + + regmatch_t* p; + + p = &match[argnum+1]; + if ( p->rm_so != -1 ) { + *arglen = p->rm_eo - p->rm_so; + *arg = message + p->rm_so; + } else { // ARG VIDE + *arglen = 0; + *arg = NULL; + } +#endif /* USE_PCRE */ + +} + +//filter Expression Bind +void IvyBinding::SetFilter( int argc, const char **argv) +{ + const char *errbuf; + int erroffset; + + messages_classes_count = argc; + messages_classes = argv; + /* compile the token extraction regexp */ + + if ( !token_extract.Compile("^\\^([a-zA-Z_0-9-]+).*", & erroffset, & errbuf) ) + { + printf("Error compiling Token Extract regexp: %s\n", errbuf); + } +} + +int IvyBinding::Filter(const char *expression) +{ + int i; + int err; + int regexp_ok = 1; /* accepte tout par default */ + int tokenlen; + const char *token; + + if ( *expression =='^' && messages_classes_count !=0 ) + { + regexp_ok = 0; + + /* extract token */ + err = token_extract.Exec( expression ); + if ( err < 1 ) return 1; + token_extract.Match( expression , 1, &tokenlen, &token ); + for ( i = 0 ; i < messages_classes_count; i++ ) + { + if (strncmp( messages_classes[i], token, tokenlen ) == 0) { + return 1; } + // else { + //printf ("DBG> %s eliminé [%s]\n", token, expression); + //} + } + } + return regexp_ok; +} -- cgit v1.1 From 741e6a814b53154a9b55a24de6fcb941af290439 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:09 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Créé Commentaire: Separation module de traitement regexp (vss 1) --- Ivy/IvyBinding.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Ivy/IvyBinding.h diff --git a/Ivy/IvyBinding.h b/Ivy/IvyBinding.h new file mode 100644 index 0000000..44a87ee --- /dev/null +++ b/Ivy/IvyBinding.h @@ -0,0 +1,58 @@ +/* + * Ivy, C interface + * + * Copyright (C) 1997-2006 + * Centre d'Études de la Navigation Aérienne + * + * Bind syntax for extracting message comtent + * using regexp or other + * + * Authors: François-Régis Colin + * + * $Id: ivybind.h,v 1.5.2.3 2006/04/21 15:51:55 fcolin Exp $ + * + * Please refer to file version.h for the + * copyright notice regarding this software + */ +/* Module de gestion de la syntaxe des messages Ivy */ +#pragma once + +#define USE_PCRE + +#ifdef USE_PCRE +#define OVECSIZE 60 /* must be multiple of 3, for regexp return */ +#include +#else /* we don't USE_PCRE */ +#define MAX_MSG_FIELDS 200 +#include "Regex.h" +#endif /* USE_PCRE */ + +class IvyBinding +{ +public: + /* Creation, Compilation */ + IvyBinding(); + ~IvyBinding(); + + /* Mise en place des Filtrages */ + static void SetFilter( int argc, const char ** argv ); + static int Filter( const char *expression ); + + /* Creation, Compilation */ + bool Compile( const char *expression, int *erroffset, const char **errmessage ); + /* Execution , extraction */ + int Exec( const char * message ); + void Match( const char *message, int argnum, int *arglen, const char **arg ); + +private: +#ifdef USE_PCRE + pcre *regexp; + pcre_extra *inspect; + int nb_match; + int ovector[OVECSIZE]; +#else /* we don't USE_PCRE */ + regex_t regexp; /* la regexp sous forme machine */ + regmatch_t match[MAX_MSG_FIELDS+1]; /* resultat du match */ +#endif /* USE_PCRE */ + +}; \ No newline at end of file -- cgit v1.1 From 321483f0c1433e0b254584db97b3bc6f5ecaa24b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:11 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyCallback.h | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Ivy/IvyCallback.h diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h new file mode 100644 index 0000000..4a41b9a --- /dev/null +++ b/Ivy/IvyCallback.h @@ -0,0 +1,83 @@ +// IvyCallback.h : Interface for the IvyMessageCallback Class +// : Interface for the IvyDirectMessageCallback Class +// : Interface for the IvyApplicationCallback Class +// +///////////////////////////////////////////////////////////////////////////// +// Description : +// +///////////////////////////////////////////////////////////////////////////// +// +// $Header: /libIvy/IvyCallback.h 5 16/03/99 10:59 Fcolin $ +// $Modtime: 16/03/99 10:26 $ + +/* -------------------------------------------------------- + * $History: IvyCallback.h $ + * + * ***************** Version 5 ***************** + * User: Fcolin Date: 16/03/99 Time: 10:59 + * Updated in $/libIvy + * + * ***************** Version 4 ***************** + * User: Fcolin Date: 12/03/99 Time: 18:53 + * Updated in $/libIvy + * + * ***************** Version 3 ***************** + * User: Fcolin Date: 12/03/99 Time: 18:16 + * Updated in $/libIvy + * Modif Api Callback + * -------------------------------------------------------- + */ + + +#ifndef IvyCallback_H_ +#define IvyCallback_H_ + +class IvyApplication; + +/* Callback for the normal bus Message */ +/* Callback for the normal bus Message */ +class IvyMessageCallback { +public: + virtual void OnMessage (IvyApplication *app, int argc, const char **argv )=0; +}; +/* template Class Callback for the normal bus Message */ +template class IvyMessageCallbackOf : public IvyMessageCallback { + +protected: + T* Object; + typedef void ( T::*IvyMessageCallback_fun )( IvyApplication *app, int argc, const char **argv ); + IvyMessageCallback_fun MessageCb; + +public: + IvyMessageCallbackOf ( T* o, IvyMessageCallback_fun m_cb ) : Object (o), MessageCb( m_cb ) + { + } + ~IvyMessageCallbackOf () + { + } + void OnMessage (IvyApplication *app, int argc, const char **argv) + { + (Object->*MessageCb) (app, argc, argv); + } +/* raccourci d'ecriture */ +#define BUS_CALLBACK_OF( cl, m ) new IvyMessageCallbackOf( this, m ) +}; +/* Callback for the direct Message */ +class IvyDirectMessageCallback { +public: + virtual void OnDirectMessage (IvyApplication *app, int id, const char *arg ) = 0; +}; + +/* Application Callback */ +class IvyApplicationCallback { +public: + virtual void OnApplicationConnected (IvyApplication *app) = 0; + virtual void OnApplicationDisconnected (IvyApplication *app) = 0; +}; +/* Callback for the die Message */ +class IvyDieCallback { +public: + virtual BOOL OnDie (IvyApplication *app, int id, const char *arg ) = 0; +}; + +#endif /* IvyCallback_H_ */ -- cgit v1.1 From c2898f2c85984b8acdfb7ca987a751f6b69f3b8b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:13 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:51 Archivé dans $/Ivy Commentaire: bug a la destruction des callbacks --> virtual destructor classe de base (vss 2) --- Ivy/IvyCallback.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 4a41b9a..bbcaa11 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -39,6 +39,9 @@ class IvyApplication; class IvyMessageCallback { public: virtual void OnMessage (IvyApplication *app, int argc, const char **argv )=0; + virtual ~IvyMessageCallback() + { + } }; /* template Class Callback for the normal bus Message */ template class IvyMessageCallbackOf : public IvyMessageCallback { -- cgit v1.1 From 53e0d0c2626d919b72f1ba497203bde75fd7d9e1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:15 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 11:10 Archivé dans $/Ivy (vss 3) --- Ivy/IvyCallback.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index bbcaa11..e311f58 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -76,11 +76,17 @@ class IvyApplicationCallback { public: virtual void OnApplicationConnected (IvyApplication *app) = 0; virtual void OnApplicationDisconnected (IvyApplication *app) = 0; + virtual ~IvyApplicationCallback() + { + } }; /* Callback for the die Message */ class IvyDieCallback { public: virtual BOOL OnDie (IvyApplication *app, int id, const char *arg ) = 0; + virtual ~IvyDieCallback() + { + } }; #endif /* IvyCallback_H_ */ -- cgit v1.1 From 0b1380fe24ec5ff14212b5dad82b45b1cf663bcc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:17 +0000 Subject: Utilisateur : Fcolin Date : 14/11/00 Heure : 18:58 Archivé dans $/Ivy (vss 4) --- Ivy/IvyCallback.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index e311f58..f1075dc 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -43,6 +43,25 @@ public: { } }; +class IvyMessageCallbackFunction: public IvyMessageCallback { +public: + typedef void ( *IvyMessageCallback_fun )( IvyApplication *app, int argc, const char **argv ); + IvyMessageCallback_fun MessageCb; + +public: + IvyMessageCallbackFunction ( IvyMessageCallback_fun m_cb ) : MessageCb( m_cb ) + { + } + ~IvyMessageCallbackFunction () + { + } + void OnMessage (IvyApplication *app, int argc, const char **argv) + { + (*MessageCb) (app, argc, argv); + } +/* raccourci d'ecriture */ +#define BUS_CALLBACK( m ) new IvyMessageCallbackFunction( m ) +}; /* template Class Callback for the normal bus Message */ template class IvyMessageCallbackOf : public IvyMessageCallback { -- cgit v1.1 From bb880dc41b1080546a7b50421980c8d6aca96681 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:19 +0000 Subject: Utilisateur : Fcolin Date : 15/11/00 Heure : 18:52 Archivé dans $/Ivy (vss 5) --- Ivy/IvyCallback.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index f1075dc..58eb52e 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -99,6 +99,16 @@ public: { } }; +class IvyApplicationNullCallback : public IvyApplicationCallback { +public: + virtual void OnApplicationConnected (IvyApplication *app) + {}; + virtual void OnApplicationDisconnected (IvyApplication *app) + {}; + virtual ~IvyApplicationNullCallback() + { + } +}; /* Callback for the die Message */ class IvyDieCallback { public: -- cgit v1.1 From 3f798c133bcf62c1fed88d1beb66c7284285c99c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:21 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 6) --- Ivy/IvyCallback.h | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 58eb52e..6a877e6 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -2,40 +2,14 @@ // : Interface for the IvyDirectMessageCallback Class // : Interface for the IvyApplicationCallback Class // -///////////////////////////////////////////////////////////////////////////// -// Description : -// -///////////////////////////////////////////////////////////////////////////// -// -// $Header: /libIvy/IvyCallback.h 5 16/03/99 10:59 Fcolin $ -// $Modtime: 16/03/99 10:26 $ - -/* -------------------------------------------------------- - * $History: IvyCallback.h $ - * - * ***************** Version 5 ***************** - * User: Fcolin Date: 16/03/99 Time: 10:59 - * Updated in $/libIvy - * - * ***************** Version 4 ***************** - * User: Fcolin Date: 12/03/99 Time: 18:53 - * Updated in $/libIvy - * - * ***************** Version 3 ***************** - * User: Fcolin Date: 12/03/99 Time: 18:16 - * Updated in $/libIvy - * Modif Api Callback - * -------------------------------------------------------- - */ -#ifndef IvyCallback_H_ -#define IvyCallback_H_ +#pragma once class IvyApplication; /* Callback for the normal bus Message */ -/* Callback for the normal bus Message */ + class IvyMessageCallback { public: virtual void OnMessage (IvyApplication *app, int argc, const char **argv )=0; @@ -112,10 +86,8 @@ public: /* Callback for the die Message */ class IvyDieCallback { public: - virtual BOOL OnDie (IvyApplication *app, int id, const char *arg ) = 0; + virtual bool OnDie (IvyApplication *app, int id, const char *arg ) = 0; virtual ~IvyDieCallback() { } }; - -#endif /* IvyCallback_H_ */ -- cgit v1.1 From 1172ab63f087da01ee116d155b1b9d3e87bf2ef3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:23 +0000 Subject: Utilisateur : Fcolin Date : 19/07/01 Heure : 15:22 Archivé dans $/Ivy Commentaire: Ajout callback static pour le CB application (vss 7) --- Ivy/IvyCallback.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 6a877e6..68b286a 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -65,6 +65,7 @@ public: }; /* Application Callback */ + class IvyApplicationCallback { public: virtual void OnApplicationConnected (IvyApplication *app) = 0; @@ -83,6 +84,33 @@ public: { } }; +// Static function CB +class IvyApplicationCallbackFunction: public IvyApplicationCallback { +public: + typedef void ( *IvyApplicationCallback_fun )( IvyApplication *app ); + IvyApplicationCallback_fun ApplicationConnectedCb; + IvyApplicationCallback_fun ApplicationDisconnectedCb; + +public: + IvyApplicationCallbackFunction ( IvyApplicationCallback_fun con_cb, IvyApplicationCallback_fun disc_cb) + : ApplicationConnectedCb( con_cb ), ApplicationDisconnectedCb( disc_cb ) + { + } + ~IvyApplicationCallbackFunction () + { + } + virtual void OnApplicationConnected (IvyApplication *app) + { + (*ApplicationConnectedCb) (app); + }; + virtual void OnApplicationDisconnected (IvyApplication *app) + { + (*ApplicationDisconnectedCb) (app); + }; + +/* raccourci d'ecriture */ +#define BUS_APPLICATION_CALLBACK( conn, disconn ) new IvyApplicationCallbackFunction( conn, disconn ) +}; /* Callback for the die Message */ class IvyDieCallback { public: -- cgit v1.1 From 9d592353f88d58e0449e8311818ff92185ec5fe0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:25 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 8) --- Ivy/IvyCallback.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 68b286a..25368f0 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -19,22 +19,24 @@ public: }; class IvyMessageCallbackFunction: public IvyMessageCallback { public: - typedef void ( *IvyMessageCallback_fun )( IvyApplication *app, int argc, const char **argv ); + typedef void ( *IvyMessageCallback_fun )( IvyApplication *app, void *user_data, int argc, const char **argv ); IvyMessageCallback_fun MessageCb; + void *data; public: - IvyMessageCallbackFunction ( IvyMessageCallback_fun m_cb ) : MessageCb( m_cb ) + IvyMessageCallbackFunction ( IvyMessageCallback_fun m_cb, void *udata = NULL ) : MessageCb( m_cb ) { + data = udata; } ~IvyMessageCallbackFunction () { } void OnMessage (IvyApplication *app, int argc, const char **argv) { - (*MessageCb) (app, argc, argv); + (*MessageCb) (app, data, argc, argv); } /* raccourci d'ecriture */ -#define BUS_CALLBACK( m ) new IvyMessageCallbackFunction( m ) +#define BUS_CALLBACK( m , d ) new IvyMessageCallbackFunction( m, d ) }; /* template Class Callback for the normal bus Message */ template class IvyMessageCallbackOf : public IvyMessageCallback { -- cgit v1.1 From cca8702ee446dd87d4bca25dfa1e5b199649f490 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:27 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 9) --- Ivy/IvyCallback.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 25368f0..78aff80 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -58,7 +58,7 @@ public: (Object->*MessageCb) (app, argc, argv); } /* raccourci d'ecriture */ -#define BUS_CALLBACK_OF( cl, m ) new IvyMessageCallbackOf( this, m ) +#define BUS_CALLBACK_OF( cl, m ) new IvyMessageCallbackOf( this, &cl::m ) }; /* Callback for the direct Message */ class IvyDirectMessageCallback { -- cgit v1.1 From 528bf5ef59ac20c903cdef0b646f41f62564f6c7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:29 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 10) --- Ivy/IvyCallback.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyCallback.h b/Ivy/IvyCallback.h index 78aff80..ede0ef4 100644 --- a/Ivy/IvyCallback.h +++ b/Ivy/IvyCallback.h @@ -103,16 +103,73 @@ public: } virtual void OnApplicationConnected (IvyApplication *app) { - (*ApplicationConnectedCb) (app); + if ( ApplicationConnectedCb ) (*ApplicationConnectedCb) (app); }; virtual void OnApplicationDisconnected (IvyApplication *app) { - (*ApplicationDisconnectedCb) (app); + if ( ApplicationDisconnectedCb ) (*ApplicationDisconnectedCb) (app); }; /* raccourci d'ecriture */ #define BUS_APPLICATION_CALLBACK( conn, disconn ) new IvyApplicationCallbackFunction( conn, disconn ) }; + +/* Binding Callback */ + +class IvyBindingCallback { +public: + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual ~IvyBindingCallback() + { + } +}; +class IvyBindingNullCallback : public IvyBindingCallback { +public: + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual ~IvyBindingNullCallback() + { + } +}; +// Static function CB +class IvyBindingCallbackFunction: public IvyBindingCallback { +public: + typedef void ( *IvyBindingCallback_fun )( IvyApplication *app, int id, const char * regexp ); + IvyBindingCallback_fun BindingAddCb; + IvyBindingCallback_fun BindingRemoveCb; + IvyBindingCallback_fun BindingFilterCb; + +public: + IvyBindingCallbackFunction ( IvyBindingCallback_fun add_cb, IvyBindingCallback_fun remove_cb, IvyBindingCallback_fun filter_cb ) + : BindingAddCb( add_cb ), BindingRemoveCb( remove_cb ), BindingFilterCb( filter_cb ) + { + } + ~IvyBindingCallbackFunction () + { + } + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) + { + if(BindingAddCb) (*BindingAddCb) (app, id, regexp); + }; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) + { + if (BindingRemoveCb) (*BindingRemoveCb) (app, id, regexp); + }; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) + { + if(BindingFilterCb ) (*BindingFilterCb) (app, id, regexp); + }; + +/* raccourci d'ecriture */ +#define BUS_BINDING_CALLBACK( add, remove, filter ) new IvyBindingCallbackFunction( add, remove, filter ) +}; + /* Callback for the die Message */ class IvyDieCallback { public: -- cgit v1.1 From 8a274412cccd5237e03481028bcfab96a5e85070 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:31 +0000 Subject: Utilisateur : Fcolin Date : 18/10/01 Heure : 18:24 Créé (vss 1) --- Ivy/IvyCbindings.cxx | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Ivy/IvyCbindings.cxx diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx new file mode 100644 index 0000000..de87db4 --- /dev/null +++ b/Ivy/IvyCbindings.cxx @@ -0,0 +1,73 @@ + +#include "stdafx.h" + +#include "Ivy.h" +#include "IvyApplication.h" + +/* filtrage des regexps */ +void IvyClasses( int argc, const char **argv) +{ +} + +void IvyInit( + const char *AppName, /* nom de l'application */ + const char *ready, /* ready Message peut etre NULL */ + IvyApplicationCallback callback, /* callback appele sur connection deconnection d'une appli */ + void *data, /* user data passe au callback */ + IvyDieCallback die_callback, /* last change callback before die */ + void *die_data ) /* user data */ +{ +} +void IvyStart (const char*) +{ +} +void IvyStop () +{ +} + +/* query sur les applications connectees */ +char *IvyGetApplicationName( IvyClientPtr app ) +{ +} +char *IvyGetApplicationHost( IvyClientPtr app ) +{ +} +IvyClientPtr IvyGetApplication( char *name ) +{ +} +char *IvyGetApplicationList() +{ +} +char **IvyGetApplicationMessages( IvyClientPtr app) +{ +} + +MsgRcvPtr IvyBindMsg( MsgCallback callback, void *user_data, const char *fmt_regexp, ... ) +{ +} +void IvyUnbindMsg( MsgRcvPtr id ) +{ +} + +/* emission d'un message d'erreur */ +void IvySendError( IvyClientPtr app, int id, const char *fmt, ... ) +{ +} + +/* emmission d'un message die pour terminer l'application */ +void IvySendDieMsg( IvyClientPtr app ) +{ +} + +/* emission d'un message retourne le nb effectivement emis */ + +int IvySendMsg( const char *fmt_message, ... ) +{ +} + +void IvyBindDirectMsg( MsgDirectCallback callback, void *user_data) +{ +} +void IvySendDirectMsg( IvyClientPtr app, int id, char *msg ) +{ +} -- cgit v1.1 From 55eaa424173f390b66f3eb392c48f069c357533b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:33 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 2) --- Ivy/IvyCbindings.cxx | 76 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index de87db4..07becfc 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -1,71 +1,123 @@ #include "stdafx.h" - +#include #include "Ivy.h" #include "IvyApplication.h" -/* filtrage des regexps */ -void IvyClasses( int argc, const char **argv) +#include "IvyCbindings.h" + +static Ivy *bus = NULL; + +// application callback wrappers +IvyCApplicationCallback app_cb = NULL; +void * app_user_data = NULL; +void app_conn( IvyApplication *app ) +{ + (*app_cb)(app, app_user_data, IvyApplicationConnected ); +} +void app_discon( IvyApplication *app ) { + (*app_cb)(app, app_user_data, IvyApplicationDisconnected ); } void IvyInit( const char *AppName, /* nom de l'application */ const char *ready, /* ready Message peut etre NULL */ - IvyApplicationCallback callback, /* callback appele sur connection deconnection d'une appli */ + IvyCApplicationCallback callback, /* callback appele sur connection deconnection d'une appli */ void *data, /* user data passe au callback */ - IvyDieCallback die_callback, /* last change callback before die */ + IvyCDieCallback die_callback, /* last change callback before die */ void *die_data ) /* user data */ { + bus = new Ivy(AppName, ready, BUS_APPLICATION_CALLBACK(app_conn,app_discon) ); +} +/* filtrage des regexps */ +void IvyClasses( int argc, const char **argv) +{ + bus->Classes( argc, argv ); } -void IvyStart (const char*) + +void IvyStart (const char* domain) { + bus->start(domain); } void IvyStop () { + bus->stop(); } /* query sur les applications connectees */ -char *IvyGetApplicationName( IvyClientPtr app ) +const char *IvyGetApplicationName( IvyClientPtr app ) { + return ((IvyApplication*)app)->GetName(); } -char *IvyGetApplicationHost( IvyClientPtr app ) +const char *IvyGetApplicationHost( IvyClientPtr app ) { + string host; + UINT port; + ((IvyApplication*)app)->GetPeerName(host,port); + return host.c_str(); } IvyClientPtr IvyGetApplication( char *name ) { + return NULL; } -char *IvyGetApplicationList() +const char *IvyGetApplicationList() { + return "Not yiet implemented"; } -char **IvyGetApplicationMessages( IvyClientPtr app) +const char **IvyGetApplicationMessages( IvyClientPtr app) { + return NULL; } -MsgRcvPtr IvyBindMsg( MsgCallback callback, void *user_data, const char *fmt_regexp, ... ) +MsgRcvPtr IvyBindMsg( IvyCMsgCallback callback, void *user_data, const char *fmt_regexp, ... ) { + int count; + char buf_regexp[2048]; + va_list args; + va_start( args, fmt_regexp ); + vsprintf( buf_regexp, fmt_regexp, args ); + count = bus->BindMsg(buf_regexp, BUS_CALLBACK( ((IvyMessageCallbackFunction::IvyMessageCallback_fun)callback), user_data ) ); + va_end( args ); + return count; } void IvyUnbindMsg( MsgRcvPtr id ) { + bus->UnbindMsg( id ); } /* emission d'un message d'erreur */ void IvySendError( IvyClientPtr app, int id, const char *fmt, ... ) { + char buf[2048]; + va_list args; + va_start( args, fmt ); + vsprintf( buf, fmt, args ); + ((IvyApplication*)app)->SendMsg( IvyApplication::Error, id, buf ); + va_end( args ); } /* emmission d'un message die pour terminer l'application */ void IvySendDieMsg( IvyClientPtr app ) { + ((IvyApplication*)app)->SendMsg( IvyApplication::Die, 0 ); } /* emission d'un message retourne le nb effectivement emis */ int IvySendMsg( const char *fmt_message, ... ) { + int count; + char buf[2048]; + va_list args; + va_start( args, fmt_message ); + vsprintf( buf, fmt_message, args ); + count = bus->SendMsg(buf); + va_end( args ); + return count; } -void IvyBindDirectMsg( MsgDirectCallback callback, void *user_data) +void IvyBindDirectMsg( IvyCMsgDirectCallback callback, void *user_data) { } void IvySendDirectMsg( IvyClientPtr app, int id, char *msg ) -- cgit v1.1 From 28cc6cec36580bba460de5f77700c994a0b04a7f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:35 +0000 Subject: Utilisateur : Fcolin Date : 24/05/05 Heure : 11:29 Archivé dans $/Bus/Ivy Commentaire: Ajout MainLoop binding Ivy C (vss 3) --- Ivy/IvyCbindings.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index 07becfc..18d5268 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -123,3 +123,7 @@ void IvyBindDirectMsg( IvyCMsgDirectCallback callback, void *user_data) void IvySendDirectMsg( IvyClientPtr app, int id, char *msg ) { } +void IvyMainLoop( void(*hook)(void) ) +{ + Sleep( INFINITE ); +} -- cgit v1.1 From b3c991e52707bf1447d1c63b5b6a78fa300753e3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:37 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 4) --- Ivy/IvyCbindings.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index 18d5268..9ab5efb 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -1,5 +1,5 @@ -#include "stdafx.h" +#include "IvyStdAfx.h" #include #include "Ivy.h" #include "IvyApplication.h" @@ -76,7 +76,7 @@ MsgRcvPtr IvyBindMsg( IvyCMsgCallback callback, void *user_data, const char *fmt char buf_regexp[2048]; va_list args; va_start( args, fmt_regexp ); - vsprintf( buf_regexp, fmt_regexp, args ); + _vsnprintf( buf_regexp, sizeof(buf_regexp), fmt_regexp, args ); count = bus->BindMsg(buf_regexp, BUS_CALLBACK( ((IvyMessageCallbackFunction::IvyMessageCallback_fun)callback), user_data ) ); va_end( args ); return count; @@ -92,7 +92,7 @@ void IvySendError( IvyClientPtr app, int id, const char *fmt, ... ) char buf[2048]; va_list args; va_start( args, fmt ); - vsprintf( buf, fmt, args ); + _vsnprintf( buf, sizeof(buf), fmt, args ); ((IvyApplication*)app)->SendMsg( IvyApplication::Error, id, buf ); va_end( args ); } @@ -111,7 +111,7 @@ int IvySendMsg( const char *fmt_message, ... ) char buf[2048]; va_list args; va_start( args, fmt_message ); - vsprintf( buf, fmt_message, args ); + _vsnprintf( buf, sizeof(buf), fmt_message, args ); count = bus->SendMsg(buf); va_end( args ); return count; -- cgit v1.1 From e63bd03a298522ad519fd2070faad9d6a36ed403 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:39 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 5) --- Ivy/IvyCbindings.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index 9ab5efb..9a188ab 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -52,7 +52,7 @@ const char *IvyGetApplicationName( IvyClientPtr app ) } const char *IvyGetApplicationHost( IvyClientPtr app ) { - string host; + ivy::string host; UINT port; ((IvyApplication*)app)->GetPeerName(host,port); return host.c_str(); -- cgit v1.1 From f06851fa71982d57d257119435876aa48bc6ab86 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:41 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 6) --- Ivy/IvyCbindings.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index 9a188ab..7f11339 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -76,7 +76,7 @@ MsgRcvPtr IvyBindMsg( IvyCMsgCallback callback, void *user_data, const char *fmt char buf_regexp[2048]; va_list args; va_start( args, fmt_regexp ); - _vsnprintf( buf_regexp, sizeof(buf_regexp), fmt_regexp, args ); + _vsnprintf_s( buf_regexp, sizeof(buf_regexp), sizeof(buf_regexp)-1, fmt_regexp, args ); count = bus->BindMsg(buf_regexp, BUS_CALLBACK( ((IvyMessageCallbackFunction::IvyMessageCallback_fun)callback), user_data ) ); va_end( args ); return count; @@ -92,7 +92,7 @@ void IvySendError( IvyClientPtr app, int id, const char *fmt, ... ) char buf[2048]; va_list args; va_start( args, fmt ); - _vsnprintf( buf, sizeof(buf), fmt, args ); + _vsnprintf_s( buf, sizeof(buf), sizeof(buf)-1, fmt, args ); ((IvyApplication*)app)->SendMsg( IvyApplication::Error, id, buf ); va_end( args ); } @@ -111,7 +111,7 @@ int IvySendMsg( const char *fmt_message, ... ) char buf[2048]; va_list args; va_start( args, fmt_message ); - _vsnprintf( buf, sizeof(buf), fmt_message, args ); + _vsnprintf_s( buf, sizeof(buf), sizeof(buf)-1, fmt_message, args ); count = bus->SendMsg(buf); va_end( args ); return count; -- cgit v1.1 From 93e316c3985bd8327b64dba94791ac3efa63ed4b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:43 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 7) --- Ivy/IvyCbindings.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyCbindings.cxx b/Ivy/IvyCbindings.cxx index 7f11339..8876bbf 100644 --- a/Ivy/IvyCbindings.cxx +++ b/Ivy/IvyCbindings.cxx @@ -31,9 +31,9 @@ void IvyInit( bus = new Ivy(AppName, ready, BUS_APPLICATION_CALLBACK(app_conn,app_discon) ); } /* filtrage des regexps */ -void IvyClasses( int argc, const char **argv) +void IvySetFilter( int argc, const char **argv) { - bus->Classes( argc, argv ); + bus->SetFilter( argc, argv ); } void IvyStart (const char* domain) -- cgit v1.1 From 5104844b75345754efccd3e57ee0115a43412293 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:45 +0000 Subject: Utilisateur : Fcolin Date : 18/10/01 Heure : 18:13 Créé (vss 1) --- Ivy/IvyCbindings.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Ivy/IvyCbindings.h diff --git a/Ivy/IvyCbindings.h b/Ivy/IvyCbindings.h new file mode 100644 index 0000000..e69de29 -- cgit v1.1 From a812f0d63a9aea44f8f4ee50aba809759dffb1c3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:47 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 2) --- Ivy/IvyCbindings.h | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/Ivy/IvyCbindings.h b/Ivy/IvyCbindings.h index e69de29..fb12f55 100644 --- a/Ivy/IvyCbindings.h +++ b/Ivy/IvyCbindings.h @@ -0,0 +1,107 @@ +/* + * Ivy, C interface + * + * Copyright (C) 1997-2000 + * Centre d'Études de la Navigation Aérienne + * + * Main functions + * + * Authors: François-Régis Colin + * Stéphane Chatty + * + * $Id: ivy.h,v 1.8 2000/08/07 11:29:29 sc Exp $ + * + * Please refer to file version.h for the + * copyright notice regarding this software + */ + +#ifndef IVY_C_BINDINGS_H +#define IVY_C_BINDINGS_H + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef WIN32 +#ifdef IVY_EXPORTS +#define DLL_EXPORT _declspec(dllexport) +#else +#pragma comment(lib,"Ivy.LIB" ) +#define DLL_EXPORT /*_declspec(dllimport)*/ +#endif +#endif + + +/* numero par default du bus */ + +#define DEFAULT_BUS 2010 + +typedef void * Channel ; +typedef int TimerId; + +typedef void * IvyClientPtr; + +typedef enum { IvyApplicationConnected, IvyApplicationDisconnected } IvyApplicationEvent; + +extern void IvyDefaultApplicationCallback( IvyClientPtr app, void *user_data, IvyApplicationEvent event ) ; + +/* callback callback appele sur connexion deconnexion d'une appli */ +typedef void (*IvyCApplicationCallback)( IvyClientPtr app, void *user_data, IvyApplicationEvent event ) ; + +/* callback appele sur reception de die */ +typedef void (*IvyCDieCallback)( IvyClientPtr app, void *user_data, int id ) ; + +/* callback appele sur reception de messages normaux */ +typedef void (*IvyCMsgCallback)( IvyClientPtr app, void *user_data, int argc, const char **argv ) ; + +/* callback appele sur reception de messages directs */ +typedef void (*IvyCMsgDirectCallback)( IvyClientPtr app, void *user_data, int id, char *msg ) ; + +/* identifiant d'une expression reguliere ( Bind/Unbind ) */ +typedef int MsgRcvPtr; + +/* filtrage des regexps */ +DLL_EXPORT void IvyClasses( int argc, const char **argv); + +DLL_EXPORT void IvyInit( + const char *AppName, /* nom de l'application */ + const char *ready, /* ready Message peut etre NULL */ + IvyCApplicationCallback callback, /* callback appele sur connection deconnection d'une appli */ + void *data, /* user data passe au callback */ + IvyCDieCallback die_callback, /* last change callback before die */ + void *die_data ); /* user data */ + +DLL_EXPORT void IvyStart (const char*); +DLL_EXPORT void IvyStop (); + +/* query sur les applications connectees */ +DLL_EXPORT const char *IvyGetApplicationName( IvyClientPtr app ); +DLL_EXPORT const char *IvyGetApplicationHost( IvyClientPtr app ); +DLL_EXPORT IvyClientPtr IvyGetApplication( char *name ); +DLL_EXPORT const char *IvyGetApplicationList(); +DLL_EXPORT const char **IvyGetApplicationMessages( IvyClientPtr app); /* demande de reception d'un message */ + +DLL_EXPORT MsgRcvPtr IvyBindMsg( IvyCMsgCallback callback, void *user_data, const char *fmt_regexp, ... ); /* avec sprintf prealable */ +DLL_EXPORT void IvyUnbindMsg( MsgRcvPtr id ); + +/* emission d'un message d'erreur */ +DLL_EXPORT void IvySendError( IvyClientPtr app, int id, const char *fmt, ... ); + +/* emmission d'un message die pour terminer l'application */ +DLL_EXPORT void IvySendDieMsg( IvyClientPtr app ); + +/* emission d'un message retourne le nb effectivement emis */ + +DLL_EXPORT int IvySendMsg( const char *fmt_message, ... ); /* avec sprintf prealable */ + +/* Message Direct Inter-application */ + +DLL_EXPORT void IvyBindDirectMsg( IvyCMsgDirectCallback callback, void *user_data); +DLL_EXPORT void IvySendDirectMsg( IvyClientPtr app, int id, char *msg ); + +#ifdef __cplusplus +} +#endif + +#endif -- cgit v1.1 From febbe67c93a0b700a5f79e8f181cf029667d0e51 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:49 +0000 Subject: Utilisateur : Fcolin Date : 24/05/05 Heure : 11:29 Archivé dans $/Bus/Ivy Commentaire: Ajout MainLoop binding Ivy C (vss 3) --- Ivy/IvyCbindings.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyCbindings.h b/Ivy/IvyCbindings.h index fb12f55..08e8548 100644 --- a/Ivy/IvyCbindings.h +++ b/Ivy/IvyCbindings.h @@ -99,6 +99,7 @@ DLL_EXPORT int IvySendMsg( const char *fmt_message, ... ); /* avec sprintf prea DLL_EXPORT void IvyBindDirectMsg( IvyCMsgDirectCallback callback, void *user_data); DLL_EXPORT void IvySendDirectMsg( IvyClientPtr app, int id, char *msg ); +DLL_EXPORT void IvyMainLoop( void(*hook)(void) ); #ifdef __cplusplus } -- cgit v1.1 From 6a70ff0dd344091a4568edfd25f993d8c3e4a543 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:51 +0000 Subject: Utilisateur : Fcolin Date : 21/11/05 Heure : 12:53 Archivé dans $/Bus/Ivy Commentaire: remplacement event =>evt ( event mot clé reservé ) (vss 4) --- Ivy/IvyCbindings.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyCbindings.h b/Ivy/IvyCbindings.h index 08e8548..38ccfd6 100644 --- a/Ivy/IvyCbindings.h +++ b/Ivy/IvyCbindings.h @@ -44,10 +44,10 @@ typedef void * IvyClientPtr; typedef enum { IvyApplicationConnected, IvyApplicationDisconnected } IvyApplicationEvent; -extern void IvyDefaultApplicationCallback( IvyClientPtr app, void *user_data, IvyApplicationEvent event ) ; +extern void IvyDefaultApplicationCallback( IvyClientPtr app, void *user_data, IvyApplicationEvent evt ) ; /* callback callback appele sur connexion deconnexion d'une appli */ -typedef void (*IvyCApplicationCallback)( IvyClientPtr app, void *user_data, IvyApplicationEvent event ) ; +typedef void (*IvyCApplicationCallback)( IvyClientPtr app, void *user_data, IvyApplicationEvent evt ) ; /* callback appele sur reception de die */ typedef void (*IvyCDieCallback)( IvyClientPtr app, void *user_data, int id ) ; -- cgit v1.1 From fac0389f44d31bbe4f0f5a3021fc15ffa7e3c66a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:53 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyDllMain.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Ivy/IvyDllMain.cpp diff --git a/Ivy/IvyDllMain.cpp b/Ivy/IvyDllMain.cpp new file mode 100644 index 0000000..ac1a854 --- /dev/null +++ b/Ivy/IvyDllMain.cpp @@ -0,0 +1,29 @@ +// libIvy.cpp : Defines the initialization routines for the DLL. +// + +#include "stdafx.h" + + +extern "C" int APIENTRY +DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) +{ + // Remove this if you use lpReserved + UNREFERENCED_PARAMETER(lpReserved); + + if (dwReason == DLL_PROCESS_ATTACH) + { + TRACE("LIBIVY.DLL Initializing!\n"); + + // Extension DLL one-time initialization + //if (WSAInit) + // return 0; + + + } + else if (dwReason == DLL_PROCESS_DETACH) + { + TRACE("LIBIVY.DLL Terminating!\n"); + // Terminate the library before destructors are called + } + return 1; // ok +} -- cgit v1.1 From 08ce8432585e4d71a31fd09a66d543f79d011471 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:55 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:40 Archivé dans $/Ivy Commentaire: Init dll socket dans DLLMain (vss 2) --- Ivy/IvyDllMain.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyDllMain.cpp b/Ivy/IvyDllMain.cpp index ac1a854..c49283a 100644 --- a/Ivy/IvyDllMain.cpp +++ b/Ivy/IvyDllMain.cpp @@ -12,18 +12,31 @@ DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) if (dwReason == DLL_PROCESS_ATTACH) { - TRACE("LIBIVY.DLL Initializing!\n"); + TRACE("IVY.DLL Initializing!\n"); // Extension DLL one-time initialization - //if (WSAInit) - // return 0; + + WORD wVersionRequested; + WSADATA wsaData; + int err; + + wVersionRequested = MAKEWORD( 2, 2 ); + + err = WSAStartup( wVersionRequested, &wsaData ); + if ( err != 0 ) { + /* Tell the user that we could not find a usable */ + /* WinSock DLL. */ + return 0; + } + } else if (dwReason == DLL_PROCESS_DETACH) { - TRACE("LIBIVY.DLL Terminating!\n"); + TRACE("IVY.DLL Terminating!\n"); // Terminate the library before destructors are called + WSACleanup(); } return 1; // ok } -- cgit v1.1 From 32e665d555a00010b60bb3efc6f2676b0eca7194 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:57 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 3) --- Ivy/IvyDllMain.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyDllMain.cpp b/Ivy/IvyDllMain.cpp index c49283a..a94616f 100644 --- a/Ivy/IvyDllMain.cpp +++ b/Ivy/IvyDllMain.cpp @@ -3,9 +3,9 @@ #include "stdafx.h" - -extern "C" int APIENTRY -DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) +BOOL APIENTRY DllMain(HANDLE hInstance, + DWORD dwReason, + LPVOID lpReserved) { // Remove this if you use lpReserved UNREFERENCED_PARAMETER(lpReserved); -- cgit v1.1 From ae6b836b82f8ddc8f49e9ba6edf5b17ec478ceee Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:01:59 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 4) --- Ivy/IvyDllMain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyDllMain.cpp b/Ivy/IvyDllMain.cpp index a94616f..554df47 100644 --- a/Ivy/IvyDllMain.cpp +++ b/Ivy/IvyDllMain.cpp @@ -20,7 +20,7 @@ BOOL APIENTRY DllMain(HANDLE hInstance, WSADATA wsaData; int err; - wVersionRequested = MAKEWORD( 2, 2 ); + wVersionRequested = MAKEWORD( 2, 0 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { -- cgit v1.1 From b31c22ea4e3df8700dad80e8bc2496bcf63ceb58 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:01 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 5) --- Ivy/IvyDllMain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyDllMain.cpp b/Ivy/IvyDllMain.cpp index 554df47..e8c13f4 100644 --- a/Ivy/IvyDllMain.cpp +++ b/Ivy/IvyDllMain.cpp @@ -1,7 +1,7 @@ // libIvy.cpp : Defines the initialization routines for the DLL. // -#include "stdafx.h" +#include "IvyStdAfx.h" BOOL APIENTRY DllMain(HANDLE hInstance, DWORD dwReason, -- cgit v1.1 From b860a1ff0cec2953f7a893c496f6a20356038251 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:09 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Créé Commentaire: (vss 1) --- Ivy/IvyLib/IvyLib.vdproj | 242 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 Ivy/IvyLib/IvyLib.vdproj diff --git a/Ivy/IvyLib/IvyLib.vdproj b/Ivy/IvyLib/IvyLib.vdproj new file mode 100644 index 0000000..2a92dde --- /dev/null +++ b/Ivy/IvyLib/IvyLib.vdproj @@ -0,0 +1,242 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{06A35CCD-C46D-44D5-987B-CF40FF872267}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:IvyLib" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_66D910CBB02B47569794CF954A72E057" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DE30DB02DD7494AFFBB32B50F67B491E" + "OwnerKey" = "8:_66D910CBB02B47569794CF954A72E057" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EF9BC5D6F4274E54867D4FB7F7A33653" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\IvyLib.msm" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\IvyLib.msm" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "File" + { + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DE30DB02DD7494AFFBB32B50F67B491E" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_E128D81775304F09A5707F244264031A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{F4FE1E22-A4D2-4EE8-9259-29A1CE8BB2FF}:_E128D81775304F09A5707F244264031A" + { + "DefaultLocation" = "8:[TARGETDIR]" + "DisplayName" = "8:Module Retargetable Folder" + "Description" = "8:" + "Name" = "8:Module Retargetable Folder" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:TRUE" + "Property" = "8:NEWRETARGETABLEPROPERTY1" + "Folders" + { + } + } + } + "Sequences" + { + } + "MergeModule" + { + } + "Module" + { + "ModuleSignature" = "8:MergeModule.B704211C29924E868D1D16832CA83D91" + "Version" = "8:1.0.0.0" + "Title" = "8:IvyLib" + "Subject" = "8:" + "Author" = "8:DTI/SDER" + "Keywords" = "8:" + "Comments" = "8:" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_66D910CBB02B47569794CF954A72E057" + { + "SourcePath" = "8:..\\..\\release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_E128D81775304F09A5707F244264031A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:FALSE" + "ExcludeFilters" + { + } + } + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EF9BC5D6F4274E54867D4FB7F7A33653" + { + "SourcePath" = "8:..\\..\\release\\pcre.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_E128D81775304F09A5707F244264031A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "ShowKeyOutput" = "11:FALSE" + "ExcludeFilters" + { + } + } + } + "Registry" + { + "HKLM" + { + "Keys" + { + } + } + "HKCU" + { + "Keys" + { + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Shortcut" + { + } + } +} -- cgit v1.1 From 8a7bd665b5a7f583651535bf670e66913cd95bc9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:10 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus/Ivy/IvyLib Commentaire: (vss 2) --- Ivy/IvyLib/IvyLib.vdproj | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyLib/IvyLib.vdproj b/Ivy/IvyLib/IvyLib.vdproj index 2a92dde..e8a78e1 100644 --- a/Ivy/IvyLib/IvyLib.vdproj +++ b/Ivy/IvyLib/IvyLib.vdproj @@ -3,7 +3,7 @@ "VSVersion" = "3:800" "ProjectType" = "8:{06A35CCD-C46D-44D5-987B-CF40FF872267}" "IsWebType" = "8:FALSE" -"ProjectName" = "8:IvyLib" +"ProjectName" = "8:InstallIvyLib" "LanguageId" = "3:1033" "CodePage" = "3:1252" "UILanguageId" = "3:1033" @@ -49,6 +49,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } "Release" { @@ -65,6 +76,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } } "Deployable" @@ -134,13 +156,13 @@ "Title" = "8:IvyLib" "Subject" = "8:" "Author" = "8:DTI/SDER" - "Keywords" = "8:" + "Keywords" = "8:Ivy" "Comments" = "8:" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" "TargetPlatform" = "3:0" "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" + "PostBuildEvent" = "8:\"$(ProjectDir)..\\..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\"" "RunPostBuildEvent" = "3:0" } "ProjectOutput" -- cgit v1.1 From de9934763ae11ba972c1ec9ba408ac75255f1fae Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:12 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Créé Commentaire: (vss 1) --- Ivy/IvyLib/IvyLib.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Ivy/IvyLib/IvyLib.vdproj.vspscc diff --git a/Ivy/IvyLib/IvyLib.vdproj.vspscc b/Ivy/IvyLib/IvyLib.vdproj.vspscc new file mode 100644 index 0000000..1cf11d0 --- /dev/null +++ b/Ivy/IvyLib/IvyLib.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Ivy\\IvyLib" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From a3053cc5def34cd48b8fb0015ffb245b3e1d53dc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:14 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyStdAfx.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Ivy/IvyStdAfx.cpp diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp new file mode 100644 index 0000000..5feeaf4 --- /dev/null +++ b/Ivy/IvyStdAfx.cpp @@ -0,0 +1,18 @@ +// stdafx.cpp : source file that includes just the standard includes +// libIvy.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +#include + +void DebugTrace ( const char *fmt , ... ) +{ + char buffer[4096]; + va_list args; + + va_start( args, fmt ); + vsprintf( buffer, fmt, args ); + va_end( args ); + OutputDebugString( buffer ); +} \ No newline at end of file -- cgit v1.1 From 681c212050da8dfafefeaec363dd054cca914819 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:16 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 2) --- Ivy/IvyStdAfx.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index 5feeaf4..fa5d17b 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -11,8 +11,21 @@ void DebugTrace ( const char *fmt , ... ) char buffer[4096]; va_list args; - va_start( args, fmt ); + va_start( args, fmt ); vsprintf( buffer, fmt, args ); va_end( args ); - OutputDebugString( buffer ); -} \ No newline at end of file +// OutputDebugStringA( buffer ); +} +#ifdef WIN32 +#ifdef _DEBUG +#include +void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine) + { + return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine); + } +void __cdecl operator delete(void *p, const char * lpszFileName, int nLine) + { + ::operator delete(p, _NORMAL_BLOCK, lpszFileName, nLine); + } +#endif +#endif -- cgit v1.1 From 1dae5ed0fca313c60b4c387dbbb54dd5820fcb0f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:18 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 3) --- Ivy/IvyStdAfx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index fa5d17b..a7b35f2 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -14,7 +14,7 @@ void DebugTrace ( const char *fmt , ... ) va_start( args, fmt ); vsprintf( buffer, fmt, args ); va_end( args ); -// OutputDebugStringA( buffer ); + OutputDebugStringA( buffer ); } #ifdef WIN32 #ifdef _DEBUG -- cgit v1.1 From 122b2805e10d4e28521fc7f695685b665d36bfe0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:20 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:37 Archivé dans $/Ivy (vss 4) --- Ivy/IvyStdAfx.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index a7b35f2..8da5a6e 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -9,12 +9,21 @@ void DebugTrace ( const char *fmt , ... ) { char buffer[4096]; +#ifdef UNDER_CE + TCHAR CEBuffer[4096]; +#endif va_list args; va_start( args, fmt ); vsprintf( buffer, fmt, args ); va_end( args ); - OutputDebugStringA( buffer ); +#ifdef UNDER_CE + MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, buffer, -1, CEBuffer, 4096 ); + + OutputDebugString( CEBuffer ); +#else + OutputDebugString( buffer ); +#endif } #ifdef WIN32 #ifdef _DEBUG -- cgit v1.1 From 3cbb903ca0a1c671838bec02f8fff48ceff60e5d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:22 +0000 Subject: Utilisateur : Fcolin Date : 20/02/01 Heure : 10:27 Archivé dans $/Ivy (vss 5) --- Ivy/IvyStdAfx.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index 8da5a6e..41fc8a6 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -25,16 +25,3 @@ void DebugTrace ( const char *fmt , ... ) OutputDebugString( buffer ); #endif } -#ifdef WIN32 -#ifdef _DEBUG -#include -void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine) - { - return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine); - } -void __cdecl operator delete(void *p, const char * lpszFileName, int nLine) - { - ::operator delete(p, _NORMAL_BLOCK, lpszFileName, nLine); - } -#endif -#endif -- cgit v1.1 From a8d96166e058d988bba3fd12d66d73ff08c98f14 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:24 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 6) --- Ivy/IvyStdAfx.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index 41fc8a6..0d1d4b4 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -2,7 +2,7 @@ // libIvy.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information -#include "stdafx.h" +#include "IvyStdAfx.h" #include @@ -15,7 +15,7 @@ void DebugTrace ( const char *fmt , ... ) va_list args; va_start( args, fmt ); - vsprintf( buffer, fmt, args ); + _vsnprintf( buffer, sizeof(buffer), fmt, args ); va_end( args ); #ifdef UNDER_CE MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, buffer, -1, CEBuffer, 4096 ); -- cgit v1.1 From 0732202b512ed4093004ec6fbb6caff87492d231 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:26 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 7) --- Ivy/IvyStdAfx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.cpp b/Ivy/IvyStdAfx.cpp index 0d1d4b4..2fe8012 100644 --- a/Ivy/IvyStdAfx.cpp +++ b/Ivy/IvyStdAfx.cpp @@ -15,7 +15,7 @@ void DebugTrace ( const char *fmt , ... ) va_list args; va_start( args, fmt ); - _vsnprintf( buffer, sizeof(buffer), fmt, args ); + _vsnprintf_s( buffer, sizeof(buffer), sizeof(buffer)-1, fmt, args ); va_end( args ); #ifdef UNDER_CE MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, buffer, -1, CEBuffer, 4096 ); -- cgit v1.1 From a8fd499421c677da8c2704a6c885da9ad744257e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:28 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyStdAfx.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Ivy/IvyStdAfx.h diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h new file mode 100644 index 0000000..60ed24d --- /dev/null +++ b/Ivy/IvyStdAfx.h @@ -0,0 +1,44 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_) +#define AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +#ifdef WIN32 + +#pragma warning (disable : 4786) +#pragma warning( disable : 4275 ) // non dll-interface class 'X' used as base for dll-interface class 'Y' +#pragma warning( disable : 4251 ) // 'm' : class 'X' needs to have dll-interface to be used by clients of class 'Y' + +#endif + +#include +#include +#include +#include + +#include +#include +#include + +using namespace std; + +// Debugging function + +#ifndef TRACE +#ifdef WIN32 +void DebugTrace ( const char *fmt , ... ); +#define TRACE DebugTrace +#else +#define TRACE printf +#endif +#endif +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_) -- cgit v1.1 From 8a81bd5fd18cd5021df69fc3a5913b3e9443a37e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:30 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Ivy Commentaire: Version multicast (vss 2) --- Ivy/IvyStdAfx.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 60ed24d..88ef83d 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -20,8 +20,28 @@ #include #include #include -#include +#include +// Some definition missing from winsock2 +/* + * Options for use with [gs]etsockopt at the IP level. + */ +#define IP_OPTIONS 1 /* set/get IP per-packet options */ +#define IP_MULTICAST_IF 2 /* set/get IP multicast interface */ +#define IP_MULTICAST_TTL 3 /* set/get IP multicast timetolive */ +#define IP_MULTICAST_LOOP 4 /* set/get IP multicast loopback */ +#define IP_ADD_MEMBERSHIP 5 /* add an IP group membership */ +#define IP_DROP_MEMBERSHIP 6 /* drop an IP group membership */ +#define IP_TTL 7 /* set/get IP Time To Live */ +#define IP_TOS 8 /* set/get IP Type Of Service */ +#define IP_DONTFRAGMENT 9 /* set/get IP Don't Fragment flag */ +/* + * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. + */ +struct ip_mreq { + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_interface; /* local IP address of interface */ +}; #include #include #include -- cgit v1.1 From 347befcaeb7050e7dbad27bfea53f04ad15355df Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:32 +0000 Subject: Utilisateur : Fcolin Date : 20/07/00 Heure : 10:57 Archivé dans $/Ivy (vss 3) --- Ivy/IvyStdAfx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 88ef83d..622609f 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -44,6 +44,7 @@ struct ip_mreq { }; #include #include +#include #include using namespace std; -- cgit v1.1 From c47735cf1ac762f9fb9e2aa9a197b636b671c8b4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:34 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 4) --- Ivy/IvyStdAfx.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 622609f..a036dd3 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -47,9 +47,9 @@ struct ip_mreq { #include #include -using namespace std; +typedef std::string String; -// Debugging function +//using namespace std; #ifndef TRACE #ifdef WIN32 -- cgit v1.1 From 32cf69c6042f917b72f853460022aedacdc0fbfb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:36 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/IvyStdAfx.h | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index a036dd3..4a795f4 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -3,25 +3,24 @@ // are changed infrequently // -#if !defined(AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_) -#define AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_ - -#if _MSC_VER > 1000 #pragma once -#endif // _MSC_VER > 1000 + #ifdef WIN32 #pragma warning (disable : 4786) #pragma warning( disable : 4275 ) // non dll-interface class 'X' used as base for dll-interface class 'Y' #pragma warning( disable : 4251 ) // 'm' : class 'X' needs to have dll-interface to be used by clients of class 'Y' +#include #endif +#include #include #include -#include +#include -#include +//#include +#ifdef _WINSOCK2API_ // Some definition missing from winsock2 /* * Options for use with [gs]etsockopt at the IP level. @@ -42,24 +41,45 @@ struct ip_mreq { struct in_addr imr_multiaddr; /* IP multicast address of group */ struct in_addr imr_interface; /* local IP address of interface */ }; +#endif + +#ifndef _WIN32_WCE +#define STL +#endif +#ifdef STL #include #include #include #include -typedef std::string String; +using std::string; +using std::vector; +using std::map; +using std::list; +#else +#include "DataTypes.h" +#endif //using namespace std; #ifndef TRACE #ifdef WIN32 + void DebugTrace ( const char *fmt , ... ); #define TRACE DebugTrace #else #define TRACE printf #endif #endif -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__EE0269AE_DB02_11D2_89CA_00A0245B298A__INCLUDED_) +#ifndef ASSERT +#ifdef WIN32 +#define ASSERT(expr) \ + do { \ + if (!(expr) && (1 == _CrtDbgReport( \ + _CRT_ASSERT, __FILE__, __LINE__, "Ivy", #expr))) \ + _CrtDbgBreak(); \ + } while (0) +#else +#define ASSERT printf +#endif +#endif -- cgit v1.1 From 96a3abc0ff921996eb9c68b3b57104d8aae3e43e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:38 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 6) --- Ivy/IvyStdAfx.h | 70 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 4a795f4..ca8c507 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -5,19 +5,17 @@ #pragma once -#ifdef WIN32 - -#pragma warning (disable : 4786) -#pragma warning( disable : 4275 ) // non dll-interface class 'X' used as base for dll-interface class 'Y' -#pragma warning( disable : 4251 ) // 'm' : class 'X' needs to have dll-interface to be used by clients of class 'Y' -#include +#if defined( WIN32 ) || defined( UNDER_CE ) +#pragma warning( disable : 4786 ) // identifier was truncated to '255' characters in the debug information +#pragma warning( disable : 4275 ) // non dll-interface class 'X' used as base for dll-interface class 'Y' +#pragma warning( disable : 4251 ) // 'm' : class 'X' needs to have dll-interface to be used by clients of class 'Y' #endif -#include +#include #include #include -#include +#include //#include #ifdef _WINSOCK2API_ @@ -43,8 +41,12 @@ struct ip_mreq { }; #endif -#ifndef _WIN32_WCE -#define STL +#ifndef IN_CLASSD +#define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) +#endif + +#ifndef UNDER_CE +//#define STL #endif #ifdef STL #include @@ -54,32 +56,58 @@ struct ip_mreq { using std::string; using std::vector; -using std::map; using std::list; #else #include "DataTypes.h" #endif -//using namespace std; -#ifndef TRACE + #ifdef WIN32 +#ifndef TRACE void DebugTrace ( const char *fmt , ... ); #define TRACE DebugTrace -#else -#define TRACE printf #endif + +#ifndef ASSERT +#define ASSERT(expr) \ + do { \ + if (! (expr) ) \ + {\ + TRACE( "Assert (%s) at %s:%d\n", #expr, __FILE__ , __LINE__ ); \ + DebugBreak(); \ + }\ + } while (0) +#endif +#elif defined( _WIN32_WCE ) + + +#ifndef TRACE +void DebugTrace ( const char *fmt , ... ); +#define TRACE DebugTrace #endif + #ifndef ASSERT -#ifdef WIN32 #define ASSERT(expr) \ do { \ - if (!(expr) && (1 == _CrtDbgReport( \ - _CRT_ASSERT, __FILE__, __LINE__, "Ivy", #expr))) \ - _CrtDbgBreak(); \ + if (! (expr) ) \ + {\ + TRACE( "Assert (%s) failed in file %s at line %d\r\n", #expr, __FILE__ , __LINE__ ); \ + DebugBreak(); \ + }\ } while (0) -#else -#define ASSERT printf #endif + +#else +#include +#define TRACE printf +#define ASSERT(expr) assert( expr ) #endif + +#ifdef WIN32 + +void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine); +void __cdecl operator delete(void *p, const char * lpszFileName, int nLine); + +#endif \ No newline at end of file -- cgit v1.1 From 2fa8fb886639e88ea8a2fead0991da38689aaf2b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:40 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 7) --- Ivy/IvyStdAfx.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index ca8c507..c9ed653 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -51,7 +51,6 @@ struct ip_mreq { #ifdef STL #include #include -#include #include using std::string; -- cgit v1.1 From 7960d649075ff2ee8d74ff8d9f8745408f52b9b4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:42 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:37 Archivé dans $/Ivy (vss 8) --- Ivy/IvyStdAfx.h | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index c9ed653..b197ad7 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -62,37 +62,23 @@ using std::list; -#ifdef WIN32 +#ifdef WIN32 #ifndef TRACE void DebugTrace ( const char *fmt , ... ); #define TRACE DebugTrace #endif -#ifndef ASSERT -#define ASSERT(expr) \ - do { \ - if (! (expr) ) \ - {\ - TRACE( "Assert (%s) at %s:%d\n", #expr, __FILE__ , __LINE__ ); \ - DebugBreak(); \ - }\ - } while (0) -#endif -#elif defined( _WIN32_WCE ) - - -#ifndef TRACE -void DebugTrace ( const char *fmt , ... ); -#define TRACE DebugTrace -#endif +#if defined(_WIN32_WCE) +#undef ASSERT +#endif // _WIN32_WCE #ifndef ASSERT #define ASSERT(expr) \ do { \ if (! (expr) ) \ {\ - TRACE( "Assert (%s) failed in file %s at line %d\r\n", #expr, __FILE__ , __LINE__ ); \ + TRACE( "Assert (%s) failed in file %s at line %d\r\n", TEXT(#expr), __FILE__ , __LINE__ ); \ DebugBreak(); \ }\ } while (0) -- cgit v1.1 From 0932419feeffc111b28762c490adfd6054f372e3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:44 +0000 Subject: Utilisateur : Fcolin Date : 20/02/01 Heure : 10:27 Archivé dans $/Ivy (vss 9) --- Ivy/IvyStdAfx.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index b197ad7..9bb291c 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -46,7 +46,7 @@ struct ip_mreq { #endif #ifndef UNDER_CE -//#define STL +#define STL #endif #ifdef STL #include @@ -90,9 +90,16 @@ void DebugTrace ( const char *fmt , ... ); #define ASSERT(expr) assert( expr ) #endif -#ifdef WIN32 +#if defined( WIN32 ) && (!defined(UNDER_CE)) +#include -void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine); -void __cdecl operator delete(void *p, const char * lpszFileName, int nLine); +inline void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine) + { + return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine); + } +inline void __cdecl operator delete(void *p, const char * lpszFileName, int nLine) + { + ::operator delete(p, _NORMAL_BLOCK, lpszFileName, nLine); + } -#endif \ No newline at end of file +#endif -- cgit v1.1 From a793429d90412587a0e7b493d177272774fd81c1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:46 +0000 Subject: Utilisateur : Fcolin Date : 20/02/01 Heure : 10:52 Archivé dans $/Ivy (vss 10) --- Ivy/IvyStdAfx.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 9bb291c..e335332 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -91,8 +91,10 @@ void DebugTrace ( const char *fmt , ... ); #endif #if defined( WIN32 ) && (!defined(UNDER_CE)) -#include +#include +#ifndef DEBUG_NEW_OP +#define DEBUG_NEW_OP inline void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine) { return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine); @@ -101,5 +103,6 @@ inline void __cdecl operator delete(void *p, const char * lpszFileName, int nLin { ::operator delete(p, _NORMAL_BLOCK, lpszFileName, nLine); } +#endif #endif -- cgit v1.1 From ed57724939eb298af5ed2d810937acd18e1418ce Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:48 +0000 Subject: Utilisateur : Fcolin Date : 23/05/01 Heure : 10:25 Archivé dans $/Ivy (vss 11) --- Ivy/IvyStdAfx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index e335332..df0561a 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -90,7 +90,7 @@ void DebugTrace ( const char *fmt , ... ); #define ASSERT(expr) assert( expr ) #endif -#if defined( WIN32 ) && (!defined(UNDER_CE)) +#if defined( WIN32 ) && (!defined(UNDER_CE)) && (!defined(_AFX)) #include #ifndef DEBUG_NEW_OP -- cgit v1.1 From e5bc8ece1d671160e129161ade3a29d9be37d9f5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:50 +0000 Subject: Utilisateur : Fcolin Date : 16/07/01 Heure : 11:47 Archivé dans $/Ivy (vss 12) --- Ivy/IvyStdAfx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index df0561a..82df2b2 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -90,7 +90,7 @@ void DebugTrace ( const char *fmt , ... ); #define ASSERT(expr) assert( expr ) #endif -#if defined( WIN32 ) && (!defined(UNDER_CE)) && (!defined(_AFX)) +#if defined( WIN32 ) && defined( _DEBUG ) && (!defined(UNDER_CE)) && (!defined(_AFX)) #include #ifndef DEBUG_NEW_OP -- cgit v1.1 From 9fb98a3d1a6a0798ac11f0695075b93e82102377 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:52 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 13) --- Ivy/IvyStdAfx.h | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 82df2b2..8dd1de2 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -92,17 +92,5 @@ void DebugTrace ( const char *fmt , ... ); #if defined( WIN32 ) && defined( _DEBUG ) && (!defined(UNDER_CE)) && (!defined(_AFX)) -#include -#ifndef DEBUG_NEW_OP -#define DEBUG_NEW_OP -inline void* __cdecl operator new(size_t nSize, const char * lpszFileName, int nLine) - { - return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine); - } -inline void __cdecl operator delete(void *p, const char * lpszFileName, int nLine) - { - ::operator delete(p, _NORMAL_BLOCK, lpszFileName, nLine); - } -#endif #endif -- cgit v1.1 From e47da423a8f6187cf616e5db6884c97d886021a9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:54 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 14) --- Ivy/IvyStdAfx.h | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 8dd1de2..13d097c 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -45,22 +45,7 @@ struct ip_mreq { #define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) #endif -#ifndef UNDER_CE -#define STL -#endif -#ifdef STL -#include -#include -#include - -using std::string; -using std::vector; -using std::list; -#else #include "DataTypes.h" -#endif - - #ifdef WIN32 @@ -90,7 +75,3 @@ void DebugTrace ( const char *fmt , ... ); #define ASSERT(expr) assert( expr ) #endif -#if defined( WIN32 ) && defined( _DEBUG ) && (!defined(UNDER_CE)) && (!defined(_AFX)) - - -#endif -- cgit v1.1 From 6eb1ac4e3bbaed76c1ff39f793a54a0c2330812c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:56 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 15) --- Ivy/IvyStdAfx.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 13d097c..1c0821b 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -45,8 +45,21 @@ struct ip_mreq { #define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) #endif +#ifdef IVY_USE_OWN_DATATYPES + #include "DataTypes.h" +#else + +#include +#include +#include + +namespace ivy = std; + +#endif + + #ifdef WIN32 #ifndef TRACE -- cgit v1.1 From 215bf25b659764e7064259f329a6663dc625f80b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:02:58 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 16:40 Archivé dans $/Bus/Ivy Commentaire: correction bug du a la separation du module regexp transformation des tables de regexp en table de Hash (vss 16) --- Ivy/IvyStdAfx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyStdAfx.h b/Ivy/IvyStdAfx.h index 1c0821b..58a16bb 100644 --- a/Ivy/IvyStdAfx.h +++ b/Ivy/IvyStdAfx.h @@ -54,6 +54,7 @@ struct ip_mreq { #include #include #include +#include namespace ivy = std; -- cgit v1.1 From bf1538cd4977d8278f2dc22a796a1192c8794783 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:00 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvySynchroWnd.cxx | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 Ivy/IvySynchroWnd.cxx diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx new file mode 100644 index 0000000..297c64e --- /dev/null +++ b/Ivy/IvySynchroWnd.cxx @@ -0,0 +1,158 @@ +// SynchroWnd.cpp : implementation file +// + +#include "stdafx.h" + +#include "IvySynchroWnd.h" + + +#define WM_MESSAGE_CB WM_USER + 1001 +#define WM_APPCONNECTED_CB WM_USER + 1002 +#define WM_APPDISCONNECTED_CB WM_USER + 1003 + +IvySynchroWnd* IvySynchronousCallback::m_synchro = NULL; +IvySynchroWnd* IvySynchroWnd::m_synchro = NULL; + +///////////////////////////////////////////////////////////////////////////// +// IvySynchroWnd + +IvySynchroWnd::IvySynchroWnd() +{ + m_hWnd = NULL; + m_synchro = this; + + WNDCLASS wc; + + // Fill in the window class structure with parameters + // that describe the main window. + + wc.style = 0; // noredraw if size changes + wc.lpfnWndProc = WindowProc; // points to window procedure + wc.cbClsExtra = 0; // no extra class memory + wc.cbWndExtra = 0; // no extra window memory + wc.hInstance = 0; // handle to instance + wc.hIcon = NULL; // predefined app. icon + wc.hCursor = NULL; // predefined arrow + wc.hbrBackground = 0; // white background brush + wc.lpszMenuName = NULL; // no menu + wc.lpszClassName = "IvySynchroClass"; // name of window class + + // Register the window class. + + if ( ! RegisterClass(&wc) ) + { + TRACE("Warning: unable to create Ivy Synchro notify window!\n"); + //AfxThrowResourceException(); + } + + // Create the syncrho window. + m_hWnd = CreateWindowEx(0, "IvySynchroClass","Ivy Synchro Notification Sink", + WS_OVERLAPPED, 0, 0, 0, 0, NULL , NULL, NULL, NULL); + if (!m_hWnd) + { + TRACE("Warning: unable to create Ivy Synchro notify window!\n"); + //AfxThrowResourceException(); + } + +} +IvySynchroWnd::~IvySynchroWnd() +{ +} + + +LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) +{ + switch ( uMsg ) + { + case WM_MESSAGE_CB: + m_synchro->OnMessageCB( wParam, lParam ); + break; + case WM_APPCONNECTED_CB: + m_synchro->OnApplicationConnectedCB( wParam, lParam ); + break; + case WM_APPDISCONNECTED_CB: + m_synchro->OnApplicationDisconnectedCB( wParam, lParam ); + break; + + // + // Process other messages. + // + + default: + return DefWindowProc(hwnd, uMsg, wParam, lParam); + } + return 0; +} + + + + +///////////////////////////////////////////////////////////////////////////// +// IvySynchroWnd message handlers + + +LRESULT IvySynchroWnd::OnMessageCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousMessageCallback *param = ( IvySynchronousMessageCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnMessageCB msg count %d\n",wParam); + param->target->OnMessage( param->app, param->argc, (const char **) param->argv ); + for( int i = 0; i < param->argc ; i++ ) + free( param->argv[i] ); // allocated with strdup + delete param->argv; // allocated with new + delete param; + return 0L; +} +LRESULT IvySynchroWnd::OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); + param->target->OnApplicationConnected( param->app ); + delete param; + return 0L; +} +LRESULT IvySynchroWnd::OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam) +{ + IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; +// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); + param->target->OnApplicationDisconnected( param->app ); + delete param; + return 0L; +} +// +// +IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback *cb ) +{ + target = cb; +} +void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) +{ + static int msg_count = 0; + // duplicate on the Message Queue + IvySynchronousMessageCallback *param = new IvySynchronousMessageCallback(target); + param->app = app; + param->argc = argc; + param->argv = new char*[argc]; + for( int i = 0; i < argc ; i++ ) + param->argv[i] = strdup( argv[i]); +// TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); + assert(PostMessage(m_synchro->m_hWnd, WM_MESSAGE_CB, msg_count++, (LPARAM)param )); + +} +IvySynchronousApplicationCallback::IvySynchronousApplicationCallback( IvyApplicationCallback *cb ) +{ + target = cb; +} +void IvySynchronousApplicationCallback::OnApplicationConnected( IvyApplication *app) +{ + // duplicate on the Message Queue + IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->app = app; + assert(PostMessage(m_synchro->m_hWnd, WM_APPCONNECTED_CB, 0, (LPARAM)param )); +} +void IvySynchronousApplicationCallback::OnApplicationDisconnected( IvyApplication *app) +{ + // duplicate on the Message Queue + IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->app = app; + assert(PostMessage(m_synchro->m_hWnd, WM_APPDISCONNECTED_CB, 0, (LPARAM)param )); +} -- cgit v1.1 From 5eb107eaab189823158133d5a0048ed8870d1d17 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:02 +0000 Subject: Utilisateur : Fcolin Date : 30/06/00 Heure : 16:31 Archivé dans $/Ivy (vss 2) --- Ivy/IvySynchroWnd.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 297c64e..5e7189c 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -124,6 +124,10 @@ IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback { target = cb; } +IvySynchronousMessageCallback::~IvySynchronousMessageCallback() +{ + //delete target; +} void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) { static int msg_count = 0; -- cgit v1.1 From d22136a194cbe1e54e80feaefbb96c20cadb512a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:04 +0000 Subject: Utilisateur : Fcolin Date : 21/07/00 Heure : 10:48 Archivé dans $/Ivy Commentaire: separation file cb de la file de message windows (vss 3) --- Ivy/IvySynchroWnd.cxx | 85 +++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 36 deletions(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 5e7189c..80b2622 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -6,9 +6,8 @@ #include "IvySynchroWnd.h" -#define WM_MESSAGE_CB WM_USER + 1001 -#define WM_APPCONNECTED_CB WM_USER + 1002 -#define WM_APPDISCONNECTED_CB WM_USER + 1003 +#define WM_IVY_CB WM_USER + 1001 + IvySynchroWnd* IvySynchronousCallback::m_synchro = NULL; IvySynchroWnd* IvySynchroWnd::m_synchro = NULL; @@ -53,6 +52,7 @@ IvySynchroWnd::IvySynchroWnd() TRACE("Warning: unable to create Ivy Synchro notify window!\n"); //AfxThrowResourceException(); } + InitializeCriticalSection( &m_CritSection ); } IvySynchroWnd::~IvySynchroWnd() @@ -64,16 +64,9 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam { switch ( uMsg ) { - case WM_MESSAGE_CB: - m_synchro->OnMessageCB( wParam, lParam ); - break; - case WM_APPCONNECTED_CB: - m_synchro->OnApplicationConnectedCB( wParam, lParam ); - break; - case WM_APPDISCONNECTED_CB: - m_synchro->OnApplicationDisconnectedCB( wParam, lParam ); + case WM_IVY_CB: + m_synchro->OnIvyCB( wParam, lParam ); break; - // // Process other messages. // @@ -91,32 +84,28 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam // IvySynchroWnd message handlers -LRESULT IvySynchroWnd::OnMessageCB(WPARAM wParam, LPARAM lParam) +LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) { - IvySynchronousMessageCallback *param = ( IvySynchronousMessageCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnMessageCB msg count %d\n",wParam); - param->target->OnMessage( param->app, param->argc, (const char **) param->argv ); - for( int i = 0; i < param->argc ; i++ ) - free( param->argv[i] ); // allocated with strdup - delete param->argv; // allocated with new + std::list::iterator iter; + EnterCriticalSection( &m_CritSection ); + + for ( iter = callbacklist.begin(); iter != callbacklist.end(); ) + { + IvySynchronousCallback *param = *iter++; + param->CallCallback(); delete param; + } + callbacklist.clear(); + LeaveCriticalSection( &m_CritSection ); return 0L; } -LRESULT IvySynchroWnd::OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam) +void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { - IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); - param->target->OnApplicationConnected( param->app ); - delete param; - return 0L; -} -LRESULT IvySynchroWnd::OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam) -{ - IvySynchronousApplicationCallback *param = ( IvySynchronousApplicationCallback * ) lParam; -// TRACE( "IvySynchroWnd::OnSynchroNotify End Synchro\n"); - param->target->OnApplicationDisconnected( param->app ); - delete param; - return 0L; + EnterCriticalSection( &m_CritSection ); + if ( !m_synchro->callbacklist.size() ) + assert(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); + m_synchro->callbacklist.push_back( cb ); + LeaveCriticalSection( &m_CritSection ); } // // @@ -139,9 +128,18 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con for( int i = 0; i < argc ; i++ ) param->argv[i] = strdup( argv[i]); // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); - assert(PostMessage(m_synchro->m_hWnd, WM_MESSAGE_CB, msg_count++, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } +void IvySynchronousMessageCallback::CallCallback() +{ + target->OnMessage( app, argc, (const char **) argv ); + for( int i = 0; i < argc ; i++ ) + free( argv[i] ); // allocated with strdup + delete argv; // allocated with new +} + + IvySynchronousApplicationCallback::IvySynchronousApplicationCallback( IvyApplicationCallback *cb ) { target = cb; @@ -150,13 +148,28 @@ void IvySynchronousApplicationCallback::OnApplicationConnected( IvyApplication * { // duplicate on the Message Queue IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->type = CONNECTED_CB; param->app = app; - assert(PostMessage(m_synchro->m_hWnd, WM_APPCONNECTED_CB, 0, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } + void IvySynchronousApplicationCallback::OnApplicationDisconnected( IvyApplication *app) { // duplicate on the Message Queue IvySynchronousApplicationCallback *param = new IvySynchronousApplicationCallback(target); + param->type = DISCONNECTED_CB; param->app = app; - assert(PostMessage(m_synchro->m_hWnd, WM_APPDISCONNECTED_CB, 0, (LPARAM)param )); + m_synchro->PostIvyCB( param ); } +void IvySynchronousApplicationCallback::CallCallback() +{ + switch ( type ) + { + case CONNECTED_CB: + target->OnApplicationConnected( app ); + break; + case DISCONNECTED_CB: + target->OnApplicationDisconnected( app ); + break; + } +} \ No newline at end of file -- cgit v1.1 From 5aba50d0f42fbe91363d0e06d298ddbccd8df961 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:06 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/IvySynchroWnd.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 80b2622..12a4587 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -86,7 +86,7 @@ LRESULT CALLBACK IvySynchroWnd::WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) { - std::list::iterator iter; + IvySynchronousCallbackList::iterator iter; EnterCriticalSection( &m_CritSection ); for ( iter = callbacklist.begin(); iter != callbacklist.end(); ) @@ -103,7 +103,7 @@ void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); if ( !m_synchro->callbacklist.size() ) - assert(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); + ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); } -- cgit v1.1 From 897f96895828f2e58459d5a3c7ef57ca652982c5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:08 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/IvySynchroWnd.cxx | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 12a4587..2ed6302 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -3,6 +3,12 @@ #include "stdafx.h" +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif + + #include "IvySynchroWnd.h" @@ -34,7 +40,7 @@ IvySynchroWnd::IvySynchroWnd() wc.hCursor = NULL; // predefined arrow wc.hbrBackground = 0; // white background brush wc.lpszMenuName = NULL; // no menu - wc.lpszClassName = "IvySynchroClass"; // name of window class + wc.lpszClassName = TEXT("IvySynchroClass"); // name of window class // Register the window class. @@ -45,7 +51,7 @@ IvySynchroWnd::IvySynchroWnd() } // Create the syncrho window. - m_hWnd = CreateWindowEx(0, "IvySynchroClass","Ivy Synchro Notification Sink", + m_hWnd = CreateWindowEx(0, TEXT("IvySynchroClass"), TEXT("Ivy Synchro Notification Sink"), WS_OVERLAPPED, 0, 0, 0, 0, NULL , NULL, NULL, NULL); if (!m_hWnd) { @@ -102,7 +108,7 @@ LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); - if ( !m_synchro->callbacklist.size() ) + if ( !m_synchro->callbacklist.empty() ) ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); @@ -126,7 +132,10 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argc = argc; param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) - param->argv[i] = strdup( argv[i]); + { + param->argv[i] = new char[ strlen( argv[i]) +1 ]; + strcpy( param->argv[i], argv[i]); + } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); @@ -135,8 +144,8 @@ void IvySynchronousMessageCallback::CallCallback() { target->OnMessage( app, argc, (const char **) argv ); for( int i = 0; i < argc ; i++ ) - free( argv[i] ); // allocated with strdup - delete argv; // allocated with new + delete argv[i]; + delete argv; } -- cgit v1.1 From fbb3f93fb72791aae6c9346d55a42e97b8a605f1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:10 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 6) --- Ivy/IvySynchroWnd.cxx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 2ed6302..33059d8 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -3,11 +3,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif - #include "IvySynchroWnd.h" -- cgit v1.1 From d3034a30db643cefc90b690a422b98dd7b2a0713 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:12 +0000 Subject: Utilisateur : Fcolin Date : 9/10/01 Heure : 12:12 Archivé dans $/Ivy Commentaire: on poste un message synchro si la file est vide (vss 7) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 33059d8..e2b2338 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -103,7 +103,7 @@ LRESULT IvySynchroWnd::OnIvyCB(WPARAM wParam, LPARAM lParam) void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) { EnterCriticalSection( &m_CritSection ); - if ( !m_synchro->callbacklist.empty() ) + if ( m_synchro->callbacklist.empty() ) ASSERT(PostMessage(m_synchro->m_hWnd, WM_IVY_CB, 0, 0 )); m_synchro->callbacklist.push_back( cb ); LeaveCriticalSection( &m_CritSection ); -- cgit v1.1 From 828345b232bd03acc670731a8a1e8b04e93fa528 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:14 +0000 Subject: Utilisateur : Fcolin Date : 5/11/02 Heure : 9:57 Archivé dans $/Bus/Ivy Commentaire: (vss 8) --- Ivy/IvySynchroWnd.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index e2b2338..cabe92c 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -117,6 +117,11 @@ IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback IvySynchronousMessageCallback::~IvySynchronousMessageCallback() { //delete target; + for( int i = 0; i < argc ; i++ ) + { + delete argv[i]; + } + if ( argv ) delete argv; } void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, const char **argv ) { @@ -128,8 +133,7 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) { - param->argv[i] = new char[ strlen( argv[i]) +1 ]; - strcpy( param->argv[i], argv[i]); + param->argv[i] = strdup( argv[i]); } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); -- cgit v1.1 From 02b8ce0b1e1c0193245917f92f2e1cdb600b3330 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:16 +0000 Subject: Utilisateur : Fcolin Date : 14/11/02 Heure : 15:45 Archivé dans $/Bus/Ivy Commentaire: (vss 9) --- Ivy/IvySynchroWnd.cxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index cabe92c..d21a008 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -113,6 +113,9 @@ void IvySynchroWnd::PostIvyCB( IvySynchronousCallback *cb ) IvySynchronousMessageCallback::IvySynchronousMessageCallback( IvyMessageCallback *cb ) { target = cb; + app = 0; + argc = 0; + argv = 0; } IvySynchronousMessageCallback::~IvySynchronousMessageCallback() { -- cgit v1.1 From fea1bcb86df19daf2f08d11ad219ea0dac7be125 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:18 +0000 Subject: Utilisateur : Fcolin Date : 4/02/03 Heure : 8:59 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/IvySynchroWnd.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index d21a008..67c02d4 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -136,7 +136,11 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con param->argv = new char*[argc]; for( int i = 0; i < argc ; i++ ) { +#ifdef UNDER_CE + param->argv[i] = _strdup( argv[i]); +#else param->argv[i] = strdup( argv[i]); +#endif } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); m_synchro->PostIvyCB( param ); -- cgit v1.1 From bc28a2d4c3bda6f37ad0c056ac7122254a1cb066 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:20 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 11) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 67c02d4..18c4c43 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -1,7 +1,7 @@ // SynchroWnd.cpp : implementation file // -#include "stdafx.h" +#include "IvyStdAfx.h" #include "IvySynchroWnd.h" -- cgit v1.1 From 71558f893472566b7035f7d7de8df1a9f876374c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:22 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 12) --- Ivy/IvySynchroWnd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 18c4c43..9df473a 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -139,7 +139,7 @@ void IvySynchronousMessageCallback::OnMessage(IvyApplication *app, int argc, con #ifdef UNDER_CE param->argv[i] = _strdup( argv[i]); #else - param->argv[i] = strdup( argv[i]); + param->argv[i] = _strdup( argv[i]); #endif } // TRACE( "IvySynchronousMessageCallback::OnMessage msg count %d\n",wParam); -- cgit v1.1 From 62aca5b9f103f6b8a12e2c1925abb02caa946907 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:24 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 13) --- Ivy/IvySynchroWnd.cxx | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/Ivy/IvySynchroWnd.cxx b/Ivy/IvySynchroWnd.cxx index 9df473a..2109a61 100644 --- a/Ivy/IvySynchroWnd.cxx +++ b/Ivy/IvySynchroWnd.cxx @@ -187,4 +187,57 @@ void IvySynchronousApplicationCallback::CallCallback() target->OnApplicationDisconnected( app ); break; } +} + + +IvySynchronousBindingCallback::IvySynchronousBindingCallback( IvyBindingCallback *cb ) +{ + target = cb; +} +void IvySynchronousBindingCallback::OnAddBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = ADD_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} + +void IvySynchronousBindingCallback::OnRemoveBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = REMOVE_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} +void IvySynchronousBindingCallback::OnFilterBind( IvyApplication *app, int id, const char *regexp) +{ + // duplicate on the Message Queue + IvySynchronousBindingCallback *param = new IvySynchronousBindingCallback(target); + param->type = FILTER_CB; + param->app = app; + param->id = id; + param->regexp = _strdup(regexp); + m_synchro->PostIvyCB( param ); +} +void IvySynchronousBindingCallback::CallCallback() +{ + switch ( type ) + { + case ADD_CB: + target->OnAddBind( app, id, regexp ); + break; + case REMOVE_CB: + target->OnRemoveBind( app, id, regexp ); + break; + case FILTER_CB: + target->OnFilterBind( app, id, regexp ); + break; + } + delete regexp; } \ No newline at end of file -- cgit v1.1 From cf45b7b1b3cecc0f225e74efbf73c26ed0598956 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:26 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvySynchroWnd.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Ivy/IvySynchroWnd.h diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h new file mode 100644 index 0000000..d497f4a --- /dev/null +++ b/Ivy/IvySynchroWnd.h @@ -0,0 +1,97 @@ +#if !defined(AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) +#define AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// SynchroWnd.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// IvySynchroWnd window + +#include "IvyApplication.h" + +class IvySynchroWnd //: public CWnd +{ +// Construction +public: + IvySynchroWnd(); + +// Attributes +public: + +// Operations +public: + void PostMessageCB (IvyMessageCallback *target, IvyApplication *app, int argc, const char **argv ); + void PostApplicationConnectedCB( IvyApplicationCallback *target, IvyApplication *app); + void PostApplicationDisconnectedCB( IvyApplicationCallback *target, IvyApplication *app); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(IvySynchroWnd) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~IvySynchroWnd(); +protected: + HWND m_hWnd; + +protected: + // Unique instance of this class + static IvySynchroWnd *m_synchro; + // Generated message map functions + static LRESULT CALLBACK WindowProc( + HWND hwnd, // handle to window + UINT uMsg, // message identifier + WPARAM wParam, // first message parameter + LPARAM lParam // second message parameter + ); + +protected: + + LRESULT OnMessageCB(WPARAM wParam, LPARAM lParam); + LRESULT OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam); + LRESULT OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam); + friend class IvySynchronousMessageCallback; + friend class IvySynchronousApplicationCallback; + +}; +class IvySynchronousCallback +{ +protected: + IvyApplication *app; + static IvySynchroWnd *m_synchro; + friend class Ivy; +}; +class IvySynchronousMessageCallback: public IvySynchronousCallback, public IvyMessageCallback +{ +public: + IvySynchronousMessageCallback( IvyMessageCallback *cb ); + virtual void OnMessage (IvyApplication *app, int argc, const char **argv ); + +protected: + IvyMessageCallback *target; + int argc; + char **argv; + + friend class IvySynchroWnd; +}; +class IvySynchronousApplicationCallback: public IvySynchronousCallback, public IvyApplicationCallback +{ +public: + IvySynchronousApplicationCallback( IvyApplicationCallback *cb ); + virtual void OnApplicationConnected (IvyApplication *app); + virtual void OnApplicationDisconnected (IvyApplication *app); +protected: + IvyApplicationCallback *target; + + friend class IvySynchroWnd; +}; +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -- cgit v1.1 From dce9bce91bdb923914835b55beb22ae995433eb3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:28 +0000 Subject: Utilisateur : Fcolin Date : 30/06/00 Heure : 16:31 Archivé dans $/Ivy (vss 2) --- Ivy/IvySynchroWnd.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h index d497f4a..5abd3ff 100644 --- a/Ivy/IvySynchroWnd.h +++ b/Ivy/IvySynchroWnd.h @@ -69,6 +69,7 @@ class IvySynchronousMessageCallback: public IvySynchronousCallback, public IvyM { public: IvySynchronousMessageCallback( IvyMessageCallback *cb ); + virtual ~IvySynchronousMessageCallback(); virtual void OnMessage (IvyApplication *app, int argc, const char **argv ); protected: -- cgit v1.1 From 083e6c611c603c88654be3bc3d60b63212945d3c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:30 +0000 Subject: Utilisateur : Fcolin Date : 21/07/00 Heure : 10:48 Archivé dans $/Ivy Commentaire: separation file cb de la file de message windows (vss 3) --- Ivy/IvySynchroWnd.h | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h index 5abd3ff..fba864e 100644 --- a/Ivy/IvySynchroWnd.h +++ b/Ivy/IvySynchroWnd.h @@ -12,6 +12,8 @@ #include "IvyApplication.h" +class IvySynchronousCallback; + class IvySynchroWnd //: public CWnd { // Construction @@ -21,12 +23,10 @@ public: // Attributes public: + // Operations public: - void PostMessageCB (IvyMessageCallback *target, IvyApplication *app, int argc, const char **argv ); - void PostApplicationConnectedCB( IvyApplicationCallback *target, IvyApplication *app); - void PostApplicationDisconnectedCB( IvyApplicationCallback *target, IvyApplication *app); - + void PostIvyCB( IvySynchronousCallback *cb ); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(IvySynchroWnd) @@ -48,12 +48,13 @@ protected: WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); + // Buffer Emission + CRITICAL_SECTION m_CritSection; + std::list callbacklist; protected: - LRESULT OnMessageCB(WPARAM wParam, LPARAM lParam); - LRESULT OnApplicationConnectedCB(WPARAM wParam, LPARAM lParam); - LRESULT OnApplicationDisconnectedCB(WPARAM wParam, LPARAM lParam); + LRESULT OnIvyCB(WPARAM wParam, LPARAM lParam); friend class IvySynchronousMessageCallback; friend class IvySynchronousApplicationCallback; @@ -64,12 +65,16 @@ protected: IvyApplication *app; static IvySynchroWnd *m_synchro; friend class Ivy; +public: + virtual void CallCallback() = 0; + }; class IvySynchronousMessageCallback: public IvySynchronousCallback, public IvyMessageCallback { public: IvySynchronousMessageCallback( IvyMessageCallback *cb ); virtual ~IvySynchronousMessageCallback(); + virtual void CallCallback(); virtual void OnMessage (IvyApplication *app, int argc, const char **argv ); protected: @@ -83,11 +88,14 @@ class IvySynchronousApplicationCallback: public IvySynchronousCallback, public { public: IvySynchronousApplicationCallback( IvyApplicationCallback *cb ); + virtual void CallCallback(); virtual void OnApplicationConnected (IvyApplication *app); virtual void OnApplicationDisconnected (IvyApplication *app); protected: IvyApplicationCallback *target; - + typedef enum { CONNECTED_CB, DISCONNECTED_CB } CallbackType; + CallbackType type; + friend class IvySynchroWnd; }; ///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 01f17249cc38ce6e98b1982d5b111144cf8e1aa6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:32 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/IvySynchroWnd.h | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h index fba864e..ceb7aa3 100644 --- a/Ivy/IvySynchroWnd.h +++ b/Ivy/IvySynchroWnd.h @@ -1,12 +1,7 @@ -#if !defined(AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -#define AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 +// // SynchroWnd.h : header file // - +#pragma once ///////////////////////////////////////////////////////////////////////////// // IvySynchroWnd window @@ -14,7 +9,7 @@ class IvySynchronousCallback; -class IvySynchroWnd //: public CWnd +class IvySynchroWnd { // Construction public: @@ -27,10 +22,6 @@ public: // Operations public: void PostIvyCB( IvySynchronousCallback *cb ); -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(IvySynchroWnd) - //}}AFX_VIRTUAL // Implementation public: @@ -50,7 +41,8 @@ protected: ); // Buffer Emission CRITICAL_SECTION m_CritSection; - std::list callbacklist; + typedef list IvySynchronousCallbackList; + IvySynchronousCallbackList callbacklist; protected: @@ -98,9 +90,3 @@ protected: friend class IvySynchroWnd; }; -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_SYNCHROWND_H__ECAC808C_3B4D_11D3_8A1E_00A0245B298A__INCLUDED_) -- cgit v1.1 From ca7d7e10e8d548eabab6ae7dd7f15b885f338e05 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:34 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 5) --- Ivy/IvySynchroWnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h index ceb7aa3..b21b2b3 100644 --- a/Ivy/IvySynchroWnd.h +++ b/Ivy/IvySynchroWnd.h @@ -41,7 +41,7 @@ protected: ); // Buffer Emission CRITICAL_SECTION m_CritSection; - typedef list IvySynchronousCallbackList; + typedef ivy::list IvySynchronousCallbackList; IvySynchronousCallbackList callbacklist; protected: -- cgit v1.1 From 33d722d0f56256e7e0aff49063c95c4d0fe44877 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:36 +0000 Subject: Utilisateur : Fcolin Date : 1/06/06 Heure : 10:14 Archivé dans $/Bus/Ivy Commentaire: ajout Binding Callback et SetFilter (vss 6) --- Ivy/IvySynchroWnd.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h index b21b2b3..ffa44ba 100644 --- a/Ivy/IvySynchroWnd.h +++ b/Ivy/IvySynchroWnd.h @@ -90,3 +90,20 @@ protected: friend class IvySynchroWnd; }; +class IvySynchronousBindingCallback: public IvySynchronousCallback, public IvyBindingCallback +{ +public: + IvySynchronousBindingCallback( IvyBindingCallback *cb ); + virtual void CallCallback(); + virtual void OnAddBind (IvyApplication *app, int id, const char *regexp); + virtual void OnRemoveBind (IvyApplication *app, int id, const char *regexp); + virtual void OnFilterBind (IvyApplication *app, int id, const char *regexp); +protected: + IvyBindingCallback *target; + typedef enum { ADD_CB, REMOVE_CB, FILTER_CB } CallbackType; + CallbackType type; + int id; + const char *regexp; + + friend class IvySynchroWnd; +}; -- cgit v1.1 From 614da7f1a522dc1f234269d3f6422542758ac928 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:38 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyWatcher.cxx | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 Ivy/IvyWatcher.cxx diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx new file mode 100644 index 0000000..c963968 --- /dev/null +++ b/Ivy/IvyWatcher.cxx @@ -0,0 +1,114 @@ +// IvyWatcher.cpp : implementation file +// + +#include "stdafx.h" + +#include "IvyWatcher.h" +#include "IvyApplication.h" + +///////////////////////////////////////////////////////////////////////////// +// IvyWatcher + + +#define VERSION 3 + +IvyWatcher::IvyWatcher(Ivy * bus) +{ + this->bus = bus; +} +IvyWatcher::~IvyWatcher() +{ +} + + + +///////////////////////////////////////////////////////////////////////////// +// IvyWatcher member functions + +void IvyWatcher::OnReceive(int nErrorCode) +{ + int err; + int version; + char buffer[256]; + string remotehost; + UINT remoteport; + UINT serviceport; + + + err = ReceiveFrom( buffer, sizeof(buffer), remotehost, remoteport ); + if ( err == SOCKET_ERROR ) + { + TRACE("Receive Broadcast error %d\n",GetLastError()); + return; + } + buffer[err] ='\0'; + err = sscanf(buffer,"%d %u",&version, &serviceport); + if ( err != 2 ) + { + /* ignore the message */ + TRACE(" Bad Supervision message expected 'version port'\n"); + return; + } + if ( version != VERSION ) + { + /* ignore the message */ + TRACE(" Bad Ivy verion number expected %d receive %d from %s:%d\n", VERSION,version, remotehost, remoteport); + return; + } + /* check if we receive our own message should test also the host */ + if ( serviceport == bus->GetApplicationPort() /*&& remotehost == "localhost"*/) return; + TRACE(" Broadcast de %s:%u port %u\n", remotehost.c_str(), remoteport, serviceport ); + + /* connect to the service and send the regexp */ + IvyApplication *newapp = new IvyApplication(bus); + // exception to catch + newapp->Create(remotehost.c_str(), serviceport); + // delete newapp; + // return; + + bus->AddApplication( newapp ); + TRACE(" Connecting to %s:%u\n", remotehost.c_str(), serviceport ); + +} + +void IvyWatcher::start(const char *domainlist) +{ + BOOL reuse = TRUE; + string domain; + UINT port; + // determine domain to use + domain = bus->GetDomain( domainlist ); + + // first find our UDP port + int sep_index = domain.rfind( ':' ); + if ( sep_index != -1 ) + { + port = atoi ( domain.substr( sep_index +1 ).c_str() ); + // supress port number from end of domain list + domain.erase( sep_index, domain.length() - sep_index ); + } + // create UDP receiver + // catch exception !!! + Socket(SOCK_DGRAM); + SetSockOpt( SO_REUSEADDR, &reuse, sizeof(BOOL) ); + Bind(port); + + string addr; + char hello[1024]; + int len = sprintf( hello, "%d %u\n", VERSION, bus->GetApplicationPort() ); + + // send broadcast to domain list + while ( !domain.empty() ) + { + // find addr up to separator + int index = domain.find_first_of( ", \t" ); + addr = domain.substr( 0, index ); + domain.erase( 0, addr.length() +1 ); + TRACE("Ivy Broadcasting on %s:%d\n", addr.c_str(), port ); + SendTo( hello, len, port, addr.c_str() ); + } +} +void IvyWatcher::stop() +{ + Close(); +} -- cgit v1.1 From 95b2373c6e00b8a57e88008c934634bd8e2e17bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:40 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Ivy Commentaire: Version multicast (vss 2) --- Ivy/IvyWatcher.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index c963968..099e670 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -105,6 +105,7 @@ void IvyWatcher::start(const char *domainlist) addr = domain.substr( 0, index ); domain.erase( 0, addr.length() +1 ); TRACE("Ivy Broadcasting on %s:%d\n", addr.c_str(), port ); + AddMember( addr.c_str() ); SendTo( hello, len, port, addr.c_str() ); } } -- cgit v1.1 From 0c05305dc38012e87d470b972cf88aef26f71425 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:42 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 3) --- Ivy/IvyWatcher.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 099e670..a363bdc 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -30,7 +30,7 @@ void IvyWatcher::OnReceive(int nErrorCode) int err; int version; char buffer[256]; - string remotehost; + String remotehost; UINT remoteport; UINT serviceport; @@ -74,7 +74,7 @@ void IvyWatcher::OnReceive(int nErrorCode) void IvyWatcher::start(const char *domainlist) { BOOL reuse = TRUE; - string domain; + String domain; UINT port; // determine domain to use domain = bus->GetDomain( domainlist ); @@ -93,7 +93,7 @@ void IvyWatcher::start(const char *domainlist) SetSockOpt( SO_REUSEADDR, &reuse, sizeof(BOOL) ); Bind(port); - string addr; + String addr; char hello[1024]; int len = sprintf( hello, "%d %u\n", VERSION, bus->GetApplicationPort() ); -- cgit v1.1 From a30fc57b42e9b6846aab57d41f34291da563bdaa Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:44 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 4) --- Ivy/IvyWatcher.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index a363bdc..099e670 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -30,7 +30,7 @@ void IvyWatcher::OnReceive(int nErrorCode) int err; int version; char buffer[256]; - String remotehost; + string remotehost; UINT remoteport; UINT serviceport; @@ -74,7 +74,7 @@ void IvyWatcher::OnReceive(int nErrorCode) void IvyWatcher::start(const char *domainlist) { BOOL reuse = TRUE; - String domain; + string domain; UINT port; // determine domain to use domain = bus->GetDomain( domainlist ); @@ -93,7 +93,7 @@ void IvyWatcher::start(const char *domainlist) SetSockOpt( SO_REUSEADDR, &reuse, sizeof(BOOL) ); Bind(port); - String addr; + string addr; char hello[1024]; int len = sprintf( hello, "%d %u\n", VERSION, bus->GetApplicationPort() ); -- cgit v1.1 From db65e6f46e6394f813148f179a08573752f5c220 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:46 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 5) --- Ivy/IvyWatcher.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 099e670..8bd46bf 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -3,6 +3,11 @@ #include "stdafx.h" +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif + #include "IvyWatcher.h" #include "IvyApplication.h" -- cgit v1.1 From 0944a08b5666a732ce74d888b34d8b3f3cca4535 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:48 +0000 Subject: Utilisateur : Fcolin Date : 23/05/01 Heure : 10:25 Archivé dans $/Ivy (vss 6) --- Ivy/IvyWatcher.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 8bd46bf..57f054c 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -43,7 +43,7 @@ void IvyWatcher::OnReceive(int nErrorCode) err = ReceiveFrom( buffer, sizeof(buffer), remotehost, remoteport ); if ( err == SOCKET_ERROR ) { - TRACE("Receive Broadcast error %d\n",GetLastError()); + TRACE("Receive Broadcast error %d\n",this->GetLastError()); return; } buffer[err] ='\0'; -- cgit v1.1 From d0988d727ee447c4a268644b36c93ba572205f82 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:50 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 7) --- Ivy/IvyWatcher.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 57f054c..4101d11 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -3,10 +3,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif #include "IvyWatcher.h" #include "IvyApplication.h" -- cgit v1.1 From 013d410ea25c166272b79a452155be6190c4862c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:52 +0000 Subject: Utilisateur : Fcolin Date : 17/09/01 Heure : 15:46 Archivé dans $/Ivy Commentaire: manque start listener pour UDP socket (vss 8) --- Ivy/IvyWatcher.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 4101d11..d20bfa3 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -93,6 +93,7 @@ void IvyWatcher::start(const char *domainlist) Socket(SOCK_DGRAM); SetSockOpt( SO_REUSEADDR, &reuse, sizeof(BOOL) ); Bind(port); + StartListener(); string addr; char hello[1024]; -- cgit v1.1 From 84c5a1c5084da8841b3de03cd07db6ceb7cbbdf8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:54 +0000 Subject: Utilisateur : Fcolin Date : 19/06/02 Heure : 15:14 Archivé dans $/Ivy (vss 9) --- Ivy/IvyWatcher.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index d20bfa3..8df0ac4 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -76,7 +76,7 @@ void IvyWatcher::start(const char *domainlist) { BOOL reuse = TRUE; string domain; - UINT port; + UINT port=0; // determine domain to use domain = bus->GetDomain( domainlist ); -- cgit v1.1 From efde241a613f12c035898c99eb7595a97f8fe06d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:56 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/IvyWatcher.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 8df0ac4..af19fe5 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -1,7 +1,7 @@ // IvyWatcher.cpp : implementation file // -#include "stdafx.h" +#include "IvyStdAfx.h" #include "IvyWatcher.h" @@ -97,7 +97,7 @@ void IvyWatcher::start(const char *domainlist) string addr; char hello[1024]; - int len = sprintf( hello, "%d %u\n", VERSION, bus->GetApplicationPort() ); + int len = _snprintf( hello, sizeof(hello), "%d %u\n", VERSION, bus->GetApplicationPort() ); // send broadcast to domain list while ( !domain.empty() ) -- cgit v1.1 From c7b04986097c2c4fa6e0d9ad00bdaf5dff9cdeec Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:03:58 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 11) --- Ivy/IvyWatcher.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index af19fe5..424c8ac 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -31,7 +31,7 @@ void IvyWatcher::OnReceive(int nErrorCode) int err; int version; char buffer[256]; - string remotehost; + ivy::string remotehost; UINT remoteport; UINT serviceport; @@ -53,7 +53,7 @@ void IvyWatcher::OnReceive(int nErrorCode) if ( version != VERSION ) { /* ignore the message */ - TRACE(" Bad Ivy verion number expected %d receive %d from %s:%d\n", VERSION,version, remotehost, remoteport); + TRACE(" Bad Ivy verion number expected %d receive %d from %s:%d\n", VERSION,version, remotehost.c_str(), remoteport); return; } /* check if we receive our own message should test also the host */ @@ -75,7 +75,7 @@ void IvyWatcher::OnReceive(int nErrorCode) void IvyWatcher::start(const char *domainlist) { BOOL reuse = TRUE; - string domain; + ivy::string domain; UINT port=0; // determine domain to use domain = bus->GetDomain( domainlist ); @@ -95,7 +95,7 @@ void IvyWatcher::start(const char *domainlist) Bind(port); StartListener(); - string addr; + ivy::string addr; char hello[1024]; int len = _snprintf( hello, sizeof(hello), "%d %u\n", VERSION, bus->GetApplicationPort() ); -- cgit v1.1 From f67017bf198b8d5cce6cbe7823a20e052e12b3d6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:00 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 12) --- Ivy/IvyWatcher.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 424c8ac..4faca90 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -28,7 +28,7 @@ IvyWatcher::~IvyWatcher() void IvyWatcher::OnReceive(int nErrorCode) { - int err; + size_t err; int version; char buffer[256]; ivy::string remotehost; @@ -81,7 +81,7 @@ void IvyWatcher::start(const char *domainlist) domain = bus->GetDomain( domainlist ); // first find our UDP port - int sep_index = domain.rfind( ':' ); + size_t sep_index = domain.rfind( ':' ); if ( sep_index != -1 ) { port = atoi ( domain.substr( sep_index +1 ).c_str() ); @@ -103,7 +103,7 @@ void IvyWatcher::start(const char *domainlist) while ( !domain.empty() ) { // find addr up to separator - int index = domain.find_first_of( ", \t" ); + size_t index = domain.find_first_of( ", \t" ); addr = domain.substr( 0, index ); domain.erase( 0, addr.length() +1 ); TRACE("Ivy Broadcasting on %s:%d\n", addr.c_str(), port ); -- cgit v1.1 From f7cffc1477ac2dffa98bca7f9cd5b589ef62f00d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:02 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 13) --- Ivy/IvyWatcher.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index 4faca90..d9f8cf8 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -43,7 +43,7 @@ void IvyWatcher::OnReceive(int nErrorCode) return; } buffer[err] ='\0'; - err = sscanf(buffer,"%d %u",&version, &serviceport); + err = sscanf_s(buffer,"%d %u",&version, &serviceport); if ( err != 2 ) { /* ignore the message */ @@ -97,7 +97,7 @@ void IvyWatcher::start(const char *domainlist) ivy::string addr; char hello[1024]; - int len = _snprintf( hello, sizeof(hello), "%d %u\n", VERSION, bus->GetApplicationPort() ); + int len = _snprintf_s( hello, sizeof(hello), sizeof(hello)-1, "%d %u\n", VERSION, bus->GetApplicationPort() ); // send broadcast to domain list while ( !domain.empty() ) -- cgit v1.1 From 2ee1ed697edc42aae7962877a5649e2c280741b8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:04 +0000 Subject: Utilisateur : Fcolin Date : 19/04/06 Heure : 15:07 Archivé dans $/Bus/Ivy Commentaire: (vss 14) --- Ivy/IvyWatcher.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index d9f8cf8..e2a2783 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -42,7 +42,7 @@ void IvyWatcher::OnReceive(int nErrorCode) TRACE("Receive Broadcast error %d\n",this->GetLastError()); return; } - buffer[err] ='\0'; + if ( err < 255 ) buffer[err] ='\0'; err = sscanf_s(buffer,"%d %u",&version, &serviceport); if ( err != 2 ) { -- cgit v1.1 From a590fa8d95a798b1a4f750ed9b5b85e9e642e701 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:06 +0000 Subject: Utilisateur : Fcolin Date : 23/05/06 Heure : 18:18 Archivé dans $/Bus/Ivy Commentaire: Modification protocol UDP (vss 15) --- Ivy/IvyWatcher.cxx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Ivy/IvyWatcher.cxx b/Ivy/IvyWatcher.cxx index e2a2783..4cbf604 100644 --- a/Ivy/IvyWatcher.cxx +++ b/Ivy/IvyWatcher.cxx @@ -30,12 +30,16 @@ void IvyWatcher::OnReceive(int nErrorCode) { size_t err; int version; - char buffer[256]; + char buffer[2048]; ivy::string remotehost; UINT remoteport; UINT serviceport; + char appid[2048]; + char appname[2048]; - + memset( appid, 0, sizeof( appid ) ); + memset( appname, 0, sizeof( appname ) ); + err = ReceiveFrom( buffer, sizeof(buffer), remotehost, remoteport ); if ( err == SOCKET_ERROR ) { @@ -43,8 +47,8 @@ void IvyWatcher::OnReceive(int nErrorCode) return; } if ( err < 255 ) buffer[err] ='\0'; - err = sscanf_s(buffer,"%d %u",&version, &serviceport); - if ( err != 2 ) + err = sscanf_s(buffer,"%d %u %s %[^\n]",&version, &serviceport,appid, sizeof(appid), appname,sizeof(appname)); + if ( err < 2 ) { /* ignore the message */ TRACE(" Bad Supervision message expected 'version port'\n"); @@ -56,6 +60,9 @@ void IvyWatcher::OnReceive(int nErrorCode) TRACE(" Bad Ivy verion number expected %d receive %d from %s:%d\n", VERSION,version, remotehost.c_str(), remoteport); return; } + /* check if we received our own message. SHOULD ALSO TEST THE HOST */ + if ( strcmp( appid , bus->ApplicationID.c_str()) ==0 ) return; + /* check if we receive our own message should test also the host */ if ( serviceport == bus->GetApplicationPort() /*&& remotehost == "localhost"*/) return; TRACE(" Broadcast de %s:%u port %u\n", remotehost.c_str(), remoteport, serviceport ); @@ -63,7 +70,7 @@ void IvyWatcher::OnReceive(int nErrorCode) /* connect to the service and send the regexp */ IvyApplication *newapp = new IvyApplication(bus); // exception to catch - newapp->Create(remotehost.c_str(), serviceport); + newapp->Create(remotehost.c_str(), serviceport, appname ); // delete newapp; // return; @@ -96,8 +103,8 @@ void IvyWatcher::start(const char *domainlist) StartListener(); ivy::string addr; - char hello[1024]; - int len = _snprintf_s( hello, sizeof(hello), sizeof(hello)-1, "%d %u\n", VERSION, bus->GetApplicationPort() ); + char hello[2048]; + int len = _snprintf_s( hello, sizeof(hello), sizeof(hello)-1, "%d %u %s %s\n", VERSION, bus->GetApplicationPort(), bus->ApplicationID.c_str(), bus->ApplicationName.c_str() ); // send broadcast to domain list while ( !domain.empty() ) -- cgit v1.1 From dc3740113a3db349f005ee5e4a948cb5d9972120 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:08 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/IvyWatcher.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Ivy/IvyWatcher.h diff --git a/Ivy/IvyWatcher.h b/Ivy/IvyWatcher.h new file mode 100644 index 0000000..7836a90 --- /dev/null +++ b/Ivy/IvyWatcher.h @@ -0,0 +1,52 @@ +#if !defined(AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// IvyWatcher.h : header file +// + +#include "stdafx.h" +#include "ThreadedSocket.h" +#include "Ivy.h" + +///////////////////////////////////////////////////////////////////////////// +// IvyWatcher command target + +class IvyWatcher : public CThreadedSocket +{ +// Attributes +public: + +// Operations +public: + IvyWatcher(Ivy *bus); + virtual ~IvyWatcher(); +// Overrides +public: + void start(const char *domain); + void stop(); + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(IvyWatcher) + public: + virtual void OnReceive(int nErrorCode); + //}}AFX_VIRTUAL + + // Generated message map functions + //{{AFX_MSG(IvyWatcher) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + +// Implementation +protected: + Ivy * bus; + +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From 33911345aa6a44706e2d805f91fa2ffd4fd717cb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:10 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 2) --- Ivy/IvyWatcher.h | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/Ivy/IvyWatcher.h b/Ivy/IvyWatcher.h index 7836a90..4ba4140 100644 --- a/Ivy/IvyWatcher.h +++ b/Ivy/IvyWatcher.h @@ -1,9 +1,6 @@ -#if !defined(AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_) -#define AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_ -#if _MSC_VER >= 1000 #pragma once -#endif // _MSC_VER >= 1000 + // IvyWatcher.h : header file // @@ -27,16 +24,7 @@ public: public: void start(const char *domain); void stop(); - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(IvyWatcher) - public: virtual void OnReceive(int nErrorCode); - //}}AFX_VIRTUAL - - // Generated message map functions - //{{AFX_MSG(IvyWatcher) - // NOTE - the ClassWizard will add and remove member functions here. - //}}AFX_MSG // Implementation protected: @@ -44,9 +32,3 @@ protected: }; -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_BUSWATCHER_H__F7F08FE7_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From 6cf1d6c20897df937876e85d3d589ab63fb7cdf8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:12 +0000 Subject: Utilisateur : Fcolin Date : 20/02/01 Heure : 10:27 Archivé dans $/Ivy (vss 3) --- Ivy/IvyWatcher.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/IvyWatcher.h b/Ivy/IvyWatcher.h index 4ba4140..1eb0718 100644 --- a/Ivy/IvyWatcher.h +++ b/Ivy/IvyWatcher.h @@ -4,7 +4,7 @@ // IvyWatcher.h : header file // -#include "stdafx.h" + #include "ThreadedSocket.h" #include "Ivy.h" -- cgit v1.1 From 7bcca6c9c8668abc5bf03fdc23a19676dc25b222 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:14 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/Regexp.cxx | 1757 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1757 insertions(+) create mode 100644 Ivy/Regexp.cxx diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx new file mode 100644 index 0000000..6d44def --- /dev/null +++ b/Ivy/Regexp.cxx @@ -0,0 +1,1757 @@ +// Win32 porting notes. + +#if defined( _MBCS ) +#pragma message( __FILEINFO__ "This code is broken under _MBCS, " \ + "see the comments at the top of this file." ) +#endif //_MBCS +// +// +// In case this isn't obvious from the later comments this is an ALTERED +// version of the software. If you like my changes then cool, but nearly +// all of the functionality here is derived from Henry Spencer's original +// work. +// +// This code should work correctly under both _SBCS and _UNICODE, I did +// start working on making it work with _MBCS but gave up after a while +// since I don't need this particular port and it's not going to be as +// straight forward as the other two. +// +// The problem stems from the compiled program being stored as TCHARS, +// the individual items need to be wide enough to hold whatever character +// is thrown at them, but currently they are accessed as an array of +// whatever size integral type is appropriate. _MBCS would cause this +// to be char, but at times it would need to be larger. This would +// require making the program be an array of short with the appropriate +// conversions used everywhere. Certainly it's doable, but it's a pain. +// What's worse is that the current code will compile and run under _MBCS, +// only breaking when it gets wide characters thrown against it. +// +// I've marked at least one bit of code with #pragma messages, I may not +// get all of them, but they should be a start +// +// Guy Gascoigne - Piggford (ggp@bigfoot.com) Friday, February 27, 1998 + + +// regcomp and regexec -- regsub and regerror are elsewhere +// @(#)regexp.c 1.3 of 18 April 87 +// +// Copyright (c) 1986 by University of Toronto. +// Written by Henry Spencer. Not derived from licensed software. +// +// Permission is granted to anyone to use this software for any +// purpose on any computer system, and to redistribute it freely, +// subject to the following restrictions: +// +// 1. The author is not responsible for the consequences of use of +// this software, no matter how awful, even if they arise +// from defects in it. +// +// 2. The origin of this software must not be misrepresented, either +// by explicit claim or by omission. +// +// 3. Altered versions must be plainly marked as such, and must not +// be misrepresented as being the original software. +// *** THIS IS AN ALTERED VERSION. It was altered by John Gilmore, +// *** hoptoad!gnu, on 27 Dec 1986, to add \< and \> for word-matching +// *** as in BSD grep and ex. +// *** THIS IS AN ALTERED VERSION. It was altered by John Gilmore, +// *** hoptoad!gnu, on 28 Dec 1986, to optimize characters quoted with \. +// *** THIS IS AN ALTERED VERSION. It was altered by James A. Woods, +// *** ames!jaw, on 19 June 1987, to quash a regcomp() redundancy. +// *** THIS IS AN ALTERED VERSION. It was altered by Geoffrey Noer, +// *** THIS IS AN ALTERED VERSION. It was altered by Guy Gascoigne - Piggford +// *** guy@wyrdrune.com, on 15 March 1998, porting it to C++ and converting +// *** it to be the engine for the Regexp class +// +// Beware that some of this code is subtly aware of the way operator +// precedence is structured in regular expressions. Serious changes in +// regular-expression syntax might require a total rethink. + +#include "stdafx.h" +#include "regexp.h" + +// The first byte of the regexp internal "program" is actually this magic +// number; the start node begins in the second byte. + +const char MAGIC = '\234'; + +#pragma warning( disable : 4711 ) // automatic inline selected + +// The "internal use only" fields in regexp.h are present to pass info from +// compile to execute that permits the execute phase to run lots faster on +// simple cases. They are: +// +// regstart char that must begin a match; '\0' if none obvious +// reganch is the match anchored (at beginning-of-line only)? +// regmust string (pointer into program) that match must include, or NULL +// regmlen length of regmust string +// +// Regstart and reganch permit very fast decisions on suitable starting +// points for a match, cutting down the work a lot. Regmust permits fast +// rejection of lines that cannot possibly match. The regmust tests are +// costly enough that regcomp() supplies a regmust only if the +// r.e. contains something potentially expensive (at present, the only +// such thing detected is * or + at the start of the r.e., which can +// involve a lot of backup). Regmlen is supplied because the test in +// regexec() needs it and regcomp() is computing it anyway. + +// Structure for regexp "program". This is essentially a linear encoding +// of a nondeterministic finite-state machine (aka syntax charts or +// "railroad normal form" in parsing technology). Each node is an opcode +// plus a "next" pointer, possibly plus an operand. "Next" pointers of +// all nodes except BRANCH implement concatenation; a "next" pointer with +// a BRANCH on both ends of it is connecting two alternatives. (Here we +// have one of the subtle syntax dependencies: an individual BRANCH (as +// opposed to a collection of them) is never concatenated with anything +// because of operator precedence.) The operand of some types of node is +// a literal string; for others, it is a node leading into a sub-FSM. In +// particular, the operand of a BRANCH node is the first node of the +// branch. (NB this is *not* a tree structure: the tail of the branch +// connects to the thing following the set of BRANCHes.) The opcodes +// are: + +enum { +// definition number opnd? meaning + END = 0, // no End of program. + BOL = 1, // no Match beginning of line. + EOL = 2, // no Match end of line. + ANY = 3, // no Match any character. + ANYOF = 4, // str Match any of these. + ANYBUT = 5, // str Match any but one of these. + BRANCH = 6, // node Match this, or the next..\&. + BACK = 7, // no "next" ptr points backward. + EXACTLY = 8, // str Match this string. + NOTHING = 9, // no Match empty string. + STAR = 10, // node Match this 0 or more times. + PLUS = 11, // node Match this 1 or more times. + WORDA = 12, // no Match "" at wordchar, where prev is nonword + WORDZ = 13, // no Match "" at nonwordchar, where prev is word + OPEN = 20, // no Sub-RE starts here. + // OPEN+1 is number 1, etc. + CLOSE = 40 // no Analogous to OPEN. +}; + +// Opcode notes: +// +// BRANCH The set of branches constituting a single choice are hooked +// together with their "next" pointers, since precedence prevents +// anything being concatenated to any individual branch. The +// "next" pointer of the last BRANCH in a choice points to the +// thing following the whole choice. This is also where the +// final "next" pointer of each individual branch points; each +// branch starts with the operand node of a BRANCH node. +// +// BACK Normal "next" pointers all implicitly point forward; BACK +// exists to make loop structures possible. +// +// STAR,PLUS '?', and complex '*' and '+', are implemented as circular +// BRANCH structures using BACK. Simple cases (one character +// per match) are implemented with STAR and PLUS for speed +// and to minimize recursive plunges. +// +// OPEN,CLOSE ...are numbered at compile time. + +// A node is one char of opcode followed by two chars of "next" pointer. +// "Next" pointers are stored as two 8-bit pieces, high order first. The +// value is a positive offset from the opcode of the node containing it. +// An operand, if any, simply follows the node. (Note that much of the +// code generation knows about this implicit relationship.) +// +// Using two bytes for the "next" pointer is vast overkill for most things, +// but allows patterns to get big without disasters. + + +enum +{ + REGERR_SENTINEL_VALUE = 0, + REGERR_NULLARG = 1, REGERR_CORRUPTED, REGERR_CORRUPTION, REGERR_CORRUPTED_POINTERS, + REGERR_BAD_REGREPEAT, REGERR_CORRUPTED_OPCODE, REGERR_NULL_TO_REGSUB, + REGERR_DAMAGED_REGEXP_REGSUB, REGERR_DAMAGED_MATCH_STRING, REGERR_NULL_TO_REGCOMP, + REGERR_TO_BIG, REGERR_TO_MANY_PAREN, REGERR_UNTERMINATED_PAREN, REGERR_UNMATCHED_PAREN, + REGERR_INTERNAL_ERROR_JUNK, REGERR_OP_COULD_BE_EMPTY, REGERR_NESTED_OP, REGERR_INVALID_RANGE, + REGERR_UNMATCHED_BRACE, REGERR_INTERNAL_UNEXPECTED_CHAR, REGERR_OP_FOLLOWS_NOTHING, + REGERR_TRAILING_ESC, REGERR_INTERNAL_STRSCSPN, REGERR_NO_REGEXP +}; + +struct regErr +{ + int m_id; + const char * m_err; +} errors[] = { + { REGERR_NULLARG, "NULL argument to regexec" }, + { REGERR_CORRUPTED, "corrupted regexp" }, + { REGERR_CORRUPTION, "regexp corruption" }, + { REGERR_CORRUPTED_POINTERS, "corrupted pointers" }, + { REGERR_BAD_REGREPEAT, "internal error: bad call of regrepeat" }, + { REGERR_CORRUPTED_OPCODE, "corrupted opcode" }, + { REGERR_NULL_TO_REGSUB, "NULL parm to regsub" }, + { REGERR_DAMAGED_REGEXP_REGSUB, "damaged regexp fed to regsub" }, + { REGERR_DAMAGED_MATCH_STRING, "damaged match string" }, + { REGERR_NULL_TO_REGCOMP, "NULL argument to regcomp" }, + { REGERR_TO_BIG, "regexp too big" }, + { REGERR_TO_MANY_PAREN, "too many ()" }, + { REGERR_UNTERMINATED_PAREN, "unterminated ()" }, + { REGERR_UNMATCHED_PAREN, "unmatched ()" }, + { REGERR_INTERNAL_ERROR_JUNK, "internal error: junk on end" }, + { REGERR_OP_COULD_BE_EMPTY, "*+ operand could be empty" }, + { REGERR_NESTED_OP, "nested *?+" }, + { REGERR_INVALID_RANGE, "invalid [] range" }, + { REGERR_UNMATCHED_BRACE, "unmatched []" }, + { REGERR_INTERNAL_UNEXPECTED_CHAR, "internal error: \\0|) unexpected" }, + { REGERR_OP_FOLLOWS_NOTHING, "?+* follows nothing" }, + { REGERR_TRAILING_ESC, "trailing \\" }, + { REGERR_INTERNAL_STRSCSPN, "internal error: strcspn 0" }, + { REGERR_NO_REGEXP, "NULL regexp" }, + { REGERR_SENTINEL_VALUE, "Unknown error" } // must be last value +}; + +// Flags to be passed up and down. + +enum { + HASWIDTH = 01, // Known never to match null string. + SIMPLE = 02, // Simple enough to be STAR/PLUS operand. + SPSTART = 04, // Starts with * or +. + WORST = 0 // Worst case. +}; + +/////////////////////////////////////////////////////////////////////////////// + +class CRegErrorHandler +{ + friend Regexp; + mutable string m_szError; + static const char * FindErr( int id ); +protected: + void ClearErrorString() const; + void regerror( const char * s ) const; + void regerror( int id ) const; +public: + CRegErrorHandler() { } + CRegErrorHandler( const CRegErrorHandler & reh ) : m_szError( reh.m_szError ) {} + + const string & GetErrorString() const; +}; + +void CRegErrorHandler::regerror( const char * s ) const +{ + TRACE( "regerror: %s\n", s ); + m_szError = s; +} + +void CRegErrorHandler::regerror( int id ) const +{ + regerror( FindErr( id ) ); +} + +const string & CRegErrorHandler::GetErrorString() const +{ + return m_szError; +} + +void CRegErrorHandler::ClearErrorString() const +{ + m_szError = "" ; +} + +const char * CRegErrorHandler::FindErr( int id ) +{ + for ( struct regErr * perr = errors; perr->m_id != REGERR_SENTINEL_VALUE; perr++ ) + if ( perr->m_id == id ) + return perr->m_err; + + return perr->m_err; // since we've fallen off the array, perr->m_id == 0 +} + +/////////////////////////////////////////////////////////////////////////////// + +// All of the functions required to directly access the 'program' +class CRegProgramAccessor : public CRegErrorHandler +{ +public: + static inline char OP( char * p ) + { + return (*(p)); + } + static inline char * OPERAND( char * p ) + { + return p + 3; + } + static inline char * regnext( char * p ) + { + const short &offset = *((short*)(p+1)); + + if (offset == 0) + return(NULL); + + return((OP(p) == BACK) ? p-offset : p+offset); + } +#ifdef _RE_DEBUG + char * CRegProgramAccessor::regprop( char * op ); +#endif +}; + +/////////////////////////////////////////////////////////////////////////////// + +// The internal interface to the regexp, wrapping the compilation as well as the +// execution of the regexp (matching) + +class regexp : public CRegProgramAccessor +{ + friend class CRegExecutor; + friend class Regexp; + + int m_programSize; + char * startp[Regexp::NSUBEXP]; + char * endp[Regexp::NSUBEXP]; + char regstart; // Internal use only. + char reganch; // Internal use only. + char * regmust; // Internal use only. + int regmlen; // Internal use only. + char * program; + + bool status; + int count; // used by Regexp to manage the reference counting of regexps + int numSubs; +public: + + regexp( const char * exp, bool iCase ); + regexp( const regexp & r ); + ~regexp(); + + void ignoreCase( const char * in, char * out ); + + bool regcomp( const char * exp ); + bool regexec( const char * string ); + bool Status() const { return status; } + + string GetReplaceString( const char* sReplaceExp ) const; + + regexp * getCopy(); + +#ifdef _RE_DEBUG + void regdump(); +#endif + +#ifdef _DEBUG + string m_originalPattern; + string m_modifiedPattern; +#endif +}; + +/////////////////////////////////////////////////////////////////////////////// +// Compile / Validate the regular expression - ADT + +class CRegCompilerBase : public CRegProgramAccessor +{ +public: + CRegCompilerBase( const char * parse ); + + char * reg(int paren, int *flagp); +protected: + char * regparse; // Input-scan pointer. + int regnpar; // () count. + + char * regbranch(int *flagp); + char * regpiece(int *flagp); + char * regatom(int *flagp); + inline bool ISREPN( char c ) { return ((c) == '*' || (c) == '+' || (c) == '?'); } + + virtual void regc(int c) = 0; + virtual char * regnode(int op) = 0; + virtual void reginsert(char op, char * opnd) = 0; + virtual void regtail(char * p, char * val) = 0; + virtual void regoptail(char * p, char * val) = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// First pass over the expression, testing for validity and returning the +// program size + +class CRegValidator : public CRegCompilerBase +{ +public: + CRegValidator( const char * parse ); + + inline long Size() const { return regsize; } +private: + long regsize; // Code size. + char regdummy[3]; // NOTHING, 0 next ptr +protected: + char * regnode(int) { regsize += 3; return regdummy; } + void regc(int) { regsize++; } + void reginsert(char, char *) { regsize += 3; } + void regtail(char *, char *) { return; } + void regoptail(char *, char *) { return; } +}; + +/////////////////////////////////////////////////////////////////////////////// +// Second pass, actually generating the program + +class CRegCompiler : public CRegCompilerBase +{ +public: + CRegCompiler( const char * parse, char * prog ); +private: + char * regcode; +protected: + // regc - emit (if appropriate) a byte of code + void regc(int b) + { + *regcode++ = (char)b; + } + char * regnode(int op); + void reginsert(char op, char * opnd); + void regtail(char * p, char * val); + void regoptail(char * p, char * val); +}; + +// regnode - emit a node +char * CRegCompiler::regnode(int op) +{ + char * const ret = regcode; + + char * ptr = ret; + *ptr++ = (char)op; + *ptr++ = '\0'; // Null next pointer. + *ptr++ = '\0'; + regcode = ptr; + + return(ret); +} + +// reginsert - insert an operator in front of already-emitted operand +// +// Means relocating the operand. +void CRegCompiler::reginsert(char op, char * opnd) +{ + char * place; + + (void) memmove(opnd+3, opnd, (size_t)((regcode - opnd)*sizeof(char))); + regcode += 3; + + place = opnd; // Op node, where operand used to be. + *place++ = op; + *place++ = '\0'; + *place++ = '\0'; +} + +// regtail - set the next-pointer at the end of a node chain +void CRegCompiler::regtail(char * p, char * val) +{ + char * scan; + char * temp; + + // Find last node. + for (scan = p; (temp = regnext(scan)) != NULL; scan = temp) + continue; + + *((short *)(scan+1)) = (short)((OP(scan) == BACK) ? scan - val : val - scan); +} + +// regoptail - regtail on operand of first argument; nop if operandless +void CRegCompiler::regoptail(char * p, char * val) +{ + // "Operandless" and "op != BRANCH" are synonymous in practice. + if (OP(p) == BRANCH) + regtail(OPERAND(p), val); +} + +/////////////////////////////////////////////////////////////////////////////// + +CRegCompilerBase::CRegCompilerBase( const char * parse ) + : regparse( (char *)parse ), + regnpar(1) +{ +} + +CRegValidator::CRegValidator( const char * parse ) + : CRegCompilerBase( parse ), + regsize(0) +{ + regc(MAGIC); + regdummy[0] = NOTHING; + regdummy[1] = regdummy[2] = 0; +} + +CRegCompiler::CRegCompiler( const char * parse, char * prog ) + : CRegCompilerBase( parse ), + regcode(prog) +{ + regc(MAGIC); +} + +/////////////////////////////////////////////////////////////////////////////// + +regexp::regexp( const char * exp, bool iCase ) + : regstart(0), + reganch(0), + regmust(0), + regmlen(0), + program(0), + m_programSize(0) +{ +#if _DEBUG + m_originalPattern = exp; // keep a version of the pattern for debugging +#endif + + if ( iCase ) + { + char * out = new char[(strlen( exp ) * 4) + 1]; + ignoreCase( exp, out ); + +#if _DEBUG + m_modifiedPattern = out; // and the modified version if there is one +#endif + status = regcomp( out ); + delete [] out; + } + else + status = regcomp( exp ); + + count = numSubs = 0; +} + +regexp::regexp( const regexp & orig ) + : regstart(orig.regstart), + reganch(orig.reganch), + regmlen(orig.regmlen), + m_programSize(orig.m_programSize), + numSubs(orig.numSubs), + regmust(0) +{ +#if _DEBUG + m_originalPattern = orig.m_originalPattern; + m_modifiedPattern = orig.m_modifiedPattern; +#endif + status = orig.status; + count = 0; + program = new char[m_programSize]; + memcpy( program, orig.program, m_programSize * sizeof( char ) ); + if ( orig.regmust ) + regmust = program + ( orig.regmust - orig.program ); + + for ( int i = Regexp::NSUBEXP - 1; i >= 0; i--) + { + startp[i] = orig.startp[i]; + endp[i] = orig.endp[i]; + } +} + +regexp::~regexp() +{ + delete [] program; +} + + +// regcomp - compile a regular expression into internal code +// +// We can't allocate space until we know how big the compiled form will +// be, but we can't compile it (and thus know how big it is) until we've +// got a place to put the code. So we cheat: we compile it twice, once +// with code generation turned off and size counting turned on, and once +// "for real". This also means that we don't allocate space until we are +// sure that the thing really will compile successfully, and we never +// have to move the code and thus invalidate pointers into it. (Note +// that it has to be in one piece because free() must be able to free it +// all.) +// +// Beware that the optimization-preparation code in here knows about some +// of the structure of the compiled regexp. + +bool regexp::regcomp(const char * exp) +{ + char * scan; + int flags; + + if (exp == NULL) + { + regerror( REGERR_NULL_TO_REGCOMP ); + return NULL; + } + + // First pass: determine size, legality. + CRegValidator tester( exp ); + + if (tester.reg(0, &flags) == NULL) + return false; + + // Small enough for pointer-storage convention? + if (tester.Size() >= 0x7fffL) // Probably could be 0xffffL. + { + regerror(REGERR_TO_BIG); + return NULL; + } + + m_programSize = tester.Size(); + // Allocate space. + program = new char[m_programSize]; + + CRegCompiler comp( exp, program ); + // Second pass: emit code. + if (comp.reg(0, &flags) == NULL) + return false; + + scan = program + 1; // First BRANCH. + if (OP(regnext(scan)) == END) + { // Only one top-level choice. + scan = OPERAND(scan); + + // Starting-point info. + if (OP(scan) == EXACTLY) + regstart = *OPERAND(scan); + else if (OP(scan) == BOL) + reganch = 1; + + // If there's something expensive in the r.e., find the + // longest literal string that must appear and make it the + // regmust. Resolve ties in favor of later strings, since + // the regstart check works with the beginning of the r.e. + // and avoiding duplication strengthens checking. Not a + // strong reason, but sufficient in the absence of others. + + if (flags&SPSTART) + { + char * longest = NULL; + size_t len = 0; + + for (; scan != NULL; scan = regnext(scan)) + if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) + { + longest = OPERAND(scan); + len = strlen(OPERAND(scan)); + } + regmust = longest; + regmlen = (int)len; + } + } + + return true; +} + +regexp * regexp::getCopy() +{ + return new regexp( *this ); +} + +// reg - regular expression, i.e. main body or parenthesized thing +// +// Caller must absorb opening parenthesis. +// +// Combining parenthesis handling with the base level of regular expression +// is a trifle forced, but the need to tie the tails of the branches to what +// follows makes it hard to avoid. + +char * CRegCompilerBase::reg( int paren, int *flagp ) +{ + char * ret = NULL; + char * br; + char * ender; + int parno = 0; + int flags; + + *flagp = HASWIDTH; // Tentatively. + + if (paren) + { + // Make an OPEN node. + if (regnpar >= Regexp::NSUBEXP) + { + regerror(REGERR_TO_MANY_PAREN); + return NULL; + } + parno = regnpar; + regnpar++; + ret = regnode(OPEN+parno); + } + + // Pick up the branches, linking them together. + br = regbranch(&flags); + if (br == NULL) + return(NULL); + if (paren) + regtail(ret, br); // OPEN -> first. + else + ret = br; + *flagp &= ~(~flags&HASWIDTH); // Clear bit if bit 0. + *flagp |= flags&SPSTART; + while (*regparse == '|') + { + regparse++; + br = regbranch(&flags); + if (br == NULL) + return(NULL); + regtail(ret, br); // BRANCH -> BRANCH. + *flagp &= ~(~flags&HASWIDTH); + *flagp |= flags&SPSTART; + } + + // Make a closing node, and hook it on the end. + ender = regnode((paren) ? CLOSE+parno : END); + regtail(ret, ender); + + // Hook the tails of the branches to the closing node. + for (br = ret; br != NULL; br = regnext(br)) + regoptail(br, ender); + + // Check for proper termination. + if (paren && *regparse++ != ')') + { + regerror( REGERR_UNTERMINATED_PAREN ); + return NULL; + } + else if (!paren && *regparse != '\0') + { + if (*regparse == ')') + { + regerror( REGERR_UNMATCHED_PAREN ); + return NULL; + } + else + { + regerror( REGERR_INTERNAL_ERROR_JUNK ); + return NULL; + } + // NOTREACHED + } + + return(ret); +} + +// regbranch - one alternative of an | operator +// +// Implements the concatenation operator. + +char * CRegCompilerBase::regbranch(int *flagp) +{ + char * ret; + char * chain; + char * latest; + int flags; + int c; + + *flagp = WORST; // Tentatively. + + ret = regnode(BRANCH); + chain = NULL; + while ((c = *regparse) != '\0' && c != '|' && c != ')') + { + latest = regpiece(&flags); + if (latest == NULL) + return(NULL); + *flagp |= flags&HASWIDTH; + if (chain == NULL) // First piece. + *flagp |= flags&SPSTART; + else + regtail(chain, latest); + chain = latest; + } + if (chain == NULL) // Loop ran zero times. + (void) regnode(NOTHING); + + return(ret); +} + +// regpiece - something followed by possible [*+?] +// +// Note that the branching code sequences used for ? and the general cases +// of * and + are somewhat optimized: they use the same NOTHING node as +// both the endmarker for their branch list and the body of the last branch. +// It might seem that this node could be dispensed with entirely, but the +// endmarker role is not redundant. + +char * CRegCompilerBase::regpiece(int *flagp) +{ + char * ret; + char op; + char * next; + int flags; + + ret = regatom(&flags); + if (ret == NULL) + return(NULL); + + op = *regparse; + if (!ISREPN(op)) + { + *flagp = flags; + return(ret); + } + + if (!(flags&HASWIDTH) && op != '?' ) + { + regerror( REGERR_OP_COULD_BE_EMPTY ); + return NULL; + } + switch (op) + { + case '*' : *flagp = WORST|SPSTART; break; + case '+' : *flagp = WORST|SPSTART|HASWIDTH; break; + case '?' : *flagp = WORST; break; + } + + if (op == '*' && (flags&SIMPLE)) + reginsert(STAR, ret); + else if (op == '*' ) + { + // Emit x* as (x&|), where & means "self". + reginsert(BRANCH, ret); // Either x + regoptail(ret, regnode(BACK)); // and loop + regoptail(ret, ret); // back + regtail(ret, regnode(BRANCH)); // or + regtail(ret, regnode(NOTHING)); // null. + } + else if (op == '+' && (flags&SIMPLE)) + reginsert(PLUS, ret); + else if (op == '+' ) + { + // Emit x+ as x(&|), where & means "self". + next = regnode(BRANCH); // Either + regtail(ret, next); + regtail(regnode(BACK), ret); // loop back + regtail(next, regnode(BRANCH)); // or + regtail(ret, regnode(NOTHING)); // null. + } + else if (op == '?' ) + { + // Emit x? as (x|) + reginsert(BRANCH, ret); // Either x + regtail(ret, regnode(BRANCH)); // or + next = regnode(NOTHING); // null. + regtail(ret, next); + regoptail(ret, next); + } + regparse++; + if (ISREPN(*regparse)) + { + regerror( REGERR_NESTED_OP ); + return NULL; + } + + return(ret); +} + +// regatom - the lowest level +// +// Optimization: gobbles an entire sequence of ordinary characters so that +// it can turn them into a single node, which is smaller to store and +// faster to run. Backslashed characters are exceptions, each becoming a +// separate node; the code is simpler that way and it's not worth fixing. + +char * CRegCompilerBase::regatom(int * flagp) +{ + char * ret; + int flags; + + *flagp = WORST; // Tentatively. + + switch ( *regparse++ ) + { + // FIXME: these chars only have meaning at beg/end of pat? + case '^': + ret = regnode(BOL); + break; + case '$': + ret = regnode(EOL); + break; + case '.': + ret = regnode(ANY); + *flagp |= HASWIDTH|SIMPLE; + break; + case '[': + { + int range; + int rangeend; + int c; + + if (*regparse == '^') + { // Complement of range. + ret = regnode(ANYBUT); + regparse++; + } + else + ret = regnode(ANYOF); + if ((c = *regparse) == ']' || c == '-') + { + regc(c); + regparse++; + } + while ((c = *regparse++ ) != '\0' && c != ']') + { + if (c != '-') + regc(c); + else if ((c = *regparse) == ']' || c == '\0') + regc('-'); + else + { + range = (char)*(regparse-2); + rangeend = (char)c; + if (range > rangeend) + { + regerror( REGERR_INVALID_RANGE ); + return NULL; + } + for (range++; range <= rangeend; range++) + regc(range); + regparse++; + } + } + regc('\0'); + if (c != ']') + { + regerror( REGERR_UNMATCHED_BRACE ); + return NULL; + } + *flagp |= HASWIDTH|SIMPLE; + break; + } + case '(': + ret = reg(1, &flags); + if (ret == NULL) + return(NULL); + *flagp |= flags&(HASWIDTH|SPSTART); + break; + case '\0': + case '|': + case ')': + // supposed to be caught earlier + regerror( REGERR_INTERNAL_UNEXPECTED_CHAR ); + return NULL; + case '?': + case '+': + case '*': + { + regerror( REGERR_OP_FOLLOWS_NOTHING ); + return NULL; + } + case '\\': + switch (*regparse++) + { + case '\0': + { + regerror( REGERR_TRAILING_ESC ); + return NULL; + } + case '<': + ret = regnode(WORDA); + break; + case '>': + ret = regnode(WORDZ); + break; + /* FIXME: Someday handle \1, \2, ... */ + default: + /* Handle general quoted chars in exact-match routine */ + goto de_fault; + } + break; + de_fault: + default: + // Encode a string of characters to be matched exactly. + // + // This is a bit tricky due to quoted chars and due to + // '*', '+', and '?' taking the SINGLE char previous + // as their operand. + // + // On entry, the char at regparse[-1] is going to go + // into the string, no matter what it is. (It could be + // following a \ if we are entered from the '\' case.) + // + // Basic idea is to pick up a good char in ch and + // examine the next char. If it's *+? then we twiddle. + // If it's \ then we frozzle. If it's other magic char + // we push ch and terminate the string. If none of the + // above, we push ch on the string and go around again. + // + // regprev is used to remember where "the current char" + // starts in the string, if due to a *+? we need to back + // up and put the current char in a separate, 1-char, string. + // When regprev is NULL, ch is the only char in the + // string; this is used in *+? handling, and in setting + // flags |= SIMPLE at the end. + { + char *regprev; + register char ch; + + regparse--; /* Look at cur char */ + ret = regnode(EXACTLY); + for ( regprev = 0 ; ; ) { + ch = *regparse++; /* Get current char */ + switch (*regparse) { /* look at next one */ + + default: + regc(ch); /* Add cur to string */ + break; + + case '.': case '[': case '(': + case ')': case '|': case '\n': + case '$': case '^': + case '\0': + /* FIXME, $ and ^ should not always be magic */ + magic: + regc(ch); /* dump cur char */ + goto done; /* and we are done */ + + case '?': case '+': case '*': + if (!regprev) /* If just ch in str, */ + goto magic; /* use it */ + /* End mult-char string one early */ + regparse = regprev; /* Back up parse */ + goto done; + + case '\\': + regc(ch); /* Cur char OK */ + switch (regparse[1]){ /* Look after \ */ + case '\0': + case '<': + case '>': + /* FIXME: Someday handle \1, \2, ... */ + goto done; /* Not quoted */ + default: + /* Backup point is \, scan * point is after it. */ + regprev = regparse; + regparse++; + continue; /* NOT break; */ + } + } + regprev = regparse; /* Set backup point */ + } + done: + regc('\0'); + *flagp |= HASWIDTH; + if (!regprev) /* One char? */ + *flagp |= SIMPLE; + } + break; + } + + return(ret); +} + +//////////////////////////////////////////////////////////////////////////////// +// regexec and friends + +// Work-variable struct for regexec(). + +class CRegExecutor : public CRegProgramAccessor +{ + friend bool regexp::regexec( const char * str ); + + char * reginput; // String-input pointer. + char * regbol; // Beginning of input, for ^ check. + char * * regstartp; // Pointer to startp array. + char * * regendp; // Ditto for endp. + + regexp * prog; +public: + CRegExecutor( regexp * prog, char * string ); +protected: + bool regtry( char * string ); + bool regmatch( char * prog ); + size_t regrepeat( char * node ); +}; + +CRegExecutor::CRegExecutor( regexp * p, char * string ) + : regbol( string ), + regstartp( p->startp ), + regendp( p->endp ), + prog(p) +{ +} + +#ifdef _RE_DEBUG +int regnarrate = 0; +#endif + +// regexec - match a regexp against a string + +bool regexp::regexec( const char * str ) +{ + char * string = (char *)str; // avert const poisoning + + // Be paranoid. + if ( string == NULL ) + { + regerror( REGERR_NULLARG ); + return false; + } + + // Check validity of program. + if (*program != MAGIC) + { + regerror( REGERR_CORRUPTED ); + return false; + } + + // If there is a "must appear" string, look for it. + if ( regmust != NULL && strstr( string, regmust ) == NULL ) + return false; + + CRegExecutor executor( this, string ); + + // Simplest case: anchored match need be tried only once. + if ( reganch ) + return( executor.regtry( string ) ); + + // Messy cases: unanchored match. + if ( regstart != '\0' ) + { + // We know what char it must start with. + for ( char * s = string; s != NULL; s = strchr( s+1 , regstart ) ) + if ( executor.regtry( s) ) + return true; + return false; + } + else + { + // We don't -- general case. + for ( char * s = string; ! executor.regtry( s ); s++ ) + if (*s == '\0') + return false; + } + return true; +} + +// regtry - try match at specific point +bool CRegExecutor::regtry( char * string ) +{ + int i; + char * * stp; + char * * enp; + + reginput = string; + + stp = prog->startp; + enp = prog->endp; + for (i = Regexp::NSUBEXP; i > 0; i--) + { + *stp++ = NULL; + *enp++ = NULL; + } + if ( regmatch( prog->program + 1 ) ) + { + prog->startp[0] = string; + prog->endp[0] = reginput; + return true; + } + else + return false; +} + +// regmatch - main matching routine +// +// Conceptually the strategy is simple: check to see whether the current +// node matches, call self recursively to see whether the rest matches, +// and then act accordingly. In practice we make some effort to avoid +// recursion, in particular by going through "ordinary" nodes (that don't +// need to know whether the rest of the match failed) by a loop instead of +// by recursion. + +bool CRegExecutor::regmatch( char * prog ) +{ + char * scan; // Current node. + char * next; // Next node. + +#ifdef _RE_DEBUG + if (prog != NULL && regnarrate) + fprintf(stderr, "%s(\n", regprop(prog)); +#endif + for (scan = prog; scan != NULL; scan = next) + { +#ifdef _RE_DEBUG + if (regnarrate) + fprintf(stderr, "%s...\n", regprop(scan)); +#endif + next = regnext(scan); + + switch (OP(scan)) + { + case BOL: + if (reginput != regbol) + return false; + break; + case EOL: + if (*reginput != '\0') + return false; + break; + case WORDA: + /* Must be looking at a letter, digit, or _ */ + if ((!isalnum(*reginput)) && *reginput != '_') + return(0); + /* Prev must be BOL or nonword */ + if (reginput > regbol && + (isalnum(reginput[-1]) || reginput[-1] == '_')) + return(0); + break; + case WORDZ: + /* Must be looking at non letter, digit, or _ */ + if (isalnum(*reginput) || *reginput == '_') + return(0); + /* We don't care what the previous char was */ + break; + case ANY: + if (*reginput == '\0') + return false; + reginput++; + break; + case EXACTLY: + { + size_t len; + char * const opnd = OPERAND(scan); + + // Inline the first character, for speed. + if (*opnd != *reginput) + return false; + len = strlen(opnd); + if (len > 1 && strncmp(opnd, reginput, len) != 0) + return false; + reginput += len; + + break; + } + case ANYOF: + if (*reginput == '\0' || + strchr(OPERAND(scan), *reginput) == NULL) + return false; + reginput++; + break; + case ANYBUT: + if (*reginput == '\0' || + strchr(OPERAND(scan), *reginput) != NULL) + return false; + reginput++; + break; + case NOTHING: + break; + case BACK: + break; + case OPEN+1: case OPEN+2: case OPEN+3: + case OPEN+4: case OPEN+5: case OPEN+6: + case OPEN+7: case OPEN+8: case OPEN+9: + case OPEN+10: case OPEN+11: case OPEN+12: + case OPEN+13: case OPEN+14: case OPEN+15: + case OPEN+16: case OPEN+17: case OPEN+18: + case OPEN+19: + { + const int no = OP(scan) - OPEN; + char * const input = reginput; + + if (regmatch(next)) + { + // Don't set startp if some later + // invocation of the same parentheses + // already has. + + if (regstartp[no] == NULL) + regstartp[no] = input; + return true; + } + else + return false; + break; + } + case CLOSE+1: case CLOSE+2: case CLOSE+3: + case CLOSE+4: case CLOSE+5: case CLOSE+6: + case CLOSE+7: case CLOSE+8: case CLOSE+9: + case CLOSE+10: case CLOSE+11: case CLOSE+12: + case CLOSE+13: case CLOSE+14: case CLOSE+15: + case CLOSE+16: case CLOSE+17: case CLOSE+18: + case CLOSE+19: + { + const int no = OP(scan) - CLOSE; + char * const input = reginput; + + if (regmatch(next)) + { + // Don't set endp if some later + // invocation of the same parentheses + // already has. + + if (regendp[no] == NULL) + regendp[no] = input; + return true; + } + else + return false; + break; + } + case BRANCH: + { + char * const save = reginput; + + if (OP(next) != BRANCH) // No choice. + next = OPERAND(scan); // Avoid recursion. + else + { + while (OP(scan) == BRANCH) + { + if (regmatch(OPERAND(scan))) + return true; + reginput = save; + scan = regnext(scan); + } + return false; + // NOTREACHED + } + break; + } + case STAR: case PLUS: + { + const char nextch = (OP(next) == EXACTLY) ? *OPERAND(next) : '\0'; + size_t no; + char * const save = reginput; + const size_t min = (OP(scan) == STAR) ? 0 : 1; + + for (no = regrepeat(OPERAND(scan)) + 1; no > min; no--) + { + reginput = save + no - 1; + // If it could work, try it. + if (nextch == '\0' || *reginput == nextch) + if (regmatch(next)) + return true; + } + return false; + break; + } + case END: + return true; // Success! + break; + default: + regerror( REGERR_CORRUPTION ); + return false; + break; + } + } + + // We get here only if there's trouble -- normally "case END" is + // the terminating point. + + regerror( REGERR_CORRUPTED_POINTERS ); + return false; +} + +// regrepeat - report how many times something simple would match + +size_t CRegExecutor::regrepeat( char * node ) +{ + size_t count; + char * scan; + char ch; + + switch (OP(node)) + { + case ANY: + return(strlen(reginput)); + break; + case EXACTLY: + ch = *OPERAND(node); + count = 0; + for (scan = reginput; *scan == ch; scan++) + count++; + return(count); + break; + case ANYOF: + return(strspn(reginput, OPERAND(node))); + break; + case ANYBUT: + return(strcspn(reginput, OPERAND(node))); + break; + default: // Oh dear. Called inappropriately. + regerror( REGERR_BAD_REGREPEAT ); + return(0); // Best compromise. + break; + } + // NOTREACHED +} + +#ifdef _RE_DEBUG + +// regdump - dump a regexp onto stdout in vaguely comprehensible form + +void regexp::regdump() +{ + char * s; + char op = EXACTLY; // Arbitrary non-END op. + char * next; + + s = program + 1; + while (op != END) + { // While that wasn't END last time... + op = OP(s); + printf("%2d%s", s-program, regprop(s)); // Where, what. + next = regnext(s); + if (next == NULL) // Next ptr. + printf("(0)" ); + else + printf("(%d)", (s-program)+(next-s)); + s += 3; + if (op == ANYOF || op == ANYBUT || op == EXACTLY) + { + // Literal string, where present. + while (*s != '\0') + { + putchar(*s); + s++; + } + s++; + } + putchar('\n'); + } + + // Header fields of interest. + if (regstart != '\0') + printf("start `%c' ", regstart); + if (reganch) + printf("anchored "); + if (regmust != NULL) + printf("must have \"%s\"" , regmust); + printf("\n"); +} + +// regprop - printable representation of opcode + +#define OUTPUT(s) case s: p = #s; break +char * CRegProgramAccessor::regprop( char * op ) +{ + char * p = NULL; + static char buf[50]; + + (void) strcpy(buf, ":" ); + + switch (OP(op)) + { + OUTPUT( BOL ); + OUTPUT( EOL ); + OUTPUT( ANY ); + OUTPUT( ANYOF ); + OUTPUT( ANYBUT ); + OUTPUT( BRANCH ); + OUTPUT( EXACTLY ); + OUTPUT( NOTHING ); + OUTPUT( BACK ); + OUTPUT( END ); + OUTPUT( STAR ); + OUTPUT( PLUS ); + OUTPUT( WORDA ); + OUTPUT( WORDZ ); + case OPEN+1: case OPEN+2: case OPEN+3: + case OPEN+4: case OPEN+5: case OPEN+6: + case OPEN+7: case OPEN+8: case OPEN+9: + case OPEN+10: case OPEN+11: case OPEN+12: + case OPEN+13: case OPEN+14: case OPEN+15: + case OPEN+16: case OPEN+17: case OPEN+18: + case OPEN+19: + sprintf(buf+strlen(buf), "OPEN%d", OP(op)-OPEN); + p = NULL; + break; + case CLOSE+1: case CLOSE+2: case CLOSE+3: + case CLOSE+4: case CLOSE+5: case CLOSE+6: + case CLOSE+7: case CLOSE+8: case CLOSE+9: + case CLOSE+10: case CLOSE+11: case CLOSE+12: + case CLOSE+13: case CLOSE+14: case CLOSE+15: + case CLOSE+16: case CLOSE+17: case CLOSE+18: + case CLOSE+19: + sprintf(buf+strlen(buf), "CLOSE%d", OP(op)-CLOSE); + p = NULL; + break; + default: + regerror( REGERR_CORRUPTED_OPCODE ); + break; + } + if (p != NULL) + (void) strcat(buf, p); + return(buf); +} +#endif + +/////////////////////////////////////////////////////////////////////////////// + +Regexp::Regexp() + : rc(0), + str(0) +{ +} + +Regexp::Regexp( const char * exp, bool iCase ) + : rc( new regexp( exp, iCase ) ), + str( 0 ) +{ +} + +Regexp::Regexp( const Regexp &r ) + : rc( r.rc ), + m_szError(r.m_szError), + str(r.str) +{ + if ( rc ) + rc->count++; +} + +const Regexp & Regexp::operator=( const Regexp & r ) +{ + if ( this != &r ) + { + if ( rc && rc->count-- == 0 ) + delete rc; + + rc = r.rc; + if ( rc ) + rc->count++; + + str = r.str; + m_szError = r.m_szError; + } + return *this; +} + +Regexp::~Regexp() +{ + if ( rc && rc->count-- == 0 ) + delete rc; +} + +bool Regexp::Match( const char * s ) +{ + ClearErrorString(); + str = s; + bool ret = false; + if ( rc ) + { + // copy on write ! + + if ( rc->count ) + { + rc->count--; + rc = rc->getCopy(); + } + + ret = rc->regexec( s ); + int i = 0; + if ( ret ) + for ( i = 0; i < Regexp::NSUBEXP && rc->startp[i] ; i++ ) + ; + rc->numSubs = i - 1; + } + else + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + return ret; +} + +string Regexp::GetReplaceString( const char * source ) const +{ + ClearErrorString(); + if ( rc ) + return rc->GetReplaceString( source ); + else + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + return ""; +} + +int Regexp::SubStrings() const +{ + ClearErrorString(); + int ret = -1; + if ( rc ) + ret = rc->numSubs; + else + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + return ret; +} + +int Regexp::SubStart( unsigned int i ) const +{ + ClearErrorString(); + int ret = -1; + if ( rc ) + ret = rc->startp[safeIndex(i)] - str; + else + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + return ret; +} + +int Regexp::SubLength( unsigned int i ) const +{ + ClearErrorString(); + int ret = -1; + if ( rc ) + { + i = safeIndex(i); + ret = rc->endp[i] - rc->startp[i]; + } + else + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + return ret; +} + +bool Regexp::CompiledOK() const +{ + return rc ? rc->Status() : false; +} + +#ifdef _RE_DEBUG +void Regexp::Dump() +{ + if ( rc ) + rc->regdump(); +#if defined( _DEBUG ) + else + TRACE( "No regexp to dump out\n" ); +#endif +} +#endif + +int Regexp::safeIndex( unsigned int i ) const +{ + return i < Regexp::NSUBEXP ? i : Regexp::NSUBEXP; +} + +const string Regexp::operator[]( unsigned int i ) const +{ + string value; + ClearErrorString(); + assert( rc ); + if ( rc ) + { + int len = SubLength(i); + //char * szbuf = buffer.GetBufferSetLength( len ); + //memcpy( szbuf, rc->startp[i], len * sizeof(char) ); + //buffer.ReleaseBuffer(); + value = std::string ( rc->startp[i], len ); + } + else + { + m_szError = CRegErrorHandler::FindErr( REGERR_NO_REGEXP ); + } + return value; +} + +void regexp::ignoreCase( const char * in, char * out ) +{ + // copy in to out making every top level character a [Aa] set + bool inRange = false; + while( *in ) + { + if ( *in == '[' ) + inRange = true; + if ( *in == ']' ) + inRange = false; + if ( ! inRange && isalpha( *in ) ) + { + *out++ = '['; + *out++ = (char)toupper( *in ); + *out++ = (char)tolower( *in ); + *out++ = ']'; + } + else + *out++ = *in; + in++; + } + *out = 0; +} + +// GetReplaceString - Converts a replace expression to a string +// - perform substitutions after a regexp match +// Returns - The resultant string +string regexp::GetReplaceString( const char* sReplaceExp ) const +{ + string szEmpty( "" ); + + char *src = (char *)sReplaceExp; + //char *buf; + char c; + int no; + size_t len; + + if( sReplaceExp == NULL ) + { + regerror( REGERR_NULL_TO_REGSUB ); + return szEmpty; + } + if ( *program != MAGIC) + { + regerror( REGERR_DAMAGED_REGEXP_REGSUB ); + return szEmpty; + } + + // First compute the length of the string + int replacelen = 0; + while ((c = *src++) != '\0') + { + if (c == '&') + no = 0; + else if (c == '\\' && isdigit(*src)) + no = *src++ - '0'; + else + no = -1; + + if (no < 0) + { + // Ordinary character. + if (c == '\\' && (*src == '\\' || *src == '&')) + c = *src++; + replacelen++; + } + else if (startp[no] != NULL && endp[no] != NULL && + endp[no] > startp[no]) + { + // Get tagged expression + len = endp[no] - startp[no]; + replacelen += len; + } + } + + string szReplace; + + //buf = szReplace.GetBufferSetLength( replacelen ); + + // Now we can create the string + src = (char *)sReplaceExp; + while ((c = *src++) != '\0') + { + if (c == '&') + no = 0; + else if (c == '\\' && isdigit(*src)) + no = *src++ - '0'; + else + no = -1; + + if (no < 0) + { + // Ordinary character. + if (c == '\\' && (*src == '\\' || *src == '&')) + c = *src++; + //*buf++ = c; + szReplace += c ; + } + else if (startp[no] != NULL && endp[no] != NULL && + endp[no] > startp[no]) + { + // Get tagged expression + len = endp[no] - startp[no]; + //strncpy(buf, startp[no], len); + //buf += len; + szReplace.append( startp[no], len ); +// if (len != 0 && *(buf-1) == '\0' )) +// { /* strncpy hit NUL. */ +// regerror( REGERR_DAMAGED_MATCH_STRING ); +// return szEmpty; +// } + } + } + + //szReplace.ReleaseBuffer( replacelen ); + return szReplace; +} + +string Regexp::GetErrorString() const +{ + // make sure that if status == 0 that we have an error string + assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); + return rc ? rc->GetErrorString() : m_szError ; +} + +void Regexp::ClearErrorString() const +{ + if ( rc ) + rc->ClearErrorString(); + m_szError.erase(); +} + -- cgit v1.1 From 4e12afd9ab0ea2c3f798e14664fe626b3b0adc9d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:16 +0000 Subject: Utilisateur : Fcolin Date : 28/06/00 Heure : 11:59 Archivé dans $/Ivy (vss 2) --- Ivy/Regexp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 6d44def..8671411 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -250,7 +250,7 @@ const string & CRegErrorHandler::GetErrorString() const void CRegErrorHandler::ClearErrorString() const { - m_szError = "" ; + m_szError.erase() ; } const char * CRegErrorHandler::FindErr( int id ) -- cgit v1.1 From 0d3dc16714e986e3a2720b64ad451bb24596485a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:18 +0000 Subject: Utilisateur : Fcolin Date : 30/11/00 Heure : 15:35 Archivé dans $/Ivy Commentaire: suppression de l'assert en cas d'erreur de compile regexp (vss 3) --- Ivy/Regexp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 8671411..049a22c 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -1744,7 +1744,7 @@ string regexp::GetReplaceString( const char* sReplaceExp ) const string Regexp::GetErrorString() const { // make sure that if status == 0 that we have an error string - assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); + //assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); return rc ? rc->GetErrorString() : m_szError ; } -- cgit v1.1 From 2463a4b909e35d2312bdffbae124e3edc542cc8c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:20 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 4) --- Ivy/Regexp.cxx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 049a22c..01f3d45 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -219,7 +219,7 @@ enum { class CRegErrorHandler { friend Regexp; - mutable string m_szError; + mutable String m_szError; static const char * FindErr( int id ); protected: void ClearErrorString() const; @@ -229,7 +229,7 @@ public: CRegErrorHandler() { } CRegErrorHandler( const CRegErrorHandler & reh ) : m_szError( reh.m_szError ) {} - const string & GetErrorString() const; + const String & GetErrorString() const; }; void CRegErrorHandler::regerror( const char * s ) const @@ -243,7 +243,7 @@ void CRegErrorHandler::regerror( int id ) const regerror( FindErr( id ) ); } -const string & CRegErrorHandler::GetErrorString() const +const String & CRegErrorHandler::GetErrorString() const { return m_szError; } @@ -324,7 +324,7 @@ public: bool regexec( const char * string ); bool Status() const { return status; } - string GetReplaceString( const char* sReplaceExp ) const; + String GetReplaceString( const char* sReplaceExp ) const; regexp * getCopy(); @@ -333,8 +333,8 @@ public: #endif #ifdef _DEBUG - string m_originalPattern; - string m_modifiedPattern; + String m_originalPattern; + String m_modifiedPattern; #endif }; @@ -1535,7 +1535,7 @@ bool Regexp::Match( const char * s ) return ret; } -string Regexp::GetReplaceString( const char * source ) const +String Regexp::GetReplaceString( const char * source ) const { ClearErrorString(); if ( rc ) @@ -1603,9 +1603,9 @@ int Regexp::safeIndex( unsigned int i ) const return i < Regexp::NSUBEXP ? i : Regexp::NSUBEXP; } -const string Regexp::operator[]( unsigned int i ) const +const String Regexp::operator[]( unsigned int i ) const { - string value; + String value; ClearErrorString(); assert( rc ); if ( rc ) @@ -1650,9 +1650,9 @@ void regexp::ignoreCase( const char * in, char * out ) // GetReplaceString - Converts a replace expression to a string // - perform substitutions after a regexp match // Returns - The resultant string -string regexp::GetReplaceString( const char* sReplaceExp ) const +String regexp::GetReplaceString( const char* sReplaceExp ) const { - string szEmpty( "" ); + String szEmpty( "" ); char *src = (char *)sReplaceExp; //char *buf; @@ -1698,7 +1698,7 @@ string regexp::GetReplaceString( const char* sReplaceExp ) const } } - string szReplace; + String szReplace; //buf = szReplace.GetBufferSetLength( replacelen ); @@ -1741,7 +1741,7 @@ string regexp::GetReplaceString( const char* sReplaceExp ) const return szReplace; } -string Regexp::GetErrorString() const +String Regexp::GetErrorString() const { // make sure that if status == 0 that we have an error string //assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); -- cgit v1.1 From 7bbc8b43b4901cd8cddb5a8cd0cc2246d4f45529 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:22 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/Regexp.cxx | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 01f3d45..ebade4e 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -219,7 +219,7 @@ enum { class CRegErrorHandler { friend Regexp; - mutable String m_szError; + mutable string m_szError; static const char * FindErr( int id ); protected: void ClearErrorString() const; @@ -229,7 +229,7 @@ public: CRegErrorHandler() { } CRegErrorHandler( const CRegErrorHandler & reh ) : m_szError( reh.m_szError ) {} - const String & GetErrorString() const; + const string & GetErrorString() const; }; void CRegErrorHandler::regerror( const char * s ) const @@ -243,7 +243,7 @@ void CRegErrorHandler::regerror( int id ) const regerror( FindErr( id ) ); } -const String & CRegErrorHandler::GetErrorString() const +const string & CRegErrorHandler::GetErrorString() const { return m_szError; } @@ -324,7 +324,7 @@ public: bool regexec( const char * string ); bool Status() const { return status; } - String GetReplaceString( const char* sReplaceExp ) const; + string GetReplaceString( const char* sReplaceExp ) const; regexp * getCopy(); @@ -333,8 +333,8 @@ public: #endif #ifdef _DEBUG - String m_originalPattern; - String m_modifiedPattern; + string m_originalPattern; + string m_modifiedPattern; #endif }; @@ -1035,7 +1035,7 @@ class CRegExecutor : public CRegProgramAccessor { friend bool regexp::regexec( const char * str ); - char * reginput; // String-input pointer. + char * reginput; // string-input pointer. char * regbol; // Beginning of input, for ^ check. char * * regstartp; // Pointer to startp array. char * * regendp; // Ditto for endp. @@ -1535,7 +1535,7 @@ bool Regexp::Match( const char * s ) return ret; } -String Regexp::GetReplaceString( const char * source ) const +string Regexp::GetReplaceString( const char * source ) const { ClearErrorString(); if ( rc ) @@ -1603,18 +1603,18 @@ int Regexp::safeIndex( unsigned int i ) const return i < Regexp::NSUBEXP ? i : Regexp::NSUBEXP; } -const String Regexp::operator[]( unsigned int i ) const +const string Regexp::operator[]( unsigned int i ) const { - String value; + string value; ClearErrorString(); - assert( rc ); + ASSERT( rc ); if ( rc ) { int len = SubLength(i); //char * szbuf = buffer.GetBufferSetLength( len ); //memcpy( szbuf, rc->startp[i], len * sizeof(char) ); //buffer.ReleaseBuffer(); - value = std::string ( rc->startp[i], len ); + value = string ( rc->startp[i], len ); } else { @@ -1650,9 +1650,9 @@ void regexp::ignoreCase( const char * in, char * out ) // GetReplaceString - Converts a replace expression to a string // - perform substitutions after a regexp match // Returns - The resultant string -String regexp::GetReplaceString( const char* sReplaceExp ) const +string regexp::GetReplaceString( const char* sReplaceExp ) const { - String szEmpty( "" ); + string szEmpty( "" ); char *src = (char *)sReplaceExp; //char *buf; @@ -1698,7 +1698,7 @@ String regexp::GetReplaceString( const char* sReplaceExp ) const } } - String szReplace; + string szReplace; //buf = szReplace.GetBufferSetLength( replacelen ); @@ -1741,7 +1741,7 @@ String regexp::GetReplaceString( const char* sReplaceExp ) const return szReplace; } -String Regexp::GetErrorString() const +string Regexp::GetErrorString() const { // make sure that if status == 0 that we have an error string //assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); -- cgit v1.1 From 2fd4b6c291350eb8f2e19d2ef7741e98956ab74d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:24 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 17:00 Archivé dans $/Ivy (vss 6) --- Ivy/Regexp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index ebade4e..af667d3 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -278,7 +278,7 @@ public: } static inline char * regnext( char * p ) { - const short &offset = *((short*)(p+1)); + const short offset = *((short*)(p+1)); if (offset == 0) return(NULL); -- cgit v1.1 From 03e474e496e7a9e7918c1d7abe0b358ebdc3a63f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:26 +0000 Subject: Utilisateur : Fcolin Date : 16/07/01 Heure : 11:47 Archivé dans $/Ivy (vss 7) --- Ivy/Regexp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index af667d3..37de17c 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -1,7 +1,7 @@ // Win32 porting notes. #if defined( _MBCS ) -#pragma message( __FILEINFO__ "This code is broken under _MBCS, " \ +#pragma message( __FILE__ "This code is broken under _MBCS, " \ "see the comments at the top of this file." ) #endif //_MBCS // -- cgit v1.1 From 78c293ac5257f15176fb9e9a8c654e0102077a9f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:28 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 8) --- Ivy/Regexp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 37de17c..bcbbf0c 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -67,7 +67,7 @@ // precedence is structured in regular expressions. Serious changes in // regular-expression syntax might require a total rethink. -#include "stdafx.h" +#include "IvyStdAfx.h" #include "regexp.h" // The first byte of the regexp internal "program" is actually this magic -- cgit v1.1 From d7cd3e3c39b076075935168087e153383e455dab Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:30 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 9) --- Ivy/Regexp.cxx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index bcbbf0c..4ba60e3 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -219,7 +219,7 @@ enum { class CRegErrorHandler { friend Regexp; - mutable string m_szError; + mutable ivy::string m_szError; static const char * FindErr( int id ); protected: void ClearErrorString() const; @@ -229,7 +229,7 @@ public: CRegErrorHandler() { } CRegErrorHandler( const CRegErrorHandler & reh ) : m_szError( reh.m_szError ) {} - const string & GetErrorString() const; + const ivy::string & GetErrorString() const; }; void CRegErrorHandler::regerror( const char * s ) const @@ -243,7 +243,7 @@ void CRegErrorHandler::regerror( int id ) const regerror( FindErr( id ) ); } -const string & CRegErrorHandler::GetErrorString() const +const ivy::string & CRegErrorHandler::GetErrorString() const { return m_szError; } @@ -324,7 +324,7 @@ public: bool regexec( const char * string ); bool Status() const { return status; } - string GetReplaceString( const char* sReplaceExp ) const; + ivy::string GetReplaceString( const char* sReplaceExp ) const; regexp * getCopy(); @@ -333,8 +333,8 @@ public: #endif #ifdef _DEBUG - string m_originalPattern; - string m_modifiedPattern; + ivy::string m_originalPattern; + ivy::string m_modifiedPattern; #endif }; @@ -1535,7 +1535,7 @@ bool Regexp::Match( const char * s ) return ret; } -string Regexp::GetReplaceString( const char * source ) const +ivy::string Regexp::GetReplaceString( const char * source ) const { ClearErrorString(); if ( rc ) @@ -1603,9 +1603,9 @@ int Regexp::safeIndex( unsigned int i ) const return i < Regexp::NSUBEXP ? i : Regexp::NSUBEXP; } -const string Regexp::operator[]( unsigned int i ) const +const ivy::string Regexp::operator[]( unsigned int i ) const { - string value; + ivy::string value; ClearErrorString(); ASSERT( rc ); if ( rc ) @@ -1614,7 +1614,7 @@ const string Regexp::operator[]( unsigned int i ) const //char * szbuf = buffer.GetBufferSetLength( len ); //memcpy( szbuf, rc->startp[i], len * sizeof(char) ); //buffer.ReleaseBuffer(); - value = string ( rc->startp[i], len ); + value = ivy::string ( rc->startp[i], len ); } else { @@ -1650,9 +1650,9 @@ void regexp::ignoreCase( const char * in, char * out ) // GetReplaceString - Converts a replace expression to a string // - perform substitutions after a regexp match // Returns - The resultant string -string regexp::GetReplaceString( const char* sReplaceExp ) const +ivy::string regexp::GetReplaceString( const char* sReplaceExp ) const { - string szEmpty( "" ); + ivy::string szEmpty( "" ); char *src = (char *)sReplaceExp; //char *buf; @@ -1698,7 +1698,7 @@ string regexp::GetReplaceString( const char* sReplaceExp ) const } } - string szReplace; + ivy::string szReplace; //buf = szReplace.GetBufferSetLength( replacelen ); @@ -1741,7 +1741,7 @@ string regexp::GetReplaceString( const char* sReplaceExp ) const return szReplace; } -string Regexp::GetErrorString() const +ivy::string Regexp::GetErrorString() const { // make sure that if status == 0 that we have an error string //assert( ( ! CompiledOK() ) ? ( rc ? rc->GetErrorString() : m_szError).length() != 0 : 1 ); -- cgit v1.1 From ea575235ff3f2029061c0bfc5de2e452490d1d43 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:32 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/Regexp.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 4ba60e3..5916ec8 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -1556,10 +1556,10 @@ int Regexp::SubStrings() const return ret; } -int Regexp::SubStart( unsigned int i ) const +size_t Regexp::SubStart( size_t i ) const { ClearErrorString(); - int ret = -1; + size_t ret = -1; if ( rc ) ret = rc->startp[safeIndex(i)] - str; else @@ -1567,10 +1567,10 @@ int Regexp::SubStart( unsigned int i ) const return ret; } -int Regexp::SubLength( unsigned int i ) const +size_t Regexp::SubLength( size_t i ) const { ClearErrorString(); - int ret = -1; + size_t ret = -1; if ( rc ) { i = safeIndex(i); @@ -1598,19 +1598,19 @@ void Regexp::Dump() } #endif -int Regexp::safeIndex( unsigned int i ) const +size_t Regexp::safeIndex( size_t i ) const { return i < Regexp::NSUBEXP ? i : Regexp::NSUBEXP; } -const ivy::string Regexp::operator[]( unsigned int i ) const +const ivy::string Regexp::operator[]( size_t i ) const { ivy::string value; ClearErrorString(); ASSERT( rc ); if ( rc ) { - int len = SubLength(i); + size_t len = SubLength(i); //char * szbuf = buffer.GetBufferSetLength( len ); //memcpy( szbuf, rc->startp[i], len * sizeof(char) ); //buffer.ReleaseBuffer(); @@ -1672,7 +1672,7 @@ ivy::string regexp::GetReplaceString( const char* sReplaceExp ) const } // First compute the length of the string - int replacelen = 0; + size_t replacelen = 0; while ((c = *src++) != '\0') { if (c == '&') -- cgit v1.1 From e6dbff317adc5b2dc6d174128f3f9d6177cf1207 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:34 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:51 Archivé dans $/Bus/Ivy Commentaire: (vss 11) --- Ivy/Regexp.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ivy/Regexp.cxx b/Ivy/Regexp.cxx index 5916ec8..4dc1823 100644 --- a/Ivy/Regexp.cxx +++ b/Ivy/Regexp.cxx @@ -255,7 +255,8 @@ void CRegErrorHandler::ClearErrorString() const const char * CRegErrorHandler::FindErr( int id ) { - for ( struct regErr * perr = errors; perr->m_id != REGERR_SENTINEL_VALUE; perr++ ) + struct regErr * perr; + for ( perr = errors; perr->m_id != REGERR_SENTINEL_VALUE; perr++ ) if ( perr->m_id == id ) return perr->m_err; -- cgit v1.1 From 3f3f2e621789c3c65eb10d3ee937c047c5a46857 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:37 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/Regexp.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Ivy/Regexp.h diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h new file mode 100644 index 0000000..22e2699 --- /dev/null +++ b/Ivy/Regexp.h @@ -0,0 +1,44 @@ +#ifndef __REGEXP_H__ +#define __REGEXP_H__ + + +class regexp; + +class Regexp +{ +public: + enum { NSUBEXP = 20 }; + + Regexp(); + Regexp( const char * exp, bool iCase = 0 ); + Regexp( const Regexp &r ); + ~Regexp(); + const Regexp & operator=( const Regexp & r ); + + bool Match( const char * s ); + int SubStrings() const; + + const string operator[]( unsigned int i ) const; + int SubStart( unsigned int i ) const; + int SubLength( unsigned int i ) const; + + string GetReplaceString( const char * source ) const; + + string GetErrorString() const; + bool CompiledOK() const; + +#if defined( _RE_DEBUG ) + void Dump(); +#endif +private: + const char * str; /* used to return substring offsets only */ + mutable string m_szError; + regexp * rc; + + void ClearErrorString() const; + int safeIndex( unsigned int i ) const; + +}; + +#endif + -- cgit v1.1 From 00a296093ba62e3fcabc50a23f864424a8ca5af2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:38 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 2) --- Ivy/Regexp.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h index 22e2699..3265561 100644 --- a/Ivy/Regexp.h +++ b/Ivy/Regexp.h @@ -18,13 +18,13 @@ public: bool Match( const char * s ); int SubStrings() const; - const string operator[]( unsigned int i ) const; + const String operator[]( unsigned int i ) const; int SubStart( unsigned int i ) const; int SubLength( unsigned int i ) const; - string GetReplaceString( const char * source ) const; + String GetReplaceString( const char * source ) const; - string GetErrorString() const; + String GetErrorString() const; bool CompiledOK() const; #if defined( _RE_DEBUG ) @@ -32,7 +32,7 @@ public: #endif private: const char * str; /* used to return substring offsets only */ - mutable string m_szError; + mutable String m_szError; regexp * rc; void ClearErrorString() const; -- cgit v1.1 From 5cbed4b3ece796dc63e8958342643fc8a3216051 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:40 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 3) --- Ivy/Regexp.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h index 3265561..cf7a748 100644 --- a/Ivy/Regexp.h +++ b/Ivy/Regexp.h @@ -1,6 +1,4 @@ -#ifndef __REGEXP_H__ -#define __REGEXP_H__ - +#pragma once class regexp; @@ -18,13 +16,13 @@ public: bool Match( const char * s ); int SubStrings() const; - const String operator[]( unsigned int i ) const; + const string operator[]( unsigned int i ) const; int SubStart( unsigned int i ) const; int SubLength( unsigned int i ) const; - String GetReplaceString( const char * source ) const; + string GetReplaceString( const char * source ) const; - String GetErrorString() const; + string GetErrorString() const; bool CompiledOK() const; #if defined( _RE_DEBUG ) @@ -32,7 +30,7 @@ public: #endif private: const char * str; /* used to return substring offsets only */ - mutable String m_szError; + mutable string m_szError; regexp * rc; void ClearErrorString() const; @@ -40,5 +38,4 @@ private: }; -#endif -- cgit v1.1 From 910fbcd6d06367da9e53ec628a66e86b11b95fef Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:42 +0000 Subject: Utilisateur : Fcolin Date : 19/06/02 Heure : 14:05 Archivé dans $/Ivy Commentaire: Modif nb sub expression de 2à a 40 (vss 4) --- Ivy/Regexp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h index cf7a748..242d1de 100644 --- a/Ivy/Regexp.h +++ b/Ivy/Regexp.h @@ -5,7 +5,7 @@ class regexp; class Regexp { public: - enum { NSUBEXP = 20 }; + enum { NSUBEXP = 40 }; Regexp(); Regexp( const char * exp, bool iCase = 0 ); -- cgit v1.1 From 3206d022a755ffe703964afe2240146127b3f7a4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:44 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 5) --- Ivy/Regexp.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h index 242d1de..3e036d9 100644 --- a/Ivy/Regexp.h +++ b/Ivy/Regexp.h @@ -16,13 +16,13 @@ public: bool Match( const char * s ); int SubStrings() const; - const string operator[]( unsigned int i ) const; + const ivy::string operator[]( unsigned int i ) const; int SubStart( unsigned int i ) const; int SubLength( unsigned int i ) const; - string GetReplaceString( const char * source ) const; + ivy::string GetReplaceString( const char * source ) const; - string GetErrorString() const; + ivy::string GetErrorString() const; bool CompiledOK() const; #if defined( _RE_DEBUG ) @@ -30,7 +30,7 @@ public: #endif private: const char * str; /* used to return substring offsets only */ - mutable string m_szError; + mutable ivy::string m_szError; regexp * rc; void ClearErrorString() const; -- cgit v1.1 From e18ab55cb4a3605cb44f39e829970f7fbd705107 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:46 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 6) --- Ivy/Regexp.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/Regexp.h b/Ivy/Regexp.h index 3e036d9..b41d88e 100644 --- a/Ivy/Regexp.h +++ b/Ivy/Regexp.h @@ -16,9 +16,9 @@ public: bool Match( const char * s ); int SubStrings() const; - const ivy::string operator[]( unsigned int i ) const; - int SubStart( unsigned int i ) const; - int SubLength( unsigned int i ) const; + const ivy::string operator[]( size_t i ) const; + size_t SubStart( size_t i ) const; + size_t SubLength( size_t i ) const; ivy::string GetReplaceString( const char * source ) const; @@ -34,7 +34,7 @@ private: regexp * rc; void ClearErrorString() const; - int safeIndex( unsigned int i ) const; + size_t safeIndex( size_t i ) const; }; -- cgit v1.1 From d42a6937e7b9eba39de3c7d8edc975499d1f43ff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:49 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/ThreadedSocket.cxx | 439 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 Ivy/ThreadedSocket.cxx diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx new file mode 100644 index 0000000..f00e6f5 --- /dev/null +++ b/Ivy/ThreadedSocket.cxx @@ -0,0 +1,439 @@ +// ThreadedSocket.cpp: implementation of the CThreadedSocket class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include + +#include "ThreadedSocket.h" + + +// Class CThreadedSocketException +//IMPLEMENT_DYNAMIC(CThreadedSocketException, CException) + +CThreadedSocketException::CThreadedSocketException(char* pchMessage) +{ + m_strMessage = pchMessage; + m_nError = WSAGetLastError(); +} + +bool CThreadedSocketException::GetErrorMessage(string & lpstrError, UINT nMaxError, + PUINT pnHelpContext /*= NULL*/) +{ + lpstrError = m_strMessage; + lpstrError += "error"; + if(m_nError != 0) + { + lpstrError += " #"; + lpstrError += m_nError; + } + return true; +} + +//IMPLEMENT_DYNAMIC(CThreadedSocket, CObject) + +bool CThreadedSocket::Initialized = false; + +void CThreadedSocket::Init() +{ + WORD wVersionRequested; + WSADATA wsaData; + int err; + + wVersionRequested = MAKEWORD( 2, 2 ); + + err = WSAStartup( wVersionRequested, &wsaData ); + if ( err != 0 ) { + /* Tell the user that we could not find a usable */ + /* WinSock DLL. */ + return; + } + Initialized = true; +} + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CThreadedSocket::CThreadedSocket() +{ + if ( ! Initialized ) Init(); + + m_hSocket = INVALID_SOCKET; + h_thread = NULL; + // Create events to wait on + // for receivier part + m_hEvent[0] = WSACreateEvent(); + if ( m_hEvent[0] == WSA_INVALID_EVENT ) + { + TRACE( "CThreadedSocketException(WSACreateEvent )\n"); + throw( new CThreadedSocketException( "WSACreateEvent" )); + } + // for transmitter part + m_hEvent[1] = WSACreateEvent(); + if ( m_hEvent[1] == WSA_INVALID_EVENT ) + { + TRACE( "CThreadedSocketException(WSACreateEvent )\n"); + throw( new CThreadedSocketException( "WSACreateEvent" )); + } +} + +CThreadedSocket::~CThreadedSocket() +{ + if (m_hSocket != INVALID_SOCKET) + Close(); + //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! + // delete thread; + WSACloseEvent( m_hEvent[0] ); + WSACloseEvent( m_hEvent[1] ); +} +void CThreadedSocket::Create(UINT nSocketPort, int nSocketType, + long lEvent, const char * lpszSocketAddress) +{ + Socket(nSocketType, lEvent); + Bind(nSocketPort,lpszSocketAddress); +} + +///////////////////////////////////////////////////////////////////////////// +// CThreadedSocket Attributes + + + +void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) +{ + SOCKADDR_IN sockAddr; + memset(&sockAddr, 0, sizeof(sockAddr)); + + int nSockAddrLen = sizeof(sockAddr); + GetPeerName((SOCKADDR*)&sockAddr, &nSockAddrLen); + rPeerPort = ntohs(sockAddr.sin_port); + rPeerAddress = inet_ntoa(sockAddr.sin_addr); +} + +void CThreadedSocket::GetSockName(string & rSocketAddress, UINT& rSocketPort) +{ + SOCKADDR_IN sockAddr; + memset(&sockAddr, 0, sizeof(sockAddr)); + + int nSockAddrLen = sizeof(sockAddr); + GetSockName((SOCKADDR*)&sockAddr, &nSockAddrLen); + rSocketPort = ntohs(sockAddr.sin_port); + rSocketAddress = inet_ntoa(sockAddr.sin_addr); +} + +///////////////////////////////////////////////////////////////////////////// +// CAscynSocket Operations + +void CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, + SOCKADDR* lpSockAddr, int* lpSockAddrLen) +{ + assert(rConnectedSocket.m_hSocket == INVALID_SOCKET); + + + SOCKET hTemp = accept(m_hSocket, lpSockAddr, lpSockAddrLen); + + if (hTemp == INVALID_SOCKET) + { + rConnectedSocket.m_hSocket = INVALID_SOCKET; + throw( new CThreadedSocketException( "accept" ) ); + } + else + { + rConnectedSocket.m_hSocket = hTemp; + rConnectedSocket.StartListener(m_EventMask); + } +} + +void CThreadedSocket::Bind(UINT nSocketPort, const char * lpszSocketAddress) +{ + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + + sockAddr.sin_family = AF_INET; + + if (lpszSocketAddress == NULL) + sockAddr.sin_addr.s_addr = htonl(INADDR_ANY); + else + { + DWORD lResult = inet_addr(lpszSocketAddress); + if (lResult == INADDR_NONE) + { + WSASetLastError(WSAEINVAL); + throw( new CThreadedSocketException( "bind" ) ); + } + sockAddr.sin_addr.s_addr = lResult; + } + + sockAddr.sin_port = htons((u_short)nSocketPort); + + Bind((SOCKADDR*)&sockAddr, sizeof(sockAddr)); +} + +void CThreadedSocket::Close() +{ + if (m_hSocket != INVALID_SOCKET) + { + AsyncSelect(0); + assert(SOCKET_ERROR != closesocket(m_hSocket)); + m_hSocket = INVALID_SOCKET; + //WSASetEvent( m_hEventObject ); + } +} + +bool CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) +{ + if ( !connect(m_hSocket, lpSockAddr, nSockAddrLen) ) + { + DWORD err = WSAGetLastError(); + if ( err == 0 ) return TRUE; + TRACE( "***************************************Error connect %d\n", err); + if ( err != WSAEWOULDBLOCK ) + return FALSE; + // Wait for connection to complete + TRACE( "***************************************Waiting for connection to complete\n"); + err = WSAWaitForMultipleEvents( 1, m_hEvent, FALSE, WSA_INFINITE, TRUE); + //TRACE( "Thread socket %d wait return %d\n", m_hSocket, err ); + if ( err == WSA_WAIT_FAILED ) + { + return FALSE; + } + + return TRUE; + } + return TRUE; +} + +bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) +{ + + assert(lpszHostAddress != NULL); + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + + sockAddr.sin_family = AF_INET; + sockAddr.sin_addr.s_addr = inet_addr(lpszHostAddress); + + if (sockAddr.sin_addr.s_addr == INADDR_NONE) + { + LPHOSTENT lphost; + lphost = gethostbyname(lpszHostAddress); + if (lphost != NULL) + sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; + else + { + WSASetLastError(WSAEINVAL); + return FALSE; + } + } + + sockAddr.sin_port = htons((u_short)nHostPort); + + return Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); +} + +int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) +{ + int lg = recv(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags); + if ( lg == SOCKET_ERROR ) + throw( new CThreadedSocketException( "recv" ) ); + return lg; +} + +int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, string & rSocketAddress, UINT& rSocketPort, int nFlags) +{ + SOCKADDR_IN sockAddr; + + memset(&sockAddr, 0, sizeof(sockAddr)); + + int nSockAddrLen = sizeof(sockAddr); + int nResult = ReceiveFrom(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, &nSockAddrLen, nFlags); + rSocketPort = ntohs(sockAddr.sin_port); + rSocketAddress = inet_ntoa(sockAddr.sin_addr); + + return nResult; +} + +void CThreadedSocket::Send(const void* lpBuf, int nBufLen, int nFlags) +{ + if ( send(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags) != nBufLen ) + throw( new CThreadedSocketException( "send" ) ); +} + +void CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) +{ + SOCKADDR_IN sockAddr; + + memset(&sockAddr,0,sizeof(sockAddr)); + + sockAddr.sin_family = AF_INET; + + if (lpszHostAddress == NULL) + sockAddr.sin_addr.s_addr = htonl(INADDR_BROADCAST); + else + { + sockAddr.sin_addr.s_addr = inet_addr(lpszHostAddress); + if (sockAddr.sin_addr.s_addr == INADDR_NONE) + { + LPHOSTENT lphost; + lphost = gethostbyname(lpszHostAddress); + if (lphost != NULL) + sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; + else + { + WSASetLastError(WSAEINVAL); + throw( new CThreadedSocketException( "SendTo" )); + return; + } + } + } + + sockAddr.sin_port = htons((u_short)nHostPort); + + SendTo(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, sizeof(sockAddr), nFlags); +} +void CThreadedSocket::AsyncSelect(long lEvent) +{ + assert(m_hSocket != INVALID_SOCKET); + if ( WSAEventSelect(m_hSocket, m_hEvent[0], lEvent) ) + throw( new CThreadedSocketException( "WSAEventSelect" )); +} +///////////////////////////////////////////////////////////////////////////// +// CThreadedSocket Overridable callbacks +void CThreadedSocket::OnWakeup() +{ +} +void CThreadedSocket::OnReceive(int /*nErrorCode*/) +{ +} + +void CThreadedSocket::OnSend(int /*nErrorCode*/) +{ +} + +void CThreadedSocket::OnOutOfBandData(int /*nErrorCode*/) +{ +} + +void CThreadedSocket::OnAccept(int /*nErrorCode*/) +{ +} + +void CThreadedSocket::OnConnect(int /*nErrorCode*/) +{ +} + +void CThreadedSocket::OnClose(int /*nErrorCode*/) +{ +} + +///////////////////////////////////////////////////////////////////////////// +// CThreadedSocket Implementation + + +void CThreadedSocket::Socket(int nSocketType, long lEvent, int nProtocolType, int nAddressFormat) +{ + assert(m_hSocket == INVALID_SOCKET); + + m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); +// m_hSocket = WSASocket ( nAddressFormat, nSocketType,nProtocolType, NULL, 0, 0 ); + + + if (m_hSocket == INVALID_SOCKET) + { + throw( new CThreadedSocketException( "socket" )); + } + StartListener(lEvent); + +} + +void CThreadedSocket::StartListener(long lEvent) +{ + m_EventMask = lEvent; + h_thread = CreateThread(NULL,0,SocketThreadProc, this, 0, &thread_id); + if ( ! h_thread ) + throw( new CThreadedSocketException( "socket listener" )); +} +// Implementation +DWORD WINAPI CThreadedSocket::SocketThreadProc( LPVOID pParam ) +{ + CThreadedSocket* pObject = (CThreadedSocket*)pParam; + + if (pObject == NULL ) + { + throw( new CThreadedSocketException( "bad socket proc" )); + return -1; // if pObject is not valid + } + + return pObject->SocketThread(); +} + +UINT CThreadedSocket::SocketThread( ) +{ + DWORD err; + WSANETWORKEVENTS NetworkEvents; + + AsyncSelect(m_EventMask) ; + while ( m_hSocket != INVALID_SOCKET ) + { + err = WSAWaitForMultipleEvents( 2, m_hEvent, FALSE, WSA_INFINITE, TRUE); + switch ( err ) + { + case WSA_WAIT_FAILED: + TRACE( "CThreadedSocketException(WSAWaitForMultipleEvents )\n"); + throw( new CThreadedSocketException( "WSAWaitForMultipleEvents" )); + return err; + break; + case WSA_WAIT_EVENT_0: + + NetworkEvents.lNetworkEvents=0; + + if ( WSAEnumNetworkEvents ( m_hSocket, m_hEvent[0], &NetworkEvents )) + { + TRACE( "CThreadedSocketException(WSAEnumNetworkEvents )\n"); + throw( new CThreadedSocketException( "WSAEnumNetworkEvents" )); + return -1; + } + + + if ( NetworkEvents.lNetworkEvents & FD_READ ) + OnReceive(NetworkEvents.iErrorCode[ FD_READ_BIT ]); + + if ( NetworkEvents.lNetworkEvents & FD_WRITE ) + OnSend( NetworkEvents.iErrorCode[ FD_WRITE_BIT ] ); + + if ( NetworkEvents.lNetworkEvents & FD_ACCEPT ) + OnAccept( NetworkEvents.iErrorCode[ FD_ACCEPT_BIT ] ); + + + if ( NetworkEvents.lNetworkEvents & FD_CONNECT ) + OnConnect( NetworkEvents.iErrorCode[ FD_CONNECT_BIT ] ); + + if ( NetworkEvents.lNetworkEvents & FD_OOB ) + OnOutOfBandData( NetworkEvents.iErrorCode[ FD_OOB_BIT ] ); + + if ( NetworkEvents.lNetworkEvents & FD_CLOSE ) + { + OnClose( NetworkEvents.iErrorCode[ FD_CLOSE_BIT ] ); + } + + break; + case WSA_WAIT_EVENT_0 +1 : + if ( m_hSocket != INVALID_SOCKET ) + { + OnWakeup(); + } + // else Close by other Thread do silent terminaison + WSAResetEvent( m_hEvent[1] ); + + break; + default: + TRACE( "CThreadedSocket::SocketThread Unhandled Events !\n"); + break; + } + } + Close(); + h_thread = NULL; + return 0; +} -- cgit v1.1 From ff43d6adcef7ed20cf896553ae050f9ee70da412 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:50 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:40 Archivé dans $/Ivy Commentaire: Init dll socket dans DLLMain (vss 2) --- Ivy/ThreadedSocket.cxx | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index f00e6f5..64df41e 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -30,34 +30,12 @@ bool CThreadedSocketException::GetErrorMessage(string & lpstrError, UINT nMaxErr return true; } -//IMPLEMENT_DYNAMIC(CThreadedSocket, CObject) - -bool CThreadedSocket::Initialized = false; - -void CThreadedSocket::Init() -{ - WORD wVersionRequested; - WSADATA wsaData; - int err; - - wVersionRequested = MAKEWORD( 2, 2 ); - - err = WSAStartup( wVersionRequested, &wsaData ); - if ( err != 0 ) { - /* Tell the user that we could not find a usable */ - /* WinSock DLL. */ - return; - } - Initialized = true; -} - ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CThreadedSocket::CThreadedSocket() { - if ( ! Initialized ) Init(); m_hSocket = INVALID_SOCKET; h_thread = NULL; -- cgit v1.1 From f2abd2f272583782738a190c0d59a05e86a8198a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:52 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Ivy Commentaire: Version multicast (vss 3) --- Ivy/ThreadedSocket.cxx | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 64df41e..1e20e8e 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -242,7 +242,7 @@ void CThreadedSocket::Send(const void* lpBuf, int nBufLen, int nFlags) void CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) { SOCKADDR_IN sockAddr; - + memset(&sockAddr,0,sizeof(sockAddr)); sockAddr.sin_family = AF_INET; @@ -266,11 +266,44 @@ void CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, con } } } - + sockAddr.sin_port = htons((u_short)nHostPort); SendTo(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, sizeof(sockAddr), nFlags); } +void CThreadedSocket::AddMember( const char * lpszHostAddress ) +{ + int multicast_ttl = 64; // region + struct ip_mreq imr; + + TRACE("CThreadedSocket::AddMember adding %s\n", lpszHostAddress ); + imr.imr_multiaddr.s_addr = INADDR_ANY; + imr.imr_interface.s_addr = INADDR_ANY; + + if (lpszHostAddress ) + { + imr.imr_multiaddr.s_addr = inet_addr(lpszHostAddress); + if (imr.imr_multiaddr.s_addr == INADDR_NONE) + { + LPHOSTENT lphost; + lphost = gethostbyname(lpszHostAddress); + if (lphost != NULL) + imr.imr_multiaddr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; + else + { + WSASetLastError(WSAEINVAL); + throw( new CThreadedSocketException( "AddMenber" )); + return; + } + } + } + if ( IN_CLASSD( htonl(imr.imr_multiaddr.s_addr) ) ) + { + SetSockOpt( IP_MULTICAST_TTL, &multicast_ttl, sizeof( multicast_ttl ), IPPROTO_IP ); + SetSockOpt( IP_ADD_MEMBERSHIP, &imr, sizeof( imr ), IPPROTO_IP ); + } + +} void CThreadedSocket::AsyncSelect(long lEvent) { assert(m_hSocket != INVALID_SOCKET); -- cgit v1.1 From cc506f8b04ce0506c75321b4d5a25da3ca550876 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:54 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 4) --- Ivy/ThreadedSocket.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 1e20e8e..5f4c183 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -17,7 +17,7 @@ CThreadedSocketException::CThreadedSocketException(char* pchMessage) m_nError = WSAGetLastError(); } -bool CThreadedSocketException::GetErrorMessage(string & lpstrError, UINT nMaxError, +bool CThreadedSocketException::GetErrorMessage(String & lpstrError, UINT nMaxError, PUINT pnHelpContext /*= NULL*/) { lpstrError = m_strMessage; @@ -77,7 +77,7 @@ void CThreadedSocket::Create(UINT nSocketPort, int nSocketType, -void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) +void CThreadedSocket::GetPeerName(String & rPeerAddress, UINT& rPeerPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -88,7 +88,7 @@ void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) rPeerAddress = inet_ntoa(sockAddr.sin_addr); } -void CThreadedSocket::GetSockName(string & rSocketAddress, UINT& rSocketPort) +void CThreadedSocket::GetSockName(String & rSocketAddress, UINT& rSocketPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -219,7 +219,7 @@ int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) return lg; } -int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, string & rSocketAddress, UINT& rSocketPort, int nFlags) +int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, String & rSocketAddress, UINT& rSocketPort, int nFlags) { SOCKADDR_IN sockAddr; -- cgit v1.1 From 7c626ebb6751ab4dc1a86d1939cded83dfea70bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:56 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/ThreadedSocket.cxx | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 5f4c183..955af12 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -8,16 +8,13 @@ #include "ThreadedSocket.h" -// Class CThreadedSocketException -//IMPLEMENT_DYNAMIC(CThreadedSocketException, CException) - CThreadedSocketException::CThreadedSocketException(char* pchMessage) { m_strMessage = pchMessage; m_nError = WSAGetLastError(); } -bool CThreadedSocketException::GetErrorMessage(String & lpstrError, UINT nMaxError, +bool CThreadedSocketException::GetErrorMessage(string & lpstrError, UINT nMaxError, PUINT pnHelpContext /*= NULL*/) { lpstrError = m_strMessage; @@ -77,7 +74,7 @@ void CThreadedSocket::Create(UINT nSocketPort, int nSocketType, -void CThreadedSocket::GetPeerName(String & rPeerAddress, UINT& rPeerPort) +void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -88,7 +85,7 @@ void CThreadedSocket::GetPeerName(String & rPeerAddress, UINT& rPeerPort) rPeerAddress = inet_ntoa(sockAddr.sin_addr); } -void CThreadedSocket::GetSockName(String & rSocketAddress, UINT& rSocketPort) +void CThreadedSocket::GetSockName(string & rSocketAddress, UINT& rSocketPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -105,7 +102,7 @@ void CThreadedSocket::GetSockName(String & rSocketAddress, UINT& rSocketPort) void CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr, int* lpSockAddrLen) { - assert(rConnectedSocket.m_hSocket == INVALID_SOCKET); + ASSERT(rConnectedSocket.m_hSocket == INVALID_SOCKET); SOCKET hTemp = accept(m_hSocket, lpSockAddr, lpSockAddrLen); @@ -153,7 +150,7 @@ void CThreadedSocket::Close() if (m_hSocket != INVALID_SOCKET) { AsyncSelect(0); - assert(SOCKET_ERROR != closesocket(m_hSocket)); + ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); m_hSocket = INVALID_SOCKET; //WSASetEvent( m_hEventObject ); } @@ -164,28 +161,28 @@ bool CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) if ( !connect(m_hSocket, lpSockAddr, nSockAddrLen) ) { DWORD err = WSAGetLastError(); - if ( err == 0 ) return TRUE; + if ( err == 0 ) return true; TRACE( "***************************************Error connect %d\n", err); if ( err != WSAEWOULDBLOCK ) - return FALSE; + return false; // Wait for connection to complete TRACE( "***************************************Waiting for connection to complete\n"); - err = WSAWaitForMultipleEvents( 1, m_hEvent, FALSE, WSA_INFINITE, TRUE); + err = WSAWaitForMultipleEvents( 1, m_hEvent, false, WSA_INFINITE, true); //TRACE( "Thread socket %d wait return %d\n", m_hSocket, err ); if ( err == WSA_WAIT_FAILED ) { - return FALSE; + return false; } - return TRUE; + return true; } - return TRUE; + return true; } bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) { - assert(lpszHostAddress != NULL); + ASSERT(lpszHostAddress != NULL); SOCKADDR_IN sockAddr; memset(&sockAddr,0,sizeof(sockAddr)); @@ -202,7 +199,7 @@ bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) else { WSASetLastError(WSAEINVAL); - return FALSE; + return false; } } @@ -219,7 +216,7 @@ int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) return lg; } -int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, String & rSocketAddress, UINT& rSocketPort, int nFlags) +int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, string & rSocketAddress, UINT& rSocketPort, int nFlags) { SOCKADDR_IN sockAddr; @@ -306,7 +303,7 @@ void CThreadedSocket::AddMember( const char * lpszHostAddress ) } void CThreadedSocket::AsyncSelect(long lEvent) { - assert(m_hSocket != INVALID_SOCKET); + ASSERT(m_hSocket != INVALID_SOCKET); if ( WSAEventSelect(m_hSocket, m_hEvent[0], lEvent) ) throw( new CThreadedSocketException( "WSAEventSelect" )); } @@ -345,7 +342,7 @@ void CThreadedSocket::OnClose(int /*nErrorCode*/) void CThreadedSocket::Socket(int nSocketType, long lEvent, int nProtocolType, int nAddressFormat) { - assert(m_hSocket == INVALID_SOCKET); + ASSERT(m_hSocket == INVALID_SOCKET); m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); // m_hSocket = WSASocket ( nAddressFormat, nSocketType,nProtocolType, NULL, 0, 0 ); @@ -388,7 +385,7 @@ UINT CThreadedSocket::SocketThread( ) AsyncSelect(m_EventMask) ; while ( m_hSocket != INVALID_SOCKET ) { - err = WSAWaitForMultipleEvents( 2, m_hEvent, FALSE, WSA_INFINITE, TRUE); + err = WSAWaitForMultipleEvents( 2, m_hEvent, false, WSA_INFINITE, true); switch ( err ) { case WSA_WAIT_FAILED: -- cgit v1.1 From cf2e43e95c4eb20314f627bd473e4c99d3c3c9e3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:04:58 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 6) --- Ivy/ThreadedSocket.cxx | 357 +++++++++++++++++++++++++++++-------------------- 1 file changed, 209 insertions(+), 148 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 955af12..7f36f07 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -3,29 +3,15 @@ ////////////////////////////////////////////////////////////////////// #include "stdafx.h" -#include + +#ifdef _DEBUG +#define DEBUG_NEW new(__FILE__, __LINE__) +#define new DEBUG_NEW +#endif #include "ThreadedSocket.h" -CThreadedSocketException::CThreadedSocketException(char* pchMessage) -{ - m_strMessage = pchMessage; - m_nError = WSAGetLastError(); -} - -bool CThreadedSocketException::GetErrorMessage(string & lpstrError, UINT nMaxError, - PUINT pnHelpContext /*= NULL*/) -{ - lpstrError = m_strMessage; - lpstrError += "error"; - if(m_nError != 0) - { - lpstrError += " #"; - lpstrError += m_nError; - } - return true; -} ////////////////////////////////////////////////////////////////////// // Construction/Destruction @@ -35,22 +21,11 @@ CThreadedSocket::CThreadedSocket() { m_hSocket = INVALID_SOCKET; - h_thread = NULL; - // Create events to wait on - // for receivier part - m_hEvent[0] = WSACreateEvent(); - if ( m_hEvent[0] == WSA_INVALID_EVENT ) - { - TRACE( "CThreadedSocketException(WSACreateEvent )\n"); - throw( new CThreadedSocketException( "WSACreateEvent" )); - } - // for transmitter part - m_hEvent[1] = WSACreateEvent(); - if ( m_hEvent[1] == WSA_INVALID_EVENT ) - { - TRACE( "CThreadedSocketException(WSACreateEvent )\n"); - throw( new CThreadedSocketException( "WSACreateEvent" )); - } + h_reader = NULL; + h_writer = NULL; + listen_mode = false; + connect_pending = true; + send_pending = false; } CThreadedSocket::~CThreadedSocket() @@ -59,14 +34,17 @@ CThreadedSocket::~CThreadedSocket() Close(); //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; - WSACloseEvent( m_hEvent[0] ); - WSACloseEvent( m_hEvent[1] ); } -void CThreadedSocket::Create(UINT nSocketPort, int nSocketType, - long lEvent, const char * lpszSocketAddress) +int CThreadedSocket::Create(UINT nSocketPort, int nSocketType, const char * lpszSocketAddress) { - Socket(nSocketType, lEvent); - Bind(nSocketPort,lpszSocketAddress); + if ( Socket(nSocketType) < 0 ) + return SOCKET_ERROR; + + send_count = CreateSemaphore( NULL, 0, 100, NULL); // unnamed semaphore + if (send_count == NULL) + return SOCKET_ERROR; + + return Bind(nSocketPort,lpszSocketAddress); } ///////////////////////////////////////////////////////////////////////////// @@ -99,27 +77,31 @@ void CThreadedSocket::GetSockName(string & rSocketAddress, UINT& rSocketPort) ///////////////////////////////////////////////////////////////////////////// // CAscynSocket Operations -void CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, +int CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr, int* lpSockAddrLen) { ASSERT(rConnectedSocket.m_hSocket == INVALID_SOCKET); - SOCKET hTemp = accept(m_hSocket, lpSockAddr, lpSockAddrLen); if (hTemp == INVALID_SOCKET) { rConnectedSocket.m_hSocket = INVALID_SOCKET; - throw( new CThreadedSocketException( "accept" ) ); + return SOCKET_ERROR; } else { rConnectedSocket.m_hSocket = hTemp; - rConnectedSocket.StartListener(m_EventMask); + rConnectedSocket.send_count = CreateSemaphore( NULL, 0, 100, NULL); // unnamed semaphore + if (rConnectedSocket.send_count == NULL) + return SOCKET_ERROR; + + rConnectedSocket.StartListener(); + return hTemp; } } -void CThreadedSocket::Bind(UINT nSocketPort, const char * lpszSocketAddress) +int CThreadedSocket::Bind(UINT nSocketPort, const char * lpszSocketAddress) { SOCKADDR_IN sockAddr; @@ -135,51 +117,57 @@ void CThreadedSocket::Bind(UINT nSocketPort, const char * lpszSocketAddress) if (lResult == INADDR_NONE) { WSASetLastError(WSAEINVAL); - throw( new CThreadedSocketException( "bind" ) ); + return SOCKET_ERROR; } sockAddr.sin_addr.s_addr = lResult; } sockAddr.sin_port = htons((u_short)nSocketPort); - Bind((SOCKADDR*)&sockAddr, sizeof(sockAddr)); + return Bind((SOCKADDR*)&sockAddr, sizeof(sockAddr)); } void CThreadedSocket::Close() { if (m_hSocket != INVALID_SOCKET) { - AsyncSelect(0); ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); m_hSocket = INVALID_SOCKET; - //WSASetEvent( m_hEventObject ); + } } -bool CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) +int CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) { - if ( !connect(m_hSocket, lpSockAddr, nSockAddrLen) ) + int ok; + fd_set writefds; + + FD_ZERO(&writefds); + + FD_SET(m_hSocket, &writefds); + + ok = connect(m_hSocket, lpSockAddr, nSockAddrLen); + if ( !ok ) { - DWORD err = WSAGetLastError(); - if ( err == 0 ) return true; + int err = GetLastError(); + if ( err == 0 ) return err; TRACE( "***************************************Error connect %d\n", err); if ( err != WSAEWOULDBLOCK ) - return false; + return -1; // Wait for connection to complete TRACE( "***************************************Waiting for connection to complete\n"); - err = WSAWaitForMultipleEvents( 1, m_hEvent, false, WSA_INFINITE, true); + FD_SET(m_hSocket, &writefds); + err = select( 1, NULL, &writefds, NULL, NULL ); //TRACE( "Thread socket %d wait return %d\n", m_hSocket, err ); - if ( err == WSA_WAIT_FAILED ) - { - return false; - } - - return true; + if ( !err ) + connect_pending = true; + return err; } - return true; + connect_pending = true; + return 0; } -bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) +int CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) { ASSERT(lpszHostAddress != NULL); @@ -199,7 +187,7 @@ bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) else { WSASetLastError(WSAEINVAL); - return false; + return SOCKET_ERROR; } } @@ -211,8 +199,6 @@ bool CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) { int lg = recv(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags); - if ( lg == SOCKET_ERROR ) - throw( new CThreadedSocketException( "recv" ) ); return lg; } @@ -230,13 +216,12 @@ int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, string & rSocketAddre return nResult; } -void CThreadedSocket::Send(const void* lpBuf, int nBufLen, int nFlags) +int CThreadedSocket::Send(const void* lpBuf, int nBufLen, int nFlags) { - if ( send(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags) != nBufLen ) - throw( new CThreadedSocketException( "send" ) ); + return send(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags); } -void CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) +int CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) { SOCKADDR_IN sockAddr; @@ -258,17 +243,16 @@ void CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, con else { WSASetLastError(WSAEINVAL); - throw( new CThreadedSocketException( "SendTo" )); - return; + return SOCKET_ERROR; } } } sockAddr.sin_port = htons((u_short)nHostPort); - SendTo(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, sizeof(sockAddr), nFlags); + return SendTo(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, sizeof(sockAddr), nFlags); } -void CThreadedSocket::AddMember( const char * lpszHostAddress ) +int CThreadedSocket::AddMember( const char * lpszHostAddress ) { int multicast_ttl = 64; // region struct ip_mreq imr; @@ -289,8 +273,7 @@ void CThreadedSocket::AddMember( const char * lpszHostAddress ) else { WSASetLastError(WSAEINVAL); - throw( new CThreadedSocketException( "AddMenber" )); - return; + return SOCKET_ERROR; } } } @@ -299,19 +282,11 @@ void CThreadedSocket::AddMember( const char * lpszHostAddress ) SetSockOpt( IP_MULTICAST_TTL, &multicast_ttl, sizeof( multicast_ttl ), IPPROTO_IP ); SetSockOpt( IP_ADD_MEMBERSHIP, &imr, sizeof( imr ), IPPROTO_IP ); } - -} -void CThreadedSocket::AsyncSelect(long lEvent) -{ - ASSERT(m_hSocket != INVALID_SOCKET); - if ( WSAEventSelect(m_hSocket, m_hEvent[0], lEvent) ) - throw( new CThreadedSocketException( "WSAEventSelect" )); + return 0; } + ///////////////////////////////////////////////////////////////////////////// // CThreadedSocket Overridable callbacks -void CThreadedSocket::OnWakeup() -{ -} void CThreadedSocket::OnReceive(int /*nErrorCode*/) { } @@ -340,108 +315,194 @@ void CThreadedSocket::OnClose(int /*nErrorCode*/) // CThreadedSocket Implementation -void CThreadedSocket::Socket(int nSocketType, long lEvent, int nProtocolType, int nAddressFormat) +int CThreadedSocket::Socket(int nSocketType, int nProtocolType, int nAddressFormat) { ASSERT(m_hSocket == INVALID_SOCKET); - m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); -// m_hSocket = WSASocket ( nAddressFormat, nSocketType,nProtocolType, NULL, 0, 0 ); - + m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); - if (m_hSocket == INVALID_SOCKET) + if ( m_hSocket < 0 ) { - throw( new CThreadedSocketException( "socket" )); + return m_hSocket; } - StartListener(lEvent); + return StartListener(); +} +int CThreadedSocket::StartListener() +{ + h_reader = CreateThread(NULL,0,SocketReaderProc, this, 0, &reader_id); + return h_reader != NULL ? 0 : SOCKET_ERROR; +} +int CThreadedSocket::StartWriter() +{ + h_writer = CreateThread(NULL,0,SocketWriterProc, this, 0, &writer_id); + return h_writer != NULL ? 0 : SOCKET_ERROR; +} +bool CThreadedSocket::SignalWriter() +{ + long PreviousCount = 0; + int err; + err = ReleaseSemaphore(send_count, 1, &PreviousCount); + TRACE("CThreadedSocket::SignalWriter() PreviousCount = %ld \n", PreviousCount ); + return (err != 0); } -void CThreadedSocket::StartListener(long lEvent) +// Implementation +DWORD WINAPI CThreadedSocket::SocketReaderProc( LPVOID pParam ) { - m_EventMask = lEvent; - h_thread = CreateThread(NULL,0,SocketThreadProc, this, 0, &thread_id); - if ( ! h_thread ) - throw( new CThreadedSocketException( "socket listener" )); + CThreadedSocket* pObject = (CThreadedSocket*)pParam; + + if (pObject == NULL ) + { + return SOCKET_ERROR; // if pObject is not valid + } + + return pObject->SocketReader(); } // Implementation -DWORD WINAPI CThreadedSocket::SocketThreadProc( LPVOID pParam ) +DWORD WINAPI CThreadedSocket::SocketWriterProc( LPVOID pParam ) { CThreadedSocket* pObject = (CThreadedSocket*)pParam; if (pObject == NULL ) { - throw( new CThreadedSocketException( "bad socket proc" )); - return -1; // if pObject is not valid + return SOCKET_ERROR; // if pObject is not valid } - return pObject->SocketThread(); + return pObject->SocketWriter(); } -UINT CThreadedSocket::SocketThread( ) +UINT CThreadedSocket::SocketReader( ) { - DWORD err; - WSANETWORKEVENTS NetworkEvents; + int err; + int sock_err; + unsigned long readcount; + fd_set readfds; + fd_set writefds; + fd_set exceptfds; + + FD_ZERO(&readfds); + FD_ZERO(&writefds); + FD_ZERO(&exceptfds); - AsyncSelect(m_EventMask) ; while ( m_hSocket != INVALID_SOCKET ) { - err = WSAWaitForMultipleEvents( 2, m_hEvent, false, WSA_INFINITE, true); + FD_SET(m_hSocket, &readfds); + if ( connect_pending ) + FD_SET(m_hSocket, &writefds); + FD_SET(m_hSocket, &exceptfds); + + err = select( 1, &readfds, &writefds, &exceptfds, NULL ); + sock_err = GetLastError(); + switch ( err ) { - case WSA_WAIT_FAILED: - TRACE( "CThreadedSocketException(WSAWaitForMultipleEvents )\n"); - throw( new CThreadedSocketException( "WSAWaitForMultipleEvents" )); - return err; + case 0: + TRACE( "CThreadedSocket::SocketThread Unhandled Timeout Event !\n"); break; - case WSA_WAIT_EVENT_0: - - NetworkEvents.lNetworkEvents=0; - - if ( WSAEnumNetworkEvents ( m_hSocket, m_hEvent[0], &NetworkEvents )) - { - TRACE( "CThreadedSocketException(WSAEnumNetworkEvents )\n"); - throw( new CThreadedSocketException( "WSAEnumNetworkEvents" )); - return -1; - } + case SOCKET_ERROR: - - if ( NetworkEvents.lNetworkEvents & FD_READ ) - OnReceive(NetworkEvents.iErrorCode[ FD_READ_BIT ]); - - if ( NetworkEvents.lNetworkEvents & FD_WRITE ) - OnSend( NetworkEvents.iErrorCode[ FD_WRITE_BIT ] ); - - if ( NetworkEvents.lNetworkEvents & FD_ACCEPT ) - OnAccept( NetworkEvents.iErrorCode[ FD_ACCEPT_BIT ] ); - - - if ( NetworkEvents.lNetworkEvents & FD_CONNECT ) - OnConnect( NetworkEvents.iErrorCode[ FD_CONNECT_BIT ] ); + TRACE( "CThreadedSocketException( select )\n"); + Close(); + h_reader = NULL; + return sock_err; + break; + default: - if ( NetworkEvents.lNetworkEvents & FD_OOB ) - OnOutOfBandData( NetworkEvents.iErrorCode[ FD_OOB_BIT ] ); - if ( NetworkEvents.lNetworkEvents & FD_CLOSE ) + if ( FD_ISSET(m_hSocket, &readfds) ) { - OnClose( NetworkEvents.iErrorCode[ FD_CLOSE_BIT ] ); + IOCtl( FIONREAD, &readcount ); + if ( listen_mode ) + OnAccept( sock_err ); + else if ( ! readcount ) + OnClose( sock_err ); + else OnReceive(sock_err); } - break; - case WSA_WAIT_EVENT_0 +1 : - if ( m_hSocket != INVALID_SOCKET ) + if ( FD_ISSET(m_hSocket, &writefds) ) { - OnWakeup(); + if ( connect_pending ) + { + OnConnect( sock_err ); + connect_pending = false; + } } - // else Close by other Thread do silent terminaison - WSAResetEvent( m_hEvent[1] ); - + + if ( FD_ISSET(m_hSocket, &exceptfds) ) + OnOutOfBandData( sock_err ); + + + break; + } + } + Close(); + h_reader = NULL; + return 0; +} + +UINT CThreadedSocket::SocketWriter( ) +{ + int err; + int sock_err; + fd_set writefds; + + FD_ZERO(&writefds); + + + while ( m_hSocket != INVALID_SOCKET ) + { + DWORD dwWaitResult; + + // Wait for message to send + + dwWaitResult = WaitForSingleObject( send_count, INFINITE ); + + switch (dwWaitResult) { + + // The semaphore object was signaled. + case WAIT_OBJECT_0: + // OK to really send the message. + break; + + // Semaphore was nonsignaled, so a time-out occurred. + case WAIT_TIMEOUT: + case WAIT_FAILED: + default: + TRACE( "CThreadedSocketException( SocketWriter WaitForSingleObject )\n"); + Close(); + h_writer = NULL; + return GetLastError(); + break; + } + + FD_SET(m_hSocket, &writefds); + + err = select( 1, NULL, &writefds, NULL, NULL ); + sock_err = GetLastError(); + + switch ( err ) + { + case 0: + TRACE( "CThreadedSocket::SocketThread Unhandled Timeout Event !\n"); + break; + case SOCKET_ERROR: + TRACE( "CThreadedSocketException( select )\n"); + Close(); + h_reader = NULL; + return sock_err; break; default: - TRACE( "CThreadedSocket::SocketThread Unhandled Events !\n"); + + if ( FD_ISSET(m_hSocket, &writefds) ) + { + OnSend( sock_err ); + } + break; } } Close(); - h_thread = NULL; + h_writer = NULL; return 0; } -- cgit v1.1 From 043e12f158bf3abe0b981b2f69c8376338701afc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:00 +0000 Subject: Utilisateur : Fcolin Date : 14/02/01 Heure : 18:47 Archivé dans $/Ivy (vss 7) --- Ivy/ThreadedSocket.cxx | 79 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 7f36f07..4f94573 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -30,10 +30,21 @@ CThreadedSocket::CThreadedSocket() CThreadedSocket::~CThreadedSocket() { + long PreviousCount = 0; + int err; if (m_hSocket != INVALID_SOCKET) Close(); //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; + TRACE("CThreadedSocket waiting for thread end ...\n"); + if ( h_reader ) WaitForSingleObject( h_reader, INFINITE ); + // wake up writer + if ( h_writer ) + { + err = ReleaseSemaphore(send_count, 1, &PreviousCount); + WaitForSingleObject( h_writer, INFINITE ); + } + TRACE("CThreadedSocket all thread ended\n"); } int CThreadedSocket::Create(UINT nSocketPort, int nSocketType, const char * lpszSocketAddress) { @@ -376,7 +387,7 @@ UINT CThreadedSocket::SocketReader( ) { int err; int sock_err; - unsigned long readcount; + unsigned long readcount = 0; fd_set readfds; fd_set writefds; fd_set exceptfds; @@ -390,6 +401,8 @@ UINT CThreadedSocket::SocketReader( ) FD_SET(m_hSocket, &readfds); if ( connect_pending ) FD_SET(m_hSocket, &writefds); + else + FD_CLR(m_hSocket, &writefds); FD_SET(m_hSocket, &exceptfds); err = select( 1, &readfds, &writefds, &exceptfds, NULL ); @@ -402,8 +415,10 @@ UINT CThreadedSocket::SocketReader( ) break; case SOCKET_ERROR: - TRACE( "CThreadedSocketException( select )\n"); - Close(); + TRACE( "CThreadedSocket::SocketReader( select error thread_id =( %d) )\n",reader_id); + + if (m_hSocket != INVALID_SOCKET) + Close(); h_reader = NULL; return sock_err; break; @@ -436,8 +451,11 @@ UINT CThreadedSocket::SocketReader( ) break; } } - Close(); + if (m_hSocket != INVALID_SOCKET) + Close(); h_reader = NULL; + TRACE( "CThreadedSocket::SocketReader( END thread_id =( 0x%x) )\n",reader_id); + return 0; } @@ -469,40 +487,45 @@ UINT CThreadedSocket::SocketWriter( ) case WAIT_TIMEOUT: case WAIT_FAILED: default: - TRACE( "CThreadedSocketException( SocketWriter WaitForSingleObject )\n"); - Close(); + TRACE( "CThreadedSocket::SocketWriter( WaitForSingleObject error thread_id =( %d) )\n",writer_id); + if (m_hSocket != INVALID_SOCKET) + Close(); h_writer = NULL; return GetLastError(); break; } + if (m_hSocket != INVALID_SOCKET) + { + FD_SET(m_hSocket, &writefds); - FD_SET(m_hSocket, &writefds); - - err = select( 1, NULL, &writefds, NULL, NULL ); - sock_err = GetLastError(); + err = select( 1, NULL, &writefds, NULL, NULL ); + sock_err = GetLastError(); - switch ( err ) - { - case 0: - TRACE( "CThreadedSocket::SocketThread Unhandled Timeout Event !\n"); - break; - case SOCKET_ERROR: - TRACE( "CThreadedSocketException( select )\n"); - Close(); - h_reader = NULL; - return sock_err; - break; - default: - - if ( FD_ISSET(m_hSocket, &writefds) ) - { - OnSend( sock_err ); - } + switch ( err ) + { + case 0: + TRACE( "CThreadedSocket::SocketThread Unhandled Timeout Event !\n"); + break; + case SOCKET_ERROR: + TRACE( "CThreadedSocketException( select )\n"); + Close(); + h_reader = NULL; + return sock_err; + break; + default: + + if ( FD_ISSET(m_hSocket, &writefds) ) + { + OnSend( sock_err ); + } - break; + break; + } } } Close(); h_writer = NULL; + TRACE( "CThreadedSocket::SocketWriter( END thread_id =( 0x%x) )\n",writer_id); + return 0; } -- cgit v1.1 From ddc6e6f2bbcce4a247952f216c6c50478654bb8a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:02 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:39 Archivé dans $/Ivy (vss 8) --- Ivy/ThreadedSocket.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 4f94573..a9a1760 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -36,7 +36,7 @@ CThreadedSocket::~CThreadedSocket() Close(); //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; - TRACE("CThreadedSocket waiting for thread end ...\n"); +// TRACE("CThreadedSocket waiting for thread end ...\n"); if ( h_reader ) WaitForSingleObject( h_reader, INFINITE ); // wake up writer if ( h_writer ) @@ -44,7 +44,7 @@ CThreadedSocket::~CThreadedSocket() err = ReleaseSemaphore(send_count, 1, &PreviousCount); WaitForSingleObject( h_writer, INFINITE ); } - TRACE("CThreadedSocket all thread ended\n"); +// TRACE("CThreadedSocket all thread ended\n"); } int CThreadedSocket::Create(UINT nSocketPort, int nSocketType, const char * lpszSocketAddress) { @@ -354,7 +354,7 @@ bool CThreadedSocket::SignalWriter() long PreviousCount = 0; int err; err = ReleaseSemaphore(send_count, 1, &PreviousCount); - TRACE("CThreadedSocket::SignalWriter() PreviousCount = %ld \n", PreviousCount ); +// TRACE("CThreadedSocket::SignalWriter() PreviousCount = %ld \n", PreviousCount ); return (err != 0); } @@ -454,7 +454,7 @@ UINT CThreadedSocket::SocketReader( ) if (m_hSocket != INVALID_SOCKET) Close(); h_reader = NULL; - TRACE( "CThreadedSocket::SocketReader( END thread_id =( 0x%x) )\n",reader_id); +// TRACE( "CThreadedSocket::SocketReader( END thread_id =( 0x%x) )\n",reader_id); return 0; } @@ -525,7 +525,7 @@ UINT CThreadedSocket::SocketWriter( ) } Close(); h_writer = NULL; - TRACE( "CThreadedSocket::SocketWriter( END thread_id =( 0x%x) )\n",writer_id); +// TRACE( "CThreadedSocket::SocketWriter( END thread_id =( 0x%x) )\n",writer_id); return 0; } -- cgit v1.1 From 3a34f0291c92edb20203611e85ba26909db58977 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:04 +0000 Subject: Utilisateur : Fcolin Date : 23/05/01 Heure : 10:25 Archivé dans $/Ivy (vss 9) --- Ivy/ThreadedSocket.cxx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index a9a1760..d113f8e 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -160,7 +160,7 @@ int CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) ok = connect(m_hSocket, lpSockAddr, nSockAddrLen); if ( !ok ) { - int err = GetLastError(); + int err = this->GetLastError(); if ( err == 0 ) return err; TRACE( "***************************************Error connect %d\n", err); if ( err != WSAEWOULDBLOCK ) @@ -262,7 +262,7 @@ int CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, cons sockAddr.sin_port = htons((u_short)nHostPort); return SendTo(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, sizeof(sockAddr), nFlags); -} + } int CThreadedSocket::AddMember( const char * lpszHostAddress ) { int multicast_ttl = 64; // region @@ -406,7 +406,7 @@ UINT CThreadedSocket::SocketReader( ) FD_SET(m_hSocket, &exceptfds); err = select( 1, &readfds, &writefds, &exceptfds, NULL ); - sock_err = GetLastError(); + sock_err = this->GetLastError(); switch ( err ) { @@ -427,6 +427,7 @@ UINT CThreadedSocket::SocketReader( ) if ( FD_ISSET(m_hSocket, &readfds) ) { + readcount = 0; IOCtl( FIONREAD, &readcount ); if ( listen_mode ) OnAccept( sock_err ); @@ -491,7 +492,7 @@ UINT CThreadedSocket::SocketWriter( ) if (m_hSocket != INVALID_SOCKET) Close(); h_writer = NULL; - return GetLastError(); + return this->GetLastError(); break; } if (m_hSocket != INVALID_SOCKET) @@ -499,7 +500,7 @@ UINT CThreadedSocket::SocketWriter( ) FD_SET(m_hSocket, &writefds); err = select( 1, NULL, &writefds, NULL, NULL ); - sock_err = GetLastError(); + sock_err = this->GetLastError(); switch ( err ) { -- cgit v1.1 From 7dbb8513b01bb2489b9b9672ea97682ed69610e5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:06 +0000 Subject: Utilisateur : Fcolin Date : 6/06/01 Heure : 15:50 Archivé dans $/Ivy (vss 10) --- Ivy/ThreadedSocket.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index d113f8e..1afb304 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -392,6 +392,8 @@ UINT CThreadedSocket::SocketReader( ) fd_set writefds; fd_set exceptfds; + TRACE( "CThreadedSocket::SocketReader( START thread_id =( 0x%x) )\n",reader_id); + FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds); @@ -466,6 +468,8 @@ UINT CThreadedSocket::SocketWriter( ) int sock_err; fd_set writefds; + TRACE( "CThreadedSocket::SocketWriter( START thread_id =( 0x%x) )\n",writer_id); + FD_ZERO(&writefds); -- cgit v1.1 From 2610a7a99b4bcff0d8faf22695d35f5342ccbdd3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:08 +0000 Subject: Utilisateur : Fcolin Date : 17/07/01 Heure : 18:25 Archivé dans $/Ivy (vss 11) --- Ivy/ThreadedSocket.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 1afb304..5fa7322 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -4,10 +4,6 @@ #include "stdafx.h" -#ifdef _DEBUG -#define DEBUG_NEW new(__FILE__, __LINE__) -#define new DEBUG_NEW -#endif #include "ThreadedSocket.h" -- cgit v1.1 From 24304c151f70945ab52e52afb2bf120cef7d7020 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:10 +0000 Subject: Utilisateur : Fcolin Date : 13/08/01 Heure : 16:12 Archivé dans $/Ivy (vss 12) --- Ivy/ThreadedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 5fa7322..10af005 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -348,7 +348,7 @@ int CThreadedSocket::StartWriter() bool CThreadedSocket::SignalWriter() { long PreviousCount = 0; - int err; + BOOL err; err = ReleaseSemaphore(send_count, 1, &PreviousCount); // TRACE("CThreadedSocket::SignalWriter() PreviousCount = %ld \n", PreviousCount ); return (err != 0); -- cgit v1.1 From 0b1b7a6d41bb5a10da80de3d29946e29450b69f4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:12 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 16:44 Archivé dans $/Ivy Commentaire: correction BUG Ivy socket Listen apres start Listener et regexp_in.resize (vss 13) --- Ivy/ThreadedSocket.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 10af005..be2bdf0 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -143,6 +143,13 @@ void CThreadedSocket::Close() } } +int CThreadedSocket::Listen(int nConnectionBacklog) +{ + int err = listen(m_hSocket, nConnectionBacklog); + if ( !err ) + listen_mode = true; + return StartListener(); +} int CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) { @@ -171,7 +178,7 @@ int CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) return err; } connect_pending = true; - return 0; + return StartListener(); } int CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) @@ -332,7 +339,8 @@ int CThreadedSocket::Socket(int nSocketType, int nProtocolType, int nAddressForm { return m_hSocket; } - return StartListener(); + return m_hSocket; + //return StartListener(); } int CThreadedSocket::StartListener() -- cgit v1.1 From 3006e231e192a91fa6d132ddc3e483e1c1a31114 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:14 +0000 Subject: Utilisateur : Fcolin Date : 20/09/01 Heure : 9:40 Archivé dans $/Ivy (vss 14) --- Ivy/ThreadedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index be2bdf0..f14d79a 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -161,7 +161,7 @@ int CThreadedSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) FD_SET(m_hSocket, &writefds); ok = connect(m_hSocket, lpSockAddr, nSockAddrLen); - if ( !ok ) + if ( ok != 0 ) { int err = this->GetLastError(); if ( err == 0 ) return err; -- cgit v1.1 From 1c70f693d16840f4afe269239b4c57dd58a914fe Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:16 +0000 Subject: Utilisateur : Fcolin Date : 19/06/02 Heure : 16:45 Archivé dans $/Ivy Commentaire: (vss 15) --- Ivy/ThreadedSocket.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index f14d79a..c93ffa9 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -335,10 +335,6 @@ int CThreadedSocket::Socket(int nSocketType, int nProtocolType, int nAddressForm m_hSocket = socket(nAddressFormat,nSocketType,nProtocolType); - if ( m_hSocket < 0 ) - { - return m_hSocket; - } return m_hSocket; //return StartListener(); } -- cgit v1.1 From 5d015386435c0c79ac5b973cd86d8c74c5d6d326 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:18 +0000 Subject: Utilisateur : Fcolin Date : 27/09/02 Heure : 12:47 Archivé dans $/Ivy Commentaire: (vss 16) --- Ivy/ThreadedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index c93ffa9..19670f7 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -513,7 +513,7 @@ UINT CThreadedSocket::SocketWriter( ) break; case SOCKET_ERROR: TRACE( "CThreadedSocketException( select )\n"); - Close(); + if (m_hSocket != INVALID_SOCKET) Close(); h_reader = NULL; return sock_err; break; -- cgit v1.1 From 5d97d1f9916d4c8a7880b965200b0d95510e6dfc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:20 +0000 Subject: Utilisateur : Fcolin Date : 14/11/02 Heure : 15:45 Archivé dans $/Bus/Ivy Commentaire: (vss 17) --- Ivy/ThreadedSocket.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 19670f7..31bcf18 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -138,7 +138,8 @@ void CThreadedSocket::Close() { if (m_hSocket != INVALID_SOCKET) { - ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); + //ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); + closesocket(m_hSocket); // close silently m_hSocket = INVALID_SOCKET; } @@ -419,8 +420,7 @@ UINT CThreadedSocket::SocketReader( ) TRACE( "CThreadedSocket::SocketReader( select error thread_id =( %d) )\n",reader_id); - if (m_hSocket != INVALID_SOCKET) - Close(); + Close(); h_reader = NULL; return sock_err; break; -- cgit v1.1 From e8934aef52d003b97a36a651ced63b7587d85eec Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:22 +0000 Subject: Utilisateur : Fcolin Date : 25/11/02 Heure : 16:15 Archivé dans $/Bus/Ivy Commentaire: (vss 18) --- Ivy/ThreadedSocket.cxx | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 31bcf18..42a8216 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -26,21 +26,8 @@ CThreadedSocket::CThreadedSocket() CThreadedSocket::~CThreadedSocket() { - long PreviousCount = 0; - int err; if (m_hSocket != INVALID_SOCKET) Close(); - //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! - // delete thread; -// TRACE("CThreadedSocket waiting for thread end ...\n"); - if ( h_reader ) WaitForSingleObject( h_reader, INFINITE ); - // wake up writer - if ( h_writer ) - { - err = ReleaseSemaphore(send_count, 1, &PreviousCount); - WaitForSingleObject( h_writer, INFINITE ); - } -// TRACE("CThreadedSocket all thread ended\n"); } int CThreadedSocket::Create(UINT nSocketPort, int nSocketType, const char * lpszSocketAddress) { @@ -136,12 +123,24 @@ int CThreadedSocket::Bind(UINT nSocketPort, const char * lpszSocketAddress) void CThreadedSocket::Close() { + long PreviousCount = 0; + int err; if (m_hSocket != INVALID_SOCKET) { //ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); closesocket(m_hSocket); // close silently m_hSocket = INVALID_SOCKET; - + //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! + // delete thread; +// TRACE("CThreadedSocket waiting for thread end ...\n"); + if ( h_reader ) WaitForSingleObject( h_reader, INFINITE ); + // wake up writer + if ( h_writer ) + { + err = ReleaseSemaphore(send_count, 1, &PreviousCount); + WaitForSingleObject( h_writer, INFINITE ); + } +// TRACE("CThreadedSocket all thread ended\n"); } } int CThreadedSocket::Listen(int nConnectionBacklog) -- cgit v1.1 From 9700b7c0d1ec515e0ea59dfa5c7e42acd02815aa Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:24 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 16:30 Archivé dans $/Bus/Ivy Commentaire: (vss 19) --- Ivy/ThreadedSocket.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 42a8216..2f32a26 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -133,12 +133,12 @@ void CThreadedSocket::Close() //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; // TRACE("CThreadedSocket waiting for thread end ...\n"); - if ( h_reader ) WaitForSingleObject( h_reader, INFINITE ); + if ( h_reader ) WaitForSingleObject( h_reader, 5000 ); // wake up writer if ( h_writer ) { err = ReleaseSemaphore(send_count, 1, &PreviousCount); - WaitForSingleObject( h_writer, INFINITE ); + WaitForSingleObject( h_writer, 5000 ); } // TRACE("CThreadedSocket all thread ended\n"); } @@ -456,7 +456,7 @@ UINT CThreadedSocket::SocketReader( ) if (m_hSocket != INVALID_SOCKET) Close(); h_reader = NULL; -// TRACE( "CThreadedSocket::SocketReader( END thread_id =( 0x%x) )\n",reader_id); + TRACE( "CThreadedSocket::SocketReader( END thread_id =( 0x%x) )\n",reader_id); return 0; } -- cgit v1.1 From 2fab956d8131fb79a0dce36b34733afc88fe23ca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:26 +0000 Subject: Utilisateur : Fcolin Date : 9/02/04 Heure : 16:14 Archivé dans $/Bus/Ivy Commentaire: (vss 20) --- Ivy/ThreadedSocket.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 2f32a26..3934095 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -128,8 +128,11 @@ void CThreadedSocket::Close() if (m_hSocket != INVALID_SOCKET) { //ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); - closesocket(m_hSocket); // close silently + SOCKET temp = m_hSocket; // Thread ACK m_hSocket = INVALID_SOCKET; + TRACE( "CThreadedSocket::Close (reader=0x%0x) (writer=0x%0x)%\n", reader_id, writer_id ); + closesocket(temp); // close silently + //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; // TRACE("CThreadedSocket waiting for thread end ...\n"); @@ -417,9 +420,9 @@ UINT CThreadedSocket::SocketReader( ) break; case SOCKET_ERROR: - TRACE( "CThreadedSocket::SocketReader( select error thread_id =( %d) )\n",reader_id); - - Close(); + TRACE( "CThreadedSocket::SocketReader( select error thread_id =( 0x%x) )\n",reader_id); + if ( (sock_err != WSAENOTSOCK ) && ( m_hSocket != INVALID_SOCKET )) // could be Invalid if close when in select + Close(); h_reader = NULL; return sock_err; break; @@ -512,7 +515,8 @@ UINT CThreadedSocket::SocketWriter( ) break; case SOCKET_ERROR: TRACE( "CThreadedSocketException( select )\n"); - if (m_hSocket != INVALID_SOCKET) Close(); + if ( (sock_err != WSAENOTSOCK ) && ( m_hSocket != INVALID_SOCKET )) // could be Invalid if close when in select + Close(); h_reader = NULL; return sock_err; break; -- cgit v1.1 From bb6dabd8e1afc8dd2474183a97d7663f1154d687 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:28 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/Ivy Commentaire: (vss 21) --- Ivy/ThreadedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 3934095..f85b84d 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -2,7 +2,7 @@ // ////////////////////////////////////////////////////////////////////// -#include "stdafx.h" +#include "IvyStdAfx.h" #include "ThreadedSocket.h" -- cgit v1.1 From 97bfd72ffebfef20dedceb78c06ed2aa0742ea7c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:30 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 22) --- Ivy/ThreadedSocket.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index f85b84d..98235af 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -46,7 +46,7 @@ int CThreadedSocket::Create(UINT nSocketPort, int nSocketType, const char * lpsz -void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) +void CThreadedSocket::GetPeerName(ivy::string & rPeerAddress, UINT& rPeerPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -57,7 +57,7 @@ void CThreadedSocket::GetPeerName(string & rPeerAddress, UINT& rPeerPort) rPeerAddress = inet_ntoa(sockAddr.sin_addr); } -void CThreadedSocket::GetSockName(string & rSocketAddress, UINT& rSocketPort) +void CThreadedSocket::GetSockName(ivy::string & rSocketAddress, UINT& rSocketPort) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); @@ -219,7 +219,7 @@ int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) return lg; } -int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, string & rSocketAddress, UINT& rSocketPort, int nFlags) +int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, ivy::string & rSocketAddress, UINT& rSocketPort, int nFlags) { SOCKADDR_IN sockAddr; -- cgit v1.1 From fba86770a42e8aae5c76fe63136ad648978b53bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:32 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 23) --- Ivy/ThreadedSocket.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 98235af..5654758 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -71,7 +71,7 @@ void CThreadedSocket::GetSockName(ivy::string & rSocketAddress, UINT& rSocketPor ///////////////////////////////////////////////////////////////////////////// // CAscynSocket Operations -int CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, +SOCKET CThreadedSocket::Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr, int* lpSockAddrLen) { ASSERT(rConnectedSocket.m_hSocket == INVALID_SOCKET); @@ -213,32 +213,32 @@ int CThreadedSocket::Connect(const char * lpszHostAddress, UINT nHostPort) return Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); } -int CThreadedSocket::Receive(void* lpBuf, int nBufLen, int nFlags) +size_t CThreadedSocket::Receive(void* lpBuf, size_t nBufLen, int nFlags) { - int lg = recv(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags); + int lg = recv(m_hSocket, (LPSTR)lpBuf, (int)nBufLen, nFlags); return lg; } -int CThreadedSocket::ReceiveFrom(void* lpBuf, int nBufLen, ivy::string & rSocketAddress, UINT& rSocketPort, int nFlags) +size_t CThreadedSocket::ReceiveFrom(void* lpBuf, size_t nBufLen, ivy::string & rSocketAddress, UINT& rSocketPort, int nFlags) { SOCKADDR_IN sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); - int nSockAddrLen = sizeof(sockAddr); - int nResult = ReceiveFrom(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, &nSockAddrLen, nFlags); + size_t nSockAddrLen = sizeof(sockAddr); + size_t nResult = ReceiveFrom(lpBuf, nBufLen, (SOCKADDR*)&sockAddr, &nSockAddrLen, nFlags); rSocketPort = ntohs(sockAddr.sin_port); rSocketAddress = inet_ntoa(sockAddr.sin_addr); return nResult; } -int CThreadedSocket::Send(const void* lpBuf, int nBufLen, int nFlags) +size_t CThreadedSocket::Send(const void* lpBuf, size_t nBufLen, int nFlags) { - return send(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags); + return send(m_hSocket, (LPSTR)lpBuf, (int)nBufLen, nFlags); } -int CThreadedSocket::SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) +size_t CThreadedSocket::SendTo(const void* lpBuf, size_t nBufLen, UINT nHostPort, const char * lpszHostAddress, int nFlags) { SOCKADDR_IN sockAddr; @@ -332,7 +332,7 @@ void CThreadedSocket::OnClose(int /*nErrorCode*/) // CThreadedSocket Implementation -int CThreadedSocket::Socket(int nSocketType, int nProtocolType, int nAddressFormat) +SOCKET CThreadedSocket::Socket(int nSocketType, int nProtocolType, int nAddressFormat) { ASSERT(m_hSocket == INVALID_SOCKET); -- cgit v1.1 From bc919bfe58f3dd881182082570f1c2424612734d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:34 +0000 Subject: Utilisateur : Fcolin Date : 16/11/05 Heure : 9:54 Archivé dans $/Bus/Ivy Commentaire: 64 bits ports (vss 24) --- Ivy/ThreadedSocket.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 5654758..610f9b7 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -130,7 +130,7 @@ void CThreadedSocket::Close() //ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); SOCKET temp = m_hSocket; // Thread ACK m_hSocket = INVALID_SOCKET; - TRACE( "CThreadedSocket::Close (reader=0x%0x) (writer=0x%0x)%\n", reader_id, writer_id ); + TRACE( "CThreadedSocket::Close (reader=0x%0lx) (writer=0x%0lx)\n", reader_id, writer_id ); closesocket(temp); // close silently //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! -- cgit v1.1 From 79e97e573fc073eb9554ca0b89e2d0580e89a286 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:36 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/Ivy Commentaire: repassage a la STL et correction bug multithread (vss 25) --- Ivy/ThreadedSocket.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index 610f9b7..ee1e03b 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -16,9 +16,11 @@ CThreadedSocket::CThreadedSocket() { - m_hSocket = INVALID_SOCKET; + m_hSocket = INVALID_SOCKET; h_reader = NULL; h_writer = NULL; + reader_id = 0; + writer_id = 0; listen_mode = false; connect_pending = true; send_pending = false; @@ -125,8 +127,13 @@ void CThreadedSocket::Close() { long PreviousCount = 0; int err; + DWORD currentThreadId; + + if (m_hSocket != INVALID_SOCKET) { + currentThreadId = GetCurrentThreadId(); + //ASSERT(SOCKET_ERROR != closesocket(m_hSocket)); SOCKET temp = m_hSocket; // Thread ACK m_hSocket = INVALID_SOCKET; @@ -136,9 +143,10 @@ void CThreadedSocket::Close() //if ( thread ) // On fait de l'auto delete mais dans le cas de terminaison anormale l'object reste ????!!! // delete thread; // TRACE("CThreadedSocket waiting for thread end ...\n"); - if ( h_reader ) WaitForSingleObject( h_reader, 5000 ); + if ( h_reader && currentThreadId != reader_id ) + WaitForSingleObject( h_reader, 5000 ); // wake up writer - if ( h_writer ) + if ( h_writer && currentThreadId != writer_id ) { err = ReleaseSemaphore(send_count, 1, &PreviousCount); WaitForSingleObject( h_writer, 5000 ); @@ -533,7 +541,7 @@ UINT CThreadedSocket::SocketWriter( ) } Close(); h_writer = NULL; -// TRACE( "CThreadedSocket::SocketWriter( END thread_id =( 0x%x) )\n",writer_id); + TRACE( "CThreadedSocket::SocketWriter( END thread_id =( 0x%x) )\n",writer_id); return 0; } -- cgit v1.1 From 852eab4605ad0d832c38b5ee69bf49c5417821c0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:39 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:14 Créé (vss 1) --- Ivy/ThreadedSocket.h | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 Ivy/ThreadedSocket.h diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h new file mode 100644 index 0000000..19fca4f --- /dev/null +++ b/Ivy/ThreadedSocket.h @@ -0,0 +1,169 @@ +// ThreadedSocket.h: interface for the CThreadedSocket class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_) +#define AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include + +class CThreadedSocketException //: public CException +{ +// DECLARE_DYNAMIC(CThreadedSocketException) +public: +// Constructor + CThreadedSocketException(char* pchMessage); + +public: + ~CThreadedSocketException() {} + virtual bool GetErrorMessage(string& lpstrError, unsigned int nMaxError, + unsigned int * pnHelpContext = 0); + int GetError() { return m_nError; }; +private: + int m_nError; + char * m_strMessage; +}; + +class CThreadedSocket //: public CObject +{ +// DECLARE_DYNAMIC(CThreadedSocket); +// typedef unsigned int SOCKET; +// typedef struct sockaddr SOCKADDR; + +public: + CThreadedSocket(); + virtual ~CThreadedSocket(); +// Construction +public: + void Create(unsigned int nSocketPort = 0, int nSocketType=SOCK_STREAM, + long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + const char * lpszSocketAddress = 0); + +// Attributes +public: + SOCKET m_hSocket; + + operator SOCKET() const; + + void GetPeerName(string & rPeerAddress, unsigned int& rPeerPort); + + void GetSockName(string & rSocketAddress, unsigned int& rSocketPort); + +// Operations +public: + void Socket(int nSocketType=SOCK_STREAM, long lEvent = + FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + int nProtocolType = 0, int nAddressFormat = PF_INET); + virtual void Accept(CThreadedSocket& rConnectedSocket, + SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); + + void Bind(unsigned int nSocketPort, const char * lpszSocketAddress = 0); + + virtual void Close(); + + bool Connect(const char * lpszHostAddress, unsigned int nHostPort); + bool Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + + virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + + int ReceiveFrom(void* lpBuf, int nBufLen, + string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); + + enum { receives = 0, sends = 1, both = 2 }; + + virtual void Send(const void* lpBuf, int nBufLen, int nFlags = 0); + + void SendTo(const void* lpBuf, int nBufLen, + unsigned int nHostPort, const char * lpszHostAddress = 0, int nFlags = 0); + void AsyncSelect(long lEvent = + FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); + + +inline CThreadedSocket::operator SOCKET() const + { return m_hSocket; } +inline void GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) + { + if ( getpeername(m_hSocket, lpSockAddr, lpSockAddrLen) == SOCKET_ERROR) + throw( new CThreadedSocketException( "getpeername" ) ); + } +inline void GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) + { if ( getsockname(m_hSocket, lpSockAddr, lpSockAddrLen)== SOCKET_ERROR) + throw( new CThreadedSocketException( "getsockname" ) ); + } +inline void SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET) + { + if ( setsockopt(m_hSocket, nLevel, nOptionName, (LPCSTR)lpOptionValue, nOptionLen)== SOCKET_ERROR) + throw( new CThreadedSocketException( "setsockopt" ) ); + } +inline void GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel = SOL_SOCKET) + { + if ( getsockopt(m_hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen)== SOCKET_ERROR) + throw( new CThreadedSocketException( "getsockopt" ) ); + } + +static inline int CThreadedSocket::GetLastError() + { return WSAGetLastError(); } +inline void Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen) + { + if ( bind(m_hSocket, lpSockAddr, nSockAddrLen)== SOCKET_ERROR ) + throw( new CThreadedSocketException( "bind" )); + } + +inline void IOCtl(long lCommand, unsigned long* lpArgument) + { if ( ioctlsocket(m_hSocket, lCommand, lpArgument)== SOCKET_ERROR) + throw( new CThreadedSocketException( "bind" ) ); + } +inline void Listen(int nConnectionBacklog=5) + { + if ( listen(m_hSocket, nConnectionBacklog)== SOCKET_ERROR) + throw( new CThreadedSocketException( "listen" ) ); + } +inline int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0) + { + int lg = recvfrom(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, lpSockAddrLen); + if ( lg == SOCKET_ERROR ) + throw( new CThreadedSocketException( "recvfrom" ) ); + return lg; + } +inline bool ShutDown(int nHow = sends) + { + if ( shutdown(m_hSocket,nHow) == SOCKET_ERROR ) + throw( new CThreadedSocketException( "shutdown" ) ); + } +inline void SendTo(const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0) + { + if ( sendto(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, nSockAddrLen)== SOCKET_ERROR ) + throw( new CThreadedSocketException( "sendto" ) ); + } + + + +// Overridable callbacks +protected: + virtual void OnWakeup(); + virtual void OnReceive(int nErrorCode); + virtual void OnSend(int nErrorCode); + virtual void OnOutOfBandData(int nErrorCode); + virtual void OnAccept(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual void OnClose(int nErrorCode); +// Implementation + void StartListener(long lEvent); + long m_EventMask; + unsigned long thread_id; + HANDLE h_thread; + WSAEVENT m_hEvent[2]; // socket event for receive and send actions + unsigned int SocketThread(); //Client Thread + +// wrapper for thread routine +static DWORD WINAPI SocketThreadProc( void * pParam ); +static void Init(); +static bool Initialized; + +}; + +#endif // !defined(AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_) -- cgit v1.1 From 4b8a6b79df9e4433fff614c786441b75f52bcddc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:40 +0000 Subject: Utilisateur : Fcolin Date : 16/06/00 Heure : 10:40 Archivé dans $/Ivy Commentaire: Init dll socket dans DLLMain (vss 2) --- Ivy/ThreadedSocket.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 19fca4f..1a3f405 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -161,8 +161,6 @@ protected: // wrapper for thread routine static DWORD WINAPI SocketThreadProc( void * pParam ); -static void Init(); -static bool Initialized; }; -- cgit v1.1 From 99d788dbb3bad0d82be026054d88f9245b0c5bcf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:42 +0000 Subject: Utilisateur : Fcolin Date : 29/06/00 Heure : 15:59 Archivé dans $/Ivy Commentaire: Version multicast (vss 3) --- Ivy/ThreadedSocket.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 1a3f405..2fbe8c8 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -58,6 +58,9 @@ public: void Socket(int nSocketType=SOCK_STREAM, long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, int nProtocolType = 0, int nAddressFormat = PF_INET); + + void AddMember( const char * lpszHostAddress ); + virtual void Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); -- cgit v1.1 From 3ac6d4f575306385ad90fce0a22901afa301132e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:44 +0000 Subject: Utilisateur : Fcolin Date : 23/01/01 Heure : 13:12 Archivé dans $/Ivy Commentaire: remove 'using name space std;' (vss 4) --- Ivy/ThreadedSocket.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 2fbe8c8..bcdf8e5 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -20,7 +20,7 @@ public: public: ~CThreadedSocketException() {} - virtual bool GetErrorMessage(string& lpstrError, unsigned int nMaxError, + virtual bool GetErrorMessage(String& lpstrError, unsigned int nMaxError, unsigned int * pnHelpContext = 0); int GetError() { return m_nError; }; private: @@ -49,9 +49,9 @@ public: operator SOCKET() const; - void GetPeerName(string & rPeerAddress, unsigned int& rPeerPort); + void GetPeerName(String & rPeerAddress, unsigned int& rPeerPort); - void GetSockName(string & rSocketAddress, unsigned int& rSocketPort); + void GetSockName(String & rSocketAddress, unsigned int& rSocketPort); // Operations public: @@ -74,7 +74,7 @@ public: virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); int ReceiveFrom(void* lpBuf, int nBufLen, - string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); + String & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); enum { receives = 0, sends = 1, both = 2 }; -- cgit v1.1 From 1216a6d96c4aa7e76f6999ea39d49d3f444674ac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:46 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 11:18 Archivé dans $/Ivy (vss 5) --- Ivy/ThreadedSocket.h | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index bcdf8e5..829c562 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -2,25 +2,19 @@ // ////////////////////////////////////////////////////////////////////// -#if !defined(AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_) -#define AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_ -#if _MSC_VER > 1000 #pragma once -#endif // _MSC_VER > 1000 -#include - -class CThreadedSocketException //: public CException +class CThreadedSocketException { -// DECLARE_DYNAMIC(CThreadedSocketException) + public: // Constructor CThreadedSocketException(char* pchMessage); public: ~CThreadedSocketException() {} - virtual bool GetErrorMessage(String& lpstrError, unsigned int nMaxError, + virtual bool GetErrorMessage(string& lpstrError, unsigned int nMaxError, unsigned int * pnHelpContext = 0); int GetError() { return m_nError; }; private: @@ -28,11 +22,8 @@ private: char * m_strMessage; }; -class CThreadedSocket //: public CObject +class CThreadedSocket { -// DECLARE_DYNAMIC(CThreadedSocket); -// typedef unsigned int SOCKET; -// typedef struct sockaddr SOCKADDR; public: CThreadedSocket(); @@ -49,9 +40,9 @@ public: operator SOCKET() const; - void GetPeerName(String & rPeerAddress, unsigned int& rPeerPort); + void GetPeerName(string & rPeerAddress, unsigned int& rPeerPort); - void GetSockName(String & rSocketAddress, unsigned int& rSocketPort); + void GetSockName(string & rSocketAddress, unsigned int& rSocketPort); // Operations public: @@ -74,7 +65,7 @@ public: virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); int ReceiveFrom(void* lpBuf, int nBufLen, - String & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); + string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); enum { receives = 0, sends = 1, both = 2 }; @@ -91,7 +82,7 @@ inline CThreadedSocket::operator SOCKET() const inline void GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) { if ( getpeername(m_hSocket, lpSockAddr, lpSockAddrLen) == SOCKET_ERROR) - throw( new CThreadedSocketException( "getpeername" ) ); + throw ( new CThreadedSocketException( "getpeername" ) ); } inline void GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) { if ( getsockname(m_hSocket, lpSockAddr, lpSockAddrLen)== SOCKET_ERROR) @@ -166,5 +157,3 @@ protected: static DWORD WINAPI SocketThreadProc( void * pParam ); }; - -#endif // !defined(AFX_THREADEDSOCKET_H__DC45EFD8_343F_11D3_8A15_00A0245B298A__INCLUDED_) -- cgit v1.1 From f65446ec7d815cd429f36c306de5905712ec89af Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:48 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Ivy Commentaire: win CE compile not finished (vss 6) --- Ivy/ThreadedSocket.h | 120 ++++++++++++++++++++++----------------------------- 1 file changed, 51 insertions(+), 69 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 829c562..ab8e3cd 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -5,22 +5,7 @@ #pragma once -class CThreadedSocketException -{ - -public: -// Constructor - CThreadedSocketException(char* pchMessage); -public: - ~CThreadedSocketException() {} - virtual bool GetErrorMessage(string& lpstrError, unsigned int nMaxError, - unsigned int * pnHelpContext = 0); - int GetError() { return m_nError; }; -private: - int m_nError; - char * m_strMessage; -}; class CThreadedSocket { @@ -30,9 +15,7 @@ public: virtual ~CThreadedSocket(); // Construction public: - void Create(unsigned int nSocketPort = 0, int nSocketType=SOCK_STREAM, - long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, - const char * lpszSocketAddress = 0); + int Create(unsigned int nSocketPort = 0, int nSocketType=SOCK_STREAM, const char * lpszSocketAddress = 0); // Attributes public: @@ -46,21 +29,19 @@ public: // Operations public: - void Socket(int nSocketType=SOCK_STREAM, long lEvent = - FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, - int nProtocolType = 0, int nAddressFormat = PF_INET); + int Socket(int nSocketType=SOCK_STREAM, int nProtocolType = 0, int nAddressFormat = PF_INET); - void AddMember( const char * lpszHostAddress ); + int AddMember( const char * lpszHostAddress ); - virtual void Accept(CThreadedSocket& rConnectedSocket, + virtual int Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); - void Bind(unsigned int nSocketPort, const char * lpszSocketAddress = 0); + int Bind(unsigned int nSocketPort, const char * lpszSocketAddress = 0); virtual void Close(); - bool Connect(const char * lpszHostAddress, unsigned int nHostPort); - bool Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + int Connect(const char * lpszHostAddress, unsigned int nHostPort); + int Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); @@ -69,76 +50,67 @@ public: enum { receives = 0, sends = 1, both = 2 }; - virtual void Send(const void* lpBuf, int nBufLen, int nFlags = 0); + virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); - void SendTo(const void* lpBuf, int nBufLen, + int SendTo(const void* lpBuf, int nBufLen, unsigned int nHostPort, const char * lpszHostAddress = 0, int nFlags = 0); - void AsyncSelect(long lEvent = - FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); + inline CThreadedSocket::operator SOCKET() const { return m_hSocket; } -inline void GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) +inline int GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) { - if ( getpeername(m_hSocket, lpSockAddr, lpSockAddrLen) == SOCKET_ERROR) - throw ( new CThreadedSocketException( "getpeername" ) ); + return getpeername(m_hSocket, lpSockAddr, lpSockAddrLen); } -inline void GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) - { if ( getsockname(m_hSocket, lpSockAddr, lpSockAddrLen)== SOCKET_ERROR) - throw( new CThreadedSocketException( "getsockname" ) ); +inline int GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) + { + return getsockname(m_hSocket, lpSockAddr, lpSockAddrLen); } -inline void SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET) +inline int SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET) { - if ( setsockopt(m_hSocket, nLevel, nOptionName, (LPCSTR)lpOptionValue, nOptionLen)== SOCKET_ERROR) - throw( new CThreadedSocketException( "setsockopt" ) ); + return setsockopt(m_hSocket, nLevel, nOptionName, (LPCSTR)lpOptionValue, nOptionLen); } -inline void GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel = SOL_SOCKET) +inline int GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel = SOL_SOCKET) { - if ( getsockopt(m_hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen)== SOCKET_ERROR) - throw( new CThreadedSocketException( "getsockopt" ) ); + return getsockopt(m_hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen); } static inline int CThreadedSocket::GetLastError() - { return WSAGetLastError(); } -inline void Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen) + { return ::WSAGetLastError(); } +inline int Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen) { - if ( bind(m_hSocket, lpSockAddr, nSockAddrLen)== SOCKET_ERROR ) - throw( new CThreadedSocketException( "bind" )); + return bind(m_hSocket, lpSockAddr, nSockAddrLen); } -inline void IOCtl(long lCommand, unsigned long* lpArgument) - { if ( ioctlsocket(m_hSocket, lCommand, lpArgument)== SOCKET_ERROR) - throw( new CThreadedSocketException( "bind" ) ); +inline int IOCtl(long lCommand, unsigned long* lpArgument) + { + return ioctlsocket(m_hSocket, lCommand, lpArgument); } -inline void Listen(int nConnectionBacklog=5) +inline int Listen(int nConnectionBacklog=5) { - if ( listen(m_hSocket, nConnectionBacklog)== SOCKET_ERROR) - throw( new CThreadedSocketException( "listen" ) ); + int err = listen(m_hSocket, nConnectionBacklog); + if ( !err ) + listen_mode = true; + return err; } inline int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0) { int lg = recvfrom(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, lpSockAddrLen); - if ( lg == SOCKET_ERROR ) - throw( new CThreadedSocketException( "recvfrom" ) ); return lg; } -inline bool ShutDown(int nHow = sends) +inline int ShutDown(int nHow = sends) { - if ( shutdown(m_hSocket,nHow) == SOCKET_ERROR ) - throw( new CThreadedSocketException( "shutdown" ) ); + return shutdown(m_hSocket,nHow); } -inline void SendTo(const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0) +inline int SendTo(const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0) { - if ( sendto(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, nSockAddrLen)== SOCKET_ERROR ) - throw( new CThreadedSocketException( "sendto" ) ); + return sendto(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, nSockAddrLen); } - // Overridable callbacks protected: - virtual void OnWakeup(); virtual void OnReceive(int nErrorCode); virtual void OnSend(int nErrorCode); virtual void OnOutOfBandData(int nErrorCode); @@ -146,14 +118,24 @@ protected: virtual void OnConnect(int nErrorCode); virtual void OnClose(int nErrorCode); // Implementation - void StartListener(long lEvent); - long m_EventMask; - unsigned long thread_id; - HANDLE h_thread; - WSAEVENT m_hEvent[2]; // socket event for receive and send actions - unsigned int SocketThread(); //Client Thread + int StartListener(); + int StartWriter(); + bool SignalWriter(); + + HANDLE h_reader; + HANDLE h_writer; + unsigned long reader_id; + unsigned long writer_id; + unsigned int SocketReader(); //Receiver Thread + unsigned int SocketWriter(); //Sender Thread + bool listen_mode; + bool connect_pending; + bool send_pending; + HANDLE send_count; + // wrapper for thread routine -static DWORD WINAPI SocketThreadProc( void * pParam ); +static DWORD WINAPI SocketReaderProc( void * pParam ); +static DWORD WINAPI SocketWriterProc( void * pParam ); }; -- cgit v1.1 From 19ce23a32f459a91a76035f2fee5c859066fa5fa Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:50 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 16:44 Archivé dans $/Ivy Commentaire: correction BUG Ivy socket Listen apres start Listener et regexp_in.resize (vss 7) --- Ivy/ThreadedSocket.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index ab8e3cd..1827c52 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -42,6 +42,7 @@ public: int Connect(const char * lpszHostAddress, unsigned int nHostPort); int Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + int Listen(int nConnectionBacklog=5); virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); @@ -87,13 +88,7 @@ inline int IOCtl(long lCommand, unsigned long* lpArgument) { return ioctlsocket(m_hSocket, lCommand, lpArgument); } -inline int Listen(int nConnectionBacklog=5) - { - int err = listen(m_hSocket, nConnectionBacklog); - if ( !err ) - listen_mode = true; - return err; - } + inline int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0) { int lg = recvfrom(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, lpSockAddrLen); -- cgit v1.1 From fe6c1ec690a82deddc9fa0c5ff9eb5dde9c83c8c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:52 +0000 Subject: Utilisateur : Fcolin Date : 25/10/01 Heure : 18:39 Archivé dans $/Ivy (vss 8) --- Ivy/ThreadedSocket.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 1827c52..9771f10 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -21,7 +21,7 @@ public: public: SOCKET m_hSocket; - operator SOCKET() const; + inline operator SOCKET() const { return m_hSocket; }; void GetPeerName(string & rPeerAddress, unsigned int& rPeerPort); @@ -57,9 +57,6 @@ public: unsigned int nHostPort, const char * lpszHostAddress = 0, int nFlags = 0); - -inline CThreadedSocket::operator SOCKET() const - { return m_hSocket; } inline int GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) { return getpeername(m_hSocket, lpSockAddr, lpSockAddrLen); -- cgit v1.1 From bfcb17aa05cda240abeb0fffc41bb112b04e00eb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:54 +0000 Subject: Utilisateur : Fcolin Date : 2/06/05 Heure : 18:42 Archivé dans $/Bus/Ivy Commentaire: Suppression de la STL et ajout d'un namespace pour les datatypes internes Ivy (vss 9) --- Ivy/ThreadedSocket.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 9771f10..85262cd 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -23,9 +23,9 @@ public: inline operator SOCKET() const { return m_hSocket; }; - void GetPeerName(string & rPeerAddress, unsigned int& rPeerPort); + void GetPeerName(ivy::string & rPeerAddress, unsigned int& rPeerPort); - void GetSockName(string & rSocketAddress, unsigned int& rSocketPort); + void GetSockName(ivy::string & rSocketAddress, unsigned int& rSocketPort); // Operations public: @@ -47,7 +47,7 @@ public: virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); int ReceiveFrom(void* lpBuf, int nBufLen, - string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); + ivy::string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); enum { receives = 0, sends = 1, both = 2 }; -- cgit v1.1 From d335c71e7c5c30293d82d8336494cb629e2d610e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:56 +0000 Subject: Utilisateur : Fcolin Date : 23/09/05 Heure : 15:27 Archivé dans $/Bus/Ivy Commentaire: (vss 10) --- Ivy/ThreadedSocket.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Ivy/ThreadedSocket.h b/Ivy/ThreadedSocket.h index 85262cd..ad33c3e 100644 --- a/Ivy/ThreadedSocket.h +++ b/Ivy/ThreadedSocket.h @@ -29,11 +29,11 @@ public: // Operations public: - int Socket(int nSocketType=SOCK_STREAM, int nProtocolType = 0, int nAddressFormat = PF_INET); + SOCKET Socket(int nSocketType=SOCK_STREAM, int nProtocolType = 0, int nAddressFormat = PF_INET); int AddMember( const char * lpszHostAddress ); - virtual int Accept(CThreadedSocket& rConnectedSocket, + virtual SOCKET Accept(CThreadedSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); int Bind(unsigned int nSocketPort, const char * lpszSocketAddress = 0); @@ -44,16 +44,16 @@ public: int Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); int Listen(int nConnectionBacklog=5); - virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + virtual size_t Receive(void* lpBuf, size_t nBufLen, int nFlags = 0); - int ReceiveFrom(void* lpBuf, int nBufLen, + size_t ReceiveFrom(void* lpBuf, size_t nBufLen, ivy::string & rSocketAddress, unsigned int & rSocketPort, int nFlags = 0); enum { receives = 0, sends = 1, both = 2 }; - virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); + virtual size_t Send(const void* lpBuf, size_t nBufLen, int nFlags = 0); - int SendTo(const void* lpBuf, int nBufLen, + size_t SendTo(const void* lpBuf, size_t nBufLen, unsigned int nHostPort, const char * lpszHostAddress = 0, int nFlags = 0); @@ -86,18 +86,20 @@ inline int IOCtl(long lCommand, unsigned long* lpArgument) return ioctlsocket(m_hSocket, lCommand, lpArgument); } -inline int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0) +inline size_t ReceiveFrom(void* lpBuf, size_t nBufLen, SOCKADDR* lpSockAddr, size_t* lpSockAddrLen, int nFlags = 0) { - int lg = recvfrom(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, lpSockAddrLen); + int len = (int)*lpSockAddrLen; // Non conforme a Unix + size_t lg = recvfrom(m_hSocket, (LPSTR)lpBuf, (int)nBufLen, nFlags, lpSockAddr, &len); + *lpSockAddrLen = len; return lg; } inline int ShutDown(int nHow = sends) { return shutdown(m_hSocket,nHow); } -inline int SendTo(const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0) +inline size_t SendTo(const void* lpBuf, size_t nBufLen, const SOCKADDR* lpSockAddr, size_t nSockAddrLen, int nFlags = 0) { - return sendto(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags, lpSockAddr, nSockAddrLen); + return sendto(m_hSocket, (LPSTR)lpBuf, (int)nBufLen, nFlags, lpSockAddr, (int)nSockAddrLen); } -- cgit v1.1 From 1c6403ed8668cac26362e786567d7a68b73bb0ef Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:05:59 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Créé Commentaire: (vss 1) --- Ivy/intervalRegexp.c | 432 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 432 insertions(+) create mode 100644 Ivy/intervalRegexp.c diff --git a/Ivy/intervalRegexp.c b/Ivy/intervalRegexp.c new file mode 100644 index 0000000..6efcd72 --- /dev/null +++ b/Ivy/intervalRegexp.c @@ -0,0 +1,432 @@ +#include +#include +#include +#include +#include + +#include "intervalRegexp.h" + +#ifdef __PRETTY_FUNCTION__ +#else +#define __PRETTY_FUNCTION__ __FUNCTION__ +#endif + + +#define MAXINT( a , b ) ((a) > (b) ? (a) : (b)) +#define MININT( a , b ) ((a) < (b) ? (a) : (b)) + +#define Perr(...) (perr ( __PRETTY_FUNCTION__, __VA_ARGS__)) +#define CHECK_AND_RETURN(a) if (strlen (locBuf) <= buflen) { \ + strcpy (a, locBuf); \ + return success; \ + } else { \ + return Perr ("CHECK_AND_RETURN"); } + +#define EndLocBuf (&(locBuf[strlen(locBuf)])) +#ifdef WIN32 +#define snprintf _snprintf +#endif +#define AddLocBuf(...) snprintf (EndLocBuf, sizeof (locBuf)-strlen(locBuf), __VA_ARGS__) + +typedef struct { + int max; + int rank; +} NextMax ; + + +typedef char bool; + +const bool success = 1; +const bool fail = 0; + + +static bool strictPosRegexpGen (char *regexp, size_t buflen, long min, long max, const char* decimalPart, + const char* boundDecimalPart); +static bool genAtRank (char *regexp, size_t buflen, const char *min, const char *max, int rank); +static bool genPreRank (char *preRank, size_t buflen, const char *min, const char *max, int rank); +static bool genRank (char *outRank, size_t buflen, const char *min, const char *max, int rank); +static bool genPostRank (char *postRank, size_t buflen, int rank); +static bool substr (char *substring, size_t buflen, const char* expr, size_t pos, size_t len); +static char* reverse (char *string); +static char* longtoa (char *string, size_t buflen, long n); +static NextMax nextMax (const char *min, const char *max); +static bool perr (const char* func, const char *fmt, ...); + + + +/* +# __ _ _ __ _____ +# / _` | | '_ \ / ____| +# _ __ ___ | (_| | ___ __ __ | |_) | | | __ ___ _ __ +# | '__| / _ \ \__, | / _ \ \ \/ / | .__/ | | |_ | / _ \ | '_ \ +# | | | __/ __/ | | __/ > < | | | |__| | | __/ | | | | +# |_| \___| |___/ \___| /_/\_\ |_| \_____| \___| |_| |_| +*/ +int regexpGen (char *regexp, size_t buflen, long min, long max, int flottant) +{ + char *decimalPart = ""; + char *boundDecimalPart = ""; + char locBuf [8192] = "(?:"; + + + if (flottant) { + decimalPart = "(?:\\.\\d+)?"; + boundDecimalPart = "(?:\\.0+)?"; + } + + if (min > max) { + int nmin = max; + max = min; + min = nmin; + } + + if (min == max) { + AddLocBuf ("%ld%s", min, decimalPart); + } else if (min < 0) { + if (max < 0) { + // reg = '\-(?:' . strictPosRegexpGen (-max, -min, decimalPart, boundDecimalPart). ')'; + AddLocBuf ("\\-(?:"); + if (strictPosRegexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), -min, -max, decimalPart, + boundDecimalPart) == fail) return fail; + AddLocBuf (")"); + } else if (max == 0) { + AddLocBuf ("(?:0%s)|(?:-0%s)|-(?:", boundDecimalPart, decimalPart); + if (strictPosRegexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), 1, -min, decimalPart, + boundDecimalPart)== fail) return fail; + AddLocBuf (")"); + } else { + //reg ='(?:' . regexpGen (min, 0,withDecimal) . '|' . regexpGen (0, max, withDecimal). ')' ; + AddLocBuf ("(?:"); + if (regexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), min, 0, flottant)== fail) return fail; + AddLocBuf ("|"); + if (regexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), 0, max, flottant)== fail) return fail; + AddLocBuf (")"); + } + } else if (min == 0) { + // reg = "(?:0{decimalPart})|" . strictPosRegexpGen (1, max, decimalPart,boundDecimalPart) ; + AddLocBuf ("(?:0%s)|",decimalPart); + if (strictPosRegexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), 1, max, decimalPart, + boundDecimalPart)== fail) return fail; + } else { + if (strictPosRegexpGen (EndLocBuf, sizeof (locBuf)-strlen(locBuf), min, max, decimalPart, + boundDecimalPart)== fail) return fail; + } + + AddLocBuf (")(?![\\d.])"); + CHECK_AND_RETURN (regexp); +} + +/* +# _ _ _ _____ +# | | (_) | | | __ \ +# ___ | |_ _ __ _ ___ | |_ | |__) | ___ ___ +# / __| | __| | '__| | | / __| | __| | ___/ / _ \ / __| +# \__ \ \ |_ | | | | | (__ \ |_ | | | (_) | \__ \ +# |___/ \__| |_| |_| \___| \__| |_| \___/ |___/ +# _____ __ _ _ __ _____ +# | __ \ / _` | | '_ \ / ____| +# | |__) | ___ | (_| | ___ __ __ | |_) | | | __ ___ _ __ +# | _ / / _ \ \__, | / _ \ \ \/ / | .__/ | | |_ | / _ \ | '_ \ +# | | \ \ | __/ __/ | | __/ > < | | | |__| | | __/ | | | | +# |_| \_\ \___| |___/ \___| /_/\_\ |_| \_____| \___| |_| |_| +*/ +static bool strictPosRegexpGen (char *regexp, size_t buflen, long min, long max, const char* decimalPart, + const char* boundDecimalPart) +{ + +#define maxSubReg 64 +#define digitRegSize 128 + + char regList[maxSubReg][digitRegSize]; + char locBuf[maxSubReg*digitRegSize] ; + size_t regIndex=0,i; + size_t nbRank; + char maxAsString[32], minAsString[32]; + NextMax nMax; + + + if ((min <= 0) || (max <= 0)) return Perr ("min or max <= 0"); + if (min == max) { + sprintf (EndLocBuf, "%ld", max); + } else { + + max--; + + nbRank = strlen (longtoa (maxAsString, sizeof (maxAsString), max)); + do { + nMax = nextMax (longtoa (minAsString, sizeof (minAsString), min), + longtoa (maxAsString, sizeof (maxAsString), max)); + if (genAtRank (regList[regIndex++], digitRegSize, minAsString, + longtoa (maxAsString, sizeof (maxAsString), + nMax.max), nMax.rank) == fail) return fail; + if (regIndex == maxSubReg) return Perr ("regIndex == maxSubReg"); + min = nMax.max +1; + } while (nMax.max != max); + + locBuf[0] = 0; + for (i=0; i < \ |_ | | | | | (_| | > < +# |_| |_| \___| /_/\_\ \__| |_| |_| \__,_| /_/\_\ +*/ +static NextMax nextMax (const char *min, const char *max) +{ + NextMax nextMax ={0,0}; + char revMin[32], revMax[32]; + size_t nbDigitsMin, nbDigitsMax; + size_t rankRev=0, rankForw, rank=0; + int i; + int currMax; + + nbDigitsMin = strlen (min); + nbDigitsMax = strlen (max); + + for (i=nbDigitsMin-1; i >= 0; i--) { + revMin[nbDigitsMin-i-1]= min[i]; + // printf ("DBG> nextMax revMin[%d]= %c\n", nbDigitsMin-i-1, min[i]); + } + for (i=nbDigitsMax-nbDigitsMin; i >= 0; i--) { + revMin[nbDigitsMax-i]= '0'; + // printf ("DBG> nextMax revMin[%d]= %c\n", nbDigitsMax-i, '0'); + } + + for (i=nbDigitsMax-1; i >= 0; i--) { + revMax[nbDigitsMax-i-1]= max[i]; + } + revMin[nbDigitsMax] = revMax[nbDigitsMax] = 0; + rankForw = nbDigitsMax -1; + + // printf ("DBG> nextMax rev(%s)=%s rev(%s)=%s rankForw=%d\n", min, revMin, max, revMax, rankForw); + + // en partant des unitées (digit de poids faible), premier digit de min != 0 + while ((revMin[rankRev] == '0') && (rankRev < nbDigitsMax)) rankRev++; + // en partant du digit de poids fort, premier digit de max != du même digit de revMin + while ((revMin[rankForw] == revMax[rankForw]) && rankForw > 0) rankForw--; + + if (rankForw <= rankRev) { + rank = rankForw; + revMin[rankForw]= revMax[rankForw] - (rankForw ? 1 : 0); + for (i=0; i currMax) nextMax.max = currMax; + + // printf ("DBG> nextMax ('%s', '%s') = %d@%d\n", min, max, nextMax.max, nextMax.rank); + return (nextMax); +} + + +/* +# __ _ ____ _ +# / _` | / __ \ | | +# | (_| | ___ _ __ / / _` | _ __ __ _ _ __ | | _ +# \__, | / _ \ | '_ \ | | (_| | | '__| / _` | | '_ \ | |/ / +# __/ | | __/ | | | | \ \__,_| | | | (_| | | | | | | < +# |___/ \___| |_| |_| \____/ |_| \__,_| |_| |_| |_|\_\ +*/ +static bool genAtRank (char *regexp, size_t buflen, const char *min, const char *max, int rank) +{ + char locBuf [512]; + + if (genPreRank (locBuf, sizeof (locBuf), min, max, rank) == fail) return (fail); + if (genRank (EndLocBuf, sizeof (locBuf)-strlen(locBuf), min, max, rank) == fail) return (fail); + if (genPostRank (EndLocBuf, sizeof (locBuf)-strlen(locBuf), rank) == fail) return (fail); + + + CHECK_AND_RETURN (regexp); +} + +/* +# __ _ _____ _____ _ +# / _` | | __ \ | __ \ | | +# | (_| | ___ _ __ | |__) | _ __ ___ | |__) | __ _ _ __ | | _ +# \__, | / _ \ | '_ \ | ___/ | '__| / _ \ | _ / / _` | | '_ \ | |/ / +# __/ | | __/ | | | | | | | | | __/ | | \ \ | (_| | | | | | | < +# |___/ \___| |_| |_| |_| |_| \___| |_| \_\ \__,_| |_| |_| |_|\_\ +*/ +static bool genPreRank (char *preRank, size_t buflen, const char *min, const char *max, int rank) +{ + char locBuf [512], locBufMax[512]; + const char *lmin, *lmax; + int i=0, j=0; + + while (min[i] == '0') i++; + while (max[j] == '0') j++; + + lmin = &(min[i]); + lmax = &(max[j]); + + // printf ("DBG> genPreRank (lmin='%s'[%d], lmax='%s'[%d], rank=%d\n", lmin, (int) strlen (lmin), lmax, + // (int) strlen (lmax), rank); + + if (substr (locBuf, sizeof (locBuf), lmin, 0, strlen (lmin) - rank) == fail) return fail; + if (substr (locBufMax, sizeof (locBufMax), lmax, 0, strlen (lmax) - rank) == fail) return fail; + + if (strncmp (locBuf, locBufMax, MININT (sizeof (locBuf), sizeof (locBufMax))) != 0) + return Perr ("min=%s[%s] and max=%s[%s] should be invariants at rank %d", locBuf, min, locBufMax, max, rank); + + // printf ("DBG> genPreRank ('%s', '%s', %d) = '%s'\n", min, max, rank, locBuf); + + CHECK_AND_RETURN (preRank); +} + + +/* +# __ _ _____ _ +# / _` | | __ \ | | +# | (_| | ___ _ __ | |__) | __ _ _ __ | | _ +# \__, | / _ \ | '_ \ | _ / / _` | | '_ \ | |/ / +# __/ | | __/ | | | | | | \ \ | (_| | | | | | | < +# |___/ \___| |_| |_| |_| \_\ \__,_| |_| |_| |_|\_\ +*/ +static bool genRank (char *outRank, size_t buflen, const char *min, const char *max, int rank) +{ + char locBuf [512]; + + char a,b,lmin,lmax; + a = min[strlen(min)-rank]; + b = max[strlen(max)-rank]; + + lmin = MININT (a,b); + lmax = MAXINT (a,b); + + if ((lmin == '0') && (lmax == '9')) { + strcpy (locBuf, "\\d"); + } else if (lmin == lmax) { + locBuf[0] = lmin; + locBuf[1] = 0; + } else if (lmax == (lmin+1)) { + sprintf (locBuf, "[%c%c]", lmin, lmax); + } else { + sprintf (locBuf, "[%c-%c]", lmin, lmax); + } + + CHECK_AND_RETURN (outRank); +} + +/* +# __ _ _____ _ _____ +# / _` | | __ \ | | | __ \ +# | (_| | ___ _ __ | |__) | ___ ___ | |_ | |__) | __ _ _ __ +# \__, | / _ \ | '_ \ | ___/ / _ \ / __| | __| | _ / / _` | | '_ \ +# __/ | | __/ | | | | | | | (_) | \__ \ \ |_ | | \ \ | (_| | | | | | +# |___/ \___| |_| |_| |_| \___/ |___/ \__| |_| \_\ \__,_| |_| |_| +*/ +static bool genPostRank (char *postRank, size_t buflen, int rank) +{ + char locBuf [512]; + + if (rank <= 1) { + strcpy (locBuf, ""); + } else if (rank == 2) { + sprintf (locBuf, "\\d"); + } else { + sprintf (locBuf, "\\d{%d}", rank -1); + } + + CHECK_AND_RETURN (postRank); +} + +/* +# _ _ +# | | | | +# ___ _ _ | |__ ___ | |_ _ __ +# / __| | | | | | '_ \ / __| | __| | '__| +# \__ \ | |_| | | |_) | \__ \ \ |_ | | +# |___/ \__,_| |_.__/ |___/ \__| |_| +*/ +static bool substr (char *substring, size_t buflen, const char* expr, size_t pos, size_t len) +{ + char locBuf [512]; + size_t i, j=0; + + len = MAXINT (0, MININT (len, strlen (expr) - pos)); + for (i=pos; i<(pos+len); i++) { + locBuf[j++]= expr[i]; + } + locBuf[j] = 0; + + // printf ("DBG> substr ('%s', %d, %d) = '%s'\n", expr, pos, len, locBuf); + CHECK_AND_RETURN (substring); +} + +/* +# +# +# _ __ ___ __ __ ___ _ __ ___ ___ +# | '__| / _ \ \ \ / / / _ \ | '__| / __| / _ \ +# | | | __/ \ V / | __/ | | \__ \ | __/ +# |_| \___| \_/ \___| |_| |___/ \___| +*/ +static char* reverse (char *string) +{ + char *locBuf ; + int i; + size_t len = strlen (string); + + locBuf = malloc (len+1); + for (i=len-1; i >= 0; i--) { + locBuf[len-i-1]= string[i]; + //printf ("DBG> reverse locBuf[%d]= %c\n",len- i-1, string[i]); + } + locBuf [len] = 0; + + // printf ("DBG> reverse '%s' = '%s'\n", string, locBuf); + strcpy (string, locBuf); + free (locBuf); + return (string); +} + +static char* longtoa (char *string, size_t buflen, long n) +{ + snprintf (string, buflen, "%ld", n); + return (string); +} + + +/* +# _ __ +# | '_ \ +# | |_) | ___ _ __ _ __ +# | .__/ / _ \ | '__| | '__| +# | | | __/ | | | | +# |_| \___| |_| |_| +*/ +static bool perr (const char* func, const char *fmt, ...) +{ + char err[4096], buffer[2048]; + va_list args; + va_start( args, fmt ); + vsprintf( buffer, fmt, args ); + va_end( args ); + + + sprintf (err, "Erreur %s @ %s\n", buffer, func); + fprintf (stderr, err); + return (fail); +} -- cgit v1.1 From df1997b6b4a7bb0a7cf5cf9f2b0d24d94af0213c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:00 +0000 Subject: Utilisateur : Fcolin Date : 22/09/06 Heure : 14:54 Créé Commentaire: (vss 1) --- Ivy/intervalRegexp.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Ivy/intervalRegexp.h diff --git a/Ivy/intervalRegexp.h b/Ivy/intervalRegexp.h new file mode 100644 index 0000000..c1176ff --- /dev/null +++ b/Ivy/intervalRegexp.h @@ -0,0 +1,14 @@ +#ifndef INTERVALREGEXP_H +#define INTERVALREGEXP_H + +#ifdef __cplusplus +extern "C" { +#endif + +int regexpGen (char *regexp, size_t buflen, long min, long max, int flottant); + +#ifdef __cplusplus +} +#endif + +#endif -- cgit v1.1 From 759a01f539bc17064fbb40c35cc5b3bb4b04b1f0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:03 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- .../InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj | 811 +++++++++++++++++++++ 1 file changed, 811 insertions(+) create mode 100644 IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj diff --git a/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj b/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj new file mode 100644 index 0000000..8747e9e --- /dev/null +++ b/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj @@ -0,0 +1,811 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:Install" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_1FFF66C6BAC84098B44C4BFB77CF31BA" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_24D4F2F7205D4B84A9A179397CA5449D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_280A192E83624205B038236965792BA6" + "OwnerKey" = "8:_24D4F2F7205D4B84A9A179397CA5449D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_29B546875AD67FD9DDEB3787BB5634AC" + "OwnerKey" = "8:_24D4F2F7205D4B84A9A179397CA5449D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_63D08CD46ADD4B6981762367F1A8B4B4" + "OwnerKey" = "8:_24D4F2F7205D4B84A9A179397CA5449D" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvyAudioMonitor.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyAudioMon.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_29B546875AD67FD9DDEB3787BB5634AC" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_B77ADBA35B9B4DABB6315373618206DF" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_9C9C3F0E7D0440BD8FC950681C8BDFF5" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_B77ADBA35B9B4DABB6315373618206DF" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_CBE0581308BE453A8D2918CCA90E7FA2" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:IvyAudioMon" + "ProductCode" = "8:{1D4F0F46-9EC2-422B-AC5E-7407448D5E1B}" + "PackageCode" = "8:{21119BEA-2AC8-47AE-9174-7F3FC1074FF8}" + "UpgradeCode" = "8:{63A0EA16-E436-46F8-A5D0-22C992240CE4}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.1" + "Manufacturer" = "8:CENA PII" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:IvyAudioMon" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:ivy" + "ARPCOMMENTS" = "8:Audio monitor for Ivy" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_8E97A3A6197D41C18F825E47B18A63B8" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_BFB0F7EE6461455A82D21F6B188BC952" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_30F0AB285F08494B99DEDF264CB58AED" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_C112641E4EDD452ABF4B8361F38D8039" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + "{478F747B-8505-45D1-9AAE-8C3B645C26E3}:_2240A7D62F4F410F896ABD1A12FC17CE" + { + "Name" = "8:IvyAudioMon" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_1FFF66C6BAC84098B44C4BFB77CF31BA" + "Folder" = "8:_9C9C3F0E7D0440BD8FC950681C8BDFF5" + "WorkingFolder" = "8:_B77ADBA35B9B4DABB6315373618206DF" + "Icon" = "8:" + "Feature" = "8:" + } + } + "UserInterface" + { + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0FC4A48F6C1A48898536C7D225CDBD18" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C14469C50F234DB7BF4FDDC77E614389" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_1C654AAF7E24483CACE80660DD7DD7C1" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_246CADC3304E4D458C7209E11813417D" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_202BE75FFB354259B74198A8BC0E6543" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_2F02F6743C41431E8CDF97AF5ADCE2C7" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_40B3D65F18C347949729D8727EAFCF5A" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C79367C78F8D4CFAAFDBA76CE26440A9" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_48B2B2E5F721448E897D9B22396E09E5" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_AF79945CD8DC4C0090DAFF213ADDD226" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_56DDF779024C4B7DA283A20E4EDF975B" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9F1357406D3C4391A37026DB5ACACBFE" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A806909CFAC14B269567508382146607" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_FA35B731B6424407886715895D826B0B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D17F3ACD1241458BA747EBBB3776DA42" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_5BBB4A316E4647FEB34D20AB70320849" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_81BFECCD2AFE47F3899A9A1E5CD1A9CF" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_ACD3BF5E8B1443F1993A861355C9AFC5" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_280A192E83624205B038236965792BA6" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_63D08CD46ADD4B6981762367F1A8B4B4" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_1FFF66C6BAC84098B44C4BFB77CF31BA" + { + "SourcePath" = "8:..\\Release\\IvyAudioMon.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B77ADBA35B9B4DABB6315373618206DF" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{1CE6AEB9-1360-44A0-ABB6-44324A0E5812}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_24D4F2F7205D4B84A9A179397CA5449D" + { + "SourcePath" = "8:..\\..\\Bus\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B77ADBA35B9B4DABB6315373618206DF" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_955505C784224888BF1CFB0776E09565" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B77ADBA35B9B4DABB6315373618206DF" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:ContentFiles" + "OutputProjectGuid" = "8:{1CE6AEB9-1360-44A0-ABB6-44324A0E5812}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From 152b8f87dbc2a48d0d3ed9179077e7109a7dab76 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:04 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- .../InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj.vspscc diff --git a/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj.vspscc b/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj.vspscc new file mode 100644 index 0000000..853b643 --- /dev/null +++ b/IvyAudioMon/InstIvyAudioMonitor/InstIvyAudioMonitor.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:InstIvyAudioMonitor" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From 92b7101450ebe9b59de428da73b91b7c21a8be3b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:06 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/IvyAudioMon.exe.manifest | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 IvyAudioMon/IvyAudioMon.exe.manifest diff --git a/IvyAudioMon/IvyAudioMon.exe.manifest b/IvyAudioMon/IvyAudioMon.exe.manifest new file mode 100644 index 0000000..d635475 --- /dev/null +++ b/IvyAudioMon/IvyAudioMon.exe.manifest @@ -0,0 +1,22 @@ + + + + Horloge + + + + + + -- cgit v1.1 From 6669a242ae1e3370bf80f2b0c5a36459bc3324dd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:08 +0000 Subject: Utilisateur : Fcolin Date : 28/09/04 Heure : 15:06 Archivé dans $/Bus/IvyAudioMon Commentaire: (vss 2) --- IvyAudioMon/IvyAudioMon.exe.manifest | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyAudioMon/IvyAudioMon.exe.manifest b/IvyAudioMon/IvyAudioMon.exe.manifest index d635475..4b4b9ea 100644 --- a/IvyAudioMon/IvyAudioMon.exe.manifest +++ b/IvyAudioMon/IvyAudioMon.exe.manifest @@ -6,8 +6,8 @@ processorArchitecture="x86" version="5.1.0.0" type="win32" - name="Horloge.exe"/> - Horloge + name="IvyAudioMon.exe"/> + IvyAudioMon = 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CMeterApp: +// See Meter.cpp for the implementation of this class +// + +class CMeterApp : public CWinApp +{ +public: + CMeterApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMeterApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CMeterApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_METER_H__3A48D835_F4B7_11D1_9F80_006008984DF6__INCLUDED_) -- cgit v1.1 From b245e680d051d05bde51ef3bba3abbebe27d4a49 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:25 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/Meter.rc | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 IvyAudioMon/Meter.rc diff --git a/IvyAudioMon/Meter.rc b/IvyAudioMon/Meter.rc new file mode 100644 index 0000000..b7c7058 --- /dev/null +++ b/IvyAudioMon/Meter.rc @@ -0,0 +1,206 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Anglais (États-Unis) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Meter.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON "res\\Meter.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOGEX 0, 0, 197, 78 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About Ivy Audio Monitor" +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "Ivy Audio Monitor",IDC_STATIC,40,12,143,8,SS_NOPREFIX + LTEXT "Copyright (C) PII 2002 - 2115",IDC_STATIC,40,36,143,8 + DEFPUSHBUTTON "OK",IDOK,83,51,32,14,WS_GROUP + LTEXT "Version 1.0",IDC_STATIC,40,24,143,8 +END + +IDD_METER_DIALOG DIALOGEX 0, 0, 214, 84 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "Ivy Audio Monitor" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER, + 20,38,173,14 + CONTROL "",IDC_PEEK,"msctls_progress32",WS_BORDER,19,58,173,14 + EDITTEXT IDC_BUS,20,17,172,15,ES_AUTOHSCROLL +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,2,0,0 + PRODUCTVERSION 1,2,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "chensu" + VALUE "FileDescription", "Audio Mixer Functions Demo - Wave Meter" + VALUE "FileVersion", "1.2" + VALUE "InternalName", "Wave Meter" + VALUE "LegalCopyright", "Copyright (C) chensu 1998 - 2002" + VALUE "OriginalFilename", "Meter.EXE" + VALUE "ProductName", "Audio Mixer Functions Demo" + VALUE "ProductVersion", "1.2" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 190 + TOPMARGIN, 7 + BOTTOMMARGIN, 71 + END + + IDD_METER_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 207 + TOPMARGIN, 7 + BOTTOMMARGIN, 77 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_ABOUTBOX "&About Wave Meter..." + IDS_FMTNUMMIXERS "%u mixer(s)" + IDS_FMTCAPS "%s, %lu destination line(s)" + IDS_FMTNAMES "%s - %s" + IDS_NOCONTROL "The control does not exist." +END + +#endif // Anglais (États-Unis) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif +#include "res\Meter.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From 06e291fc6ee15763cee5ec633661dbe2d4609817 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:28 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/Meter.vcproj | 250 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 IvyAudioMon/Meter.vcproj diff --git a/IvyAudioMon/Meter.vcproj b/IvyAudioMon/Meter.vcproj new file mode 100644 index 0000000..0278e48 --- /dev/null +++ b/IvyAudioMon/Meter.vcproj @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 0f64184bf90a50301a74a521439423853cfe88f7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:29 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/Meter.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyAudioMon/Meter.vcproj.vspscc diff --git a/IvyAudioMon/Meter.vcproj.vspscc b/IvyAudioMon/Meter.vcproj.vspscc new file mode 100644 index 0000000..feffdec --- /dev/null +++ b/IvyAudioMon/Meter.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From ed8f28e552ce1135a631ce78054124acb48d2df8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:32 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/MeterDlg.cpp | 358 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 IvyAudioMon/MeterDlg.cpp diff --git a/IvyAudioMon/MeterDlg.cpp b/IvyAudioMon/MeterDlg.cpp new file mode 100644 index 0000000..2962d7b --- /dev/null +++ b/IvyAudioMon/MeterDlg.cpp @@ -0,0 +1,358 @@ +// MeterDlg.cpp : implementation file +// + +#include "stdafx.h" +#include // abs, __max +#include +#include "Meter.h" +#include "MeterDlg.h" +#include "ParseCmdLine.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif +const char * CONVSTR( const CString& str ) +{ +#ifdef UNDER_CE + + static char buffer[4096]; + int len = str.GetLength(); + buffer[len] = '\0'; + if ( len ) + { + int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL ); + if ( err == 0 ) + TRACE(TEXT("Error converting chars %d\n"),GetLastError()); + } + return buffer; +#else + return (LPCSTR) str; +#endif + +} +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMeterDlg dialog + +CMeterDlg::CMeterDlg(CWnd* pParent /*=NULL*/) + : CDialog(CMeterDlg::IDD, pParent) + , m_busnumber(_T("")) +{ + //{{AFX_DATA_INIT(CMeterDlg) + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CMeterDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CMeterDlg) + DDX_Control(pDX, IDC_PROGRESS, m_ctrlProgress); + DDX_Control(pDX, IDC_PEEK, m_ctrlPeekValue); + DDX_Text(pDX, IDC_BUS, m_busnumber); + //}}AFX_DATA_MAP + + +} + +BEGIN_MESSAGE_MAP(CMeterDlg, CDialog) + //{{AFX_MSG_MAP(CMeterDlg) + ON_WM_DESTROY() + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMeterDlg message handlers + +BOOL CMeterDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + m_ctrlProgress.SetRange( 0 , 255 ); + m_ctrlPeekValue.SetRange( 0 , 255 ); + + nb_buffers = 0; + peekValue = 0.0; + lastValue = 0.0; + m_seuil = 15.0; + + openWaveDev(); + + // parse command Line Info + ParseCmdLine cmd; + AfxGetApp()->ParseCommandLine( cmd ); + + // Set Argument from Command Line + m_busnumber = cmd.m_busNumber; + bus = new Ivy( "IvyAudioMon","IvyAudioMon Ready",this,FALSE); + +// bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); + + // force bus start in case of start + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); + bus->start(CONVSTR(m_busnumber)); + + + VERIFY(this->UpdateData(FALSE)); + + return TRUE; // return TRUE unless you set the focus to a control +} +void CMeterDlg::OnApplicationConnected(IvyApplication *app) +{ +// TRACE( "Application: %s ready",(LPCSTR)(app->GetName()) ); +} +void CMeterDlg::OnApplicationDisconnected(IvyApplication *app) +{ +// TRACE( "Application: %s bye",(LPCSTR)(app->GetName()) ); +} +void CMeterDlg::OnOK() +{ + VERIFY(this->UpdateData(TRUE)); + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); + if ( m_busnumber.FindOneOf(":") ) + { + bus->stop(); + bus->start(CONVSTR(m_busnumber)); + } + VERIFY(this->UpdateData(FALSE)); + + // Do not close on return key + return; + + // CDialog::OnOK(); // This will close the dialog and DoModal will return. +} + + +void CMeterDlg::OnDestroy() +{ + bus->stop(); + delete bus; + CDialog::OnDestroy(); +} + +void CMeterDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CMeterDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CMeterDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + + +/* +* Callback function when WAVE input buffer is full +*/ +void CALLBACK CMeterDlg::recordCallBack(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2) +{ + CMeterDlg* ctrl = (CMeterDlg*) dwInstance; + ctrl->recordCB( hWaveIn, uMsg, dwInstance, dwParam1, dwParam2 ); +} +void CALLBACK CMeterDlg::recordCB(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2) +{ + float lVal =0; + switch ( uMsg ) + { + case WIM_OPEN: + //TRACE("WIM_OPEN\n"); + break; + case WIM_DATA: + for ( DWORD i = 0; i < WaveHeader.dwBytesRecorded; i++ ) + lVal += ( signed char )WaveHeader.lpData[i]; + lVal /= WaveHeader.dwBytesRecorded ; + lVal += 127; + //TRACE("WIM_DATA %d %d %f\n",WaveHeader.dwBufferLength,WaveHeader.dwBytesRecorded,lVal); + nb_buffers++; + peekValue = max( peekValue, lVal ); + // moyenne sur 1 seconde + if ( nb_buffers*BUFSIZE > 8000 ) + { + nb_buffers = 0; + peekValue = lVal; + } + m_ctrlPeekValue.SetPos( peekValue ); + m_ctrlProgress.SetPos(lVal); + if ( lVal > m_seuil || lastValue > m_seuil ) + { + lastValue = lVal; + if ( lVal < m_seuil ) peekValue = lVal = 0.0; + bus->SendMsg("AudioMonitor Change value=%.2f peak=%.2f",lVal,peekValue); + } + if (waveInUnprepareHeader(hWaveIn, &WaveHeader,sizeof(WAVEHDR))) + { + //cerr << "WAVE unprepare input buffer error\n"; + //exit(1); + } + WaveHeader.dwFlags = 0; + + if (waveInPrepareHeader(hWaveIn, &WaveHeader,sizeof(WAVEHDR))) + { + } + if (waveInAddBuffer(hWaveIn, &WaveHeader,sizeof(WAVEHDR))) + { + } + break; + case WIM_CLOSE: + //TRACE("WIM_OPEN\n"); + break; + } +} +void CMeterDlg::openWaveDev() +{ + MMRESULT Rc; + WAVEFORMATEX PCMWaveFmtRecord; + + PCMWaveFmtRecord.wFormatTag = WAVE_FORMAT_PCM; + PCMWaveFmtRecord.nChannels = 1; + PCMWaveFmtRecord.nSamplesPerSec = 8000; + PCMWaveFmtRecord.wBitsPerSample = 8; + PCMWaveFmtRecord.nAvgBytesPerSec = PCMWaveFmtRecord.nSamplesPerSec + * PCMWaveFmtRecord.wBitsPerSample / 8; + PCMWaveFmtRecord.nBlockAlign = PCMWaveFmtRecord.nChannels * + PCMWaveFmtRecord.wBitsPerSample / 8; + + Rc = waveInOpen(&hWaveIn, WAVE_MAPPER, &PCMWaveFmtRecord, (DWORD_PTR)CMeterDlg::recordCallBack, (DWORD_PTR)this, CALLBACK_FUNCTION); + if (Rc) + { + } + WaveHeader.dwBufferLength = BUFSIZE; + WaveHeader.lpData = (LPSTR) (inbuf); + WaveHeader.dwFlags = WaveHeader.reserved = 0; + WaveHeader.dwLoops = 0; + WaveHeader.lpNext = 0; + Rc = waveInPrepareHeader(hWaveIn, &WaveHeader, + sizeof(WAVEHDR)); + if (Rc) + { + waveInClose(hWaveIn); + } + Rc = waveInAddBuffer(hWaveIn, &WaveHeader, + sizeof(WAVEHDR)); + if (Rc) + { + waveInClose(hWaveIn); + } + + + ResetEvent(recordDone); + + if (Rc = waveInStart(hWaveIn)) + { + waveInClose(hWaveIn); + } +} + -- cgit v1.1 From a61d8acda8ad5b3a5ec4971e8d4d5a42be459d35 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:33 +0000 Subject: Utilisateur : Fcolin Date : 27/02/04 Heure : 15:59 Archivé dans $/Bus/IvyAudioMon Commentaire: (vss 2) --- IvyAudioMon/MeterDlg.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/IvyAudioMon/MeterDlg.cpp b/IvyAudioMon/MeterDlg.cpp index 2962d7b..1039fee 100644 --- a/IvyAudioMon/MeterDlg.cpp +++ b/IvyAudioMon/MeterDlg.cpp @@ -13,6 +13,8 @@ #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif + + const char * CONVSTR( const CString& str ) { #ifdef UNDER_CE @@ -264,18 +266,22 @@ void CALLBACK CMeterDlg::recordCallBack(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInst } void CALLBACK CMeterDlg::recordCB(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2) { + WAVEHDR *waveHeader = (WAVEHDR*)dwParam1; float lVal =0; switch ( uMsg ) { case WIM_OPEN: - //TRACE("WIM_OPEN\n"); + TRACE("WIM_OPEN\n"); break; case WIM_DATA: - for ( DWORD i = 0; i < WaveHeader.dwBytesRecorded; i++ ) - lVal += ( signed char )WaveHeader.lpData[i]; - lVal /= WaveHeader.dwBytesRecorded ; - lVal += 127; - //TRACE("WIM_DATA %d %d %f\n",WaveHeader.dwBufferLength,WaveHeader.dwBytesRecorded,lVal); + for ( DWORD i = 0; i < waveHeader->dwBytesRecorded; i++ ) + { + //TRACE("WIM_DATA[%d]= %02x\n",i,waveHeader->lpData[i]); + lVal += abs( (float)( unsigned char )waveHeader->lpData[i] - 127.0f) ; + } + lVal /= waveHeader->dwBytesRecorded ; + lVal *= 2; + TRACE("WIM_DATA %d %d %f\n",waveHeader->dwBufferLength,waveHeader->dwBytesRecorded,lVal); nb_buffers++; peekValue = max( peekValue, lVal ); // moyenne sur 1 seconde @@ -307,7 +313,7 @@ void CALLBACK CMeterDlg::recordCB(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, } break; case WIM_CLOSE: - //TRACE("WIM_OPEN\n"); + TRACE("WIM_CLOSE\n"); break; } } -- cgit v1.1 From 5b5e79e1137dd6875fa434d4a47fcb457273de47 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:35 +0000 Subject: Utilisateur : Fcolin Date : 28/09/04 Heure : 15:06 Archivé dans $/Bus/IvyAudioMon Commentaire: (vss 3) --- IvyAudioMon/MeterDlg.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyAudioMon/MeterDlg.cpp b/IvyAudioMon/MeterDlg.cpp index 1039fee..1749e28 100644 --- a/IvyAudioMon/MeterDlg.cpp +++ b/IvyAudioMon/MeterDlg.cpp @@ -157,6 +157,7 @@ BOOL CMeterDlg::OnInitDialog() AfxGetApp()->ParseCommandLine( cmd ); // Set Argument from Command Line + m_seuil = cmd.m_seuil; m_busnumber = cmd.m_busNumber; bus = new Ivy( "IvyAudioMon","IvyAudioMon Ready",this,FALSE); -- cgit v1.1 From 2c43bba01362d0ff098b5f5b62e48fb02dd01c4a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:37 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/MeterDlg.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 IvyAudioMon/MeterDlg.h diff --git a/IvyAudioMon/MeterDlg.h b/IvyAudioMon/MeterDlg.h new file mode 100644 index 0000000..dcd007d --- /dev/null +++ b/IvyAudioMon/MeterDlg.h @@ -0,0 +1,80 @@ +// MeterDlg.h : header file +// + +#include "afxcmn.h" +#if !defined(AFX_METERDLG_H__3A48D837_F4B7_11D1_9F80_006008984DF6__INCLUDED_) +#define AFX_METERDLG_H__3A48D837_F4B7_11D1_9F80_006008984DF6__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +#include "Ivy.h" + +#define BUFSIZE 800 // size of audio in buffer + +///////////////////////////////////////////////////////////////////////////// +// CMeterDlg dialog + +class CMeterDlg : public CDialog, public IvyApplicationCallback +{ +// Construction +public: + CMeterDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CMeterDlg) + enum { IDD = IDD_METER_DIALOG }; + CProgressCtrl m_ctrlProgress; + CProgressCtrl m_ctrlPeekValue; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMeterDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CMeterDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnDestroy(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + virtual void OnOK( ); + + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +private: + + + void openWaveDev(); + static void CALLBACK recordCallBack(HWAVEIN hWaveIn, UINT uMsg, DWORD p1, DWORD p2, DWORD p3); + void CALLBACK recordCB(HWAVEIN hWaveIn, UINT uMsg, DWORD p1, DWORD p2, DWORD p3); + HANDLE recordDone; // event of audio input completion + HWAVEIN hWaveIn; // onput WAVE audio device handle + char inbuf[BUFSIZE]; // WAVE input data buffer area + WAVEHDR WaveHeader; + long nb_buffers; + float peekValue; + float lastValue; + float m_seuil; + + Ivy *bus; + void WriteMessage(const char * format, ...); + void OnApplicationConnected( IvyApplication *app ); + void OnApplicationDisconnected( IvyApplication *app ); + void OnDirectMessage( IvyApplication *app, int id, const char *arg ); + void SendIvyFile( const CString & strFileName ); + CString m_busnumber; +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_METERDLG_H__3A48D837_F4B7_11D1_9F80_006008984DF6__INCLUDED_) -- cgit v1.1 From 4ef8a85b4cac02fc903983047e31903431afbae7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:40 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/ParseCmdLine.cpp | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 IvyAudioMon/ParseCmdLine.cpp diff --git a/IvyAudioMon/ParseCmdLine.cpp b/IvyAudioMon/ParseCmdLine.cpp new file mode 100644 index 0000000..fc6a1d8 --- /dev/null +++ b/IvyAudioMon/ParseCmdLine.cpp @@ -0,0 +1,76 @@ +// ParseCmdLine.cpp: implementation of the ParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" + +#include "ParseCmdLine.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +ParseCmdLine::ParseCmdLine() +{ + m_start = TRUE; + m_busNumber = ""; + m_prefix = "IvyFileMon "; + m_directory = "c:\\anoto_log\\strokes"; + m_extent = "*.txt"; +} + +ParseCmdLine::~ParseCmdLine() +{ + +} + +void ParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +{ + if (bFlag) + { + ParseParamFlag(lpszParam); + } + else + ParseParamNotFlag(lpszParam); + +} + +void ParseCmdLine::ParseParamFlag(LPCTSTR pszParam) +{ + + if (lstrcmpi(pszParam, TEXT("start")) == 0) + m_start = TRUE; + else if (lstrcmpi(pszParam, TEXT("bus")) == 0) + m_shellCommand = BusNumber; + else if (lstrcmpi(pszParam, TEXT("directory")) == 0) + m_shellCommand = Directory; + else if (lstrcmpi(pszParam, TEXT("prefix")) == 0) + m_shellCommand = Prefix; + else if (lstrcmpi(pszParam, TEXT("extent")) == 0) + m_shellCommand = Extent; +} + +void ParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) +{ + switch ( m_shellCommand ) + { + case BusNumber: + m_busNumber = pszParam; + break; + case Directory: + m_directory = pszParam; + break; + case Prefix: + m_prefix = pszParam; + break; + case Extent: + m_extent = pszParam; + break; + } +} -- cgit v1.1 From 4f558e7603406f501857a590355e51d8e43b2361 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:41 +0000 Subject: Utilisateur : Fcolin Date : 28/09/04 Heure : 15:06 Archivé dans $/Bus/IvyAudioMon Commentaire: (vss 2) --- IvyAudioMon/ParseCmdLine.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/IvyAudioMon/ParseCmdLine.cpp b/IvyAudioMon/ParseCmdLine.cpp index fc6a1d8..59a27ce 100644 --- a/IvyAudioMon/ParseCmdLine.cpp +++ b/IvyAudioMon/ParseCmdLine.cpp @@ -20,8 +20,8 @@ ParseCmdLine::ParseCmdLine() { m_start = TRUE; m_busNumber = ""; - m_prefix = "IvyFileMon "; - m_directory = "c:\\anoto_log\\strokes"; + m_prefix = "IvyAudioMon "; + m_seuil = 15.0; m_extent = "*.txt"; } @@ -48,8 +48,8 @@ void ParseCmdLine::ParseParamFlag(LPCTSTR pszParam) m_start = TRUE; else if (lstrcmpi(pszParam, TEXT("bus")) == 0) m_shellCommand = BusNumber; - else if (lstrcmpi(pszParam, TEXT("directory")) == 0) - m_shellCommand = Directory; + else if (lstrcmpi(pszParam, TEXT("seuil")) == 0) + m_shellCommand = Seuil; else if (lstrcmpi(pszParam, TEXT("prefix")) == 0) m_shellCommand = Prefix; else if (lstrcmpi(pszParam, TEXT("extent")) == 0) @@ -63,8 +63,8 @@ void ParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) case BusNumber: m_busNumber = pszParam; break; - case Directory: - m_directory = pszParam; + case Seuil: + m_seuil = atof(pszParam); break; case Prefix: m_prefix = pszParam; -- cgit v1.1 From 49fddb5226f5660bba654509c70135a98b5785ee Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:44 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/ParseCmdLine.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 IvyAudioMon/ParseCmdLine.h diff --git a/IvyAudioMon/ParseCmdLine.h b/IvyAudioMon/ParseCmdLine.h new file mode 100644 index 0000000..3b9a272 --- /dev/null +++ b/IvyAudioMon/ParseCmdLine.h @@ -0,0 +1,37 @@ +// TestParseCmdLine.h: interface for the TestParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) +#define AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class ParseCmdLine : public CCommandLineInfo +{ +public: + + BOOL m_start; + CString m_busNumber; + CString m_directory; + CString m_extent; + CString m_prefix; + virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); + ParseCmdLine(); + virtual ~ParseCmdLine(); + enum { + BusNumber, + Start, + Directory, + Extent, + Prefix + }m_shellCommand; + +protected: + void ParseParamNotFlag(LPCTSTR pszParam); + void ParseParamFlag(LPCTSTR pszParam); +}; + +#endif // !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) -- cgit v1.1 From cd028d5ff44a6ae0951d691bbb76a7e79877d716 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:45 +0000 Subject: Utilisateur : Fcolin Date : 28/09/04 Heure : 15:06 Archivé dans $/Bus/IvyAudioMon Commentaire: (vss 2) --- IvyAudioMon/ParseCmdLine.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyAudioMon/ParseCmdLine.h b/IvyAudioMon/ParseCmdLine.h index 3b9a272..281491e 100644 --- a/IvyAudioMon/ParseCmdLine.h +++ b/IvyAudioMon/ParseCmdLine.h @@ -15,7 +15,7 @@ public: BOOL m_start; CString m_busNumber; - CString m_directory; + float m_seuil; CString m_extent; CString m_prefix; virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); @@ -24,7 +24,7 @@ public: enum { BusNumber, Start, - Directory, + Seuil, Extent, Prefix }m_shellCommand; -- cgit v1.1 From 44354b43eeae68c37f6624bf9cadb00bf67d62c7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:47 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/StdAfx.cpp | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 IvyAudioMon/StdAfx.cpp diff --git a/IvyAudioMon/StdAfx.cpp b/IvyAudioMon/StdAfx.cpp new file mode 100644 index 0000000..c6c47aa --- /dev/null +++ b/IvyAudioMon/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Meter.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + -- cgit v1.1 From f522a11e9ef14323b94b3a878b551fbe9162bc98 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:49 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/StdAfx.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 IvyAudioMon/StdAfx.h diff --git a/IvyAudioMon/StdAfx.h b/IvyAudioMon/StdAfx.h new file mode 100644 index 0000000..dbe11c7 --- /dev/null +++ b/IvyAudioMon/StdAfx.h @@ -0,0 +1,28 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__3A48D839_F4B7_11D1_9F80_006008984DF6__INCLUDED_) +#define AFX_STDAFX_H__3A48D839_F4B7_11D1_9F80_006008984DF6__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +#include + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__3A48D839_F4B7_11D1_9F80_006008984DF6__INCLUDED_) -- cgit v1.1 From 735e99f8e3a0c0bf7c029bc019c5990294405661 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:51 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/res/Meter.ico | Bin 0 -> 318 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyAudioMon/res/Meter.ico diff --git a/IvyAudioMon/res/Meter.ico b/IvyAudioMon/res/Meter.ico new file mode 100644 index 0000000..44e26f0 Binary files /dev/null and b/IvyAudioMon/res/Meter.ico differ -- cgit v1.1 From 9075a0fbc106fc419bdcc1eb24fb73f72632a097 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:53 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/res/Meter.rc2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 IvyAudioMon/res/Meter.rc2 diff --git a/IvyAudioMon/res/Meter.rc2 b/IvyAudioMon/res/Meter.rc2 new file mode 100644 index 0000000..357866f --- /dev/null +++ b/IvyAudioMon/res/Meter.rc2 @@ -0,0 +1,13 @@ +// +// METER.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 5035520a05d69490df1ba28f45fb0736dd7bf908 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:55 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:06 Créé Commentaire: (vss 1) --- IvyAudioMon/resource.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 IvyAudioMon/resource.h diff --git a/IvyAudioMon/resource.h b/IvyAudioMon/resource.h new file mode 100644 index 0000000..4039cb3 --- /dev/null +++ b/IvyAudioMon/resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Meter.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_METER_DIALOG 102 +#define IDS_FMTNUMMIXERS 102 +#define IDS_FMTCAPS 103 +#define IDS_FMTNAMES 104 +#define IDS_NOCONTROL 105 +#define IDR_MAINFRAME 128 +#define IDC_PROGRESS 1000 +#define IDC_EDIT1 1001 +#define IDC_PEEK 1001 +#define IDC_EDIT2 1002 +#define IDC_BUS 1002 +#define IDC_EDIT3 1003 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1005 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif -- cgit v1.1 From 6a92ee53032142fee0452b9a830af6b6ec927ebb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:57 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/InstIvyCursor/InstIvyCursor.vdproj | 797 +++++++++++++++++++++++++++ 1 file changed, 797 insertions(+) create mode 100644 IvyCursor/InstIvyCursor/InstIvyCursor.vdproj diff --git a/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj b/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj new file mode 100644 index 0000000..69a3248 --- /dev/null +++ b/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj @@ -0,0 +1,797 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:Install" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_4E16B1233013473896B5B14884B766C6" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5A688E16C8FB4F969BAAF36ACF9DE131" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8E374943E56221993853F7D9051D7B42" + "OwnerKey" = "8:_4E16B1233013473896B5B14884B766C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CD5F4F48D63B4317962CABF981642C29" + "OwnerKey" = "8:_4E16B1233013473896B5B14884B766C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CE3A08225274427BA9D9B77094DAD99A" + "OwnerKey" = "8:_4E16B1233013473896B5B14884B766C6" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvyCursor.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyCursor.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_8E374943E56221993853F7D9051D7B42" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_4032CB2519934BECBD77C58A883B04AC" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_4032CB2519934BECBD77C58A883B04AC" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_664713DFF3804FDBAB8E117608A0FABC" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_A192F2DB771043B083A2C45490FA442F" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:IvyCursor" + "ProductCode" = "8:{0A313183-7BCE-4AD0-B5BB-FD4A32104B32}" + "PackageCode" = "8:{60E055D3-3D7E-4515-9203-37EB79A12EF3}" + "UpgradeCode" = "8:{B9048C4D-4B78-4498-8634-FA5726303A10}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:IvyCursor" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_F6740CA6BCA84BB49508BADA0BBCBBBF" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_C20FFB7B3DF34F7280C6464E7AB3F96F" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_79D7593CDD5549DC9DD26DC610419BB0" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_F5467127899F4382B8608654B9BD162D" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + "{478F747B-8505-45D1-9AAE-8C3B645C26E3}:_1DD319DEBF174F32B022569E0FDC8231" + { + "Name" = "8:IvyCursor" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_5A688E16C8FB4F969BAAF36ACF9DE131" + "Folder" = "8:_A192F2DB771043B083A2C45490FA442F" + "WorkingFolder" = "8:_4032CB2519934BECBD77C58A883B04AC" + "Icon" = "8:" + "Feature" = "8:" + } + "{478F747B-8505-45D1-9AAE-8C3B645C26E3}:_FFDAE000C8814769B666A79E1A1874E9" + { + "Name" = "8:IvyCursor" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_5A688E16C8FB4F969BAAF36ACF9DE131" + "Folder" = "8:_664713DFF3804FDBAB8E117608A0FABC" + "WorkingFolder" = "8:_4032CB2519934BECBD77C58A883B04AC" + "Icon" = "8:" + "Feature" = "8:" + } + } + "UserInterface" + { + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_0636F50D084F44628ABC60E0B92F6482" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9DF06B29188C410D86056403380FE6D0" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_18CABE436CC84533888CCE0E7AFABFC7" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_4BBF6ECCF3FF4CCE9DF57D69257EACFE" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_2A026925638547F882E2143EB6CBFB47" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BA40ECBCA4F74472B6B4A2B850EF0B58" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_CA4454662068449AB70A51A0D6B62F45" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_D88802A5F2B14E358204211F16EB4FAE" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_6987FD35A7A4427285F47DF69B3F46AC" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_0B3BD974222A492098588B27DB307CDA" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_BD34D23EE7874F2E8422867476425191" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_CF0CE67F9DDB4AF5A48F2F086BAB4C42" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_D9A2328703204827A30713BEAC6CF403" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F15ADAF16F724C85916FA31593F72F8D" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_F12D846FFE1A4DC9B3126FA263DFD826" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_30F0F9F2A1834E0BA3D83DBD6F9BFAE9" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_53970AAC5A024A3681F861F4BE2D650B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A92D8986A08B4691BE0869927B5BCF43" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CD5F4F48D63B4317962CABF981642C29" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CE3A08225274427BA9D9B77094DAD99A" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_4E16B1233013473896B5B14884B766C6" + { + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4032CB2519934BECBD77C58A883B04AC" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_5A688E16C8FB4F969BAAF36ACF9DE131" + { + "SourcePath" = "8:..\\Release\\IvyCursor.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4032CB2519934BECBD77C58A883B04AC" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From 80fcedcab6fb93bb8f3c46a1a5414b6b4589a9f1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:06:59 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/InstIvyCursor/InstIvyCursor.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyCursor/InstIvyCursor/InstIvyCursor.vdproj.vspscc diff --git a/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj.vspscc b/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj.vspscc new file mode 100644 index 0000000..326225f --- /dev/null +++ b/IvyCursor/InstIvyCursor/InstIvyCursor.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:InstIvyCursor" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From ceaf8c0bad03cbfcda148d13150264848a9b2ce1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:02 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.cpp | 325 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 325 insertions(+) create mode 100644 IvyCursor/IvyCursor.cpp diff --git a/IvyCursor/IvyCursor.cpp b/IvyCursor/IvyCursor.cpp new file mode 100644 index 0000000..8b5e48e --- /dev/null +++ b/IvyCursor/IvyCursor.cpp @@ -0,0 +1,325 @@ +// IvyCursor.cpp : définit le point d'entrée pour l'application. +// + +#include "stdafx.h" +#include +#include +#include +#include "Ivy.h" +#include "IvyCursor.h" +#define MAX_LOADSTRING 100 + +#define WM_ICONTRAY_NOTIFY (WM_USER+150) +// Variables globales : +HINSTANCE hInst; // instance actuelle +TCHAR szTitle[MAX_LOADSTRING]; // Le texte de la barre de titre +TCHAR szWindowClass[MAX_LOADSTRING]; // le nom de la classe de fenêtre principale +HMENU hMenu; // handle menu icontray +HMENU hmenuTrackPopup; + +// Ivy +Ivy* ivy; + +// Pré-déclarations des fonctions incluses dans ce module de code : +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); + + +void ivyCursorMouve(IvyApplication *app, void *user_data, int argc, const char **argv) +{ + UINT nb; + INPUT Inputs; + int x,y; + double xf = atof( *argv++ ); + double yf = atof( *argv++ ); + x = (int)(65535 * xf / 100.0 + 0.5); + y = (int)(65535 * yf / 100.0 + 0.5); + Inputs.type = INPUT_MOUSE; + Inputs.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE; + Inputs.mi.time = 0; // system provide it + Inputs.mi.dx = x; + Inputs.mi.dy = y; + nb = SendInput( 1, &Inputs, sizeof(INPUT)); + + if ( nb != 1 ) + { + _RPT3(_CRT_WARN,"ivyCursorMouve can move to x=%d y=%d error=%d\n",x,y,GetLastError()); + } +} +void ivyCursorClick(IvyApplication *app, void *user_data, int argc, const char **argv) +{ + UINT nb; + INPUT Inputs[2]; + int x,y; + double xf = atof( *argv++ ); + double yf = atof( *argv++ ); + x = (int)(65535 * xf / 100.0 + 0.5); + y = (int)(65535 * yf / 100.0 + 0.5); + Inputs[0].type = INPUT_MOUSE; + Inputs[0].mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE; + Inputs[0].mi.time = 0; // system provide it + Inputs[0].mi.dx = x; + Inputs[0].mi.dy = y; + Inputs[1].type = INPUT_MOUSE; + Inputs[1].mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE; + Inputs[1].mi.time = 0; // system provide it + Inputs[1].mi.dx = x; + Inputs[1].mi.dy = y; + nb = SendInput( 2, Inputs, sizeof(INPUT)); + + if ( nb != 2 ) + { + _RPT3(_CRT_WARN,"ivyCursorClick can click to x=%d y=%d error=%d\n",x,y,GetLastError()); + } +} +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + MSG msg; + // Initialise les chaînes globales + LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadString(hInstance, IDC_IVYCURSOR, szWindowClass, MAX_LOADSTRING); + hMenu = LoadMenu(hInstance, MAKEINTRESOURCE( IDR_MENU1 ) ); + + // TrackPopupMenu cannot display the menu bar so get + // a handle to the first shortcut menu. + + hmenuTrackPopup = GetSubMenu(hMenu, 0); + + if ( hmenuTrackPopup == NULL ) + { + return FALSE; + } + MyRegisterClass(hInstance); + + // Effectue l'initialisation de l'application : + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + // Initoiailize ivy + ivy = new Ivy("IvyCursor", "IvyCursor Ready", 0, FALSE ); + ivy->BindMsg(BUS_CALLBACK(ivyCursorMouve,0),"Cigale SetCursorPosition x=([0-9.]+) y=([0-9.]+)"); + ivy->BindMsg(BUS_CALLBACK(ivyCursorClick,0),"Cigale CursorSelectEvent x=([0-9.]+) y=([0-9.]+)"); + ivy->start( 0 ); + + // Boucle de messages principale : + while (GetMessage(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + return (int) msg.wParam; +} + + + +// +// FONCTION : MyRegisterClass() +// +// BUT : inscrit la classe de fenêtre. +// +// COMMENTAIRES : +// +// Cette fonction et son utilisation sont nécessaires uniquement si vous souhaitez que ce code +// soit compatible avec les systèmes Win32 avant la fonction 'RegisterClassEx' +// qui a été ajoutée à Windows 95. Il est important d'appeler cette fonction +// afin que l'application dispose des petites icônes correctes qui lui sont +// associées. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = (WNDPROC)WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_IVYCURSOR); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = NULL; + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); + + return RegisterClassEx(&wcex); +} + +// +// FONCTION : InitInstance(HANDLE, int) +// +// BUT : enregistre le handle de l'instance et crée une fenêtre principale +// +// COMMENTAIRES : +// +// Dans cette fonction, nous enregistrons le handle de l'instance dans une variable globale, puis +// créons et affichons la fenêtre principale du programme. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + HWND hWnd; + NOTIFYICONDATA icodata; + + + hInst = hInstance; // Stocke le handle d'instance dans la variable globale + + hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, HWND_MESSAGE, NULL, hInstance, NULL); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + icodata.cbSize = sizeof(NOTIFYICONDATA); + icodata.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP ; + icodata.hWnd = hWnd; + icodata.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_IVYCURSOR); + icodata.uID = 0; + icodata.uVersion = NOTIFYICON_VERSION; + icodata.uCallbackMessage = WM_ICONTRAY_NOTIFY; + strcpy ( icodata.szTip, "IvyCursor Event redirector"); + + if (! Shell_NotifyIcon( NIM_ADD, &icodata) ) + { + return FALSE; + } + if (! Shell_NotifyIcon( NIM_SETVERSION, &icodata) ) + { + return FALSE; + } + icodata.uFlags = NIF_INFO; + // Info + icodata.dwInfoFlags = NIIF_INFO; + strcpy ( icodata.szInfoTitle, "IvyCursor Event redirector"); + strcpy (icodata.szInfo , "IvyCursor Event redirector" ); + icodata.uTimeout = 10000; // 10 seconds + if (! Shell_NotifyIcon( NIM_MODIFY, &icodata) ) + { + return FALSE; + } + + return TRUE; +} +void RemoveTrayIcon(HWND hWnd) +{ + NOTIFYICONDATA icodata; + icodata.cbSize = sizeof( icodata ); + icodata.uFlags = 0; + icodata.hWnd = hWnd; + icodata.uID = 0; + Shell_NotifyIcon( NIM_DELETE, &icodata); +} +void ReturnFocus(HWND hWnd) +{ + NOTIFYICONDATA icodata; + icodata.cbSize = sizeof( icodata ); + icodata.uFlags = 0; + icodata.hWnd = hWnd; + icodata.uID = 0; + Shell_NotifyIcon( NIM_SETFOCUS, &icodata); +} +void Quitting( HWND hWnd ) +{ + RemoveTrayIcon(hWnd); + DestroyMenu(hMenu); + DestroyWindow(hWnd); + ivy->stop(); +} +// +// FONCTION : WndProc(HWND, unsigned, WORD, LONG) +// +// BUT : traite les messages pour la fenêtre principale. +// +// WM_COMMAND - traite le menu de l'application +// WM_PAINT - dessine la fenêtre principale +// WM_DESTROY - génère un message d'arrêt et retourne +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + int xPos,yPos; + POINT point; + + switch (message) + { + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + // Analyse les sélections de menu : + switch (wmId) + { + case IDM_ABOUT: + //DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); + break; + case IDM_EXIT: + case ID_QUIT: + Quitting(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + case WM_CONTEXTMENU: + // Display the shortcut menu. Track the right mouse + // button. + xPos = LOWORD(lParam); + yPos = HIWORD(lParam); + + TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_RIGHTBUTTON, + xPos, yPos, 0, hWnd, NULL); + PostMessage(hWnd, WM_NULL, 0, 0); + + break; + case WM_ICONTRAY_NOTIFY: + switch ( lParam ) + { + case WM_LBUTTONDOWN: + break; + case WM_RBUTTONDOWN: + GetCursorPos(&point); + TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_RIGHTBUTTON, + point.x, point.y, 0, hWnd, NULL); + PostMessage(hWnd, WM_NULL, 0, 0); + break; + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Gestionnaire de messages pour la boîte de dialogue À propos de. +LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG: + return TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return TRUE; + } + break; + } + return FALSE; +} -- cgit v1.1 From 78bce681874a22f51f4fd2a073dd8c573f6f4679 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:03 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.h | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 IvyCursor/IvyCursor.h diff --git a/IvyCursor/IvyCursor.h b/IvyCursor/IvyCursor.h new file mode 100644 index 0000000..e60f2eb --- /dev/null +++ b/IvyCursor/IvyCursor.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" -- cgit v1.1 From f24775e119a1f795ed5ad73492872af3354dc31d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:05 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.ico | Bin 0 -> 22534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyCursor/IvyCursor.ico diff --git a/IvyCursor/IvyCursor.ico b/IvyCursor/IvyCursor.ico new file mode 100644 index 0000000..d0d1344 Binary files /dev/null and b/IvyCursor/IvyCursor.ico differ -- cgit v1.1 From 20c45735f86d24adcc86468d72802052a966d6f7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:07 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.rc | 115 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 IvyCursor/IvyCursor.rc diff --git a/IvyCursor/IvyCursor.rc b/IvyCursor/IvyCursor.rc new file mode 100644 index 0000000..9d49167 --- /dev/null +++ b/IvyCursor/IvyCursor.rc @@ -0,0 +1,115 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Français (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_IVYCURSOR ICON "IvyCursor.ico" +IDI_SMALL ICON "small.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDC_IVYCURSOR ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MENU1 MENU +BEGIN + POPUP "Menu" + BEGIN + MENUITEM "Quit", ID_QUIT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_APP_TITLE "IvyCursor" + IDC_IVYCURSOR "IVYCURSOR" +END + +#endif // Français (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From dad5d0c8de97308fb0cca725a8f49a128fc23b81 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:10 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.sln | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 IvyCursor/IvyCursor.sln diff --git a/IvyCursor/IvyCursor.sln b/IvyCursor/IvyCursor.sln new file mode 100644 index 0000000..e8e53cb --- /dev/null +++ b/IvyCursor/IvyCursor.sln @@ -0,0 +1,55 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyCursor", "IvyCursor.vcproj", "{5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}" + ProjectSection(ProjectDependencies) = postProject + {84E0039A-6721-4B18-9792-E9AE4274AC0E} = {84E0039A-6721-4B18-9792-E9AE4274AC0E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "..\Ivy\Ivy.vcproj", "{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "InstIvyCursor\InstIvyCursor.vdproj", "{465D12EC-FE99-47FE-AF2A-17BB43672F22}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 4 + SccProjectUniqueName0 = ..\\Ivy\\Ivy.vcproj + SccProjectName0 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA + SccLocalPath0 = ..\\Ivy + CanCheckoutShared = false + SccLocalPath1 = . + CanCheckoutShared = false + SolutionUniqueID = {414FACD5-03EC-415D-B4B1-E8EA51BC621B} + SccProjectUniqueName2 = InstIvyCursor\\InstIvyCursor.vdproj + SccLocalPath2 = . + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection2 = InstIvyCursor\\ + SccProjectUniqueName3 = IvyCursor.vcproj + SccLocalPath3 = . + CanCheckoutShared = false + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}.Debug.ActiveCfg = Debug|Win32 + {5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}.Debug.Build.0 = Debug|Win32 + {5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}.Release.ActiveCfg = Release|Win32 + {5353F53D-8047-42AB-A3E1-73E6EAAFBBE6}.Release.Build.0 = Release|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Debug.ActiveCfg = Debug|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Debug.Build.0 = Debug|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Release.ActiveCfg = Release|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Release.Build.0 = Release|Win32 + {465D12EC-FE99-47FE-AF2A-17BB43672F22}.Debug.ActiveCfg = Debug + {465D12EC-FE99-47FE-AF2A-17BB43672F22}.Debug.Build.0 = Debug + {465D12EC-FE99-47FE-AF2A-17BB43672F22}.Release.ActiveCfg = Release + {465D12EC-FE99-47FE-AF2A-17BB43672F22}.Release.Build.0 = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From d9531d1d516310294d885d9b6ff060df5cbefc9c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:11 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.vcproj | 177 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 IvyCursor/IvyCursor.vcproj diff --git a/IvyCursor/IvyCursor.vcproj b/IvyCursor/IvyCursor.vcproj new file mode 100644 index 0000000..673c7df --- /dev/null +++ b/IvyCursor/IvyCursor.vcproj @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 8c54db1c78f6dddd8f61815d9dd2d7582f9d61fe Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:13 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyCursor/IvyCursor.vcproj.vspscc diff --git a/IvyCursor/IvyCursor.vcproj.vspscc b/IvyCursor/IvyCursor.vcproj.vspscc new file mode 100644 index 0000000..feffdec --- /dev/null +++ b/IvyCursor/IvyCursor.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From 5de6f41da98bd820c7246d2ba24457843311996e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:16 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/IvyCursor.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyCursor/IvyCursor.vssscc diff --git a/IvyCursor/IvyCursor.vssscc b/IvyCursor/IvyCursor.vssscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/IvyCursor/IvyCursor.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From f88e61e4e08912cee4ace34401f14ea1f0641496 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:17 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/ReadMe.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 IvyCursor/ReadMe.txt diff --git a/IvyCursor/ReadMe.txt b/IvyCursor/ReadMe.txt new file mode 100644 index 0000000..1d12090 --- /dev/null +++ b/IvyCursor/ReadMe.txt @@ -0,0 +1,53 @@ +======================================================================== + APPLICATION WIN32 : vue d'ensemble du projet IvyCursor +======================================================================== + +AppWizard a créé cette application IvyCursor pour vous. +Ce fichier contient un résumé du contenu de chacun des fichiers qui +constituent votre application IvyCursor. + + +IvyCursor.vcproj + Il s'agit du fichier projet principal pour les projets VC++ générés en utilisant un Assistant Application. + Il contient les informations sur la version de Visual C++ qui a généré le fichier et + les informations sur les plates-formes, les configurations et les fonctionnalités du projet sélectionnées avec + l'Assistant Application. + +IvyCursor.cpp + Il s'agit du fichier source principal de l'application . + +///////////////////////////////////////////////////////////////////////////// +AppWizard a créé les ressources suivantes : + +IvyCursor.rc + Il s'agit de la liste de toutes les ressources Microsoft Windows que le + programme utilise. Elle comprend les icônes, les bitmaps et les curseurs qui sont stockés + dans le sous-répertoire RES. Ce fichier peut être modifié directement dans Microsoft + Visual C++. + +Resource.h + Il s'agit du fichier d'en-tête standard, qui définit les nouveaux ID de ressources. + Microsoft Visual C++ lit et met à jour ce fichier. +IvyCursor.ico + Il s'agit d'un fichier icône, qui est utilisé comme icône de l'application (32x32). + Cette icône est incluse par le fichier de ressources principal IvyCursor.rc. + +small.ico + Il s'agit d'un fichier icône, qui contient une version plus petite (16x16) + de l'icône de l'application. Cette icône est incluse par le fichier de ressources + principal IvyCursor.rc. + +///////////////////////////////////////////////////////////////////////////// +Autres fichiers standard : + +StdAfx.h, StdAfx.cpp + Ces fichiers sont utilisés pour générer un fichier d'en-tête précompilé (PCH) + nommé IvyCursor.pch et un fichier de type précompilé nommé StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Autres remarques : + +AppWizard utilise des commentaires "TODO :" pour indiquer les parties du code source où vous +pouvez ajouter ou modifier du code. + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From d357c994470818a89e38034030e57c2ccfdcbf2d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:20 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/resource.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 IvyCursor/resource.h diff --git a/IvyCursor/resource.h b/IvyCursor/resource.h new file mode 100644 index 0000000..e2f7a7d --- /dev/null +++ b/IvyCursor/resource.h @@ -0,0 +1,28 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by IvyCursor.rc +// +#define IDC_MYICON 2 +#define IDD_IVYCURSOR_DIALOG 102 +#define IDS_APP_TITLE 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_IVYCURSOR 107 +#define IDI_SMALL 108 +#define IDC_IVYCURSOR 109 +#define IDR_MAINFRAME 128 +#define IDR_MENU1 129 +#define ID_QUIT 32771 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_NEXT_RESOURCE_VALUE 130 +#define _APS_NEXT_COMMAND_VALUE 32773 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif -- cgit v1.1 From 1afb7efd5823e35d109445cc4993e5ebc17bb2e3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:22 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/small.ico | Bin 0 -> 23558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyCursor/small.ico diff --git a/IvyCursor/small.ico b/IvyCursor/small.ico new file mode 100644 index 0000000..d551aa3 Binary files /dev/null and b/IvyCursor/small.ico differ -- cgit v1.1 From 706fe7b81ea6b9c1eac4b70d5ed84f6d55b45d0c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:24 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/stdafx.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 IvyCursor/stdafx.cpp diff --git a/IvyCursor/stdafx.cpp b/IvyCursor/stdafx.cpp new file mode 100644 index 0000000..2233343 --- /dev/null +++ b/IvyCursor/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : fichier source incluant simplement les fichiers Include standard +// IvyCursor.pch représente l'en-tête précompilé +// stdafx.obj contient les informations de type précompilées + +#include "stdafx.h" + +// TODO : faites référence aux en-têtes supplémentaires nécessaires dans STDAFX.H +// absents de ce fichier -- cgit v1.1 From 35b3479e10ff553bccc93d01293ad7fd2f7a3d24 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:26 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:09 Créé Commentaire: (vss 1) --- IvyCursor/stdafx.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 IvyCursor/stdafx.h diff --git a/IvyCursor/stdafx.h b/IvyCursor/stdafx.h new file mode 100644 index 0000000..5a1bba0 --- /dev/null +++ b/IvyCursor/stdafx.h @@ -0,0 +1,18 @@ +// stdafx.h : Fichier Include pour les fichiers Include système standard, +// ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment, +// et sont rarement modifiés +// + +#pragma once + + +#define WIN32_LEAN_AND_MEAN // Exclure les en-têtes Windows rarement utilisés +// Fichiers d'en-tête Windows : +#include +// Fichiers d'en-tête C RunTime +#include +#include +#include +#include + +// TODO : faites référence ici aux en-têtes supplémentaires nécessaires au programme -- cgit v1.1 From 5bb56f9993fa30197c6a93f83fa6cbea81e870c9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:28 +0000 Subject: Utilisateur : Fcolin Date : 13/12/06 Heure : 12:00 Créé Commentaire: (vss 1) --- IvyFileMon/C++/Bus/IvyFileMon/IvyFileMon.vsscc | Bin 0 -> 46 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyFileMon/C++/Bus/IvyFileMon/IvyFileMon.vsscc diff --git a/IvyFileMon/C++/Bus/IvyFileMon/IvyFileMon.vsscc b/IvyFileMon/C++/Bus/IvyFileMon/IvyFileMon.vsscc new file mode 100644 index 0000000..8fdac15 Binary files /dev/null and b/IvyFileMon/C++/Bus/IvyFileMon/IvyFileMon.vsscc differ -- cgit v1.1 From eb34526ff7c034a120096db157278184ff946913 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:29 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/DelayedDirectoryChangeHandler.cpp | 1414 ++++++++++++++++++++++++++ 1 file changed, 1414 insertions(+) create mode 100644 IvyFileMon/DelayedDirectoryChangeHandler.cpp diff --git a/IvyFileMon/DelayedDirectoryChangeHandler.cpp b/IvyFileMon/DelayedDirectoryChangeHandler.cpp new file mode 100644 index 0000000..1c4daf0 --- /dev/null +++ b/IvyFileMon/DelayedDirectoryChangeHandler.cpp @@ -0,0 +1,1414 @@ +// DelayedDirectoryChangeHandler.cpp: implementation of the CDelayedDirectoryChangeHandler2 class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "DirectoryChanges.h" +#include "DelayedDirectoryChangeHandler.h" +#include //for _beginthreadex + +#include // for PathMatchSpec +#pragma comment( lib, "shlwapi.lib") // function + + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +#define UWM_DELAYED_DIRECTORY_NOTIFICATION (WM_APP+1024) + + +HINSTANCE GetInstanceHandle() +{ + return (HINSTANCE)GetModuleHandle(NULL); + // ASSERT( AfxGetInstanceHandle() == (HINSTANCE)GetModuleHandle(NULL) ); <-- true for building .exe's + //NOTE: In Dll's using shared MFC, AfxGetInstanceHandle() != (HINSTANCE)GetModuleHandle(NULL)... + //don't know if this is the case for dll's using static MFC +} +static inline bool IsEmptyString(LPCTSTR sz) +{ + return (bool)(sz==NULL || *sz == 0); +} +/********************************************************* + PathMatchSpec() requires IE 4.0 or greater on NT... + if running on NT 4.0 w/ out IE 4.0, then uses this function instead. + + Based on code by Jack Handy: + http://www.codeproject.com/string/wildcmp.asp + + Changed slightly to match the PathMatchSpec signature, be unicode compliant & to ignore case by myself. + +*********************************************************/ + +#define _TESTING_WILDCMP_ONLY_ + +BOOL STDAPICALLTYPE wildcmp(LPCTSTR string, LPCTSTR wild ) +{ + const TCHAR *cp, *mp; + cp = mp = NULL; + + while ((*string) && (*wild != _T('*'))) + { + if ((_toupper(*wild) != _toupper(*string)) && (*wild != _T('?'))) + { + return FALSE; + } + wild++; + string++; + } + + while (*string) + { + if (*wild == _T('*')) + { + if (!*++wild) + { + return TRUE; + } + mp = wild; + cp = string+1; + } + else + if ((_toupper(*wild) == _toupper(*string)) || (*wild == _T('?'))) + { + wild++; + string++; + } + else + { + wild = mp; + string = cp++; + } + } + + while (*wild == _T('*')) + { + wild++; + } + return (!*wild)? TRUE : FALSE; +} + +////////////////////////////////////////////////////////////////////////// +// +//CDirChangeNotification member functions: +// +CDirChangeNotification::CDirChangeNotification(CDelayedDirectoryChangeHandler * pDelayedHandler, DWORD dwPartialPathOffset) +:m_pDelayedHandler( pDelayedHandler ) +,m_szFileName1(NULL) +,m_szFileName2(NULL) +,m_dwError(0UL) +,m_dwPartialPathOffset(dwPartialPathOffset) +{ + ASSERT( pDelayedHandler ); +} + +CDirChangeNotification::~CDirChangeNotification() +{ + if( m_szFileName1 ) free(m_szFileName1), m_szFileName1 = NULL; + if( m_szFileName2 ) free(m_szFileName2), m_szFileName2 = NULL; +} + +void CDirChangeNotification::DispatchNotificationFunction() +{ + ASSERT( m_pDelayedHandler ); + if( m_pDelayedHandler ) + m_pDelayedHandler->DispatchNotificationFunction( this ); +} + +void CDirChangeNotification::PostOn_FileAdded(LPCTSTR szFileName) +{ + ASSERT( szFileName ); + m_eFunctionToDispatch = eOn_FileAdded; + m_szFileName1 = _tcsdup( szFileName) ; + // + // post the message so it'll be dispatch by another thread. + PostNotification(); + +} +void CDirChangeNotification::PostOn_FileRemoved(LPCTSTR szFileName) +{ + ASSERT( szFileName ); + m_eFunctionToDispatch = eOn_FileRemoved; + m_szFileName1 = _tcsdup( szFileName) ; + // + // post the message so it'll be dispatched by another thread. + PostNotification(); + +} +void CDirChangeNotification::PostOn_FileNameChanged(LPCTSTR szOldName, LPCTSTR szNewName) +{ + ASSERT( szOldName && szNewName ); + + m_eFunctionToDispatch = eOn_FileNameChanged; + m_szFileName1 = _tcsdup( szOldName) ; + m_szFileName2 = _tcsdup( szNewName) ; + // + // post the message so it'll be dispatched by another thread. + PostNotification(); + +} + +void CDirChangeNotification::PostOn_FileModified(LPCTSTR szFileName) +{ + ASSERT( szFileName ); + + m_eFunctionToDispatch = eOn_FileModified; + m_szFileName1 = _tcsdup( szFileName ); + // + // post the message so it'll be dispatched by another thread. + PostNotification(); +} + +void CDirChangeNotification::PostOn_ReadDirectoryChangesError(DWORD dwError, LPCTSTR szDirectoryName) +{ + ASSERT( szDirectoryName ); + + m_eFunctionToDispatch = eOn_ReadDirectoryChangesError; + m_dwError = dwError; + m_szFileName1 = _tcsdup(szDirectoryName); + // + // post the message so it'll be dispatched by the another thread. + PostNotification(); + +} + +void CDirChangeNotification::PostOn_WatchStarted(DWORD dwError, LPCTSTR szDirectoryName) +{ + ASSERT( szDirectoryName ); + + m_eFunctionToDispatch = eOn_WatchStarted; + m_dwError = dwError; + m_szFileName1 = _tcsdup(szDirectoryName); + + PostNotification(); +} + +void CDirChangeNotification::PostOn_WatchStopped(LPCTSTR szDirectoryName) +{ + ASSERT( szDirectoryName ); + + m_eFunctionToDispatch = eOn_WatchStopped; + m_szFileName1 = _tcsdup(szDirectoryName); + + PostNotification(); +} + +void CDirChangeNotification::PostNotification() +{ + ASSERT( m_pDelayedHandler ); + if( m_pDelayedHandler ) + m_pDelayedHandler->PostNotification( this ); +} + +static LRESULT CALLBACK DelayedNotificationWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +// +// This is the wndproc for the notification window +// +// it's here to dispatch the notifications to the client +// +{ + if( message == UWM_DELAYED_DIRECTORY_NOTIFICATION ) + { + CDirChangeNotification * pNotification = reinterpret_cast(lParam); + ASSERT( pNotification ); + if( pNotification ) + { + DWORD dwEx(0); + __try{ + pNotification->DispatchNotificationFunction(); + } + __except(dwEx = GetExceptionCode(), EXCEPTION_EXECUTE_HANDLER){ + //An exception was raised: + // + // Likely cause: there was a problem creating the CDelayedDirectoryChangeHandler::m_hWatchStoppedDispatchedEvent object + // and the change handler object was deleted before the notification could be dispatched to this function. + // + // or perhaps, somebody's implementation of an overridden function caused an exception + TRACE(_T("Following exception occurred: %d -- File: %s Line: %d\n"), dwEx, _T(__FILE__), __LINE__); + } + } + + return 0UL; + } + else + return DefWindowProc(hWnd,message,wParam,lParam); +} + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// +// +//CDelayedNotificationWindow static member vars: +// +long CDelayedNotificationWindow::s_nRefCnt = 0L; +HWND CDelayedNotificationWindow::s_hWnd = NULL; +BOOL CDelayedNotificationWindow::s_bRegisterWindow = FALSE; +// +// +long CDelayedNotificationWindow::AddRef()//creates window for first time if necessary +{ + if( InterlockedIncrement(&s_nRefCnt) == 1 + || !::IsWindow( s_hWnd ) ) + { + TRACE(_T("CDelayedNotificationWindow -- Creating the notification window\n")); + VERIFY( CreateNotificationWindow() ); + } + return s_nRefCnt; +} + +long CDelayedNotificationWindow::Release()//destroys window for last time if necessary +{ + long nRefCnt = -1; + if( (nRefCnt = InterlockedDecrement(&s_nRefCnt)) == 0 ) + { + //no body else using the window so destroy it? + TRACE(_T("CDelayedNotificationWindow -- Destroying the notification window\n")); + DestroyWindow( s_hWnd ); + s_hWnd = NULL; + } + return nRefCnt; +} +BOOL CDelayedNotificationWindow::RegisterWindowClass(LPCTSTR szClassName) +// +// registers our own window class to use as the hidden notification window. +// +{ + WNDCLASS wc = {0}; + + wc.style = 0; + wc.hInstance = GetInstanceHandle(); + wc.lpszClassName = szClassName; + wc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH ); + wc.lpfnWndProc = DelayedNotificationWndProc; + + ATOM ant = RegisterClass( &wc ); + if( ant == NULL ) + { + TRACE(_T("CDirChangeNotification::RegisterWindowClass - RegisterClass failed: %d\n"), GetLastError()); + } + return (BOOL)(ant!= NULL); + +} + +BOOL CDelayedNotificationWindow::CreateNotificationWindow() +// +// Create the hidden notification windows. +// +{ + TCHAR szClassName[] = _T("Delayed_Message_Sender"); + if( !s_bRegisterWindow ) + s_bRegisterWindow = RegisterWindowClass(szClassName); + s_hWnd = CreateWindowEx(0, szClassName, _T("DelayedWnd"),0,0,0,0,0, NULL, 0, + GetInstanceHandle(), NULL); + if( s_hWnd == NULL ) + { + TRACE(_T("Unable to create notification window! GetLastError(): %d\n"), GetLastError()); + TRACE(_T("File: %s Line: %d\n"), _T(__FILE__), __LINE__); + } + + return (BOOL)(s_hWnd != NULL); +} +void CDelayedNotificationWindow::PostNotification(CDirChangeNotification * pNotification) +// +// Posts a message to a window created in the main +// thread. +// The main thread catches this message, and dispatches it in +// the context of the main thread. +// +{ + ASSERT( pNotification ); + ASSERT( s_hWnd ); + ASSERT( ::IsWindow( s_hWnd ) ); + + PostMessage(s_hWnd, + UWM_DELAYED_DIRECTORY_NOTIFICATION, + 0, + reinterpret_cast( pNotification )); + +// if you don't want the notification delayed, +// +// if( false ) +// { +// pNotification->DispatchNotificationFunction(); +// } +} + +///////////////////////////////////////////////////////// +// CDelayedNoticationThread +// +long CDelayedNotificationThread::s_nRefCnt = 0L; +HANDLE CDelayedNotificationThread::s_hThread = NULL; +DWORD CDelayedNotificationThread::s_dwThreadID = 0UL; + +void CDelayedNotificationThread::PostNotification(CDirChangeNotification * pNotification) +{ + ASSERT( s_hThread != NULL ); + ASSERT( s_dwThreadID != 0 ); + + if( + !PostThreadMessage(s_dwThreadID, + UWM_DELAYED_DIRECTORY_NOTIFICATION, + 0, + reinterpret_cast(pNotification)) + ) + { + //Note, this can sometimes fail. + //Will fail if: s_dwThreadID references a invalid thread id(the thread has died for example) + // OR will fail if the thread doesn't have a message queue. + // + // This was failing because the thread had not been fully started by the time PostThreadMessage had been called + // + //Note: if this fails, it creates a memory leak because + //the CDirChangeNotification object that was allocated and posted + //to the thread is actually never going to be dispatched and then deleted.... it's + //hanging in limbo..... + + // + // The fix for this situation was to force the thread that starts + // this worker thread to wait until the worker thread was fully started before + // continueing. accomplished w/ an event... also.. posting a message to itself before signalling the + // 'spawning' thread that it was started ensured that there was a message pump + // associated w/ the worker thread by the time PostThreadMessage was called. + TRACE(_T("PostThreadMessage() failed while posting to thread id: %d! GetLastError(): %d%s\n"), s_dwThreadID, GetLastError(), GetLastError() == ERROR_INVALID_THREAD_ID? _T("(ERROR_INVALID_THREAD_ID)") : _T("")); + } +} + +bool CDelayedNotificationThread::StartThread() +{ + TRACE(_T("CDelayedNotificationThread::StartThread()\n")); + ASSERT( s_hThread == NULL + && s_dwThreadID == 0 ); + s_hThread = (HANDLE)_beginthreadex(NULL,0, + ThreadFunc, this, 0, (UINT*) &s_dwThreadID); + if( s_hThread ) + WaitForThreadStartup(); + + return s_hThread == NULL ? false : true; + +} + +bool CDelayedNotificationThread::StopThread() +{ + TRACE(_T("CDelayedNotificationThread::StopThread()\n")); + if( s_hThread != NULL + && s_dwThreadID != 0 ) + { + PostThreadMessage(s_dwThreadID, WM_QUIT, 0,0); + + WaitForSingleObject(s_hThread, INFINITE); + CloseHandle(s_hThread); + s_hThread = NULL; + s_dwThreadID = 0UL; + return true; + } + return true;//already shutdown +} + +UINT __stdcall CDelayedNotificationThread::ThreadFunc(LPVOID lpvThis) +{ + //UNREFERENCED_PARAMETER( lpvThis ); + // + // Implements a simple message pump + // + CDelayedNotificationThread * pThis = reinterpret_cast(lpvThis); + ASSERT( pThis ); + + // + // Insure that this thread has a message queue by the time another + // thread gets control and tries to use PostThreadMessage + // problems can happen if someone tries to use PostThreadMessage + // in between the time pThis->SignalThreadStartup() is called, + // and the first call to GetMessage(); + + ::PostMessage(NULL, WM_NULL, 0,0);//if this thread didn't have a message queue before this, it does now. + + + // + // + // Signal that this thread has started so that StartThread can continue. + // + if( pThis ) pThis->SignalThreadStartup(); + + TRACE(_T("CDelayedNotificationThread::ThreadFunc() ThreadID: %d -- Starting\n"), GetCurrentThreadId()); + MSG msg; + do{ + while( GetMessage(&msg, NULL, 0,0) )//note GetMessage() can return -1, but only if i give it a bad HWND.(HWND for another thread for example)..i'm not giving an HWND, so no problemo here. + { + if( msg.message == UWM_DELAYED_DIRECTORY_NOTIFICATION ) + { + CDirChangeNotification * pNotification = + reinterpret_cast( msg.lParam ); + DWORD dwEx(0UL); + + __try{ + if( pNotification ) + pNotification->DispatchNotificationFunction(); + } + __except(dwEx = GetExceptionCode(), EXCEPTION_EXECUTE_HANDLER){ + //An exception was raised: + // + // Likely causes: + // * There was a problem creating the CDelayedDirectoryChangeHandler::m_hWatchStoppedDispatchedEvent object + // and the change handler object was deleted before the notification could be dispatched to this function. + // + // * Somebody's implementation of an overridden virtual function caused an exception + TRACE(_T("The following exception occurred: %d -- File: %s Line: %d\n"), dwEx, _T(__FILE__), __LINE__); + } + } + else + if( msg.message == WM_QUIT ) + { + break; + } + } + }while( msg.message != WM_QUIT ); + TRACE(_T("CDelayedNotificationThread::ThreadFunc() exiting. ThreadID: %d\n"), GetCurrentThreadId()); + return 0; +} + +long CDelayedNotificationThread::AddRef() +{ + if( InterlockedIncrement(&s_nRefCnt) == 1 ) + { + VERIFY( StartThread() ); + } + return s_nRefCnt; +} +long CDelayedNotificationThread::Release() +{ + if( InterlockedDecrement(&s_nRefCnt) <= 0 ) + { + s_nRefCnt = 0; + VERIFY( StopThread() ); + } + return s_nRefCnt; +} + +/////////////////////////////////////////////////////// +//static member data for CDelayedDirectoryChangeHandler +HINSTANCE CDelayedDirectoryChangeHandler::s_hShlwapi_dll = NULL;//for the PathMatchSpec() function +BOOL CDelayedDirectoryChangeHandler::s_bShlwapi_dllExists = TRUE; +long CDelayedDirectoryChangeHandler::s_nRefCnt_hShlwapi = 0L; +FUNC_PatternMatchSpec CDelayedDirectoryChangeHandler::s_fpPatternMatchSpec = wildcmp;//default +/////////////////////////////////////////////////////// +//construction destruction +CDelayedDirectoryChangeHandler::CDelayedDirectoryChangeHandler(CDirectoryChangeHandler * pRealHandler, bool bAppHasGUI, LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter, DWORD dwFilterFlags) +: m_pDelayNotifier( NULL ) + ,m_pRealHandler( pRealHandler ) + ,m_szIncludeFilter(NULL) + ,m_szExcludeFilter(NULL) + ,m_dwFilterFlags( dwFilterFlags ) + ,m_dwPartialPathOffset( 0UL ) + ,m_hWatchStoppedDispatchedEvent(NULL) + ,m_nNumIncludeFilterSpecs(0) + ,m_nNumExcludeFilterSpecs(0) +{ + + + ASSERT( m_pRealHandler ); + + InitializePathMatchFunc( szIncludeFilter, szExcludeFilter ); + + // + // See that we're + // + + + m_hWatchStoppedDispatchedEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);//AUTO-RESET, not initially signalled + ASSERT( m_hWatchStoppedDispatchedEvent ); + + if( bAppHasGUI ) + { + // + // The value true was passed to the CDirectoryChangeWatcher constructor. + // It's assumed that your app has a gui, that is, it implements + // a message pump. To delay the notification to another thread, + // we'll use a hidden notification window. + // + m_pDelayNotifier = new CDelayedNotificationWindow(); + } + else + { + // The value 'false' was passed to the CDirectoryChangeWatcher constructor. + // + // Your app has no message pump... use a class that implements one for you + // in a worker thread. + // + // Notifications will be executed in this worker thread. + // + m_pDelayNotifier = new CDelayedNotificationThread(); + } +} + +CDelayedDirectoryChangeHandler::~CDelayedDirectoryChangeHandler() +{ + if( m_pRealHandler ) + delete m_pRealHandler, m_pRealHandler = NULL; + if( m_pDelayNotifier ) + delete m_pDelayNotifier, m_pDelayNotifier = NULL; + + if( m_hWatchStoppedDispatchedEvent ) + CloseHandle(m_hWatchStoppedDispatchedEvent), m_hWatchStoppedDispatchedEvent = NULL; + + if( m_szIncludeFilter ){ + if( m_nNumIncludeFilterSpecs == 1 ) + free(m_szIncludeFilter); + else + { + TCHAR ** ppTmp = (TCHAR**)m_szIncludeFilter; + for(int i(0); i < m_nNumIncludeFilterSpecs; ++i) + { + free( *ppTmp++ ); + } + free( m_szIncludeFilter ); + } + m_szIncludeFilter = NULL; + m_nNumIncludeFilterSpecs; + } + if( m_szExcludeFilter ) { + if( m_nNumExcludeFilterSpecs == 1 ) + free(m_szExcludeFilter); + else{ + TCHAR ** ppTmp = (TCHAR**)m_szExcludeFilter; + for(int i(0); i < m_nNumExcludeFilterSpecs; ++i) + { + free( *ppTmp++ ); + } + free( m_szExcludeFilter ); + } + m_szExcludeFilter = NULL; + m_nNumExcludeFilterSpecs = 0; + } + + UninitializePathMatchFunc(); +} + +BOOL CDelayedDirectoryChangeHandler::_PathMatchSpec(LPCTSTR szPath, LPCTSTR szPattern) +{ + if( s_fpPatternMatchSpec ) + { + return s_fpPatternMatchSpec(szPath, szPattern); + } + ASSERT( FALSE ); + return TRUE;//everything matches. +} + +BOOL CDelayedDirectoryChangeHandler::InitializePathMatchFunc(LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter) +// +// +// To support the Include and Exclude filters, the PathMatchSpec function is used. +// PathMatchSpec is only supported on NT4.0 if IE 4.0 is installed. +// +// for the case where this code is running on NT 4.0 w/out IE 4.0, we use +// a different function: wildcmp () +// +// +// This function attempts to load shlwapi.dll dynamically and find the PathMatchSpec function. +// +// if the function PathMatchSpec can't be found, the function pointer s_fpPathMatchSpec is set to wildcmp. +// +// +// Note: wildcmp doesn't support multiple file specs separated by a semi-colon +// as PathMatchSpec does.... we'll support it by parsing them +// when we want to test the filters, we'll call the pattern matching functions multiple times... +// +{ + + // + // Copy the include/exclude filters if specified... + // + // + if( IsEmptyString(szIncludeFilter) + && IsEmptyString(szExcludeFilter) ) + { + return TRUE;//both the include && exclude filters aren't specified + //no need to initialize the pattern matching function.... + //if filters are never used, then + //one less dll is loaded. + } + +#ifdef _TESTING_WILDCMP_ONLY_ + s_hShlwapi_dll = NULL; + s_bShlwapi_dllExists = FALSE; + return InitializePatterns(szIncludeFilter, szExcludeFilter); +#endif + + + if( s_hShlwapi_dll != NULL ) + { + ASSERT( s_fpPatternMatchSpec != NULL ); + InterlockedIncrement(&s_nRefCnt_hShlwapi); + + return InitializePatterns(szIncludeFilter, szExcludeFilter); + } + else{ + if( s_bShlwapi_dllExists == TRUE )//either the dll exists, or we haven't tried loading it yet... + { + //The pattern match function hasn't been initialized yet.... + // + + s_hShlwapi_dll = ::LoadLibrary(_T("Shlwapi.dll")); + if( s_hShlwapi_dll == NULL ) + { + s_bShlwapi_dllExists = FALSE;//don't try loading this dll again. + s_fpPatternMatchSpec = wildcmp;//even though it's set buy default, and this code will only get here once, set it just for fun. + + return InitializePatterns(szIncludeFilter, szExcludeFilter); + + } + else + { + //Shlwapi.dll was found....check it for PathMatchSpec() +#ifdef UNICODE + s_fpPatternMatchSpec = (FUNC_PatternMatchSpec)::GetProcAddress(s_hShlwapi_dll, "PathMatchSpecW"); +#else + s_fpPatternMatchSpec = (FUNC_PatternMatchSpec)::GetProcAddress(s_hShlwapi_dll, "PathMatchSpecA"); +#endif + + if( s_fpPatternMatchSpec != NULL ) + { + //UsesRealPathMatchSpec() will now return true. + //we're on NT w/ IE 4.0 or greater...(or Win2k/XP) + InterlockedIncrement(&s_nRefCnt_hShlwapi); + return InitializePatterns(szIncludeFilter, szExcludeFilter); + } + else + { + //we found shlwapi.dll, but it didn't have PathMatchSpec() + ::FreeLibrary( s_hShlwapi_dll ); + s_hShlwapi_dll = NULL; + s_bShlwapi_dllExists = FALSE; + + //instead of using PathMatchSpec() + //we'll use wildcmp() + s_fpPatternMatchSpec = wildcmp; + //UsesRealPathMatchSpec() will now return false w/out asserting. + + return InitializePatterns(szIncludeFilter, szExcludeFilter); + } + } + + } + } + return (s_fpPatternMatchSpec != NULL); +} + +BOOL CDelayedDirectoryChangeHandler::InitializePatterns(LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter) +{ + ASSERT( !IsEmptyString(szIncludeFilter) //one of these must have something in it, + || !IsEmptyString(szExcludeFilter) );//or else this function shouldn't be called. + + if( s_hShlwapi_dll != NULL ) + { + //we're using Shlwapi.dll's PathMatchSpec function.... + //we're running on NT4.0 w/ IE 4.0 installed, or win2k/winXP(or greater) + // + // Copy the include/exclude filters if specified... + // + // + // we're using the real PathMatchSpec() function which + // supports multiple pattern specs...(separated by a semi-colon) + // so there's only one filter spec as far as my code is concerned. + // + if( !IsEmptyString(szIncludeFilter) ) + { + m_szIncludeFilter = _tcsdup(szIncludeFilter); + ASSERT( m_szIncludeFilter ); + m_nNumIncludeFilterSpecs = 1; + } + if( !IsEmptyString(szExcludeFilter) ) + { + m_szExcludeFilter = _tcsdup(szExcludeFilter); + ASSERT( m_szExcludeFilter ); + m_nNumExcludeFilterSpecs = 1; + } + } + else + { + //shlwapi.dll isn't on this machine.... can happen on NT4.0 w/ out IE 4.0 installed. + ASSERT( s_bShlwapi_dllExists == FALSE ); + + // + // we're using the function wildcmp() instead of PathMatchSpec.. + // + // this means that multiple pattern specs aren't supported... + // in order to support them, we'll tokenize the string into multiple + // pattern specs and test the string multiple times(once per pattern spec) + // in order to support multiple patterns. + // + // + // m_szIncludeFilter & m_szExclude filter will be used like TCHAR**'s instead of TCHAR*'s + // + + m_nNumIncludeFilterSpecs = 0; + if( !IsEmptyString(szIncludeFilter) ) + { + TCHAR * szTmpFilter = _tcsdup(szIncludeFilter); + TCHAR * pTok = _tcstok( szTmpFilter, _T(";")); + while( pTok ) + { + m_nNumIncludeFilterSpecs++; + pTok = _tcstok(NULL, _T(";")); + } + if( m_nNumIncludeFilterSpecs == 1 ) + m_szIncludeFilter = _tcsdup(szIncludeFilter); + else + { //allocate room for pointers .. one for each token... + m_szIncludeFilter = (TCHAR*)malloc( m_nNumIncludeFilterSpecs * sizeof(TCHAR*)); + + free(szTmpFilter); + szTmpFilter = _tcsdup(szIncludeFilter); + pTok = _tcstok(szTmpFilter, _T(";")); + TCHAR ** ppTmp = (TCHAR**)m_szIncludeFilter; + while(pTok) + { + *ppTmp = _tcsdup(pTok); + ppTmp++; + pTok = _tcstok(NULL, _T(";")); + } + } + + free(szTmpFilter); + } + + // + // Do the same for the Exclude filter... + // + m_nNumExcludeFilterSpecs = 0; + if( !IsEmptyString(szExcludeFilter) ) + { + TCHAR * szTmpFilter = _tcsdup(szExcludeFilter); + TCHAR * pTok = _tcstok( szTmpFilter, _T(";")); + while( pTok ) + { + m_nNumExcludeFilterSpecs++; + pTok = _tcstok(NULL, _T(";")); + } + if( m_nNumExcludeFilterSpecs == 1 ) + m_szExcludeFilter = _tcsdup(szExcludeFilter); + else + { //allocate room for pointers .. one for each token... + m_szExcludeFilter = (TCHAR*)malloc( m_nNumExcludeFilterSpecs * sizeof(TCHAR*)); + + free(szTmpFilter); + szTmpFilter = _tcsdup(szExcludeFilter); + + pTok = _tcstok(szTmpFilter, _T(";")); + TCHAR ** ppTmp = (TCHAR**)m_szExcludeFilter; + while(pTok) + { + *ppTmp = _tcsdup(pTok); + ppTmp++; + pTok = _tcstok(NULL, _T(";")); + } + } + free(szTmpFilter); + } + + } + + return (m_szExcludeFilter!= NULL || (m_szIncludeFilter != NULL)); +} +void CDelayedDirectoryChangeHandler::UninitializePathMatchFunc() +{ + if( s_bShlwapi_dllExists == TRUE + && s_hShlwapi_dll != NULL ) + { + if( InterlockedDecrement(&s_nRefCnt_hShlwapi) <= 0) + { + s_nRefCnt_hShlwapi = 0; + FreeLibrary( s_hShlwapi_dll ); + s_hShlwapi_dll = NULL; + s_fpPatternMatchSpec = wildcmp; + } + } +} + +bool CDelayedDirectoryChangeHandler::UsesRealPathMatchSpec() const +//are we using PathMatchSpec() or wildcmp()? +{ + if( s_hShlwapi_dll != NULL && s_fpPatternMatchSpec != NULL ) + return true; + if( s_hShlwapi_dll == NULL && s_fpPatternMatchSpec != NULL ) + return false; + + ASSERT( FALSE );//this function was called before InitializePathMatchFunc() + //oops! + return false; +} +static inline bool HasTrailingBackslash(const CString & str ) +{ + if( str.GetLength() > 0 + && str[ str.GetLength() - 1 ] == _T('\\') ) + return true; + return false; +} +void CDelayedDirectoryChangeHandler::SetPartialPathOffset(const CString & strWatchedDirName) +{ + if( m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_CHECK_PARTIAL_PATH ) + { + //set the offset to + if( HasTrailingBackslash( strWatchedDirName ) ) + m_dwPartialPathOffset = strWatchedDirName.GetLength(); + else + m_dwPartialPathOffset = strWatchedDirName.GetLength() + 1; + } + else + m_dwPartialPathOffset = 0; +} + +CDirChangeNotification * CDelayedDirectoryChangeHandler::GetNotificationObject() +// +// Maybe in future I'll keep a pool of these +// objects around to increase performance... +// using objects from a cache will be faster +// than allocated and destroying a new one each time. +// +// +{ + ASSERT( m_pRealHandler ); + return new CDirChangeNotification(this, m_dwPartialPathOffset);//helps support FILTERS_CHECK_PARTIAL_PATH +} + +void CDelayedDirectoryChangeHandler::DisposeOfNotification(CDirChangeNotification * pNotification) +{ + delete pNotification; +} + +//These functions are called when the directory to watch has had a change made to it +void CDelayedDirectoryChangeHandler::On_FileAdded(const CString & strFileName) +{ + CDirChangeNotification * p = GetNotificationObject(); + ASSERT( p ); + if( p ) p->PostOn_FileAdded( strFileName ); +} + +void CDelayedDirectoryChangeHandler::On_FileRemoved(const CString & strFileName) +{ + CDirChangeNotification * p = GetNotificationObject(); + ASSERT( p ); + if( p ) p->PostOn_FileRemoved( strFileName ); +} + +void CDelayedDirectoryChangeHandler::On_FileModified(const CString & strFileName) +{ + CDirChangeNotification * p = GetNotificationObject(); + ASSERT( p ); + if( p ) p->PostOn_FileModified( strFileName ); +} + +void CDelayedDirectoryChangeHandler::On_FileNameChanged(const CString & strOldFileName, const CString & strNewFileName) +{ + CDirChangeNotification * p = GetNotificationObject(); + ASSERT( p ); + if( p ) p->PostOn_FileNameChanged( strOldFileName, strNewFileName ); +} + +void CDelayedDirectoryChangeHandler::On_ReadDirectoryChangesError(DWORD dwError, const CString & strDirectoryName) +{ + CDirChangeNotification * p = GetNotificationObject(); + ASSERT( p ); + if( p ) p->PostOn_ReadDirectoryChangesError( dwError, strDirectoryName ); +} + +void CDelayedDirectoryChangeHandler::On_WatchStarted(DWORD dwError, const CString & strDirectoryName) +{ + if( !(m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_NO_WATCHSTART_NOTIFICATION)) + { + CDirChangeNotification * p = GetNotificationObject(); + + if( p ) p->PostOn_WatchStarted(dwError, strDirectoryName); + } +} + +void CDelayedDirectoryChangeHandler::On_WatchStopped(const CString & strDirectoryName) +{ + if( !(m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_NO_WATCHSTOP_NOTIFICATION)) + { + CDirChangeNotification * p = GetNotificationObject(); + + if( p ){ + if( m_hWatchStoppedDispatchedEvent ) + ::ResetEvent(m_hWatchStoppedDispatchedEvent); + + p->PostOn_WatchStopped( strDirectoryName ); + + // Wait that this function has been dispatched to the other thread + // before continueing. This object may be getting deleted + // soon after this function returns, and before the function can be + // dispatched to the other thread.... + WaitForOnWatchStoppedDispatched(); + } + } +} + + +void CDelayedDirectoryChangeHandler::PostNotification(CDirChangeNotification * pNotification) +{ + if( m_pDelayNotifier ) + m_pDelayNotifier->PostNotification( pNotification ); +} + +inline bool IsNonFilterableEvent( CDirChangeNotification::eFunctionToDispatch eEvent) +// Helper function +// For filtering events..... these functions can not be filtered out. +// +{ + if( eEvent == CDirChangeNotification::eOn_WatchStarted + || eEvent == CDirChangeNotification::eOn_WatchStopped + || eEvent == CDirChangeNotification::eOn_ReadDirectoryChangesError ) + { + return true; + } + else + return false; +} +DWORD GetPathOffsetBasedOnFilterFlags(CDirChangeNotification * pNot, DWORD dwFilterFlags) +{ + + ASSERT( pNot && dwFilterFlags != 0 ); + //helps support the filter options FILTERS_CHECK_FULL_PATH, FILTERS_CHECK_PARTIAL_PATH, and FILTERS_CHECK_FILE_NAME_ONLY + + DWORD dwFileNameOffset = 0;//offset needed to support FILTERS_CHECK_FULL_PATH + if( dwFilterFlags & CDirectoryChangeWatcher::FILTERS_CHECK_FILE_NAME_ONLY ) + { + //set the offset to support FILTERS_CHECK_FILE_NAME_ONLY + TCHAR * pSlash = _tcsrchr(pNot->m_szFileName1, _T('\\')); + if( pSlash ) + dwFileNameOffset = (++pSlash - pNot->m_szFileName1); + + // + // Because file name change notifications take place in the same directory, + // the same dwFileNameOffset can be used for the szNewFileName(pNot->m_szFileName2) + // when checking the filter against the new file name. + // + } + else + if( dwFilterFlags & CDirectoryChangeWatcher::FILTERS_CHECK_PARTIAL_PATH) + { + // + // partial path offset is the offset + // from the beginning of the file name, + // to the end of the watched directory path... + // ie: If you're watching "C:\Temp" + // and the file C:\Temp\SubFolder\FileName.txt" is changed, + // the partial path offset will give you "SubFolder\FileName.txt" + // when this is checked against the include/exclude filter. + // + dwFileNameOffset = pNot->m_dwPartialPathOffset; + } + //else + //if( m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_CHECK_FULL_PATH ) + // dwFileNameOffset = 0; + + return dwFileNameOffset; +} + +bool CDelayedDirectoryChangeHandler::NotifyClientOfFileChange(CDirChangeNotification * pNot) +// +// +// Perform the tests to see if the client wants to be notified of this +// file change notification. +// +// Tests performed: +// +// Event test: Not all events can be filtered out. +// On_ReadDirectoryChangesError +// cannot be filtered out. +// Filter flags test: User can specify flags so that no tests are performed....all notifications are sent to the user. +// +// Filter test: Test the notification file name against include and exclude filters. +// +// Only files changes matching the INCLUDE filter will be passed to the client. +// By not specifying an include filter, all file changes are passed to the client. +// +// Any files matching the EXCLUDE filter will not be passed to the client. +// +// +// Note: For the file name change event: +// If the old file name does not pass the tests for the include and exclude filter +// but the NEW file name does pass the test for the filters, then the client IS notified. +// +// Client test: The CDirectoryChangeHandler derived class is given a chance to filter the event by calling +// CDirectoryChangeHandler::On_FilterNotification() +// +// RETURN VALUE: +// If this function returns true, the notification function is called. +// If it returns false, the notification is ignored. +// The client is notified by calling CDirectoryChangeHandler's virtual functions On_FileAdded(),On_FileRemoved(), etc. +{ + ASSERT( pNot ); + ASSERT( m_pRealHandler ); + + // + // Some events can't be ignored, or filtered out. + // + + if( ((m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_DONT_USE_ANY_FILTER_TESTS) == CDirectoryChangeWatcher::FILTERS_DONT_USE_ANY_FILTER_TESTS) + || IsNonFilterableEvent( pNot->m_eFunctionToDispatch ) ) + { + // Either this is a non-filterable event, or we're not using any filters... + // client is notified of all events.. + return true; + } + + // + // See if user wants to test CDirectoryChangeHandler::On_FilterNotification() + // before tests are performed against the file name, and filter specifications + // + if( (m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_TEST_HANDLER_FIRST )//specified that CDirectoryChangeHandler::On_FilterNotification is to be called before any other filter tests + && !(m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_DONT_USE_HANDLER_FILTER)//and did not specify that this CDirectoryChangeHandler::On_FilterNotification is not to be called.. + && !m_pRealHandler->On_FilterNotification(pNot->m_eFunctionToDispatch, pNot->m_szFileName1, pNot->m_szFileName2) ) + { + // + // Client specified to test handler first, and it didn't pass the test... don't notify the client. + // + return false; + } + //else + // + // this file change passed the user test, continue testing + // to see if it passes the filter tests. + + DWORD dwFileNameOffset = GetPathOffsetBasedOnFilterFlags(pNot, m_dwFilterFlags); + + // + // See if the changed file matches the include or exclude filter + // Only allow notifications for included files + // that have not been exluded. + // + if(!(m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_DONT_USE_FILTERS) ) + { + if( false == IncludeThisNotification(pNot->m_szFileName1 + dwFileNameOffset) + || true == ExcludeThisNotification(pNot->m_szFileName1 + dwFileNameOffset) ) + { + if( pNot->m_eFunctionToDispatch != CDirChangeNotification::eOn_FileNameChanged ) + return false; + else{ + //Special case for file name change: + // + // the old file name didn't pass the include/exclude filter + // but if the new name passes the include/exclude filter, + // we will pass it on to the client... + + if( false == IncludeThisNotification(pNot->m_szFileName2 + dwFileNameOffset) + || true == ExcludeThisNotification(pNot->m_szFileName2 + dwFileNameOffset) ) + { + // the new file name didn't pass the include/exclude filter test either + // so don't pass the notification on... + return false; + } + + } + } + + } + + // + // Finally, let the client determine whether or not it wants this file notification + // if this test has not already been performed... + // + + if( (m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_TEST_HANDLER_FIRST) + || (m_dwFilterFlags & CDirectoryChangeWatcher::FILTERS_DONT_USE_HANDLER_FILTER) ) + { + // if we got this far, and this flag was specified, + // it's already passed this test, + // or we're not checking it based on the filter flag FILTERS_DONT_USE_HANDLER_FILTER.... + return true; + } + else + { + if( m_pRealHandler->On_FilterNotification(pNot->m_eFunctionToDispatch, + pNot->m_szFileName1, + pNot->m_szFileName2) ) + { + return true; + } + else + { + //else client's derived CDirectoryChangeHandler class chose + // not to be notified of this file change + return false; + } + } + + +} + +bool CDelayedDirectoryChangeHandler::IncludeThisNotification(LPCTSTR szFileName) +// +// The Include filter specifies which file names we should allow to notifications +// for... otherwise these notifications are not dispatched to the client's code. +// +// Tests the file name to see if it matches a filter specification +// +// RETURN VALUES: +// +// true : notifications for this file are to be included... +// notifiy the client by calling the appropriate CDirectoryChangeHandler::On_Filexxx() function. +// false: this file is not included.... do not notifiy the client... +// +{ + ASSERT( szFileName ); + + if( m_szIncludeFilter == NULL ) // no filter specified, all files pass.... + return true; + if( m_nNumIncludeFilterSpecs == 1 ) + { + return _PathMatchSpec(szFileName, m_szIncludeFilter)? true : false; + } + else + { + TCHAR ** ppTmp = (TCHAR**)m_szIncludeFilter; + for(int i(0); i < m_nNumIncludeFilterSpecs; ++i ) + { + if( _PathMatchSpec(szFileName, *ppTmp++) ) + return true; + } + return false; + } + + return false; +} + +bool CDelayedDirectoryChangeHandler::ExcludeThisNotification(LPCTSTR szFileName) +// +// Tests the file name to see if it matches a filter specification +// if this function returns true, it means that this notification +// is NOT to be passed to the client.... changes to this kind of file +// are not +// +// RETURN VALUES: +// +// true : notifications for this file are to be filtered out(EXCLUDED)... +// do not notifify the client code. +// false: notifications for this file are NOT to be filtered out +// +// +{ + + ASSERT( szFileName ); + + if( m_szExcludeFilter == NULL ) // no exclude filter... nothing is excluded... + return false; + if( m_nNumExcludeFilterSpecs == 1 ) + { + if( _PathMatchSpec(szFileName, m_szExcludeFilter) ) + return true;//exclude this notification... + return false; + } + else + { + TCHAR ** ppTmp = (TCHAR**)m_szExcludeFilter; + for(int i(0); i < m_nNumExcludeFilterSpecs; ++i ) + { + if( _PathMatchSpec(szFileName, *ppTmp++) ) + return true;//exclude this one... + } + return false;//didn't match any exclude filters...don't exclude it + } +/** + if( m_szExcludeFilter == NULL //no exclude filter specified, not excluding anything.... + || !PathMatchSpec(szFileName, m_szExcludeFilter) )//or didn't match filter pattern.. this is not excluded... + { + return false; + } + return true; +***/ + +} + +void CDelayedDirectoryChangeHandler::DispatchNotificationFunction(CDirChangeNotification * pNotification) +/***************************************************** + This function is called when we want the notification to execute. + + +******************************************************/ +{ + ASSERT( m_pRealHandler ); + ASSERT( pNotification ); + if( pNotification && m_pRealHandler ) + { + // + // Allow the client to ignore the notification + // + // + if( NotifyClientOfFileChange(pNotification)) + { + switch( pNotification->m_eFunctionToDispatch ) + { + case CDirChangeNotification::eOn_FileAdded: + + m_pRealHandler->On_FileAdded( pNotification->m_szFileName1 ); + break; + + case CDirChangeNotification::eOn_FileRemoved: + + m_pRealHandler->On_FileRemoved( pNotification->m_szFileName1 ); + break; + + case CDirChangeNotification::eOn_FileNameChanged: + + m_pRealHandler->On_FileNameChanged( pNotification->m_szFileName1, pNotification->m_szFileName2 ); + break; + + case CDirChangeNotification::eOn_FileModified: + + m_pRealHandler->On_FileModified( pNotification->m_szFileName1 ); + break; + + case CDirChangeNotification::eOn_ReadDirectoryChangesError: + + m_pRealHandler->On_ReadDirectoryChangesError( pNotification->m_dwError, pNotification->m_szFileName1 ); + break; + + case CDirChangeNotification::eOn_WatchStarted: + + m_pRealHandler->On_WatchStarted(pNotification->m_dwError, pNotification->m_szFileName1); + break; + + case CDirChangeNotification::eOn_WatchStopped: + + try{ + // + // The exception handler is just in case of the condition described in DirectoryChanges.h + // in the comments for On_WatchStopped() + // + m_pRealHandler->On_WatchStopped(pNotification->m_szFileName1); + + }catch(...){ + MessageBeep( 0xffff ); + MessageBeep( 0xffff ); + #ifdef DEBUG + MessageBox(NULL,_T("An RTFM Exception was raised in On_WatchStopped() -- see Comments for CDirectoryChangeHandler::On_WatchStopped() in DirectoryChanges.h."), _T("Programmer Note(DEBUG INFO):"), MB_ICONEXCLAMATION | MB_OK); + #endif + } + // + // Signal that the On_WatchStopped() function has been dispatched. + // + if( m_hWatchStoppedDispatchedEvent ) + SetEvent(m_hWatchStoppedDispatchedEvent); + break; + case CDirChangeNotification::eFunctionNotDefined: + default: + break; + }//end switch() + } + } + if( pNotification ) // + DisposeOfNotification(pNotification);// deletes or releases the notification object from memory/use + // +} + +BOOL CDelayedDirectoryChangeHandler::WaitForOnWatchStoppedDispatched( ) +// +// When shutting down, m_pRealHandler->On_WatchStopped() will be called. +// Because it's possible that this object will be deleted before the notification +// can be dispatched to the other thread, we have to wait until we know that it's been executed +// before returning control. +// +// This function signals that the function has been dispatched to the other +// thread and it will be safe to delete this object once this has returned. +// +{ + ASSERT( m_hWatchStoppedDispatchedEvent ); + DWORD dwWait = WAIT_FAILED; + if( m_hWatchStoppedDispatchedEvent ) + { + + if( m_bAppHasGUI == false ) + { + // + // The function will be dispatched to another thread... + // just wait for the event to be signalled.... + do{ + dwWait = WaitForSingleObject(m_hWatchStoppedDispatchedEvent, 5000);//wait five seconds + if( dwWait != WAIT_OBJECT_0 ) + { + TRACE(_T("WARNING: Possible Deadlock detected! ThreadID: %d File: %s Line: %d\n"), GetCurrentThreadId(), _T(__FILE__), __LINE__); + } + }while( dwWait != WAIT_OBJECT_0 ); + } + else + { + // + // Note to self: This thread doesn't have a message Q, and therefore can't attach to + // receive messages and process them... MsgWaitForMultipleObjects won't wake up for messages + // unless i attach myself the the other threads input Q.... + // just use MsgWaitForMultipleObjects() in place of WaitForSingleObject in the places where it's used... + // + do{ + dwWait = MsgWaitForMultipleObjects(1, &m_hWatchStoppedDispatchedEvent, + FALSE, 5000, + QS_ALLEVENTS);//wake up for all events, sent messages, posted messages etc. + switch(dwWait) + { + case WAIT_OBJECT_0: + { + // + // The event has become signalled + // + + }break; + case WAIT_OBJECT_0 + 1: + { + // + // There is a message in this thread's queue, so + // MsgWaitForMultipleObjects returned. + // Process those messages, and wait again. + + MSG msg; + while( PeekMessage(&msg, NULL, 0,0, PM_REMOVE ) ) + { + if( msg.message != WM_QUIT) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else + { + /**** + NOTE: putting WM_QUIT back in the Q caused problems. forget about it. + ****/ + break; + } + } + }break; + case WAIT_TIMEOUT: + { + TRACE(_T("WARNING: Possible Deadlock detected! ThreadID: %d File: %s Line: %d\n"), GetCurrentThreadId(), _T(__FILE__), __LINE__); + }break; + } + }while( dwWait != WAIT_OBJECT_0 ); + ASSERT( dwWait == WAIT_OBJECT_0 ); + } + + } + else + { + TRACE(_T("WARNING: Unable to wait for notification that the On_WatchStopped function has been dispatched to another thread.\n")); + TRACE(_T("An Exception may occur shortly.\n")); + TRACE(_T("File: %s Line: %d"), _T( __FILE__ ), __LINE__); + + } + + + return (dwWait == WAIT_OBJECT_0 ); +} + +void CDelayedDirectoryChangeHandler::SetChangedDirectoryName(const CString & strChangedDirName) +{ + ASSERT( m_pRealHandler ); + CDirectoryChangeHandler::SetChangedDirectoryName(strChangedDirName); + if( m_pRealHandler ) + m_pRealHandler->SetChangedDirectoryName( strChangedDirName ); +} +const CString & CDelayedDirectoryChangeHandler::GetChangedDirectoryName() const +{ + if( m_pRealHandler ) + return m_pRealHandler->GetChangedDirectoryName(); + return CDirectoryChangeHandler::GetChangedDirectoryName(); +} \ No newline at end of file -- cgit v1.1 From e072d4de3aefd1c69c9cc4689bb93f476c2163bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:31 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/DelayedDirectoryChangeHandler.h | 336 +++++++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 IvyFileMon/DelayedDirectoryChangeHandler.h diff --git a/IvyFileMon/DelayedDirectoryChangeHandler.h b/IvyFileMon/DelayedDirectoryChangeHandler.h new file mode 100644 index 0000000..5409c5b --- /dev/null +++ b/IvyFileMon/DelayedDirectoryChangeHandler.h @@ -0,0 +1,336 @@ +// DelayedDirectoryChangeHandler.h: interface for the CDelayedDirectoryChangeHandler2 class. +// +////////////////////////////////////////////////////////////////////// +// +// You needn't worry about the classes in this file. +// they are implementation classes used to help CDirectoryChangeWatcher work. +// +// + +#if !defined(AFX_DELAYEDDIRECTORYCHANGEHANDLER_H__F20EC22B_1C79_403E_B43C_938F95723D45__INCLUDED_) +#define AFX_DELAYEDDIRECTORYCHANGEHANDLER_H__F20EC22B_1C79_403E_B43C_938F95723D45__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +//classes declrared in other files: +class CDirectoryChangeWatcher; +class CDirectoryChangeHandler; +//classes declared in this file: +class CDirChangeNotification; +class CDelayedDirectoryChangeHandler; + +class CDelayedNotificationWindow; +class CDelayedNotificationThread; + +/******************************************************************* + The classes in this file implement methods to ensure that file change + notifications are fired in a thread other than the worker thread used + by CDirectoryChangeWatcher. + + Dispatching the notifications in to a different thread improves the performance + of CDirectoryChangeWatcher so that it can process more notifications faster + and notifications aren't 'lost'. + + + There are two methods of dispatching functions to another thread. + + 1) One is to use the message pump associated w/ the main thread by posting notifications + to a hidden window. This is implemented w/ the class CDelayedNotificationWindow. + + 2) The other is to create a worker thread that implements a message pump. This is + implemented w/ the class CDelayedNotificationThread. + + + If your app uses a GUI then it has a already has message pump. + You can make sure that CDelayedNotificationWindow is used in this case. + The advantage here being that there is one less worker thread used in your program. + + If your app is a command line app or otherwise doesn't have a GUI, + then you will want to make sure that you are using the CDelayedNotificationThread + to dispatch notifications to another thread. + + This is determined by a flag passed is passed to the constructor of CDirecotryChangeWatcher + +********************************************************************/ + +class CDelayedNotifier +// +// Abstract base class for ensuring notifications are fired in a thread +// +// +{ +public: + virtual ~CDelayedNotifier(){} + virtual void PostNotification(CDirChangeNotification * pNotification) = 0; + +}; + +class CDelayedNotificationWindow : public CDelayedNotifier +// +// A class that implements a +// there will always be only one of the actual windows +// in existance. +// +{ +public: + CDelayedNotificationWindow(){ AddRef(); } + virtual ~CDelayedNotificationWindow(){ Release(); } + + + void PostNotification(CDirChangeNotification * pNotification); +private: + long AddRef(); // the window handle is reference counted + long Release(); // + + static long s_nRefCnt; + static HWND s_hWnd; //there's only one window no matter how many instances of this class there are.... this means that all notifications are handled by the same thread. + static BOOL s_bRegisterWindow; + BOOL RegisterWindowClass(LPCTSTR szClassName); + BOOL CreateNotificationWindow(); +}; + +class CDelayedNotificationThread : public CDelayedNotifier +// +// Class that implements a worker thread w/ a message pump. +// CDirectoryChangeWatcher posts notifications to this thread, where they are dispatched. +// This thread executes CDirectoryChangeHandler notifications. +// +{ +public: + CDelayedNotificationThread() + :m_hThreadStartEvent(NULL) + { + m_hThreadStartEvent = CreateEvent(NULL,FALSE,FALSE,NULL); + ASSERT( m_hThreadStartEvent ); + AddRef(); + } + virtual ~CDelayedNotificationThread() + { + Release(); + if( m_hThreadStartEvent ) + CloseHandle(m_hThreadStartEvent), m_hThreadStartEvent = NULL; + } + + void PostNotification(CDirChangeNotification * pNotification); + +private: + long AddRef(); // The thread handle is reference + long Release(); // counted so that only one thread is used + // so that there's only one worker thread(performing this functino) + static long s_nRefCnt; // no matter how many directories are being watched + static HANDLE s_hThread; // + static DWORD s_dwThreadID; // + + static UINT __stdcall ThreadFunc(LPVOID lpvThis); + + bool StartThread(); + bool StopThread(); + + BOOL WaitForThreadStartup(){ return WaitForSingleObject(m_hThreadStartEvent, INFINITE) == WAIT_OBJECT_0; }; + BOOL SignalThreadStartup(){ return SetEvent( m_hThreadStartEvent ) ; } + + HANDLE m_hThreadStartEvent;//signals that the worker thread has started. this fixes a bug condition. + +}; + + +class CDirChangeNotification +// +// A class to help dispatch the change notifications to the main thread. +// +// This class holds the data in memory until the notification can be dispatched.(ie: this is the time between when the notification is posted, and the clients notification code is called). +// +// +{ +private: + CDirChangeNotification();//not implemented +public: + explicit CDirChangeNotification(CDelayedDirectoryChangeHandler * pDelayedHandler, DWORD dwPartialPathOffset); + ~CDirChangeNotification(); + + // + // + void PostOn_FileAdded(LPCTSTR szFileName); + void PostOn_FileRemoved(LPCTSTR szFileName); + void PostOn_FileNameChanged(LPCTSTR szOldName, LPCTSTR szNewName); + void PostOn_FileModified(LPCTSTR szFileName); + void PostOn_ReadDirectoryChangesError(DWORD dwError, LPCTSTR szDirectoryName); + void PostOn_WatchStarted(DWORD dwError, LPCTSTR szDirectoryName); + void PostOn_WatchStopped(LPCTSTR szDirectoryName); + + void DispatchNotificationFunction(); + + + enum eFunctionToDispatch{ eFunctionNotDefined = -1, + eOn_FileAdded = FILE_ACTION_ADDED, + eOn_FileRemoved = FILE_ACTION_REMOVED, + eOn_FileModified = FILE_ACTION_MODIFIED, + eOn_FileNameChanged = FILE_ACTION_RENAMED_OLD_NAME, + eOn_ReadDirectoryChangesError, + eOn_WatchStarted, + eOn_WatchStopped + }; +protected: + void PostNotification(); + +private: + friend class CDelayedDirectoryChangeHandler; + CDelayedDirectoryChangeHandler * m_pDelayedHandler; + + // + // Members to help implement DispatchNotificationFunction + // + // + + eFunctionToDispatch m_eFunctionToDispatch; + //Notification Data: + TCHAR * m_szFileName1;//<-- is the szFileName parameter to On_FileAdded(),On_FileRemoved,On_FileModified(), and is szOldFileName to On_FileNameChanged(). Is also strDirectoryName to On_ReadDirectoryChangesError(), On_WatchStarted(), and On_WatchStopped() + TCHAR * m_szFileName2;//<-- is the szNewFileName parameter to On_FileNameChanged() + DWORD m_dwError; //<-- is the dwError parameter to On_WatchStarted(), and On_ReadDirectoryChangesError() + // + + DWORD m_dwPartialPathOffset;//helps support FILTERS_CHECK_PARTIAL_PATH...not passed to any functions other than may be used during tests in CDelayedDirectoryChangeHandler::NotifyClientOfFileChange() + + + friend class CDirChangeNotification; + friend class CDirectoryChangeWatcher; + friend DWORD GetPathOffsetBasedOnFilterFlags(CDirChangeNotification*,DWORD);//a friend function +}; + + +////////////////////////////////////////////////////////////////////////// +// +// This class makes it so that a file change notification is executed in the +// context of the main thread, and not the worker thread. +// +// +// It works by creating a hidden window. When it receieves a notification +// via one of the On_Filexxx() functions, a message is posted to this window. +// when the message is handled, the notification is fired again in the context +// of the main thread, or whichever thread that called CDirectoryChangeWatcher::WatchDirectory() +// +// +///////////////////////////////////////////////////////////////////////////// +// Note this code wants to use PathMatchSpec() +// which is only supported on WINNT 4.0 w/ Internet Explorer 4.0 and above. +// PathMatchSpec is fully supported on Win2000/XP. +// +// For the case of WINNT 4.0 w/out IE 4.0, we'll use a simpler function. +// some functionality is lost, but such is the price. +// + +typedef BOOL (STDAPICALLTYPE * FUNC_PatternMatchSpec)(LPCTSTR pszFile, LPCTSTR pszSpec); + +class CDelayedDirectoryChangeHandler : public CDirectoryChangeHandler +// +// Decorates an instance of a CDirectoryChangeHandler object. +// Intercepts notification function calls and posts them to +// another thread through a method implemented by a class derived from +// CDelayedNotifier +// +// +// This class implements dispatching the notifications to a thread +// other than CDirectoryChangeWatcher::MonitorDirectoryChanges() +// +// Also supports the include and exclude filters for each directory +// +{ +private: + CDelayedDirectoryChangeHandler();//not implemented. +public: + CDelayedDirectoryChangeHandler( CDirectoryChangeHandler * pRealHandler, bool bAppHasGUI, LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter, DWORD dwFilterFlags); + virtual ~CDelayedDirectoryChangeHandler(); + + + CDirectoryChangeHandler * GetRealChangeHandler()const { return m_pRealHandler; } + CDirectoryChangeHandler * & GetRealChangeHandler(){ return m_pRealHandler; }//FYI: PCLint will give a warning that this exposes a private/protected member& defeats encapsulation. + + void PostNotification(CDirChangeNotification * pNotification); + void DispatchNotificationFunction(CDirChangeNotification * pNotification); + + +protected: + //These functions are called when the directory to watch has had a change made to it + void On_FileAdded(const CString & strFileName); + void On_FileRemoved(const CString & strFileName); + void On_FileModified(const CString & strFileName); + void On_FileNameChanged(const CString & strOldFileName, const CString & strNewFileName); + void On_ReadDirectoryChangesError(DWORD dwError, const CString & strDirectoryName); + + void On_WatchStarted(DWORD dwError, const CString & strDirectoryName); + void On_WatchStopped(const CString & strDirectoryName); + + + void SetChangedDirectoryName(const CString & strChangedDirName); + const CString & GetChangedDirectoryName()const; + + BOOL WaitForOnWatchStoppedDispatched();//see comments in .cpp + + + bool NotifyClientOfFileChange(CDirChangeNotification * pNot); + + bool IncludeThisNotification(LPCTSTR szFileName); // based on file name. + bool ExcludeThisNotification(LPCTSTR szFileName); // Allows us to filter notifications + // + + + + CDirChangeNotification * GetNotificationObject(); + void DisposeOfNotification(CDirChangeNotification * pNotification); + + CDelayedNotifier * m_pDelayNotifier; + CDirectoryChangeHandler * m_pRealHandler; + + // m_bAppHasGUI: + // This flag, if set to true, indicates that the app has a message + bool m_bAppHasGUI; // pump, and that functions are dispatched to the main thread. + // Otherwise, functions are dispatched to a separate worker thread. + // + DWORD m_dwFilterFlags; + + DWORD m_dwPartialPathOffset; //helps support FILTERS_CHECK_PARTIAL_PATH + void SetPartialPathOffset(const CString & strWatchedDirName); + + friend class CDirectoryChangeWatcher; + friend class CDirectoryChangeWatcher::CDirWatchInfo; + +private: + HANDLE m_hWatchStoppedDispatchedEvent;//supports WaitForOnWatchStoppedDispatched() + + TCHAR * m_szIncludeFilter; // Supports the include + TCHAR * m_szExcludeFilter; // & exclude filters + + // + // Load PathMatchSpec dynamically because it's only supported if IE 4.0 or greater is + // installed. + static HMODULE s_hShlwapi_dll;//for the PathMatchSpec() function + static BOOL s_bShlwapi_dllExists;//if on NT4.0 w/out IE 4.0 or greater, this'll be false + static long s_nRefCnt_hShlwapi; + static FUNC_PatternMatchSpec s_fpPatternMatchSpec; + + BOOL _PathMatchSpec(LPCTSTR szPath, LPCTSTR szPattern); + BOOL InitializePathMatchFunc(LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter); + BOOL InitializePatterns(LPCTSTR szIncludeFilter, LPCTSTR szExcludeFilter); + void UninitializePathMatchFunc(); + + bool UsesRealPathMatchSpec() const;//are we using PathMatchSpec() or wildcmp()? + + //note: if the PathMatchSpec function isn't found, wildcmp() is used instead. + // + // to support multiple file specs separated by a semi-colon, + // the include and exclude filters that are passed into the + // the constructor are parsed into separate strings + // which are all checked in a loop. + // + int m_nNumIncludeFilterSpecs; + int m_nNumExcludeFilterSpecs; + + +}; + + + + +#endif // !defined(AFX_DELAYEDDIRECTORYCHANGEHANDLER_H__F20EC22B_1C79_403E_B43C_938F95723D45__INCLUDED_) -- cgit v1.1 From 9df8a3d6305f2c4913ca3b7bd649b221687286f9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:34 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/DirectoryChanges.cpp | 2026 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 2026 insertions(+) create mode 100644 IvyFileMon/DirectoryChanges.cpp diff --git a/IvyFileMon/DirectoryChanges.cpp b/IvyFileMon/DirectoryChanges.cpp new file mode 100644 index 0000000..10b88b3 --- /dev/null +++ b/IvyFileMon/DirectoryChanges.cpp @@ -0,0 +1,2026 @@ +// DirectoryChanges.cpp: implementation of the CDirectoryChangeWatcher and CDirectoryChangeHandler classes. +// +/////////////////////////////////////////////////////////////////// +/// + +/*********************************************************** + + Author: Wes Jones wesj@hotmail.com + + File: DirectoryChanges.cpp + + Latest Changes: + + 11/22/2001 -- Fixed bug causing file name's to be truncated if + longer than 130 characters. Fixed CFileNotifyInformation::GetFileName() + Thanks to Edric(uo_edric@hotmail.com) for pointing this out. + + Added code to enable process privileges when CDirectoryChangeWatcher::WatchDirectory() + is first called. See docuementation API for ReadDirectoryChangesW() for more information of required privileges. + + Currently enables these privileges: (11/22/2001) + SE_BACKUP_NAME + SE_CHANGE_NOTIFY_NAME + SE_RESTORE_NAME(02/09/2002) + Implemented w/ helper class CPrivilegeEnabler. + + 11/23/2001 Added classes so that all notifications are handled by the + same thread that called CDirectoryChangeWatcher::WatchDirectory(), + ie: the main thread. + CDirectoryChangeHandler::On_Filexxxx() functions are now called in the + context of the main thread instead of the worker thread. + + This is good for two reasons: + 1: The worker thread spends less time handling each notification. + The worker thread simply passes the notification to the main thread, + which does the processing. + This means that each file change notification is handled as fast as possible + and ReadDirectoryChangesW() can be called again to receive more notifications + faster. + + 2: This makes it easier to make an ActiveX or ATL object with this class + because the events that are fired, fire in the context of the main thread. + The fact that I'm using a worker thread w/ this class is totally + transparent to a client user. + If I decide to turn this app into an ActiveX or ATL object + I don't have to worry about wierd COM rules and multithreading issues, + and neither does the client, be the client a VB app, C++ app, Delphi app, or whatever. + + Implemented with CDelayedDirectoryChangeHandler in DirectoryChangeHandler.h/.cpp + + 02/06/2002 Fixed a bug that would cause an application to hang. + If ReadDirectoryChangesW was to fail during normal operation, + the short story is that the application would hang + when it called CDirectoryChangeWatcher::UnwatchDirectory(const CString & ) + + One way to reproduce this behavior on the old code + is to watch a directory using a UNC path, and then change the IP + address of that machine while the watch was running. Exitting + the app after this would cause it to hang. + + Steps to reproduce it: + + 1) Assume that the computer running the code is + named 'ThisComputer' and there is a shared folder named 'FolderName' + + + 2) Start a watch on a folder using a UNC path: ie: \\ThisComputer\FolderName + + eg: CDirectoryChangeWatcher watcher; + + watcher.WatchDirectory(_T("\\\\ThisComputer\\FolderName",/ * other parameters * /) + + 3) Change the IP address of 'ThisComputer' + + ** ReadDirectoryChangesW() will fail some point after this. + + + 4) Exit the application... it may hang. + + + Anyways, that's what the bug fix is for. + + + 02/06/2002 New side effects for CDirectoryChangeHandler::On_ReadDirectoryChangeError() + + If CDirectoryChangeHandler::On_ReadDirectoryChangeError() is ever executed + the directory that you are watching will have been unwatched automatically due + to the error condition. + + A call to CDirectoryChangeWatcher::IsWatchingDirectory() will fail because the directory + is no longer being watched. You'll need to re-watch that directory. + + 02/09/2002 Added a parameter to CDirectoryChangeHandler::On_ReadDirectoryChangeError() + + Added the parameter: const CString & strDirectoryName + The new signature is now: + virtual void CDirectoryChangeHandler::On_ReadDirectoryChangeError(DWORD dwError, const CString & strDirectoryName); + + This new parameter gives you the name of the directory that the error occurred on. + + 04/25/2002 Provided a way to get around the requirement of a message pump. + A console app can now use this w/out problems by passing false + to the constructor of CDirectoryChangeWatcher. + An app w/ a message pump can also pass false if it so desires w/out problems. + + 04/25/2002 Added two new virtual functions to CDirectoryChangeHandler + + Added: + On_WatchStarted(DWORD dwError, const CString & strDirectoryName) + On_WatchStopped(const CString & strDirectoryName); + See header file for details. + + 04/27/2002 Added new function to CDirectoryChangeHandler: + + Added virtual bool On_FilterNotification(DWORD dwNotifyAction, LPCTSTR szFileName, LPCTSTR szNewFileName) + + This function is called before any notification function, and allows the + CDirectoryChangeHandler derived class to ignore file notifications + by performing a programmer defined test. + By ignore, i mean that + On_FileAdded(), On_FileRemoved(), On_FileModified(), or On_FileNameChanged() + will NOT be called if this function returns false. + + The default implementation always returns true, signifying that ALL notifications + are to be called. + + + 04/27/2002 Added new Parameters to CDirectoryChangeWatcher::WatchDirectory() + + The new parameters are: + LPCTSTR szIncludeFilter + LPCTSTR szExcludeFilter + Both parameters are defaulted to NULL. + Signature is now: + CDirectoryChangeWatcher::WatchDirectory(const CString & strDirToWatch, + DWORD dwChangesToWatchFor, + CDirectoryChangeHandler * pChangeHandler, + BOOL bWatchSubDirs = FALSE, + LPCTSTR szIncludeFilter = NULL, + LPCTSTR szExcludeFilter = NULL) + + 04/27/2002 Added support for include and exclude filters. + These filters allow you to receive notifications for just the files you + want... ie: you can specify that you only want to receive notifications + for changes to "*.txt" files or some other such file filter. + + NOTE: This feature is implemented w/ the PathMatchSpec() api function + which is only available on NT4.0 if Internet Explorer 4.0 or above is installed. + See MSDN for PathMatchSpec(). Win2000, and XP do not have to worry about it. + + Filter specifications: + Accepts wild card characters * and ?, just as you're used to for the DOS dir command. + It is possible to specify multiple extenstions in the filter by separating each filter spec + with a semi-colon. + eg: "*.txt;*.tmp;*.log" <-- this filter specifies all .txt, .tmp, & .log files + + + + Filters are passed as parameters to CDirectoryChangeWatcher::WatchDirectory() + + NOTE: The filters you specify take precedence over CDirectoryChangeHandler::On_FilterNotification(). + This means that if the file name does not pass the filters that you specify + when the watch is started, On_FilterNotification() will not be called. + Filter specifications are case insensitive, ie: ".tmp" and ".TMP" are the same + + + FILTER TYPES: + Include Filter: + If you specify an include filter, you are specifying that you + only want to receive notifications for specific file types. + eg: "*.log" means that you only want notifications for changes + to files w/ an exention of ".log". + Changes to ALL OTHER other file types are ignored. + An empty, or not specified include filter means that you want + notifications for changes of ALL file types. + Exclude filter: + + If you specify an exclude filter, you are specifying that + you do not wish to receive notifications for a specific type of file or files. + eg: "*.tmp" would mean that you do not want any notifications + regarding files that end w/ ".tmp" + An empty, or not specified exclude filter means that + you do not wish to exclude any file notifications. + + + + + + + +************************************************************/ + +#include "stdafx.h" +#include "DirectoryChanges.h" +#include "DelayedDirectoryChangeHandler.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif +// +// +// Fwd Declares & #define's +// +// +// +// Helper classes +class CPrivilegeEnabler; //for use w/ enabling process priveledges when this code is first used. It's a singleton. + +class CFileNotifyInformation;//helps CDirectoryChangeWatcher class notify CDirectoryChangeHandler class of changes to files. + +class CDelayedDirectoryChangeHandler; // Helps all notifications become handled by the main + // thread, or a worker thread depending upon a value passed to the + // constructor of CDirectoryChangeWatcher. + // + // For notifications to fire in the main thread, your app must have a message pump. + // + // The 'main' thread is the one that called CDirectoryChangeWatcher::WatchDirectory() + +// Helper functions +static BOOL EnablePrivilege(LPCTSTR pszPrivName, BOOL fEnable = TRUE); +static bool IsDirectory(const CString & strPath); +///////////////////////////////////////////////////////////////////// +// Helper functions. +BOOL EnablePrivilege(LPCTSTR pszPrivName, BOOL fEnable /*= TRUE*/) +// +// I think this code is from a Jeffrey Richter book... +// +// Enables user priviledges to be set for this process. +// +// Process needs to have access to certain priviledges in order +// to use the ReadDirectoryChangesW() API. See documentation. +{ + BOOL fOk = FALSE; + // Assume function fails + HANDLE hToken; + // Try to open this process's access token + if (OpenProcessToken(GetCurrentProcess(), + TOKEN_ADJUST_PRIVILEGES, &hToken)) + { + // privilege + TOKEN_PRIVILEGES tp = { 1 }; + + if( LookupPrivilegeValue(NULL, pszPrivName, &tp.Privileges[0].Luid) ) + { + tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0; + + AdjustTokenPrivileges(hToken, FALSE, &tp, + sizeof(tp), NULL, NULL); + + fOk = (GetLastError() == ERROR_SUCCESS); + } + CloseHandle(hToken); + } + return(fOk); +} + +static bool IsDirectory(const CString & strPath) +// +// Returns: bool +// true if strPath is a path to a directory +// false otherwise. +// +{ + DWORD dwAttrib = GetFileAttributes( strPath ); + return static_cast( ( dwAttrib != 0xffffffff + && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)) ); + + +} +/////////////////////////////////////////////// +//Helper class: + +class CFileNotifyInformation +/******************************* + +A Class to more easily traverse the FILE_NOTIFY_INFORMATION records returned +by ReadDirectoryChangesW(). + +FILE_NOTIFY_INFORMATION is defined in Winnt.h as: + + typedef struct _FILE_NOTIFY_INFORMATION { + DWORD NextEntryOffset; + DWORD Action; + DWORD FileNameLength; + WCHAR FileName[1]; +} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; + + ReadDirectoryChangesW basically puts x amount of these records in a + buffer that you specify. + The FILE_NOTIFY_INFORMATION structure is a 'dynamically sized' structure (size depends on length + of the file name (+ sizeof the DWORDs in the struct)) + + Because each structure contains an offset to the 'next' file notification + it is basically a singly linked list. This class treats the structure in that way. + + + Sample Usage: + BYTE Read_Buffer[ 4096 ]; + + ... + ReadDirectoryChangesW(...Read_Buffer, 4096,...); + ... + + CFileNotifyInformation notify_info( Read_Buffer, 4096); + do{ + switch( notify_info.GetAction() ) + { + case xx: + notify_info.GetFileName(); + } + + while( notify_info.GetNextNotifyInformation() ); + +********************************/ +{ +public: + CFileNotifyInformation( BYTE * lpFileNotifyInfoBuffer, DWORD dwBuffSize) + : m_pBuffer( lpFileNotifyInfoBuffer ), + m_dwBufferSize( dwBuffSize ) + { + ASSERT( lpFileNotifyInfoBuffer && dwBuffSize ); + + m_pCurrentRecord = (PFILE_NOTIFY_INFORMATION) m_pBuffer; + } + + + BOOL GetNextNotifyInformation(); + + BOOL CopyCurrentRecordToBeginningOfBuffer(OUT DWORD & ref_dwSizeOfCurrentRecord); + + DWORD GetAction() const;//gets the type of file change notifiation + CString GetFileName()const;//gets the file name from the FILE_NOTIFY_INFORMATION record + CString GetFileNameWithPath(const CString & strRootPath) const;//same as GetFileName() only it prefixes the strRootPath into the file name + + +protected: + BYTE * m_pBuffer;//<--all of the FILE_NOTIFY_INFORMATION records 'live' in the buffer this points to... + DWORD m_dwBufferSize; + PFILE_NOTIFY_INFORMATION m_pCurrentRecord;//this points to the current FILE_NOTIFY_INFORMATION record in m_pBuffer + +}; + +BOOL CFileNotifyInformation::GetNextNotifyInformation() +/*************** + Sets the m_pCurrentRecord to the next FILE_NOTIFY_INFORMATION record. + + Even if this return FALSE, (unless m_pCurrentRecord is NULL) + m_pCurrentRecord will still point to the last record in the buffer. +****************/ +{ + if( m_pCurrentRecord + && m_pCurrentRecord->NextEntryOffset != 0UL)//is there another record after this one? + { + //set the current record to point to the 'next' record + PFILE_NOTIFY_INFORMATION pOld = m_pCurrentRecord; + m_pCurrentRecord = (PFILE_NOTIFY_INFORMATION) ((LPBYTE)m_pCurrentRecord + m_pCurrentRecord->NextEntryOffset); + + ASSERT( (DWORD)((BYTE*)m_pCurrentRecord - m_pBuffer) < m_dwBufferSize);//make sure we haven't gone too far + + if( (DWORD)((BYTE*)m_pCurrentRecord - m_pBuffer) > m_dwBufferSize ) + { + //we've gone too far.... this data is hosed. + // + // This sometimes happens if the watched directory becomes deleted... remove the FILE_SHARE_DELETE flag when using CreateFile() to get the handle to the directory... + m_pCurrentRecord = pOld; + } + + return (BOOL)(m_pCurrentRecord != pOld); + } + return FALSE; +} + +BOOL CFileNotifyInformation::CopyCurrentRecordToBeginningOfBuffer(OUT DWORD & ref_dwSizeOfCurrentRecord) +/***************************************** + Copies the FILE_NOTIFY_INFORMATION record to the beginning of the buffer + specified in the constructor. + + The size of the current record is returned in DWORD & dwSizeOfCurrentRecord. + +*****************************************/ +{ + ASSERT( m_pBuffer && m_pCurrentRecord ); + if( !m_pCurrentRecord ) return FALSE; + + BOOL bRetVal = TRUE; + + //determine the size of the current record. + ref_dwSizeOfCurrentRecord = sizeof( FILE_NOTIFY_INFORMATION ); + //subtract out sizeof FILE_NOTIFY_INFORMATION::FileName[1] + WCHAR FileName[1];//same as is defined for FILE_NOTIFY_INFORMATION::FileName + UNREFERENCED_PARAMETER(FileName); + ref_dwSizeOfCurrentRecord -= sizeof(FileName); + //and replace it w/ value of FILE_NOTIFY_INFORMATION::FileNameLength + ref_dwSizeOfCurrentRecord += m_pCurrentRecord->FileNameLength; + + ASSERT( (DWORD)((LPBYTE)m_pCurrentRecord + ref_dwSizeOfCurrentRecord) <= m_dwBufferSize ); + + ASSERT( (void*)m_pBuffer != (void*)m_pCurrentRecord );//if this is the case, your buffer is way too small + if( (void*)m_pBuffer != (void*) m_pCurrentRecord ) + {//copy the m_pCurrentRecord to the beginning of m_pBuffer + + ASSERT( (DWORD)m_pCurrentRecord > (DWORD)m_pBuffer + ref_dwSizeOfCurrentRecord);//will it overlap? + __try{ + memcpy(m_pBuffer, m_pCurrentRecord, ref_dwSizeOfCurrentRecord); + bRetVal = TRUE; + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + TRACE(_T("EXCEPTION! CFileNotifyInformation::CopyCurrentRecordToBeginningOfBuffer() -- probably because bytes overlapped in a call to memcpy()")); + bRetVal = FALSE; + } + } + //else + //there was only one record in this buffer, and m_pCurrentRecord is already at the beginning of the buffer + return bRetVal; +} + +DWORD CFileNotifyInformation::GetAction() const +{ + ASSERT( m_pCurrentRecord ); + if( m_pCurrentRecord ) + return m_pCurrentRecord->Action; + return 0UL; +} + +CString CFileNotifyInformation::GetFileName() const +{ + // + //BUG FIX: + // File Name's longer than 130 characters are truncated + // + // Thanks Edric @ uo_edric@hotmail.com for pointing this out. + if( m_pCurrentRecord ) + { + WCHAR wcFileName[ MAX_PATH + 1] = {0};//L""; + memcpy( wcFileName, + m_pCurrentRecord->FileName, + //min( MAX_PATH, m_pCurrentRecord->FileNameLength) <-- buggy line + min( (MAX_PATH * sizeof(WCHAR)), m_pCurrentRecord->FileNameLength)); + + + return CString( wcFileName ); + } + return CString(); +} + +static inline bool HasTrailingBackslash(const CString & str ) +{ + if( str.GetLength() > 0 + && str[ str.GetLength() - 1 ] == _T('\\') ) + return true; + return false; +} +CString CFileNotifyInformation::GetFileNameWithPath(const CString & strRootPath) const +{ + CString strFileName( strRootPath ); + //if( strFileName.Right(1) != _T("\\") ) + if( !HasTrailingBackslash( strRootPath ) ) + strFileName += _T("\\"); + + strFileName += GetFileName(); + return strFileName; +} +///////////////////////////////////////////////////////////////////////////////// +class CPrivilegeEnabler +// +// Enables privileges for this process +// first time CDirectoryChangeWatcher::WatchDirectory() is called. +// +// It's a singleton. +// +{ +private: + CPrivilegeEnabler();//ctor +public: + ~CPrivilegeEnabler(){}; + + static CPrivilegeEnabler & Instance(); + //friend static CPrivilegeEnabler & Instance(); +}; + +CPrivilegeEnabler::CPrivilegeEnabler() +{ + LPCTSTR arPrivelegeNames[] = { + SE_BACKUP_NAME, // these two are required for the FILE_FLAG_BACKUP_SEMANTICS flag used in the call to + SE_RESTORE_NAME,// CreateFile() to open the directory handle for ReadDirectoryChangesW + + SE_CHANGE_NOTIFY_NAME //just to make sure...it's on by default for all users. + // + }; + for(int i = 0; i < sizeof(arPrivelegeNames) / sizeof(arPrivelegeNames[0]); ++i) + { + if( !EnablePrivilege(arPrivelegeNames[i], TRUE) ) + { + TRACE(_T("Unable to enable privilege: %s -- GetLastError(): %d\n"), arPrivelegeNames[i], GetLastError()); + TRACE(_T("CDirectoryChangeWatcher notifications may not work as intended due to insufficient access rights/process privileges.\n")); + TRACE(_T("File: %s Line: %d\n"), _T(__FILE__), __LINE__); + } + } +} + +CPrivilegeEnabler & CPrivilegeEnabler::Instance() +{ + static CPrivilegeEnabler theInstance;//constructs this first time it's called. + return theInstance; +} +// +// +// +/////////////////////////////////////////////////////////// + + +// +// +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// +CDirectoryChangeHandler::CDirectoryChangeHandler() +: m_nRefCnt( 1 ), + m_pDirChangeWatcher( NULL ), + m_nWatcherRefCnt( 0L ) +{ +} + +CDirectoryChangeHandler::~CDirectoryChangeHandler() +{ + UnwatchDirectory(); +} + +long CDirectoryChangeHandler::AddRef() +{ + return InterlockedIncrement(&m_nRefCnt); +} + +long CDirectoryChangeHandler::Release() +{ + long nRefCnt = -1; + if( (nRefCnt = InterlockedDecrement(&m_nRefCnt)) == 0 ) + delete this; + return nRefCnt; +} +long CDirectoryChangeHandler::CurRefCnt()const +{ + return m_nRefCnt; +} + +BOOL CDirectoryChangeHandler::UnwatchDirectory() +{ + CSingleLock lock(&m_csWatcher, TRUE); + ASSERT( lock.IsLocked() ); + + if( m_pDirChangeWatcher ) + return m_pDirChangeWatcher->UnwatchDirectory( this ); + return TRUE; +} + +long CDirectoryChangeHandler::ReferencesWatcher(CDirectoryChangeWatcher * pDirChangeWatcher) +{ + ASSERT( pDirChangeWatcher ); + CSingleLock lock(&m_csWatcher, TRUE); + if( m_pDirChangeWatcher + && m_pDirChangeWatcher != pDirChangeWatcher ) + { + TRACE(_T("CDirectoryChangeHandler...is becoming used by a different CDirectoryChangeWatcher!\n")); + TRACE(_T("Directories being handled by this object will now be unwatched.\nThis object is now being used to ") + _T("handle changes to a directory watched by different CDirectoryChangeWatcher object, probably on a different directory")); + + if( UnwatchDirectory() ) + { + m_pDirChangeWatcher = pDirChangeWatcher; + m_nWatcherRefCnt = 1; //when this reaches 0, set m_pDirChangeWatcher to NULL + return m_nWatcherRefCnt; + } + else + { + ASSERT( FALSE );//shouldn't get here! + } + } + else + { + ASSERT( !m_pDirChangeWatcher || m_pDirChangeWatcher == pDirChangeWatcher ); + + m_pDirChangeWatcher = pDirChangeWatcher; + + if( m_pDirChangeWatcher ) + return InterlockedIncrement(&m_nWatcherRefCnt); + + } + return m_nWatcherRefCnt; +} + +long CDirectoryChangeHandler::ReleaseReferenceToWatcher(CDirectoryChangeWatcher * pDirChangeWatcher) +{ + ASSERT( m_pDirChangeWatcher == pDirChangeWatcher ); + CSingleLock lock(&m_csWatcher, TRUE); + long nRef; + if( (nRef = InterlockedDecrement(&m_nWatcherRefCnt)) <= 0L ) + { + m_pDirChangeWatcher = NULL; //Setting this to NULL so that this->UnwatchDirectory() which is called in the dtor + //won't call m_pDirChangeWatcher->UnwatchDirecotry(this). + //m_pDirChangeWatcher may point to a destructed object depending on how + //these classes are being used. + m_nWatcherRefCnt = 0L; + } + return nRef; +} + +// +// +// Default implmentations for CDirectoryChangeHandler's virtual functions. +// +// +void CDirectoryChangeHandler::On_FileAdded(const CString & strFileName) +{ + TRACE(_T("The following file was added: %s\n"), strFileName); +} + +void CDirectoryChangeHandler::On_FileRemoved(const CString & strFileName) +{ + TRACE(_T("The following file was removed: %s\n"), strFileName); +} + +void CDirectoryChangeHandler::On_FileModified(const CString & strFileName) +{ + TRACE(_T("The following file was modified: %s\n"), strFileName); +} + +void CDirectoryChangeHandler::On_FileNameChanged(const CString & strOldFileName, const CString & strNewFileName) +{ + TRACE(_T("The file %s was RENAMED to %s\n"), strOldFileName, strNewFileName); +} +void CDirectoryChangeHandler::On_ReadDirectoryChangesError(DWORD dwError, const CString & strDirectoryName) +{ + TRACE(_T("WARNING!!!!!\n") ); + TRACE(_T("An error has occurred on a watched directory!\n")); + TRACE(_T("This directory has become unwatched! -- %s \n"), strDirectoryName); + TRACE(_T("ReadDirectoryChangesW has failed! %d"), dwError); + ASSERT( FALSE );//you should override this function no matter what. an error will occur someday. +} + +void CDirectoryChangeHandler::On_WatchStarted(DWORD dwError, const CString & strDirectoryName) +{ + if( dwError == 0 ) + TRACE(_T("A watch has begun on the following directory: %s\n"), strDirectoryName); + else + TRACE(_T("A watch failed to start on the following directory: (Error: %d) %s\n"),dwError, strDirectoryName); +} + +void CDirectoryChangeHandler::On_WatchStopped(const CString & strDirectoryName) +{ + TRACE(_T("The watch on the following directory has stopped: %s\n"), strDirectoryName); +} + +bool CDirectoryChangeHandler::On_FilterNotification(DWORD /*dwNotifyAction*/, LPCTSTR /*szFileName*/, LPCTSTR /*szNewFileName*/) +// +// bool On_FilterNotification(DWORD dwNotifyAction, LPCTSTR szFileName, LPCTSTR szNewFileName); +// +// This function gives your class a chance to filter unwanted notifications. +// +// PARAMETERS: +// DWORD dwNotifyAction -- specifies the event to filter +// LPCTSTR szFileName -- specifies the name of the file for the event. +// LPCTSTR szNewFileName -- specifies the new file name of a file that has been renamed. +// +// RETURN VALUE: +// return true from this function, and you will receive the notification. +// return false from this function, and your class will NOT receive the notification. +// +// Valid values of dwNotifyAction: +// FILE_ACTION_ADDED -- On_FileAdded() is about to be called. +// FILE_ACTION_REMOVED -- On_FileRemoved() is about to be called. +// FILE_ACTION_MODIFIED -- On_FileModified() is about to be called. +// FILE_ACTION_RENAMED_OLD_NAME-- On_FileNameChanged() is about to be call. +// +// +// NOTE: When the value of dwNotifyAction is FILE_ACTION_RENAMED_OLD_NAME, +// szFileName will be the old name of the file, and szNewFileName will +// be the new name of the renamed file. +// +// The default implementation always returns true, indicating that all notifications will +// be sent. +// +{ + return true; +} + +void CDirectoryChangeHandler::SetChangedDirectoryName(const CString & strChangedDirName) +{ + m_strChangedDirectoryName = strChangedDirName; +} +//////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// + +CDirectoryChangeWatcher::CDirectoryChangeWatcher(bool bAppHasGUI /*= true*/, DWORD dwFilterFlags/*=FILTERS_CHECK_FILE_NAME_ONLY*/) +: m_hCompPort( NULL ) + ,m_hThread( NULL ) + ,m_dwThreadID( 0UL ) + ,m_bAppHasGUI( bAppHasGUI ) + ,m_dwFilterFlags( dwFilterFlags == 0? FILTERS_DEFAULT_BEHAVIOR : dwFilterFlags) +{ + //NOTE: + // The bAppHasGUI variable indicates that you have a message pump associated + // with the main thread(or the thread that first calls CDirectoryChangeWatcher::WatchDirectory() ). + // Directory change notifications are dispatched to your main thread. + // + // If your app doesn't have a gui, then pass false. Doing so causes a worker thread + // to be created that implements a message pump where it dispatches/executes the notifications. + // It's ok to pass false even if your app does have a GUI. + // Passing false is required for Console applications, or applications without a message pump. + // Note that notifications are fired in a worker thread. + // + + //NOTE: + // + // +} + +CDirectoryChangeWatcher::~CDirectoryChangeWatcher() +{ + + UnwatchAllDirectories(); + + if( m_hCompPort ) + { + CloseHandle( m_hCompPort ); + m_hCompPort = NULL; + } +} + +DWORD CDirectoryChangeWatcher::SetFilterFlags(DWORD dwFilterFlags) +// +// SetFilterFlags() +// +// sets filter behavior for directories watched AFTER this function has been called. +// +// +// +{ + DWORD dwOld = m_dwFilterFlags; + m_dwFilterFlags = dwFilterFlags; + if( m_dwFilterFlags == 0 ) + m_dwFilterFlags = FILTERS_DEFAULT_BEHAVIOR;//the default. + return dwOld; +} + +BOOL CDirectoryChangeWatcher::IsWatchingDirectory(const CString & strDirName)const +/********************************************* + Determines whether or not a directory is being watched + + be carefull that you have the same name path name, including the backslash + as was used in the call to WatchDirectory(). + + ie: + "C:\\Temp" + is different than + "C:\\Temp\\" +**********************************************/ +{ + CSingleLock lock( const_cast(&m_csDirWatchInfo), TRUE); + ASSERT( lock.IsLocked() ); + int i; + if( GetDirWatchInfo(strDirName, i) ) + return TRUE; + return FALSE; +} + +int CDirectoryChangeWatcher::NumWatchedDirectories()const +{ + CSingleLock lock(const_cast(&m_csDirWatchInfo), TRUE); + ASSERT( lock.IsLocked() ); + int nCnt(0),max = m_DirectoriesToWatch.GetSize(); + for(int i(0); i < max; ++i) + { + if( m_DirectoriesToWatch[i] != NULL )//array may contain NULL elements. + nCnt++; + } + + return nCnt; +} + +DWORD CDirectoryChangeWatcher::WatchDirectory(const CString & strDirToWatch, + DWORD dwChangesToWatchFor, + CDirectoryChangeHandler * pChangeHandler, + BOOL bWatchSubDirs /*=FALSE*/, + LPCTSTR szIncludeFilter /*=NULL*/, + LPCTSTR szExcludeFilter /*=NULL*/ + ) +/************************************************************* +FUNCTION: WatchDirectory(const CString & strDirToWatch, --the name of the directory to watch + DWORD dwChangesToWatchFor, --the changes to watch for see dsk docs..for ReadDirectoryChangesW + CDirectoryChangeHandler * pChangeHandler -- handles changes in specified directory + BOOL bWatchSubDirs --specified to watch sub directories of the directory that you want to watch + ) + +PARAMETERS: + const CString & strDirToWatch -- specifies the path of the directory to watch. + DWORD dwChangesToWatchFor -- specifies flags to be passed to ReadDirectoryChangesW() + CDirectoryChangeHandler * -- ptr to an object which will handle notifications of file changes. + BOOL bWatchSubDirs -- specifies to watch subdirectories. + LPCTSTR szIncludeFilter -- A file pattern string for files that you wish to receive notifications + for. See Remarks. + LPCTSTR szExcludeFilter -- A file pattern string for files that you do not wish to receive notifications for. See Remarks + + Starts watching the specified directory(and optionally subdirectories) for the specified changes + + When specified changes take place the appropriate CDirectoryChangeHandler::On_Filexxx() function is called. + + dwChangesToWatchFor can be a combination of the following flags, and changes map out to the + following functions: + FILE_NOTIFY_CHANGE_FILE_NAME -- CDirectoryChangeHandler::On_FileAdded() + CDirectoryChangeHandler::On_FileNameChanged, + CDirectoryChangeHandler::On_FileRemoved + FILE_NOTIFY_CHANGE_DIR_NAME -- CDirectoryChangeHandler::On_FileNameAdded(), + CDirectoryChangeHandler::On_FileRemoved + FILE_NOTIFY_CHANGE_ATTRIBUTES -- CDirectoryChangeHandler::On_FileModified + FILE_NOTIFY_CHANGE_SIZE -- CDirectoryChangeHandler::On_FileModified + FILE_NOTIFY_CHANGE_LAST_WRITE -- CDirectoryChangeHandler::On_FileModified + FILE_NOTIFY_CHANGE_LAST_ACCESS -- CDirectoryChangeHandler::On_FileModified + FILE_NOTIFY_CHANGE_CREATION -- CDirectoryChangeHandler::On_FileModified + FILE_NOTIFY_CHANGE_SECURITY -- CDirectoryChangeHandler::On_FileModified? + + + Returns ERROR_SUCCESS if the directory will be watched, + or a windows error code if the directory couldn't be watched. + The error code will most likely be related to a call to CreateFile(), or + from the initial call to ReadDirectoryChangesW(). It's also possible to get an + error code related to being unable to create an io completion port or being unable + to start the worker thread. + + This function will fail if the directory to be watched resides on a + computer that is not a Windows NT/2000/XP machine. + + + You can only have one watch specified at a time for any particular directory. + Calling this function with the same directory name will cause the directory to be + unwatched, and then watched again(w/ the new parameters that have been passed in). + +**************************************************************/ +{ + ASSERT( dwChangesToWatchFor != 0); + + if( strDirToWatch.IsEmpty() + || dwChangesToWatchFor == 0 + || pChangeHandler == NULL ) + { + TRACE(_T("ERROR: You've passed invalid parameters to CDirectoryChangeWatcher::WatchDirectory()\n")); + ::SetLastError(ERROR_INVALID_PARAMETER); + return ERROR_INVALID_PARAMETER; + } + + + //double check that it's really a directory + if( !IsDirectory( strDirToWatch ) ) + { + TRACE(_T("ERROR: CDirectoryChangeWatcher::WatchDirectory() -- %s is not a directory!\n"), strDirToWatch); + ::SetLastError(ERROR_BAD_PATHNAME); + return ERROR_BAD_PATHNAME; + } + + //double check that this directory is not already being watched.... + //if it is, then unwatch it before restarting it... + if( IsWatchingDirectory( strDirToWatch) ) + { + VERIFY( + UnwatchDirectory( strDirToWatch ) + ); + } + // + // + // Reference this singleton so that privileges for this process are enabled + // so that it has required permissions to use the ReadDirectoryChangesW API, etc. + // + CPrivilegeEnabler::Instance(); + // + //open the directory to watch.... + HANDLE hDir = CreateFile(strDirToWatch, + FILE_LIST_DIRECTORY, + FILE_SHARE_READ | FILE_SHARE_WRITE ,//| FILE_SHARE_DELETE, <-- removing FILE_SHARE_DELETE prevents the user or someone else from renaming or deleting the watched directory. This is a good thing to prevent. + NULL, //security attributes + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS | //<- the required priviliges for this flag are: SE_BACKUP_NAME and SE_RESTORE_NAME. CPrivilegeEnabler takes care of that. + FILE_FLAG_OVERLAPPED, //OVERLAPPED! + NULL); + if( hDir == INVALID_HANDLE_VALUE ) + { + DWORD dwError = GetLastError(); + TRACE(_T("CDirectoryChangeWatcher::WatchDirectory() -- Couldn't open directory for monitoring. %d\n"), dwError); + ::SetLastError(dwError);//who knows if TRACE will cause GetLastError() to return success...probably won't, but set it manually just for fun. + return dwError; + } + //opened the dir! + + CDirWatchInfo * pDirInfo = new CDirWatchInfo( hDir, strDirToWatch, pChangeHandler, dwChangesToWatchFor, bWatchSubDirs, m_bAppHasGUI, szIncludeFilter, szExcludeFilter, m_dwFilterFlags); + if( !pDirInfo ) + { + TRACE(_T("WARNING: Couldn't allocate a new CDirWatchInfo() object --- File: %s Line: %d\n"), _T( __FILE__ ), __LINE__); + CloseHandle( hDir ); + ::SetLastError(ERROR_OUTOFMEMORY); + return ERROR_OUTOFMEMORY; + } + + //create a IO completion port/or associate this key with + //the existing IO completion port + m_hCompPort = CreateIoCompletionPort(hDir, + m_hCompPort, //if m_hCompPort is NULL, hDir is associated with a NEW completion port, + //if m_hCompPort is NON-NULL, hDir is associated with the existing completion port that the handle m_hCompPort references + (DWORD)pDirInfo, //the completion 'key'... this ptr is returned from GetQueuedCompletionStatus() when one of the events in the dwChangesToWatchFor filter takes place + 0); + if( m_hCompPort == NULL ) + { + TRACE(_T("ERROR -- Unable to create I/O Completion port! GetLastError(): %d File: %s Line: %d"), GetLastError(), _T( __FILE__ ), __LINE__ ); + DWORD dwError = GetLastError(); + pDirInfo->DeleteSelf( NULL ); + ::SetLastError(dwError);//who knows what the last error will be after i call pDirInfo->DeleteSelf(), so set it just to make sure + return dwError; + } + else + {//completion port created/directory associated w/ it successfully + + //if the thread isn't running start it.... + //when the thread starts, it will call ReadDirectoryChangesW and wait + //for changes to take place + if( m_hThread == NULL ) + { + //start the thread + CWinThread * pThread = AfxBeginThread(MonitorDirectoryChanges, this); + if( !pThread ) + {//couldn't create the thread! + TRACE(_T("CDirectoryChangeWatcher::WatchDirectory()-- AfxBeginThread failed!\n")); + pDirInfo->DeleteSelf( NULL ); + return (GetLastError() == ERROR_SUCCESS)? ERROR_MAX_THRDS_REACHED : GetLastError(); + } + else + { + m_hThread = pThread->m_hThread; + m_dwThreadID = pThread->m_nThreadID; + pThread->m_bAutoDelete = TRUE;//pThread is deleted when thread ends....it's TRUE by default(for CWinThread ptrs returned by AfxBeginThread(threadproc, void*)), but just makin sure. + + } + } + if( m_hThread != NULL ) + {//thread is running, + //signal the thread to issue the initial call to + //ReadDirectoryChangesW() + DWORD dwStarted = pDirInfo->StartMonitor( m_hCompPort ); + + if( dwStarted != ERROR_SUCCESS ) + {//there was a problem! + TRACE(_T("Unable to watch directory: %s -- GetLastError(): %d\n"), dwStarted); + pDirInfo->DeleteSelf( NULL ); + ::SetLastError(dwStarted);//I think this'll set the Err object in a VB app..... + return dwStarted; + } + else + {//ReadDirectoryChangesW was successfull! + //add the directory info to the first empty slot in the array + + //associate the pChangeHandler with this object + pChangeHandler->ReferencesWatcher( this );//reference is removed when directory is unwatched. + //CDirWatchInfo::DeleteSelf() must now be called w/ this CDirectoryChangeWatcher pointer becuse + //of a reference count + + //save the CDirWatchInfo* so I'll be able to use it later. + VERIFY( AddToWatchInfo( pDirInfo ) ); + SetLastError(dwStarted); + return dwStarted; + } + + } + else + { + ASSERT(FALSE);//control path shouldn't get here + ::SetLastError(ERROR_MAX_THRDS_REACHED); + return ERROR_MAX_THRDS_REACHED; + } + + } + ASSERT( FALSE );//shouldn't get here. +} + +BOOL CDirectoryChangeWatcher::UnwatchAllDirectories() +{ + + //unwatch all of the watched directories + //delete all of the CDirWatchInfo objects, + //kill off the worker thread + if( m_hThread != NULL ) + { + ASSERT( m_hCompPort != NULL ); + + CSingleLock lock( &m_csDirWatchInfo, TRUE); + ASSERT( lock.IsLocked() ); + + CDirWatchInfo * pDirInfo; + //Unwatch each of the watched directories + //and delete the CDirWatchInfo associated w/ that directory... + int max = m_DirectoriesToWatch.GetSize(); + for(int i = 0; i < max; ++i) + { + if( (pDirInfo = m_DirectoriesToWatch[i]) != NULL ) + { + VERIFY( pDirInfo->UnwatchDirectory( m_hCompPort ) ); + + m_DirectoriesToWatch.SetAt(i, NULL) ; + pDirInfo->DeleteSelf(this); + } + + } + m_DirectoriesToWatch.RemoveAll(); + //kill off the thread + PostQueuedCompletionStatus(m_hCompPort, 0, 0, NULL);//The thread will catch this and exit the thread + //wait for it to exit + WaitForSingleObject(m_hThread, INFINITE); + //CloseHandle( m_hThread );//Since thread was started w/ AfxBeginThread() this handle is closed automatically, closing it again will raise an exception + m_hThread = NULL; + m_dwThreadID = 0UL; + + //close the completion port... + CloseHandle( m_hCompPort ); + m_hCompPort = NULL; + + + return TRUE; + } + else + { +#ifdef _DEBUG + //make sure that there aren't any + //CDirWatchInfo objects laying around... they should have all been destroyed + //and removed from the array m_DirectoriesToWatch + if( m_DirectoriesToWatch.GetSize() > 0 ) + { + for(int i = 0; i < m_DirectoriesToWatch.GetSize(); ++i) + { + ASSERT( m_DirectoriesToWatch[i] == NULL ); + } + } +#endif + } + return FALSE; +} + +BOOL CDirectoryChangeWatcher::UnwatchDirectory(const CString & strDirToStopWatching) +/*************************************************************** +FUNCTION: UnwatchDirectory(const CString & strDirToStopWatching -- if this directory is being watched, the watch is stopped + +****************************************************************/ +{ + BOOL bRetVal = FALSE; + + + + if( m_hCompPort != NULL )//The io completion port must be open + { + ASSERT( !strDirToStopWatching.IsEmpty() ); + + CSingleLock lock(&m_csDirWatchInfo, TRUE); + ASSERT( lock.IsLocked() ); + int nIdx = -1; + CDirWatchInfo * pDirInfo = GetDirWatchInfo(strDirToStopWatching, nIdx); + if( pDirInfo != NULL + && nIdx != -1 ) + { + + //stop watching this directory + VERIFY( pDirInfo->UnwatchDirectory( m_hCompPort ) ); + + //cleanup the object used to watch the directory + m_DirectoriesToWatch.SetAt(nIdx, NULL); + pDirInfo->DeleteSelf(this); + bRetVal = TRUE; + } + } + + return bRetVal; +} + +BOOL CDirectoryChangeWatcher::UnwatchDirectory(CDirectoryChangeHandler * pChangeHandler) +/************************************ + + This function is called from the dtor of CDirectoryChangeHandler automatically, + but may also be called by a programmer because it's public... + + A single CDirectoryChangeHandler may be used for any number of watched directories. + + Unwatch any directories that may be using this + CDirectoryChangeHandler * pChangeHandler to handle changes to a watched directory... + + The CDirWatchInfo::m_pChangeHandler member of objects in the m_DirectoriesToWatch + array will == pChangeHandler if that handler is being used to handle changes to a directory.... +************************************/ +{ + ASSERT( pChangeHandler ); + + CSingleLock lock(&m_csDirWatchInfo, TRUE); + + ASSERT( lock.IsLocked() ); + + int nUnwatched = 0; + int nIdx = -1; + CDirWatchInfo * pDirInfo; + // + // go through and unwatch any directory that is + // that is using this pChangeHandler as it's file change notification handler. + // + while( (pDirInfo = GetDirWatchInfo( pChangeHandler, nIdx )) != NULL ) + { + VERIFY( pDirInfo->UnwatchDirectory( m_hCompPort ) ); + + nUnwatched++; + m_DirectoriesToWatch.SetAt(nIdx, NULL); + pDirInfo->DeleteSelf(this); + } + return (BOOL)(nUnwatched != 0); +} + +BOOL CDirectoryChangeWatcher::UnwatchDirectoryBecauseOfError(CDirWatchInfo * pWatchInfo) +// +// Called in the worker thread in the case that ReadDirectoryChangesW() fails +// during normal operation. One way to force this to happen is to watch a folder +// using a UNC path and changing that computer's IP address. +// +{ + ASSERT( pWatchInfo ); + ASSERT( m_dwThreadID == GetCurrentThreadId() );//this should be called from the worker thread only. + BOOL bRetVal = FALSE; + if( pWatchInfo ) + { + CSingleLock lock(&m_csDirWatchInfo, TRUE); + + ASSERT( lock.IsLocked() ); + int nIdx = -1; + if( GetDirWatchInfo(pWatchInfo, nIdx) == pWatchInfo ) + { + // we are actually watching this.... + + // + // Remove this CDirWatchInfo object from the list of watched directories. + // + m_DirectoriesToWatch.SetAt(nIdx, NULL);//mark the space as free for the next watch... + + // + // and delete it... + // + + pWatchInfo->DeleteSelf(this); + + } + + } + return bRetVal; +} + +int CDirectoryChangeWatcher::AddToWatchInfo(CDirectoryChangeWatcher::CDirWatchInfo * pWatchInfo) +// +// +// To add the CDirWatchInfo * to an array. +// The array is used to keep track of which directories +// are being watched. +// +// Add the ptr to the first non-null slot in the array. +{ + CSingleLock lock( &m_csDirWatchInfo, TRUE); + ASSERT( lock.IsLocked() ); + + //first try to add it to the first empty slot in m_DirectoriesToWatch + int max = m_DirectoriesToWatch.GetSize(); + for(int i = 0; i < max; ++i) + { + if( m_DirectoriesToWatch[i] == NULL ) + { + m_DirectoriesToWatch[i] = pWatchInfo; + break; + } + } + if( i == max ) + { + // there where no empty slots, add it to the end of the array + try{ + i = m_DirectoriesToWatch.Add( pWatchInfo ); + } + catch(CMemoryException * e){ + e->ReportError(); + e->Delete();//??? delete this? I thought CMemoryException objects where pre allocated in mfc? -- sample code in msdn does, so will i + i = -1; + } + } + + return (BOOL)(i != -1); +} + +// +// functions for retrieving the directory watch info based on different parameters +// +CDirectoryChangeWatcher::CDirWatchInfo * CDirectoryChangeWatcher::GetDirWatchInfo(const CString & strDirName, int & ref_nIdx)const +{ + if( strDirName.IsEmpty() )// can't be watching a directory if it's you don't pass in the name of it... + return FALSE; // + + CSingleLock lock(const_cast(&m_csDirWatchInfo), TRUE); + + int max = m_DirectoriesToWatch.GetSize(); + CDirWatchInfo * p = NULL; + for(int i = 0; i < max; ++i ) + { + if( (p = m_DirectoriesToWatch[i]) != NULL + && p->m_strDirName.CompareNoCase( strDirName ) == 0 ) + { + ref_nIdx = i; + return p; + } + } + + return NULL;//NOT FOUND +} + +CDirectoryChangeWatcher::CDirWatchInfo * CDirectoryChangeWatcher::GetDirWatchInfo(CDirectoryChangeWatcher::CDirWatchInfo * pWatchInfo, int & ref_nIdx)const +{ + ASSERT( pWatchInfo != NULL ); + + CSingleLock lock( const_cast(&m_csDirWatchInfo), TRUE); + int i(0), max = m_DirectoriesToWatch.GetSize(); + CDirWatchInfo * p; + for(; i < max; ++i) + { + if( (p = m_DirectoriesToWatch[i]) != NULL + && p == pWatchInfo ) + { + ref_nIdx = i; + return p; + } + } + return NULL;//NOT FOUND +} + +CDirectoryChangeWatcher::CDirWatchInfo * CDirectoryChangeWatcher::GetDirWatchInfo(CDirectoryChangeHandler * pChangeHandler, int & ref_nIdx)const +{ + ASSERT( pChangeHandler != NULL ); + CSingleLock lock( const_cast(&m_csDirWatchInfo), TRUE); + int i(0),max = m_DirectoriesToWatch.GetSize(); + CDirWatchInfo * p; + for( ; i < max; ++i) + { + if( (p = m_DirectoriesToWatch[i]) != NULL + && p->GetRealChangeHandler() == pChangeHandler ) + { + ref_nIdx = i; + return p; + } + } + return NULL;//NOT FOUND +} + +long CDirectoryChangeWatcher::ReleaseReferenceToWatcher(CDirectoryChangeHandler * pChangeHandler) +{ + ASSERT( pChangeHandler ); + return pChangeHandler->ReleaseReferenceToWatcher(this); +} + +CDirectoryChangeWatcher::CDirWatchInfo::CDirWatchInfo(HANDLE hDir, + const CString & strDirectoryName, + CDirectoryChangeHandler * pChangeHandler, + DWORD dwChangeFilter, + BOOL bWatchSubDir, + bool bAppHasGUI, + LPCTSTR szIncludeFilter, + LPCTSTR szExcludeFilter, + DWORD dwFilterFlags) + : m_pChangeHandler( NULL ), + m_hDir(hDir), + m_dwChangeFilter( dwChangeFilter ), + m_bWatchSubDir( bWatchSubDir ), + m_strDirName( strDirectoryName ), + m_dwBufLength(0), + m_dwReadDirError(ERROR_SUCCESS), + m_StartStopEvent(FALSE, TRUE), //NOT SIGNALLED, MANUAL RESET + m_RunningState( RUNNING_STATE_NOT_SET ) +{ + + ASSERT( hDir != INVALID_HANDLE_VALUE + && !strDirectoryName.IsEmpty() ); + + // + // This object 'decorates' the pChangeHandler passed in + // so that notifications fire in the context a thread other than + // CDirectoryChangeWatcher::MonitorDirectoryChanges() + // + // Supports the include and exclude filters + // + // + m_pChangeHandler = new CDelayedDirectoryChangeHandler( pChangeHandler, bAppHasGUI, szIncludeFilter, szExcludeFilter, dwFilterFlags ); + if( m_pChangeHandler ) + m_pChangeHandler->SetPartialPathOffset( m_strDirName );//to support FILTERS_CHECK_PARTIAL_PATH..this won't change for the duration of the watch, so set it once... HERE! + ASSERT( m_pChangeHandler ); + + ASSERT( GetChangeHandler() ); + ASSERT( GetRealChangeHandler() ); + if( GetRealChangeHandler() ) + GetRealChangeHandler()->AddRef(); + + memset(&m_Overlapped, 0, sizeof(m_Overlapped)); + //memset(m_Buffer, 0, sizeof(m_Buffer)); +} + +CDirectoryChangeWatcher::CDirWatchInfo::~CDirWatchInfo() +{ + if( GetChangeHandler() ) + {//If this call to CDirectoryChangeHandler::Release() causes m_pChangeHandler to delete itself, + //the dtor for CDirectoryChangeHandler will call CDirectoryChangeWatcher::UnwatchDirectory( CDirectoryChangeHandler * ), + //which will make try to delete this object again. + //if m_pChangeHandler is NULL, it won't try to delete this object again... + CDirectoryChangeHandler * pTmp = SetRealDirectoryChangeHandler( NULL ); + if( pTmp ) + pTmp->Release(); + else{ + ASSERT( FALSE ); + } + } + + CloseDirectoryHandle(); + + delete m_pChangeHandler; + m_pChangeHandler = NULL; + +} +void CDirectoryChangeWatcher::CDirWatchInfo::DeleteSelf(CDirectoryChangeWatcher * pWatcher) +// +// There's a reason for this function! +// +// the dtor is private to enforce that it is used. +// +// +// pWatcher can be NULL only if CDirecotryChangeHandler::ReferencesWatcher() has NOT been called. +// ie: in certain sections of WatchDirectory() it's ok to pass this w/ NULL, but no where else. +// +{ + //ASSERT( pWatcher != NULL ); + + + ASSERT( GetRealChangeHandler() ); + if( pWatcher ) + { + // + // + // Before this object is deleted, the CDirectoryChangeHandler object + // needs to release it's reference count to the CDirectoryChangeWatcher object. + // I might forget to do this since I getting rid of CDirWatchInfo objects + // in more than one place...hence the reason for this function. + // + pWatcher->ReleaseReferenceToWatcher( GetRealChangeHandler() ); + } + + delete this; +} + +CDelayedDirectoryChangeHandler* CDirectoryChangeWatcher::CDirWatchInfo::GetChangeHandler() const +{ + return m_pChangeHandler; +} + +CDirectoryChangeHandler * CDirectoryChangeWatcher::CDirWatchInfo::GetRealChangeHandler() const +// +// The 'real' change handler is the CDirectoryChangeHandler object +// passed to CDirectoryChangeWatcher::WatchDirectory() -- this is the object +// that really handles the changes. +// +{ + ASSERT( m_pChangeHandler ); + return m_pChangeHandler->GetRealChangeHandler(); +} + +CDirectoryChangeHandler * CDirectoryChangeWatcher::CDirWatchInfo::SetRealDirectoryChangeHandler(CDirectoryChangeHandler * pChangeHandler) +// +// Allows you to switch out, at run time, which object really handles the change notifications. +// +{ + CDirectoryChangeHandler * pOld = GetRealChangeHandler(); + m_pChangeHandler->GetRealChangeHandler() = pChangeHandler; + return pOld; +} + +BOOL CDirectoryChangeWatcher::CDirWatchInfo::CloseDirectoryHandle() +// +// Closes the directory handle that was opened in CDirectoryChangeWatcher::WatchDirecotry() +// +// +{ + BOOL b = TRUE; + if( m_hDir != INVALID_HANDLE_VALUE ) + { + b = CloseHandle(m_hDir); + m_hDir = INVALID_HANDLE_VALUE; + } + return b; +} + +DWORD CDirectoryChangeWatcher::CDirWatchInfo::StartMonitor(HANDLE hCompPort) +/********************************************* + Sets the running state of the object to perform the initial call to ReadDirectoryChangesW() + , wakes up the thread waiting on GetQueuedCompletionStatus() + and waits for an event to be set before returning.... + + The return value is either ERROR_SUCCESS if ReadDirectoryChangesW is successfull, + or is the value of GetLastError() for when ReadDirectoryChangesW() failed. +**********************************************/ +{ + ASSERT( hCompPort ); + + //Guard the properties of this object + VERIFY( LockProperties() ); + + + + m_RunningState = RUNNING_STATE_START_MONITORING;//set the state member to indicate that the object is to START monitoring the specified directory + PostQueuedCompletionStatus(hCompPort, sizeof(this), (DWORD)this, &m_Overlapped);//make the thread waiting on GetQueuedCompletionStatus() wake up + + VERIFY( UnlockProperties() );//unlock this object so that the thread can get at them... + + //wait for signal that the initial call + //to ReadDirectoryChanges has been made + DWORD dwWait = 0; + do{ + dwWait = WaitForSingleObject(m_StartStopEvent, 10 * 1000); + if( dwWait != WAIT_OBJECT_0 ) + { + // + // shouldn't ever see this one....but just in case you do, notify me of the problem wesj@hotmail.com. + // + TRACE(_T("WARNING! Possible lockup detected. FILE: %s Line: %d\n"), _T( __FILE__ ), __LINE__); + } + } while( dwWait != WAIT_OBJECT_0 ); + + ASSERT( dwWait == WAIT_OBJECT_0 ); + m_StartStopEvent.ResetEvent(); + + return m_dwReadDirError;//This value is set in the worker thread when it first calls ReadDirectoryChangesW(). +} + +BOOL CDirectoryChangeWatcher::CDirWatchInfo::UnwatchDirectory(HANDLE hCompPort) +/******************************************* + + Sets the running state of the object to stop monitoring a directory, + Causes the worker thread to wake up and to stop monitoring the dierctory + +********************************************/ +{ + ASSERT( hCompPort ); + // + // Signal that the worker thread is to stop watching the directory + // + if( SignalShutdown(hCompPort) ) + { + //and wait for the thread to signal that it has shutdown + return WaitForShutdown(); + + } + return FALSE; +} + +BOOL CDirectoryChangeWatcher::CDirWatchInfo::SignalShutdown( HANDLE hCompPort ) +//added to fix a bug -- this will be called normally by UnwatchDirectory(HANDLE) +// and abnormally by the worker thread in the case that ReadDirectoryChangesW fails -- see code. +// +// Signals the worker thread(via the I/O completion port) that it is to stop watching the +// directory for this object, and then returns. +// +{ + BOOL bRetVal = FALSE; + ASSERT( hCompPort ); + ASSERT( m_hDir != INVALID_HANDLE_VALUE ); + //Lock the properties so that they aren't modified by another thread + VERIFY( LockProperties() ); //unlikey to fail... + + //set the state member to indicate that the object is to stop monitoring the + //directory that this CDirWatchInfo is responsible for... + m_RunningState = CDirectoryChangeWatcher::CDirWatchInfo::RUNNING_STATE_STOP; + //put this object in the I/O completion port... GetQueuedCompletionStatus() will return it inside the worker thread. + bRetVal = PostQueuedCompletionStatus(hCompPort, sizeof(CDirWatchInfo*), (DWORD)this, &m_Overlapped); + + if( !bRetVal ) + { + TRACE(_T("PostQueuedCompletionStatus() failed! GetLastError(): %d\n"), GetLastError()); + } + VERIFY( UnlockProperties() ); + + return bRetVal; +} + +BOOL CDirectoryChangeWatcher::CDirWatchInfo::WaitForShutdown() +// +// This is to be called some time after SignalShutdown(). +// +// +{ + ASSERT_VALID(&m_StartStopEvent); + + //Wait for the Worker thread to indicate that the watch has been stopped + DWORD dwWait; + bool bWMQuitReceived = false; + do{ + dwWait = MsgWaitForMultipleObjects(1, &m_StartStopEvent.m_hObject, FALSE, 5000, QS_ALLINPUT);//wait five seconds + switch( dwWait ) + { + case WAIT_OBJECT_0: + //handle became signalled! + break; + case WAIT_OBJECT_0 + 1: + { + //This thread awoke due to sent/posted message + //process the message Q + // + // There is a message in this thread's queue, so + // MsgWaitForMultipleObjects returned. + // Process those messages, and wait again. + + MSG msg; + while( PeekMessage(&msg, NULL, 0,0, PM_REMOVE ) ) + { + if( msg.message != WM_QUIT) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else + { + /**** + This appears to be causing quite a lot of pain, to quote Mustafa. + + //it's the WM_QUIT message, put it back in the Q and + // exit this function + PostMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam ); + bWMQuitReceived = true; + + ****/ + break; + } + } + }break; + case WAIT_TIMEOUT: + { + TRACE(_T("WARNING: Possible Deadlock detected! ThreadID: %d File: %s Line: %d\n"), GetCurrentThreadId(), _T(__FILE__), __LINE__); + }break; + }//end switch(dwWait) + }while( dwWait != WAIT_OBJECT_0 && !bWMQuitReceived ); + + + + ASSERT( dwWait == WAIT_OBJECT_0 || bWMQuitReceived); + + m_StartStopEvent.ResetEvent(); + + return (BOOL) (dwWait == WAIT_OBJECT_0 || bWMQuitReceived); +} + + +UINT CDirectoryChangeWatcher::MonitorDirectoryChanges(LPVOID lpvThis) +/******************************************** + The worker thread function which monitors directory changes.... +********************************************/ +{ + DWORD numBytes; + + CDirWatchInfo * pdi; + LPOVERLAPPED lpOverlapped; + + CDirectoryChangeWatcher * pThis = reinterpret_cast(lpvThis); + ASSERT( pThis ); + + pThis->On_ThreadInitialize(); + + + do + { + // Retrieve the directory info for this directory + // through the io port's completion key + if( !GetQueuedCompletionStatus( pThis->m_hCompPort, + &numBytes, + (LPDWORD) &pdi,//<-- completion Key + &lpOverlapped, + INFINITE) ) + {//The io completion request failed... + //probably because the handle to the directory that + //was used in a call to ReadDirectoryChangesW has been closed. + + // + // calling pdi->CloseDirectoryHandle() will cause GetQueuedCompletionStatus() to return false. + // + // + if( !pdi + || ( pdi && AfxIsValidAddress(pdi, sizeof(CDirectoryChangeWatcher::CDirWatchInfo))) + && pdi->m_hDir != INVALID_HANDLE_VALUE //the directory handle is still open! (we expect this when after we close the directory handle ) + ) + { +#ifdef _DEBUG + TRACE(_T("GetQueuedCompletionStatus() returned FALSE\nGetLastError(): %d Completion Key: %p lpOverlapped: %p\n"), GetLastError(), pdi, lpOverlapped); + MessageBeep( static_cast(-1) ); +#endif + } + } + + if ( pdi )//pdi will be null if I call PostQueuedCompletionStatus(m_hCompPort, 0,0,NULL); + { + // + // The following check to AfxIsValidAddress() should go off in the case + // that I have deleted this CDirWatchInfo object, but it was still in + // "in the Queue" of the i/o completion port from a previous overlapped operation. + // + ASSERT( AfxIsValidAddress(pdi, + sizeof(CDirectoryChangeWatcher::CDirWatchInfo)) ); + /*********************************** + The CDirWatchInfo::m_RunningState is pretty much the only member + of CDirWatchInfo that can be modified from the other thread. + The functions StartMonitor() and UnwatchDirecotry() are the functions that + can modify that variable. + + So that I'm sure that I'm getting the right value, + I'm using a critical section to guard against another thread modyfying it when I want + to read it... + + ************************************/ + bool bObjectShouldBeOk = true; + try{ + VERIFY( pdi->LockProperties() );//don't give the main thread a chance to change this object + } + catch(...){ + //any sort of exception here indicates I've + //got a hosed object. + TRACE(_T("CDirectoryChangeWatcher::MonitorDirectoryChanges() -- pdi->LockProperties() raised an exception!\n")); + bObjectShouldBeOk = false; + } + if( bObjectShouldBeOk ) + { + //while we're working with this object... + + CDirWatchInfo::eRunningState Run_State = pdi->m_RunningState ; + + VERIFY( pdi->UnlockProperties() );//let another thread back at the properties... + /*********************************** + Unlock it so that there isn't a DEADLOCK if + somebody tries to call a function which will + cause CDirWatchInfo::UnwatchDirectory() to be called + from within the context of this thread (eg: a function called because of + the handler for one of the CDirectoryChangeHandler::On_Filexxx() functions) + + ************************************/ + + ASSERT( pdi->GetChangeHandler() ); + switch( Run_State ) + { + case CDirWatchInfo::RUNNING_STATE_START_MONITORING: + { + //Issue the initial call to ReadDirectoryChangesW() + + if( !ReadDirectoryChangesW( pdi->m_hDir, + pdi->m_Buffer,//<--FILE_NOTIFY_INFORMATION records are put into this buffer + READ_DIR_CHANGE_BUFFER_SIZE, + pdi->m_bWatchSubDir, + pdi->m_dwChangeFilter, + &pdi->m_dwBufLength,//this var not set when using asynchronous mechanisms... + &pdi->m_Overlapped, + NULL) )//no completion routine! + { + pdi->m_dwReadDirError = GetLastError(); + if( pdi->GetChangeHandler() ) + pdi->GetChangeHandler()->On_WatchStarted(pdi->m_dwReadDirError, pdi->m_strDirName); + } + else + {//read directory changes was successful! + //allow it to run normally + pdi->m_RunningState = CDirWatchInfo::RUNNING_STATE_NORMAL; + pdi->m_dwReadDirError = ERROR_SUCCESS; + if( pdi->GetChangeHandler() ) + pdi->GetChangeHandler()->On_WatchStarted(ERROR_SUCCESS, pdi->m_strDirName ); + } + pdi->m_StartStopEvent.SetEvent();//signall that the ReadDirectoryChangesW has been called + //check CDirWatchInfo::m_dwReadDirError to see whether or not ReadDirectoryChangesW succeeded... + + // + // note that pdi->m_dwReadDirError is the value returned by WatchDirectory() + // + + + }break; + case CDirWatchInfo::RUNNING_STATE_STOP: + { + //We want to shut down the monitoring of the directory + //that pdi is managing... + + if( pdi->m_hDir != INVALID_HANDLE_VALUE ) + { + //Since I've previously called ReadDirectoryChangesW() asynchronously, I am waiting + //for it to return via GetQueuedCompletionStatus(). When I close the + //handle that ReadDirectoryChangesW() is waiting on, it will + //cause GetQueuedCompletionStatus() to return again with this pdi object.... + // Close the handle, and then wait for the call to GetQueuedCompletionStatus() + //to return again by breaking out of the switch, and letting GetQueuedCompletionStatus() + //get called again + pdi->CloseDirectoryHandle(); + pdi->m_RunningState = CDirWatchInfo::RUNNING_STATE_STOP_STEP2;//back up step...GetQueuedCompletionStatus() will still need to return from the last time that ReadDirectoryChangesW() was called..... + + // + // The watch has been stopped, tell the client about it + // if( pdi->GetChangeHandler() ) + pdi->GetChangeHandler()->On_WatchStopped( pdi->m_strDirName ); + } + else + { + //either we weren't watching this direcotry in the first place, + //or we've already stopped monitoring it.... + pdi->m_StartStopEvent.SetEvent();//set the event that ReadDirectoryChangesW has returned and no further calls to it will be made... + } + + + }break; + case CDirWatchInfo::RUNNING_STATE_STOP_STEP2: + { + + //GetQueuedCompletionStatus() has returned from the last + //time that ReadDirectoryChangesW was called... + //Using CloseHandle() on the directory handle used by + //ReadDirectoryChangesW will cause it to return via GetQueuedCompletionStatus().... + if( pdi->m_hDir == INVALID_HANDLE_VALUE ) + pdi->m_StartStopEvent.SetEvent();//signal that no further calls to ReadDirectoryChangesW will be made + //and this pdi can be deleted + else + {//for some reason, the handle is still open.. + + pdi->CloseDirectoryHandle(); + + //wait for GetQueuedCompletionStatus() to return this pdi object again + + + } + + }break; + + case CDirWatchInfo::RUNNING_STATE_NORMAL: + { + + if( pdi->GetChangeHandler() ) + pdi->GetChangeHandler()->SetChangedDirectoryName( pdi->m_strDirName ); + + DWORD dwReadBuffer_Offset = 0UL; + + //process the FILE_NOTIFY_INFORMATION records: + CFileNotifyInformation notify_info( (LPBYTE)pdi->m_Buffer, READ_DIR_CHANGE_BUFFER_SIZE); + + pThis->ProcessChangeNotifications(notify_info, pdi, dwReadBuffer_Offset); + + + // Changes have been processed, + // Reissue the watch command + // + if( !ReadDirectoryChangesW( pdi->m_hDir, + pdi->m_Buffer + dwReadBuffer_Offset,//<--FILE_NOTIFY_INFORMATION records are put into this buffer + READ_DIR_CHANGE_BUFFER_SIZE - dwReadBuffer_Offset, + pdi->m_bWatchSubDir, + pdi->m_dwChangeFilter, + &pdi->m_dwBufLength,//this var not set when using asynchronous mechanisms... + &pdi->m_Overlapped, + NULL) )//no completion routine! + { + // + // NOTE: + // In this case the thread will not wake up for + // this pdi object because it is no longer associated w/ + // the I/O completion port...there will be no more outstanding calls to ReadDirectoryChangesW + // so I have to skip the normal shutdown routines(normal being what happens when CDirectoryChangeWatcher::UnwatchDirectory() is called. + // and close this up, & cause it to be freed. + // + TRACE(_T("WARNING: ReadDirectoryChangesW has failed during normal operations...failed on directory: %s\n"), pdi->m_strDirName); + + ASSERT( pThis ); + // + // To help insure that this has been unwatched by the time + // the main thread processes the On_ReadDirectoryChangesError() notification + // bump the thread priority up temporarily. The reason this works is because the notification + // is really posted to another thread's message queue,...by setting this thread's priority + // to highest, this thread will get to shutdown the watch by the time the other thread has a chance + // to handle it. *note* not technically guaranteed 100% to be the case, but in practice it'll work. + int nOldThreadPriority = GetThreadPriority( GetCurrentThread() ); + SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST); + + // + // Notify the client object....(a CDirectoryChangeHandler derived class) + // + try{ + pdi->m_dwReadDirError = GetLastError(); + pdi->GetChangeHandler()->On_ReadDirectoryChangesError( pdi->m_dwReadDirError, pdi->m_strDirName ); + + + //Do the shutdown + pThis->UnwatchDirectoryBecauseOfError( pdi ); + //pdi = NULL; <-- DO NOT set this to NULL, it will cause this worker thread to exit. + //pdi is INVALID at this point!! + } + catch(...) + { + //just in case of exception, this thread will be set back to + //normal priority. + } + // + // Set the thread priority back to normal. + // + SetThreadPriority(GetCurrentThread(), nOldThreadPriority); + + } + else + {//success, continue as normal + pdi->m_dwReadDirError = ERROR_SUCCESS; + } + }break; + default: + TRACE(_T("MonitorDirectoryChanges() -- how did I get here?\n")); + break;//how did I get here? + }//end switch( pdi->m_RunningState ) + + + + }//end if( bObjectShouldBeOk ) + }//end if( pdi ) + } while( pdi ); + + pThis->On_ThreadExit(); + return 0; //thread is ending +} + +void CDirectoryChangeWatcher::ProcessChangeNotifications(IN CFileNotifyInformation & notify_info, + IN CDirectoryChangeWatcher::CDirWatchInfo * pdi, + OUT DWORD & ref_dwReadBuffer_Offset//used in case ...see case for FILE_ACTION_RENAMED_OLD_NAME + ) +///////////////////////////////////////////////////////////// +// +// Processes the change notifications and dispatches the handling of the +// notifications to the CDirectoryChangeHandler object passed to WatchDirectory() +// +///////////////////////////////////////////////////////////// +{ + // + // Sanity check... + // this function should only be called by the worker thread. + // + ASSERT( m_dwThreadID == GetCurrentThreadId() ); + + // Validate parameters... + // + ASSERT( pdi ); + ASSERT( AfxIsValidAddress(pdi, sizeof(CDirectoryChangeWatcher::CDirWatchInfo) ) ); + + if( !pdi || !AfxIsValidAddress(pdi, sizeof(CDirectoryChangeWatcher::CDirWatchInfo)) ) + { + TRACE(_T("Invalid arguments to CDirectoryChangeWatcher::ProcessChangeNotifications() -- pdi is invalid!\n")); + TRACE(_T("File: %s Line: %d"), _T( __FILE__ ), __LINE__ ); + return; + } + + + + DWORD dwLastAction = 0; + ref_dwReadBuffer_Offset = 0UL; + + + CDirectoryChangeHandler * pChangeHandler = pdi->GetChangeHandler(); + //CDelayedDirectoryChangeHandler * pChangeHandler = pdi->GetChangeHandler(); + ASSERT( pChangeHandler ); + ASSERT( AfxIsValidAddress(pChangeHandler, sizeof(CDirectoryChangeHandler)) ); + //ASSERT( AfxIsValidAddress(pChangeHandler, sizeof(CDelayedDirectoryChangeHandler)) ); + if( !pChangeHandler ) + { + TRACE(_T("CDirectoryChangeWatcher::ProcessChangeNotifications() Unable to continue, pdi->GetChangeHandler() returned NULL!\n")); + TRACE(_T("File: %s Line: %d\n"), _T( __FILE__ ), __LINE__ ); + return; + } + + + // + // go through and process the notifications contained in the + // CFileChangeNotification object( CFileChangeNotification is a wrapper for the FILE_NOTIFY_INFORMATION structure + // returned by ReadDirectoryChangesW) + // + do + { + //The FileName member of the FILE_NOTIFY_INFORMATION + //structure contains the NAME of the file RELATIVE to the + //directory that is being watched... + //ie, if watching C:\Temp and the file C:\Temp\MyFile.txt is changed, + //the file name will be "MyFile.txt" + //If watching C:\Temp, AND you're also watching subdirectories + //and the file C:\Temp\OtherFolder\MyOtherFile.txt is modified, + //the file name will be "OtherFolder\MyOtherFile.txt + + //The CDirectoryChangeHandler::On_Filexxx() functions will receive the name of the file + //which includes the full path to the directory being watched + + + // + // See what the change was + // + + switch( notify_info.GetAction() ) + { + case FILE_ACTION_ADDED: // a file was added! + + pChangeHandler->On_FileAdded( notify_info.GetFileNameWithPath( pdi->m_strDirName ) ); break; + + case FILE_ACTION_REMOVED: //a file was removed + + pChangeHandler->On_FileRemoved( notify_info.GetFileNameWithPath( pdi->m_strDirName ) ); break; + + case FILE_ACTION_MODIFIED: + //a file was changed + //pdi->m_pChangeHandler->On_FileModified( strLastFileName ); break; + pChangeHandler->On_FileModified( notify_info.GetFileNameWithPath( pdi->m_strDirName ) ); break; + + case FILE_ACTION_RENAMED_OLD_NAME: + {//a file name has changed, and this is the OLD name + //This record is followed by another one w/ + //the action set to FILE_ACTION_RENAMED_NEW_NAME (contains the new name of the file + + CString strOldFileName = notify_info.GetFileNameWithPath( pdi->m_strDirName ); + + + if( notify_info.GetNextNotifyInformation() ) + {//there is another PFILE_NOTIFY_INFORMATION record following the one we're working on now... + //it will be the record for the FILE_ACTION_RENAMED_NEW_NAME record + + + ASSERT( notify_info.GetAction() == FILE_ACTION_RENAMED_NEW_NAME );//making sure that the next record after the OLD_NAME record is the NEW_NAME record + + //get the new file name + CString strNewFileName = notify_info.GetFileNameWithPath( pdi->m_strDirName ); + + pChangeHandler->On_FileNameChanged( strOldFileName, strNewFileName); + } + else + { + //this OLD_NAME was the last record returned by ReadDirectoryChangesW + //I will have to call ReadDirectoryChangesW again so that I will get + //the record for FILE_ACTION_RENAMED_NEW_NAME + + //Adjust an offset so that when I call ReadDirectoryChangesW again, + //the FILE_NOTIFY_INFORMATION will be placed after + //the record that we are currently working on. + + /*************** + Let's say that 200 files all had their names changed at about the same time + There will be 400 FILE_NOTIFY_INFORMATION records (one for OLD_NAME and one for NEW_NAME for EACH file which had it's name changed) + that ReadDirectoryChangesW will have to report to + me. There might not be enough room in the buffer + and the last record that we DID get was an OLD_NAME record, + I will need to call ReadDirectoryChangesW again so that I will get the NEW_NAME + record. This way I'll always have to strOldFileName and strNewFileName to pass + to CDirectoryChangeHandler::On_FileRenamed(). + + After ReadDirecotryChangesW has filled out our buffer with + FILE_NOTIFY_INFORMATION records, + our read buffer would look something like this: + End Of Buffer + | + \-/ + |_________________________________________________________________________ + | | + |file1 OLD name record|file1 NEW name record|...|fileX+1 OLD_name record| |(the record we want would be here, but we've ran out of room, so we adjust an offset and call ReadDirecotryChangesW again to get it) + |_________________________________________________________________________| + + Since the record I need is still waiting to be returned to me, + and I need the current 'OLD_NAME' record, + I'm copying the current FILE_NOTIFY_INFORMATION record + to the beginning of the buffer used by ReadDirectoryChangesW() + and I adjust the offset into the read buffer so the the NEW_NAME record + will be placed into the buffer after the OLD_NAME record now at the beginning of the buffer. + + Before we call ReadDirecotryChangesW again, + modify the buffer to contain the current OLD_NAME record... + + |_______________________________________________________ + | | + |fileX old name record(saved)|.....| + |_______________________________________________________| + /-\ + | + Offset for Read + Re-issue the watch command to get the rest of the records... + + ReadDirectoryChangesW(..., pBuffer + (an Offset), + + After GetQueuedCompletionStatus() returns, + our buffer will look like this: + + |__________________________________________________________________________________________________________ + | | + |fileX old name record(saved)|fileX new name record(the record we've been waiting for)| ... | + |__________________________________________________________________________________________________________| + + Then I'll be able to know that a file name was changed + and I will have the OLD and the NEW name of the file to pass to CDirectoryChangeHandler::On_FileNameChanged + + ****************/ + //NOTE that this case has never happened to me in my testing + //so I can only hope that the code works correctly. + //It would be a good idea to set a breakpoint on this line of code: + VERIFY( notify_info.CopyCurrentRecordToBeginningOfBuffer( ref_dwReadBuffer_Offset ) ); + + + } + break; + } + case FILE_ACTION_RENAMED_NEW_NAME: + { + //This should have been handled in FILE_ACTION_RENAMED_OLD_NAME + ASSERT( dwLastAction == FILE_ACTION_RENAMED_OLD_NAME ); + ASSERT( FALSE );//this shouldn't get here + } + + default: + TRACE(_T("CDirectoryChangeWatcher::ProcessChangeNotifications() -- unknown FILE_ACTION_ value! : %d\n"), notify_info.GetAction() ); + break;//unknown action + } + + dwLastAction = notify_info.GetAction(); + + + } while( notify_info.GetNextNotifyInformation() ); +} \ No newline at end of file -- cgit v1.1 From 46d3304a3773732d535f19be422e666295d3dafd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:36 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/DirectoryChanges.h | 493 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 493 insertions(+) create mode 100644 IvyFileMon/DirectoryChanges.h diff --git a/IvyFileMon/DirectoryChanges.h b/IvyFileMon/DirectoryChanges.h new file mode 100644 index 0000000..b2e41c3 --- /dev/null +++ b/IvyFileMon/DirectoryChanges.h @@ -0,0 +1,493 @@ +// DirectoryChanges.h: interface for the +// CDirectoryChangeWatcher and CDirectoryChangeHandler classes. +// +// Uses an io completion port and ReadDirectoryChangesW -- this code will only work on +// Windows NT/2000/XP. +// +// The directory being watched must be a directory on a Windows NT/2000/XP machine +// +// +// These classes are based on the FWatch sample program in the SDK. +// +// +// If you get a compile time error that ReadDirectoryChangesW is an undeclared identifier, +// you'll need to #define _WIN32_WINNT 0x400 in stdafx.h. +// +// +/******************************************************************* +// *** COPYRIGHT NOTICE **** +// +// Copyright 2001. Wes Jones (wesj@hotmail.com) +// +// This code is free for use under the following conditions: +// +// You may not claim authorship of this code. +// You may not sell or distrubute this code without author's permission. +// You are not permitted to sell this code in it's compiled, non-compiled, executable, or any other form. +// Executable code excepted in the case that it is not sold separately from an application which +// uses this it. This means you can use this code for your applications as you see fit, but this code may not be sold in any form +// to others for use in their applications. +// This copyright notice may not be removed. +// +// +// If this code was NOT obtained by downloading it from www.codeproject.com, +// or given to you by a friend or coworker, please tell me, & let me know how you got it. There a plenty of lazy bastards that +// collect source code from the internet, and then sell it as part of +// a 'Programmer's Library'. Using this code for such a purpose is stricly prohibited. +// +// If you'd like to pay me to turn this into an ActiveX/COM object so you +// can use it in a Visual Basic application, feel free to contact me with an offer, +// and I will create it for you. Otherwise, here is the source code, and you may make your own +// ActiveX/COM object, providing that it is not sold separately. +// +// No guarantees or warranties are expressed or implied. +// This code may contain bugs. +// Warning: May contain matter. If this should come into contact with anti-matter, a violent explosion may occur. +*******************************************************************/ + +// Please let me know of any bugs, bug fixes, or enhancements made to this code. +// If you have ideas for this, and/or tips or admonitions, I would be glad to hear them. +// +// See notes at top of DirectoryChanges.cpp modification history and more info. +// +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_DIRECTORYCHANGES_H__02E53FDE_CB22_4176_B6D7_DA3675D9F1A6__INCLUDED_) +#define AFX_DIRECTORYCHANGES_H__02E53FDE_CB22_4176_B6D7_DA3675D9F1A6__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include +#include + +#define READ_DIR_CHANGE_BUFFER_SIZE 4096 + +class CFileNotifyInformation;//helper class +class CDirectoryChangeWatcher; +class CDelayedDirectoryChangeHandler;//helper class...used in implementation + +class CDirectoryChangeHandler +/*********************************** + A class to handle changes to files in a directory. + The virtual On_Filexxx() functions are called whenever changes are made to a watched directory that is being handled by this object... + The On_Filexxx() functions execute in the context of the main thread if true is passed to the constructor of CDirectoryChangeWatcher, + OR they fire in the context of a worker thread if false is passed to the constructor of CDirectoryChangeWatcher + + NOTES: + A CDirectoryChangeHandler can only be used by ONE CDirectoryChangeWatcher object, + but a CDirectoryChangeWatcher object may use multiple CDirectoryChangeHandler objects. + + When this object is destroyed, whatever directories that it was being used to handle directory changes for + will automatically be 'unwatched'. + + The class is reference counted. The reference count is increased every time it is used + in a (successfull) call to CDirectoryChangeWatcher::WatchDirectory() and is decremented whenever + the directory becomes 'unwatched'. + + The only notifications are File Added, Removed, Modified, and Renamed. + Even though the CDirectoryChangeWatcher::WatchDirectory (which'll call ReadDirectoryChangesW()) function allows you to specify flags + to watch for changes to last access time, last write time, attributes changed, etc, + these changes all map out to On_FileModified() which doesn't specify the type of modification. + + + NOTE: The CDirectoryChangeHandler::On_Filexxx() functions + are called in the context of the main thread, the thread that called CDirectoryChangeWatcher::WatchDirectory(), + if you pass true to the constructor of CDirectoryChangeWatcher. This is accomplished via a hidden window, + and REQUIRES that your app has a message pump. + For console applications, or applications w/out a message pump, you can pass false to the constructor + of CDirectoryChangeWatcher, and these notifications will fire in the context of a worker thread. By passing false + to the constructor of CDirectoryChangeWatcher, you do NOT NEED a message pump in your application. + + + +************************************/ +{ +public: + + CDirectoryChangeHandler(); + virtual ~CDirectoryChangeHandler(); + + //this class is reference counted + long AddRef(); + long Release(); + long CurRefCnt()const; + + + BOOL UnwatchDirectory();//causes CDirectoryChangeWatcher::UnwatchDirectory() to be called. + + const CString & GetChangedDirectoryName() const { return m_strChangedDirectoryName;}//WARNING: don't use this, this function will be removed in a future release. + //returns the directory name where the change occured. This contains + //the last directory to have changed if the same CDirectoryChangeHandler is + //being used to watch multiple directories. It will return an empty string + //if no changes have been made to a directory yet. It will always be the + //name of the currently changed directory(as specified in CDirectoryChangeWatcher::WatchDirectory()) + //if called in the context of one of the + //On_Filexxx() functions. +protected: + // + // Override these functions: + // These functions are called when the directory to watch has had a change made to it + virtual void On_FileAdded(const CString & strFileName); //=0; + // + // On_FileAdded() + // + // This function is called when a file in one of the watched folders(or subfolders) + // has been created. + // + // For this function to execute you'll need to specify FILE_NOTIFY_CHANGE_FILE_NAME or FILE_NOTIFY_CHANGE_DIR_NAME(for directories) + // when you call CDirectoryChangeWatcher::WatchDirectory() + // + virtual void On_FileRemoved(const CString & strFileName);// = 0; + // + // On_FileRemoved() + // + // This function is called when a file in one of the watched folders(or subfolders) + // has been deleted(or moved to another directory) + // + // For this function to execute you'll need to specify FILE_NOTIFY_CHANGE_FILE_NAME or FILE_NOTIFY_CHANGE_DIR_NAME(for directories) + // when you call CDirectoryChangeWatcher::WatchDirecotry() + // + + virtual void On_FileNameChanged(const CString & strOldFileName, const CString & strNewFileName);// = 0; + // + // On_FileNameChanged() + // + // This function is called when a file in one of the watched folders(or subfolders) + // has been renamed. + // + // + // You'll need to specify FILE_NOTIFY_CHANGE_FILE_NAME (or FILE_NOTIFY_CHANGE_DIR_NAME(for directories)) + // when you call CDirectoryChangeWatcher::WatchDirectory() + // + // + + virtual void On_FileModified(const CString & strFileName);// = 0; + // + // On_FileModified() + // + // This function is called whenever an attribute specified by the watch + // filter has changed on a file in the watched directory or + // + // Specify any of the following flags when you call CDirectoryChangeWatcher::WatchDirectory() + // + // + // FILE_NOTIFY_CHANGE_ATTRIBUTES + // FILE_NOTIFY_CHANGE_SIZE + // FILE_NOTIFY_CHANGE_LAST_WRITE + // FILE_NOTIFY_CHANGE_LAST_ACCESS + // FILE_NOTIFY_CHANGE_CREATION (* See Note # 1* ) + // FILE_NOTIFY_CHANGE_SECURITY + // + // + // General Note) Windows tries to optimize some of these notifications. You may not get + // a notification every single time a file is accessed for example. + // There's a MS KB article or something on this(sorry forgot which one). + // + // Note #1 ) This notification isn't what you might think(FILE_NOTIFY_CHANGE_CREATION). + // See the help files for ReadDirectoryChangesW... + // This notifies you of a change to the file's + // creation time, not when the file is created. + // Use FILE_NOTIFY_CHANGE_FILE_NAME to know about newly created files. + // + + virtual void On_ReadDirectoryChangesError(DWORD dwError, const CString & strDirectoryName); + // + // On_ReadDirectoryChangesError() + // + // This function is called when ReadDirectoryChangesW() fails during normal + // operation (ie: some time after you've called CDirectoryChangeWatcher::WatchDirectory()) + // + // + // NOTE: *** READ THIS *** READ THIS *** READ THIS *** READ THIS *** + // + // NOTE: If this function has been called, the watched directory has been automatically unwatched. + // You will not receive any further notifications for that directory until + // you call CDirectoryChangeWatcher::WatchDirectory() again. + // + // On_WatchStopped() will not be called. + + + virtual void On_WatchStarted(DWORD dwError, const CString & strDirectoryName); + // + // void On_WatchStarted() + // + // This function is called when a directory watch has begun. + // It will be called whether CDirectoryChangeWatcher::WatchDirectory() is successful or not. Check the dwError parameter. + // + // PARAMETERS: + // DWORD dwError -- 0 if successful, else it's the return value of GetLastError() + // indicating why the watch failed. + // const CString & strDirectoryName -- The full path and name of the directory being watched. + + virtual void On_WatchStopped(const CString & strDirectoryName); + // + // void On_WatchStopped() + // + // This function is called when a directory is unwatched (except on the case of the direcotry being unwatched due to an error) + // + // WARNING: *** READ THIS *** READ THIS *** READ THIS *** READ THIS *** + // + // This function MAY be called before the destructor of CDirectoryChangeWatcher + // finishes. + // + // Be careful if your implementation of this fuction + // interacts with some sort of a window handle or other object(a class, a file, etc.). + // It's possible that that object/window handle will NOT be valid anymore the very last time + // that On_WatchStopped() is called. + // This scenario is likely if the CDirectoryChangeWatcher instance is currently watching a + // directory, and it's destructor is called some time AFTER these objects/windows + // your change handler interacts with have been destroyed. + // + // If your CDirectoryChangeHandler derived class interacts w/ a window or other + // object, it's a good idea to unwatch any directories before the object/window is destroyed. + // Otherwise, place tests for valid objects/windows in the implementation of this function. + // + // Failure to follow either tip can result in a mysterious RTFM error, or a 'Run time errors' + // + + virtual bool On_FilterNotification(DWORD dwNotifyAction, LPCTSTR szFileName, LPCTSTR szNewFileName); + // + // bool On_FilterNotification(DWORD dwNotifyAction, LPCTSTR szFileName, LPCTSTR szNewFileName); + // + // This function gives your class a chance to filter unwanted notifications. + // + // PARAMETERS: + // DWORD dwNotifyAction -- specifies the event to filter + // LPCTSTR szFileName -- specifies the name of the file for the event. + // LPCTSTR szNewFileName -- specifies the new file name of a file that has been renamed. + // + // ** szFileName and szNewFileName will always be the full path and file name with extention. + // + // RETURN VALUE: + // return true , and you will receive the notification. + // return false, and your class will NOT receive the notification. + // + // Valid values of dwNotifyAction: + // FILE_ACTION_ADDED -- On_FileAdded() is about to be called. + // FILE_ACTION_REMOVED -- On_FileRemoved() is about to be called. + // FILE_ACTION_MODIFIED -- On_FileModified() is about to be called. + // FILE_ACTION_RENAMED_OLD_NAME-- On_FileNameChanged() is about to be call. + // + // + // NOTE: When the value of dwNotifyAction is FILE_ACTION_RENAMED_OLD_NAME, + // szFileName will be the old name of the file, and szNewFileName will + // be the new name of the renamed file. + // + // The default implementation always returns true, indicating that all notifications will + // be sent. + // + // NOTE: This function may or may not be called depending upon the flags you specify to control + // filter behavior. + // If you are specifying filters when watching the directory, you will not get this notification + // if the file name does not pass the filter test, even if this function returns true. + // + + // + // + // End Override these functions (ie: don't worry about the rest of this class) + // + + void SetChangedDirectoryName(const CString & strChangedDirName);//please don't use this function, it will be removed in future releases. + +private: + long m_nRefCnt; + + CString m_strChangedDirectoryName;//will be removed in a future release. + + friend class CDirectoryChangeWatcher; + friend class CDelayedDirectoryChangeHandler; + // + // This class keeps a reference to the CDirectoryChangeHandler + // that was used when an object of this type is passed + // to CDirectoryChangeWatcher::WatchDirectory(). + // + // This way, when the CDirectoryChangeWatcher object is destroyed(or if CDirectoryChangeHandler::UnwatchDirectory() is called) + // AFTER CDirectoryChangeWatcher::UnwatchDirecotry() or CDirectoryChangeWatcher::UnwatchAllDirectories() is called + // the directory(or direcotries) that this + // CDirectoryChangeWatcher object is handling will be automatically unwatched + // If the CDirectoryChangeWatcher object is destroyed before the CDirectoryChangeHandler objects + // that are being used with that watcher are destroyed, the reference counting prevents + // this class from referencing a destructed object. + // Basically, neither class needs to worry about the lifetime of the other(CDirectoryChangeWatcher && CDirectoryChangeHandler) + // + + long ReferencesWatcher(CDirectoryChangeWatcher * pDirChangeWatcher); + long ReleaseReferenceToWatcher(CDirectoryChangeWatcher * pDirChangeWatcher); + CDirectoryChangeWatcher * m_pDirChangeWatcher; + long m_nWatcherRefCnt; //<-- when this reaches 0, m_pDirChangeWatcher is set to NULL + CCriticalSection m_csWatcher; +}; + +/////////////////////////////////////////////////////////// + +class CDirectoryChangeWatcher +/*************************************** + A class to monitor a directory for changes made to files in it, or it's subfolders. + The class CDirectoryChangeHandler handles the changes. You derive a class from CDirectoryChangeHandler to handle them. + + + This class uses the Win32 API ReadDirectoryChangesW() to watch a directory for file changes. + + Multiple directories can be watched simultaneously using a single instance of CDirectoryChangeWatcher. + Single or multiple instances of CDirectoryChangeHandler object(s) can be used to handle changes to watched directories. + Directories can be added and removed from the watch dynamically at run time without destroying + the CDirectoryChangeWatcher object (or CDirectoryChangeHandler object(s). + + This class uses a worker thread, an io completion port, and ReadDirectoryChangesW() to monitor changes to a direcory (or subdirectories). + There will always only be a single thread no matter how many directories are being watched(per instance of CDirectoryChangeHandler) + + THREAD ISSUES: + This class uses worker threads. + Notifications (calling CDirectoryChangeHandler's virtual functions) are executed + in the context of either the main thread, OR in a worker thread. + + The 'main' thread is the thread that first calls CDirectoryChangeWatcher::WatchDirectory(). + For notifications to execute in the main thread, it's required that the calling thread(usually the main thread) + has a message pump in order to process the notifications. + + For applications w/out a message pump, notifications are executed in the context of a worker thread. + + See the constructor for CDirectoryChangeWatcher. + + +****************************************/ +{ +public: + + enum { //options for determining the behavior of the filter tests. + // + FILTERS_DONT_USE_FILTERS = 1, //never test the include/exclude filters. CDirectoryChangeHandler::On_FilterNotification() is still called. + FILTERS_CHECK_FULL_PATH = 2, //For the file path: "C:\FolderName\SubFolder\FileName.xyz", the entire path is checked for the filter pattern. + FILTERS_CHECK_PARTIAL_PATH = 4, //For the file path: "C:\FolderName\SubFolder\FileName.xyz", only "SubFolder\FileName.xyz" is checked against the filter pattern, provided that you are watching the folder "C:\FolderName", and you are also watching subfolders. + FILTERS_CHECK_FILE_NAME_ONLY = 8, //For the file path: "C:\FolderName\SubFolder\FileName.xyz", only "FileName.xyz" is checked against the filter pattern. + FILTERS_TEST_HANDLER_FIRST = 16, //test CDirectoryChangeHandler::On_FilterNotification() before checking the include/exclude filters. the default is to check the include/exclude filters first. + FILTERS_DONT_USE_HANDLER_FILTER = 32, //CDirectoryChangeHander::On_FilterNotification() won't be called. + FILTERS_NO_WATCHSTART_NOTIFICATION = 64,//CDirectoryChangeHander::On_WatchStarted() won't be called. + FILTERS_NO_WATCHSTOP_NOTIFICATION = 128,//CDirectoryChangeHander::On_WatchStopped() won't be called. + FILTERS_DEFAULT_BEHAVIOR = (FILTERS_CHECK_FILE_NAME_ONLY ), + FILTERS_DONT_USE_ANY_FILTER_TESTS = (FILTERS_DONT_USE_FILTERS | FILTERS_DONT_USE_HANDLER_FILTER), + FILTERS_NO_WATCH_STARTSTOP_NOTIFICATION = (FILTERS_NO_WATCHSTART_NOTIFICATION | FILTERS_NO_WATCHSTOP_NOTIFICATION) + }; + + //ctor/dtor + CDirectoryChangeWatcher(bool bAppHasGUI = true, DWORD dwFilterFlags = FILTERS_DEFAULT_BEHAVIOR);//see comments in ctor .cpp file. + virtual ~CDirectoryChangeWatcher(); + + // + // Starts a watch on a directory: + // + DWORD WatchDirectory(const CString & strDirToWatch, + DWORD dwChangesToWatchFor, + CDirectoryChangeHandler * pChangeHandler, + BOOL bWatchSubDirs = FALSE, + LPCTSTR szIncludeFilter = NULL, + LPCTSTR szExcludeFilter = NULL); + + BOOL IsWatchingDirectory (const CString & strDirName)const; + int NumWatchedDirectories()const; //counts # of directories being watched. + + + BOOL UnwatchDirectory(const CString & strDirToStopWatching);//stops watching specified directory. + BOOL UnwatchAllDirectories();//stops watching ALL watched directories. + + DWORD SetFilterFlags(DWORD dwFilterFlags);//sets filter behavior for directories watched AFTER this function has been called. + DWORD GetFilterFlags()const{return m_dwFilterFlags;} + +protected: + + virtual void On_ThreadInitialize(){}//All file change notifications has taken place in the context of a worker thread...do any thread initialization here.. + virtual void On_ThreadExit(){}//do thread cleanup here + +private: + friend class CDirectoryChangeHandler; + BOOL UnwatchDirectory(CDirectoryChangeHandler * pChangeHandler);//called in CDirectoryChangeHandler::~CDirectoryChangeHandler() + + + UINT static MonitorDirectoryChanges(LPVOID lpvThis );//the worker thread that monitors directories. + + class CDirWatchInfo + //this class is used internally by CDirectoryChangeWatcher + //to help manage the watched directories + { + private: + CDirWatchInfo(); //private & not implemented + CDirWatchInfo & operator=(const CDirWatchInfo & rhs);//so that they're aren't accidentally used. -- you'll get a linker error + public: + CDirWatchInfo(HANDLE hDir, const CString & strDirectoryName, + CDirectoryChangeHandler * pChangeHandler, + DWORD dwChangeFilter, BOOL bWatchSubDir, + bool bAppHasGUI, + LPCTSTR szIncludeFilter, + LPCTSTR szExcludeFilter, + DWORD dwFilterFlags); + private: + ~CDirWatchInfo( );//only I can delete myself....use DeleteSelf() + public: + void DeleteSelf(CDirectoryChangeWatcher * pWatcher); + + DWORD StartMonitor(HANDLE hCompPort); + BOOL UnwatchDirectory( HANDLE hCompPort ); + protected: + BOOL SignalShutdown( HANDLE hCompPort ); + BOOL WaitForShutdown(); + public: + BOOL LockProperties() { return m_cs.Lock(); } + BOOL UnlockProperties(){ return m_cs.Unlock(); } + + CDelayedDirectoryChangeHandler* GetChangeHandler() const; + CDirectoryChangeHandler * GetRealChangeHandler() const;//the 'real' change handler is your CDirectoryChangeHandler derived class. + CDirectoryChangeHandler * SetRealDirectoryChangeHandler(CDirectoryChangeHandler * pChangeHandler); + + BOOL CloseDirectoryHandle(); + + //CDirectoryChangeHandler * m_pChangeHandler; + CDelayedDirectoryChangeHandler * m_pChangeHandler; + HANDLE m_hDir;//handle to directory that we're watching + DWORD m_dwChangeFilter; + BOOL m_bWatchSubDir; + CString m_strDirName;//name of the directory that we're watching + CHAR m_Buffer[ READ_DIR_CHANGE_BUFFER_SIZE ];//buffer for ReadDirectoryChangesW + DWORD m_dwBufLength;//length or returned data from ReadDirectoryChangesW -- ignored?... + OVERLAPPED m_Overlapped; + DWORD m_dwReadDirError;//indicates the success of the call to ReadDirectoryChanges() + CCriticalSection m_cs; + CEvent m_StartStopEvent; + enum eRunningState{ + RUNNING_STATE_NOT_SET, RUNNING_STATE_START_MONITORING, RUNNING_STATE_STOP, RUNNING_STATE_STOP_STEP2, + RUNNING_STATE_STOPPED, RUNNING_STATE_NORMAL + }; + eRunningState m_RunningState; + };//end nested class CDirWatchInfo + + void ProcessChangeNotifications(IN CFileNotifyInformation & notify_info, + IN CDirWatchInfo * pdi, + OUT DWORD & ref_dwReadBuffer_Offset); + friend class CDirWatchInfo;//so that CDirWatchInfo can call the following function. + long ReleaseReferenceToWatcher(CDirectoryChangeHandler * pChangeHandler); + + BOOL UnwatchDirectoryBecauseOfError(CDirWatchInfo * pWatchInfo);//called in case of error. + int AddToWatchInfo(CDirWatchInfo * pWatchInfo); + // + // functions for retrieving the directory watch info based on different parameters + // + CDirWatchInfo * GetDirWatchInfo(IN const CString & strDirName, OUT int & ref_nIdx)const; + CDirWatchInfo * GetDirWatchInfo(IN CDirWatchInfo * pWatchInfo, OUT int & ref_nIdx)const; + CDirWatchInfo * GetDirWatchInfo(IN CDirectoryChangeHandler * pChangeHandler, OUT int & ref_nIdx)const; + + + HANDLE m_hCompPort; //i/o completion port + HANDLE m_hThread; //MonitorDirectoryChanges() thread handle + DWORD m_dwThreadID; + CTypedPtrArray m_DirectoriesToWatch; //holds info about the directories that we're watching. + CCriticalSection m_csDirWatchInfo; + + bool m_bAppHasGUI; //dispatch to main thread, or a worker thread? + DWORD m_dwFilterFlags;//options for determining the behavior of the filter tests. + +}; + + +#endif // !defined(AFX_DIRECTORYCHANGES_H__02E53FDE_CB22_4176_B6D7_DA3675D9F1A6__INCLUDED_) -- cgit v1.1 From d1ebbd33ea973c15f07dc0bbc545c9124d53cb03 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:38 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/HistoryEdit.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 IvyFileMon/HistoryEdit.cpp diff --git a/IvyFileMon/HistoryEdit.cpp b/IvyFileMon/HistoryEdit.cpp new file mode 100644 index 0000000..cdb1f0f --- /dev/null +++ b/IvyFileMon/HistoryEdit.cpp @@ -0,0 +1,82 @@ +/* + * HistoryEdit.cpp + * + * Description: + * CHistoryEdit implementation + * + * A CEdit subclass that allows you to display a text history + * of events. + * + * Author: + * Ravi Bhavnani (ravib@datablast.net) + * + * Revision History: + * 15 Mar 1998 rab Original version + */ + +#include "stdafx.h" +#include "HistoryEdit.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit + +CHistoryEdit::CHistoryEdit() +{ + m_bSelectable = FALSE; +} + +CHistoryEdit::~CHistoryEdit() +{ +} + +BEGIN_MESSAGE_MAP(CHistoryEdit, CEdit) + //{{AFX_MSG_MAP(CHistoryEdit) + ON_WM_SETFOCUS() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit operations + +void CHistoryEdit::AppendString + (CString str) +// +// Purpose: +// Appends a text string to the history buffer. +// +// Returns: +// None. +// +{ +CString strBuffer; // current contents of edit control + + // Append string + GetWindowText (strBuffer); + if (!strBuffer.IsEmpty()) + strBuffer += "\r\n"; + strBuffer += str; + SetWindowText (strBuffer); + + // Scroll the edit control + LineScroll (GetLineCount(), 0); +} + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit message handlers + +void CHistoryEdit::OnSetFocus(CWnd* pOldWnd) +{ + // Don't allow user to select text + if (m_bSelectable) + CEdit::OnSetFocus (pOldWnd); + else + pOldWnd->SetFocus(); +} + +// End EditHistroy.cpp \ No newline at end of file -- cgit v1.1 From 6129e8b06c16eef9d439840305f9c77517aad28a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:40 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/HistoryEdit.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 IvyFileMon/HistoryEdit.h diff --git a/IvyFileMon/HistoryEdit.h b/IvyFileMon/HistoryEdit.h new file mode 100644 index 0000000..7e2a112 --- /dev/null +++ b/IvyFileMon/HistoryEdit.h @@ -0,0 +1,65 @@ +/* + * HistoryEdit.h + * + * Description: + * CHistoryEdit interface + * + * A CEdit subclass that allows you to display a scrolling history + * of text entries. + * + * Author: + * Ravi Bhavnani (ravib@datablast.net) + * + * Revision History: + * 15 Mar 1998 rab Original version + */ + +#ifndef _HistoryEdit_h_ +#define _HistoryEdit_h_ + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit window + +class CHistoryEdit : public CEdit +{ +// Construction +public: + CHistoryEdit(); + +// Attributes +public: + +// Operations +public: + void AppendString (CString str); + BOOL IsSelectable() { return m_bSelectable; } + void AllowSelection (BOOL bAllowSelect) { m_bSelectable = bAllowSelect; } + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CHistoryEdit) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CHistoryEdit(); + + // Generated message map functions +protected: + //{{AFX_MSG(CHistoryEdit) + afx_msg void OnSetFocus(CWnd* pOldWnd); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +protected: + BOOL m_bSelectable; // flag: user can select text in control +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif + +// End HistoryEdit.h \ No newline at end of file -- cgit v1.1 From 671faa94ac7408f63a4c737c92a54e6c43cab78f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:42 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:12 Créé Commentaire: (vss 1) --- IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj | 795 ++++++++++++++++++++++++ 1 file changed, 795 insertions(+) create mode 100644 IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj diff --git a/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj b/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj new file mode 100644 index 0000000..5d95e1f --- /dev/null +++ b/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj @@ -0,0 +1,795 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:Install" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:\"$/Bus/IvyFileMon\", VTEAAAAA" +"SccLocalPath" = "8:..\\.." +"SccAuxPath" = "8:" +"SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_0DD44A8F6530438CB2E0A50F1F80A210" + "OwnerKey" = "8:_DB155C88AA6C4534BEF14067EEC6FB65" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0E19E1F4B469891E119B302278BD7676" + "OwnerKey" = "8:_DB155C88AA6C4534BEF14067EEC6FB65" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_1787477A582B41BDA52AEC8762B60240" + "OwnerKey" = "8:_378194BEC0C642BBBEB8EBC7B0B33A4F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_378194BEC0C642BBBEB8EBC7B0B33A4F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7E184C689278442B851207163DF58EC0" + "OwnerKey" = "8:_378194BEC0C642BBBEB8EBC7B0B33A4F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7E184C689278442B851207163DF58EC0" + "OwnerKey" = "8:_DB155C88AA6C4534BEF14067EEC6FB65" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DB155C88AA6C4534BEF14067EEC6FB65" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvyFileMon.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstIvyFileMon.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_0E19E1F4B469891E119B302278BD7676" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_DDAA30AF8058479E808821672EB9DC2B" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_31436C2B3945454BA152271137CCAA39" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_DC93F1DBB219414A9D02F4F54143F682" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_DDAA30AF8058479E808821672EB9DC2B" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:IvyFileMon" + "ProductCode" = "8:{AF7B8270-4FA5-4FF6-A907-D256980F7F0B}" + "PackageCode" = "8:{90EA5730-52C0-4E00-A799-573745C6C394}" + "UpgradeCode" = "8:{AA7342E8-DA6F-4BC3-BCB3-0ED1B53336E5}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA PII" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:IvyFileMon" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_90B278BF81154475985C1A4181CF94D4" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_F9F082172E184264885DD15D618580FC" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_55DCD8AB55384E17A422F91638D7BAD6" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_298A7C0021DA49E58AEA25CA12D1EB8E" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_746273026A43484A92DF764E5FE0F8D5" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_7E930155F5254413952D4A13E6984096" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9201B3D3FED9428884C552E8907BD940" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_89117C1BBE544863B1B3C820791387B3" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_89B7CC371BC44ECAA1ADC833B75A98BE" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A340822367004EA3B2E848CB3A4A7AC0" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_5467627873D44B388595ABEDF07BE051" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A19F72F966EC4837BD7FA41F66501195" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A5FFBF0129BC461FBFEE8A03128FF939" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_AE2014636E5E4F25B59645C85CE9CD4B" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_EF4845026C4E48A18C9D2D3C97217128" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_CF64177EA7D844FD8AA819106C1D5F47" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A404463CA0524BA1B155B28BB93CE3D1" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_DD40DA431C6A4691AD9C0CD2B694F4D3" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_F0487C7ECB9243B89FFDC800DD19A924" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_746AC3F4F55049E082938A764D4F913E" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_D2355D14BD594C9EA6DCAB182C8C94CF" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_F29124EDF2D24CAF9003CA4D78974AA8" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_0DD44A8F6530438CB2E0A50F1F80A210" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_1787477A582B41BDA52AEC8762B60240" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_7E184C689278442B851207163DF58EC0" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_378194BEC0C642BBBEB8EBC7B0B33A4F" + { + "SourcePath" = "8:..\\Release\\IvyFileMon.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_DDAA30AF8058479E808821672EB9DC2B" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{B50B2407-50BF-4DF3-832E-41EDA9914A4D}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_DB155C88AA6C4534BEF14067EEC6FB65" + { + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_DDAA30AF8058479E808821672EB9DC2B" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From 4ac98d2789245bb3ae881adc3bae83f7f081f5da Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:44 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:12 Créé Commentaire: (vss 1) --- IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj.vspscc diff --git a/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj.vspscc b/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj.vspscc new file mode 100644 index 0000000..49d6f78 --- /dev/null +++ b/IvyFileMon/InstIvyFileMon/InstIvyFileMon.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Install\\InstIvyFileMon" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 3e149af9b8d7ce2e59c347d283ca193818c1143c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:46 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.cpp diff --git a/IvyFileMon/IvyFileMon.cpp b/IvyFileMon/IvyFileMon.cpp new file mode 100644 index 0000000..ca09d47 --- /dev/null +++ b/IvyFileMon/IvyFileMon.cpp @@ -0,0 +1,65 @@ +// IvyFileMon.cpp : Définit les comportements de classe pour l'application. +// + +#include "stdafx.h" +#include "IvyFileMon.h" +#include "IvyFileMonDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CIvyFileMonApp + +BEGIN_MESSAGE_MAP(CIvyFileMonApp, CWinApp) + ON_COMMAND(ID_HELP, CWinApp::OnHelp) +END_MESSAGE_MAP() + + +// construction de CIvyFileMonApp + +CIvyFileMonApp::CIvyFileMonApp() +{ + // TODO : ajoutez ici le code de la construction. + // Placez toutes les initialisations dans InitInstance +} + + +// Le seul et unique objet CIvyFileMonApp + +CIvyFileMonApp theApp; + + +// initialisation de CIvyFileMonApp + +BOOL CIvyFileMonApp::InitInstance() +{ + // InitCommonControls() est requis sur Windows XP si le manifeste de l'application + // spécifie l'utilisation de ComCtl32.dll version 6 ou ultérieure pour activer les + // styles visuels. Dans le cas contraire, la création de fenêtres échouera. + InitCommonControls(); + + CWinApp::InitInstance(); + + AfxEnableControlContainer(); + + + CIvyFileMonDlg dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO : Placez ici le code définissant le comportement lorsque la boîte de dialogue est + // fermée avec OK + } + else if (nResponse == IDCANCEL) + { + // TODO : Placez ici le code définissant le comportement lorsque la boîte de dialogue est + // fermée avec Annuler + } + + // Lorsque la boîte de dialogue est fermée, retourner FALSE afin de quitter + // l'application, plutôt que de démarrer la pompe de messages de l'application. + return FALSE; +} -- cgit v1.1 From 06779a8325e53d8ea4027181839f10418094a776 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:48 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.h diff --git a/IvyFileMon/IvyFileMon.h b/IvyFileMon/IvyFileMon.h new file mode 100644 index 0000000..3c06f30 --- /dev/null +++ b/IvyFileMon/IvyFileMon.h @@ -0,0 +1,31 @@ +// IvyFileMon.h : fichier d'en-tête principal pour l'application PROJECT_NAME +// + +#pragma once + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // symboles principaux + + +// CIvyFileMonApp : +// Consultez IvyFileMon.cpp pour l'implémentation de cette classe +// + +class CIvyFileMonApp : public CWinApp +{ +public: + CIvyFileMonApp(); + +// Substitutions + public: + virtual BOOL InitInstance(); + +// Implémentation + + DECLARE_MESSAGE_MAP() +}; + +extern CIvyFileMonApp theApp; -- cgit v1.1 From ea14e8fc808bf238054993fcff4da3c4fefa3567 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:50 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.rc | 215 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.rc diff --git a/IvyFileMon/IvyFileMon.rc b/IvyFileMon/IvyFileMon.rc new file mode 100644 index 0000000..117f3ca --- /dev/null +++ b/IvyFileMon/IvyFileMon.rc @@ -0,0 +1,215 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Français (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r\n" + "LANGUAGE 12, 1\r\n" + "#pragma code_page(1252)\r\n" + "#include ""res\\IvyFileMon.rc2"" // ressources non modifiées par Microsoft Visual C++ \r\n" + "#include ""afxres.rc"" // Composants standard\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON "res\\IvyFileMon.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | + WS_SYSMENU +CAPTION "À propos de IvyFileMon" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "IvyFileMon version 1.0",IDC_STATIC,40,10,119,8, + SS_NOPREFIX + LTEXT "Copyright (C) 2002",IDC_STATIC,40,25,119,8 + DEFPUSHBUTTON "OK",IDOK,178,7,50,16,WS_GROUP +END + +IDD_IVYFILEMON_DIALOG DIALOGEX 0, 0, 217, 200 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "IvyFileMon" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + EDITTEXT IDC_BUS,45,15,126,12,ES_AUTOHSCROLL + EDITTEXT IDC_DIRECTORY,45,32,127,12,ES_AUTOHSCROLL + EDITTEXT IDC_PREFIX,45,67,127,12,ES_AUTOHSCROLL + LTEXT "Bus:",IDC_STATIC,25,18,15,8 + LTEXT "Directory:",IDC_STATIC,7,34,33,8 + LTEXT "Prefix:",IDC_STATIC,18,69,22,8 + PUSHBUTTON "Start",IDC_START,176,14,34,14 + EDITTEXT IDC_TEXT,7,88,203,105,ES_MULTILINE | ES_AUTOHSCROLL | + ES_READONLY + EDITTEXT IDC_EXTENT,45,50,127,12,ES_AUTOHSCROLL + LTEXT "extent:",IDC_STATIC,18,52,25,8 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04e4" + BEGIN + VALUE "CompanyName", "TODO: " + VALUE "FileDescription", "TODO: " + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "IvyFileMon.exe" + VALUE "LegalCopyright", "TODO: (c) . Tous droits réservés." + VALUE "OriginalFilename", "IvyFileMon.exe" + VALUE "ProductName", "TODO: " + VALUE "ProductVersion", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1252 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 228 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END + + IDD_IVYFILEMON_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 210 + TOPMARGIN, 7 + BOTTOMMARGIN, 193 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// RT_MANIFEST +// + +IDR_MANIFEST RT_MANIFEST "res\\IvyFileMon.manifest" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_ABOUTBOX "&À propos de IvyFileMon..." +END + +#endif // Français (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +LANGUAGE 12, 1 +#pragma code_page(1252) +#include "res\IvyFileMon.rc2" // ressources non modifiées par Microsoft Visual C++ +#include "afxres.rc" // Composants standard +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From 889a7ccfe07adba9bb857622bfbfc95706acea60 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:52 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.sln | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.sln diff --git a/IvyFileMon/IvyFileMon.sln b/IvyFileMon/IvyFileMon.sln new file mode 100644 index 0000000..d23441b --- /dev/null +++ b/IvyFileMon/IvyFileMon.sln @@ -0,0 +1,53 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyFileMon", "IvyFileMon.vcproj", "{B50B2407-50BF-4DF3-832E-41EDA9914A4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "..\Ivy\Ivy.vcproj", "{84E0039A-6721-4B18-9792-E9AE4274AC0E}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstIvyFileMon", "..\..\..\Install\InstIvyFileMon\InstIvyFileMon.vdproj", "{EFBC2510-93C6-4911-973D-02F63CAAF396}" +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 4 + SccProjectUniqueName0 = ..\\Ivy\\Ivy.vcproj + SccProjectName0 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA + SccLocalPath0 = ..\\Ivy + CanCheckoutShared = false + SccProjectName1 = \u0022$/Bus/IvyFileMon\u0022,\u0020VTEAAAAA + SccLocalPath1 = ..\\..\\.. + SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection1 = C++\\Bus\\IvyFileMon\\ + SolutionUniqueID = {5F419E2D-5A13-4FB3-9817-74A8EB0DE519} + SccProjectUniqueName2 = IvyFileMon.vcproj + SccLocalPath2 = ..\\..\\.. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection2 = C++\\Bus\\IvyFileMon\\ + SccProjectUniqueName3 = ..\\..\\..\\Install\\InstIvyFileMon\\InstIvyFileMon.vdproj + SccLocalPath3 = ..\\..\\.. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection3 = Install\\InstIvyFileMon\\ + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + {B50B2407-50BF-4DF3-832E-41EDA9914A4D}.0 = {84E0039A-6721-4B18-9792-E9AE4274AC0E} + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {B50B2407-50BF-4DF3-832E-41EDA9914A4D}.Debug.ActiveCfg = Debug|Win32 + {B50B2407-50BF-4DF3-832E-41EDA9914A4D}.Debug.Build.0 = Debug|Win32 + {B50B2407-50BF-4DF3-832E-41EDA9914A4D}.Release.ActiveCfg = Release|Win32 + {B50B2407-50BF-4DF3-832E-41EDA9914A4D}.Release.Build.0 = Release|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Debug.ActiveCfg = Debug|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Debug.Build.0 = Debug|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Release.ActiveCfg = Release|Win32 + {84E0039A-6721-4B18-9792-E9AE4274AC0E}.Release.Build.0 = Release|Win32 + {EFBC2510-93C6-4911-973D-02F63CAAF396}.Debug.ActiveCfg = Debug + {EFBC2510-93C6-4911-973D-02F63CAAF396}.Release.ActiveCfg = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From 4aa144b2483d8cf4f17e37c3214e6a58fa135e5d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:54 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.vcproj | 207 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.vcproj diff --git a/IvyFileMon/IvyFileMon.vcproj b/IvyFileMon/IvyFileMon.vcproj new file mode 100644 index 0000000..9ccc796 --- /dev/null +++ b/IvyFileMon/IvyFileMon.vcproj @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 42fcd6c9b206b836111cd971979e9a9112631f8c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:56 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.vcproj.vspscc diff --git a/IvyFileMon/IvyFileMon.vcproj.vspscc b/IvyFileMon/IvyFileMon.vcproj.vspscc new file mode 100644 index 0000000..4c02f52 --- /dev/null +++ b/IvyFileMon/IvyFileMon.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:C++\\Bus\\IvyFileMon" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From a6a51d2542f3f0d9097c31b48fa8ab0a6482182a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:58 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.vsscc | Bin 0 -> 46 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyFileMon/IvyFileMon.vsscc diff --git a/IvyFileMon/IvyFileMon.vsscc b/IvyFileMon/IvyFileMon.vsscc new file mode 100644 index 0000000..8fdac15 Binary files /dev/null and b/IvyFileMon/IvyFileMon.vsscc differ -- cgit v1.1 From fc282dd1d7ed8e0a9af79f7ea3e92b37b51c337a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:07:59 +0000 Subject: Utilisateur : Fcolin Date : 13/12/06 Heure : 12:02 Archivé dans $/Bus/IvyFileMon Commentaire: (vss 2) --- IvyFileMon/IvyFileMon.vsscc | Bin 46 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/IvyFileMon/IvyFileMon.vsscc b/IvyFileMon/IvyFileMon.vsscc index 8fdac15..e69de29 100644 Binary files a/IvyFileMon/IvyFileMon.vsscc and b/IvyFileMon/IvyFileMon.vsscc differ -- cgit v1.1 From 1cb87e9c6664cb4b8f0c2433a3a664b62148356b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:02 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMon.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyFileMon/IvyFileMon.vssscc diff --git a/IvyFileMon/IvyFileMon.vssscc b/IvyFileMon/IvyFileMon.vssscc new file mode 100644 index 0000000..4c02f52 --- /dev/null +++ b/IvyFileMon/IvyFileMon.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:C++\\Bus\\IvyFileMon" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 3ac84251ed49473c02cc388574b5be73316e3dca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:04 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMonDlg.cpp | 281 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 IvyFileMon/IvyFileMonDlg.cpp diff --git a/IvyFileMon/IvyFileMonDlg.cpp b/IvyFileMon/IvyFileMonDlg.cpp new file mode 100644 index 0000000..719ea66 --- /dev/null +++ b/IvyFileMon/IvyFileMonDlg.cpp @@ -0,0 +1,281 @@ +// IvyFileMonDlg.cpp : fichier d'implémentation +// + +#include "stdafx.h" +#include "IvyFileMon.h" +#include "IvyFileMonDlg.h" +#include "ParseCmdLine.h" +#include "IvyApplication.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +const char * CONVSTR( const CString& str ) +{ +#ifdef UNDER_CE + + static char buffer[4096]; + int len = str.GetLength(); + buffer[len] = '\0'; + if ( len ) + { + int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL ); + if ( err == 0 ) + TRACE(TEXT("Error converting chars %d\n"),GetLastError()); + } + return buffer; +#else + return (LPCSTR) str; +#endif + +} + + + +// boîte de dialogue CAboutDlg utilisée pour la boîte de dialogue 'À propos de' pour votre application + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Données de la boîte de dialogue + enum { IDD = IDD_ABOUTBOX }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // prise en charge de DDX/DDV + +// Implémentation +protected: + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) +END_MESSAGE_MAP() + + +// boîte de dialogue CIvyFileMonDlg + + + +CIvyFileMonDlg::CIvyFileMonDlg(CWnd* pParent /*=NULL*/) + : CDialog(CIvyFileMonDlg::IDD, pParent) + , m_busnumber(_T("")) + , m_directory(_T("")) + , m_prefix(_T("")) + , m_extent(_T("")) +{ + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CIvyFileMonDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + DDX_Text(pDX, IDC_BUS, m_busnumber); + DDX_Text(pDX, IDC_DIRECTORY, m_directory); + DDX_Text(pDX, IDC_PREFIX, m_prefix); + DDX_Control(pDX, IDC_TEXT, m_text); + DDX_Text(pDX, IDC_EXTENT, m_extent); +} + +BEGIN_MESSAGE_MAP(CIvyFileMonDlg, CDialog) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + //}}AFX_MSG_MAP + ON_BN_CLICKED(IDC_START, OnBnClickedStart) +END_MESSAGE_MAP() + + +// gestionnaires de messages pour CIvyFileMonDlg + +void CIvyFileMonDlg::WriteMessage(const char *format, ...) +{ + char str[4096]; + // format and write the data we were given + va_list args; + va_start(args, format); + vsprintf(str, format, args); + + m_text.AppendString( str ); +} + +void CIvyFileMonDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) +{ +TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg ); +} + +void CIvyFileMonDlg::OnApplicationConnected(IvyApplication *app) +{ + WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); +} +void CIvyFileMonDlg::OnApplicationDisconnected(IvyApplication *app) +{ + WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); +} + + +BOOL CIvyFileMonDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Ajouter l'élément de menu "À propos de..." au menu Système. + + // IDM_ABOUTBOX doit se trouver dans la plage des commandes système. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Définir l'icône de cette boîte de dialogue. L'infrastructure effectue cela automatiquement + // lorsque la fenêtre principale de l'application n'est pas une boîte de dialogue + SetIcon(m_hIcon, TRUE); // Définir une grande icône + SetIcon(m_hIcon, FALSE); // Définir une petite icône + + // parse command Line Info + ParseCmdLine cmd; + AfxGetApp()->ParseCommandLine( cmd ); + + // Set Argument from Command Line + m_busnumber = cmd.m_busNumber; + m_directory = cmd.m_directory; + m_extent = cmd.m_extent; + m_prefix = cmd.m_prefix; + + bus = new Ivy( "IvyFileMon","IvyFileMon Ready",this,FALSE); + +// bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); + UpdateData(FALSE); + + // force bus start in case of start + if ( cmd.m_start ) + OnBnClickedStart(); + return TRUE; // retourner TRUE, sauf si vous avez défini le focus sur un contrôle +} +void CIvyFileMonDlg::OnCancel() +{ + // TODO: Add extra cleanup here + + if ( bus ) + { + bus->stop(); + delete bus; + } + + CDialog::OnCancel(); +} +void CIvyFileMonDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// Si vous ajoutez un bouton Réduire à votre boîte de dialogue, vous devez utiliser le code ci-dessous +// pour dessiner l'icône. Pour les applications MFC utilisant le modèle Document/Vue, +// cela est fait automatiquement par l'infrastructure. + +void CIvyFileMonDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // contexte de périphérique pour la peinture + + SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); + + // Centrer l'icône dans le rectangle client + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Dessiner l'icône + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// Le système appelle cette fonction pour obtenir le curseur à afficher lorsque l'utilisateur fait glisser +// la fenêtre réduite. +HCURSOR CIvyFileMonDlg::OnQueryDragIcon() +{ + return static_cast(m_hIcon); +} + +void CIvyFileMonDlg::OnBnClickedStart() +{ + UpdateData(TRUE); + bus->stop(); + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); + bus->start(CONVSTR(m_busnumber)); + watcher.WatchDirectory(m_directory, + FILE_NOTIFY_CHANGE_FILE_NAME |FILE_NOTIFY_CHANGE_LAST_WRITE, + this, + FALSE, //<-- watch sub directories? + m_extent, //<-- Include Filter + NULL);//<-- Exclude Filter + UpdateData(FALSE); +} + +void CIvyFileMonDlg::SendIvyFile(const CString & strFileName) +{ + CStdioFile file; + CString line; + + TRACE("File Change %s\n", (LPCSTR)strFileName ); + if ( file.Open( strFileName, CFile::modeRead ) ) + { + WriteMessage( "File %s Change sending file...",(LPCSTR)strFileName ); + bus->SendMsg("%s FileBegin %s",(LPCSTR)m_prefix, (LPCSTR)strFileName); + while( file.ReadString(line) ) + { + bus->SendMsg("%s FileLine %s",(LPCSTR) m_prefix, (LPCSTR)line); + } + file.Close(); + bus->SendMsg("%s FileEnd",(LPCSTR) m_prefix); + WriteMessage( "File %s Change done",(LPCSTR)strFileName ); + } + +} +void CIvyFileMonDlg::On_FileAdded(const CString & strFileName) +{ + SendIvyFile( strFileName ); +} +void CIvyFileMonDlg::On_FileModified(const CString & strFileName) +{ + SendIvyFile( strFileName ); +} \ No newline at end of file -- cgit v1.1 From 2375783687e0c29cb687eb29e55692a1b503fb1b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:05 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/IvyFileMonDlg.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 IvyFileMon/IvyFileMonDlg.h diff --git a/IvyFileMon/IvyFileMonDlg.h b/IvyFileMon/IvyFileMonDlg.h new file mode 100644 index 0000000..ffec31a --- /dev/null +++ b/IvyFileMon/IvyFileMonDlg.h @@ -0,0 +1,55 @@ +// IvyFileMonDlg.h : fichier d'en-tête +// + +#pragma once + +#include "Ivy.h" +#include "afxwin.h" + +#include "DirectoryChanges.h" +#include "HistoryEdit.h" + +// boîte de dialogue CIvyFileMonDlg +class CIvyFileMonDlg : public CDialog, public IvyApplicationCallback, public CDirectoryChangeHandler +{ +// Construction +public: + CIvyFileMonDlg(CWnd* pParent = NULL); // constructeur standard + +// Données de la boîte de dialogue + enum { IDD = IDD_IVYFILEMON_DIALOG }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // prise en charge de DDX/DDV + virtual void OnCancel(); + +// Implémentation +protected: + HICON m_hIcon; + + Ivy *bus; + void WriteMessage(const char * format, ...); + void OnApplicationConnected( IvyApplication *app ); + void OnApplicationDisconnected( IvyApplication *app ); + void OnDirectMessage( IvyApplication *app, int id, const char *arg ); + void SendIvyFile( const CString & strFileName ); + + // Directory Handler + CDirectoryChangeWatcher watcher; + virtual void On_FileAdded(const CString & strFileName); + virtual void On_FileModified(const CString & strFileName); + + // Fonctions générées de la table des messages + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + DECLARE_MESSAGE_MAP() +public: + CString m_busnumber; + CString m_directory; + CString m_prefix; + afx_msg void OnBnClickedStart(); + CHistoryEdit m_text; + CString m_extent; +}; -- cgit v1.1 From 8310b749001f3376a92e4ff688d5c27602bd662d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:08 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/ParseCmdLine.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 IvyFileMon/ParseCmdLine.cpp diff --git a/IvyFileMon/ParseCmdLine.cpp b/IvyFileMon/ParseCmdLine.cpp new file mode 100644 index 0000000..fc6a1d8 --- /dev/null +++ b/IvyFileMon/ParseCmdLine.cpp @@ -0,0 +1,76 @@ +// ParseCmdLine.cpp: implementation of the ParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" + +#include "ParseCmdLine.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +ParseCmdLine::ParseCmdLine() +{ + m_start = TRUE; + m_busNumber = ""; + m_prefix = "IvyFileMon "; + m_directory = "c:\\anoto_log\\strokes"; + m_extent = "*.txt"; +} + +ParseCmdLine::~ParseCmdLine() +{ + +} + +void ParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +{ + if (bFlag) + { + ParseParamFlag(lpszParam); + } + else + ParseParamNotFlag(lpszParam); + +} + +void ParseCmdLine::ParseParamFlag(LPCTSTR pszParam) +{ + + if (lstrcmpi(pszParam, TEXT("start")) == 0) + m_start = TRUE; + else if (lstrcmpi(pszParam, TEXT("bus")) == 0) + m_shellCommand = BusNumber; + else if (lstrcmpi(pszParam, TEXT("directory")) == 0) + m_shellCommand = Directory; + else if (lstrcmpi(pszParam, TEXT("prefix")) == 0) + m_shellCommand = Prefix; + else if (lstrcmpi(pszParam, TEXT("extent")) == 0) + m_shellCommand = Extent; +} + +void ParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) +{ + switch ( m_shellCommand ) + { + case BusNumber: + m_busNumber = pszParam; + break; + case Directory: + m_directory = pszParam; + break; + case Prefix: + m_prefix = pszParam; + break; + case Extent: + m_extent = pszParam; + break; + } +} -- cgit v1.1 From fbdc27d3ad67db5fec3cca3df4d397c9707f3405 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:09 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/ParseCmdLine.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 IvyFileMon/ParseCmdLine.h diff --git a/IvyFileMon/ParseCmdLine.h b/IvyFileMon/ParseCmdLine.h new file mode 100644 index 0000000..3b9a272 --- /dev/null +++ b/IvyFileMon/ParseCmdLine.h @@ -0,0 +1,37 @@ +// TestParseCmdLine.h: interface for the TestParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) +#define AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class ParseCmdLine : public CCommandLineInfo +{ +public: + + BOOL m_start; + CString m_busNumber; + CString m_directory; + CString m_extent; + CString m_prefix; + virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); + ParseCmdLine(); + virtual ~ParseCmdLine(); + enum { + BusNumber, + Start, + Directory, + Extent, + Prefix + }m_shellCommand; + +protected: + void ParseParamNotFlag(LPCTSTR pszParam); + void ParseParamFlag(LPCTSTR pszParam); +}; + +#endif // !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) -- cgit v1.1 From ba860ebd814e95be1c66191e022fe23111132494 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:12 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/ReadMe.txt | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 IvyFileMon/ReadMe.txt diff --git a/IvyFileMon/ReadMe.txt b/IvyFileMon/ReadMe.txt new file mode 100644 index 0000000..8ef8ee3 --- /dev/null +++ b/IvyFileMon/ReadMe.txt @@ -0,0 +1,87 @@ +================================================================================================= + BIBLIOTHÈQUE MICROSOFT FOUNDATION CLASS : Vue d'ensemble du projet IvyFileMon +================================================================================================= + +AppWizard a créé cette application IvyFileMon à votre attention. Cette application +explique les principes fondamentaux de l'utilisation des classes MFC (Microsoft Foundation Class) +et constitue également un point de départ pour écrire votre propre application. + +Ce fichier fait la synthèse des différents éléments contenus dans chacun des fichiers qui constituent +votre application IvyFileMon. + +IvyFileMon.vcproj + Il s'agit du fichier projet principal pour les projets VC++ générés à l'aide d'un Assistant Application. + Ce fichier contient des informations sur la version de Visual C++ qui a été utilisée pour générer + le fichier ainsi que des informations relatives aux plates-formes, configurations et fonctionnalités + sélectionnées dans l'Assistant Application. + +IvyFileMon.h + Il s'agit du fichier d'en-tête principal pour l'application. Il comporte + d'autres en-têtes de projet spécifiques (notamment Resource.h) et déclare la + classe d'application CIvyFileMonApp. + +IvyFileMon.cpp + Il s'agit du fichier source principal pour l'application. Il contient la classe + d'application CIvyFileMonApp. + +IvyFileMon.rc + Ce fichier dresse la liste de toutes les ressources Microsoft Windows utilisées + par le programme, telles que les icônes, bitmaps et curseurs qui sont stockés + dans le sous-répertoire RES. Vous pouvez modifier ce fichier directement dans Microsoft + Visual C++. Vos ressources projet se trouvent dans 1036. + +res\IvyFileMon.ico + Il s'agit du fichier icône utilisé en tant qu'icône de l'application. Cette icône + est incluse dans le fichier de ressources principal IvyFileMon.rc. + +res\IvyFileMon.rc2 + Ce fichier contient les ressources qui ne sont pas modifiées par Microsoft + Visual C++. Vous devez y placer toutes les ressources non modifiables par + l'Éditeur de ressources. + +///////////////////////////////////////////////////////////////////////////// + +AppWizard crée une classe de dialogue : +IvyFileMonDlg.h, IvyFileMonDlg.cpp - la boîte de dialogue + Ces fichiers contiennent votre classe CIvyFileMonDlg, qui définit le + comportement de la boîte de dialogue principale de votre application. Le modèle de boîte de + dialogue se trouve dans le fichier IvyFileMon.rc, modifiable dans Microsoft Visual C++. +///////////////////////////////////////////////////////////////////////////// + +Autres fonctionnalités : + +Contrôles ActiveX + L'application offre la prise en charge des contrôles ActiveX. + +Prise en charge de l'aperçu avant impression et de l'impression + AppWizard a généré le code requis pour gérer les commandes Impression, Configuration de l'impression et + Aperçu avant impression en appelant des fonctions membres de la classe CView à partir de la bibliothèque MFC. +///////////////////////////////////////////////////////////////////////////// + +Autres fichiers standard : + +StdAfx.h, StdAfx.cpp + Ces fichiers servent à générer un fichier d'en-tête précompilé (PCH), + appelé IvyFileMon.pch, et un fichier de types précompilés StdAfx.obj. + +Resource.h + Il s'agit du fichier d'en-tête standard, qui définit les ID des nouvelles ressources. + Ce fichier est lu et mis à jour par Microsoft Visual C++. + +///////////////////////////////////////////////////////////////////////////// + +Autres remarques : + +AppWizard utilise "TODO:" pour vous signaler les parties du code source +que vous devez ajouter ou personnaliser. + +Si votre application utilise MFC dans une DLL partagée et que la langue de cette +application n'est pas la même que celle utilisée par le système d'exploitation, vous +devez copier les ressources localisées MFC70XXX.DLL correspondantes (situées sur le +CD-ROM Microsoft Visual C++ dans le répertoire Win\System) dans le répertoire system +ou system32 de votre ordinateur, puis renommer MFC70XXX.DLL en MFCLOC.DLL. ("XXX" est +l'abréviation de la langue. Par exemple, MFC70DEU.DLL contient les ressources en allemand.) +Si vous ne copiez pas la version localisée des ressources, certains éléments d'interface de +votre application seront affichés dans la langue du système d'exploitation. + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From c62920d3d9ab33eb69fc21594a28eb4a9a24bafb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:14 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/res/IvyFileMon.ico | Bin 0 -> 21630 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyFileMon/res/IvyFileMon.ico diff --git a/IvyFileMon/res/IvyFileMon.ico b/IvyFileMon/res/IvyFileMon.ico new file mode 100644 index 0000000..8a84ca3 Binary files /dev/null and b/IvyFileMon/res/IvyFileMon.ico differ -- cgit v1.1 From a7af71b683dd1d642847ca77bb06e6b9e9bb375c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:16 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/res/IvyFileMon.manifest | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 IvyFileMon/res/IvyFileMon.manifest diff --git a/IvyFileMon/res/IvyFileMon.manifest b/IvyFileMon/res/IvyFileMon.manifest new file mode 100644 index 0000000..b68a5ce --- /dev/null +++ b/IvyFileMon/res/IvyFileMon.manifest @@ -0,0 +1,22 @@ + + + +Tapez ici une description de votre application + + + + + + -- cgit v1.1 From d3fa1a356c6ff06ddafc3d70b085635fb4a8120e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:17 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/res/IvyFileMon.rc2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 IvyFileMon/res/IvyFileMon.rc2 diff --git a/IvyFileMon/res/IvyFileMon.rc2 b/IvyFileMon/res/IvyFileMon.rc2 new file mode 100644 index 0000000..1aea3fd --- /dev/null +++ b/IvyFileMon/res/IvyFileMon.rc2 @@ -0,0 +1,13 @@ +// +// Ressources IvyFileMon.RC2 non modifiées directement par Microsoft Visual C++ +// + +#ifdef APSTUDIO_INVOKED +#error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Ajoutez ici les ressources modifiées manuellement... + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 6197a791ac149a3c5725812e11a7a3ef908130dc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:19 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/resource.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 IvyFileMon/resource.h diff --git a/IvyFileMon/resource.h b/IvyFileMon/resource.h new file mode 100644 index 0000000..5d1642d --- /dev/null +++ b/IvyFileMon/resource.h @@ -0,0 +1,28 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by IvyFileMon.rc +// +#define IDR_MANIFEST 1 +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_IVYFILEMON_DIALOG 102 +#define IDR_MAINFRAME 128 +#define IDC_BUS 1000 +#define IDC_DIRECTORY 1001 +#define IDC_PREFIX 1002 +#define IDC_START 1003 +#define IDC_TEXT 1004 +#define IDC_PREFIX2 1005 +#define IDC_EXTENT 1005 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1005 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif -- cgit v1.1 From 32f91ed8b10e1c3a71dd835fc412b1ffcafbb963 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:21 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/stdafx.cpp | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 IvyFileMon/stdafx.cpp diff --git a/IvyFileMon/stdafx.cpp b/IvyFileMon/stdafx.cpp new file mode 100644 index 0000000..9c25d46 --- /dev/null +++ b/IvyFileMon/stdafx.cpp @@ -0,0 +1,7 @@ +// stdafx.cpp : le fichier source qui inclut uniquement le fichier Include +// IvyFileMon.pch sera l'en-tête précompilé +// stdafx.obj contiendra les informations de type précompilé + +#include "stdafx.h" + + -- cgit v1.1 From 7eaafdc194b3b0c7ab16a8182275498f86e58eaf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:23 +0000 Subject: Utilisateur : Fcolin Date : 8/11/02 Heure : 11:50 Créé Commentaire: (vss 1) --- IvyFileMon/stdafx.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 IvyFileMon/stdafx.h diff --git a/IvyFileMon/stdafx.h b/IvyFileMon/stdafx.h new file mode 100644 index 0000000..768f5e5 --- /dev/null +++ b/IvyFileMon/stdafx.h @@ -0,0 +1,42 @@ +// stdafx.h : fichier Include pour les fichiers Include système standard, +// ou pour les fichiers Include spécifiques au projet qui sont fréquemment utilisés, +// mais rarement modifiés + +#pragma once + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // Exclut les informations rarement utilisées des en-têtes Windows +#endif + +// Modifiez les valeurs suivantes si votre plate-forme cible est antérieure aux plates-formes spécifiées ci-après. +// Consultez la documentation MSDN pour obtenir des informations récentes sur les valeurs respectives des différentes plates-formes. +#ifndef WINVER // Permet l'utilisation de fonctionnalités spécifiques à Windows 95 et à Windows NT 4 ou version ultérieure. +#define WINVER 0x0400 // La valeur appropriée doit être utilisée pour des applications cibles Windows 98 et Windows 2000 ou version ultérieure. +#endif + +#ifndef _WIN32_WINNT // Permet l'utilisation de fonctionnalités spécifiques à Windows NT 4 ou version ultérieure. +#define _WIN32_WINNT 0x0400 // La valeur appropriée doit être utilisée pour des applications cibles Windows 98 et Windows 2000 ou version ultérieure. +#endif + +#ifndef _WIN32_WINDOWS // Permet l'utilisation de fonctionnalités spécifiques à Windows 98 ou version ultérieure. +#define _WIN32_WINDOWS 0x0410 // La valeur appropriée doit être utilisée pour des applications cibles Windows Me ou version ultérieure. +#endif + +#ifndef _WIN32_IE // Permet l'utilisation de fonctionnalités spécifiques à Internet Explorer 4.0 ou version ultérieure. +#define _WIN32_IE 0x0400 // La valeur appropriée doit être utilisée pour des applications cibles Internet Explorer 5.0 ou version ultérieure. +#endif + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // certains constructeurs CString seront explicites + +// désactive le masquage MFC de certains messages d'avertissement courants et par ailleurs souvent ignorés +#define _AFX_ALL_WARNINGS + +#include // composants MFC principaux et standard +#include // extensions MFC +#include // classes Automation MFC + +#include // Prise en charge MFC des contrôles communs Internet Explorer 4 +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // Prise en charge MFC des contrôles communs Windows +#endif // _AFX_NO_AFXCMN_SUPPORT +#include -- cgit v1.1 From c1daa3a71356d74e91452ac440d2e1c8d7fd07e3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:26 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 9:26 Créé (vss 1) --- IvyProbe/ETSLayout.cpp | 2873 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2873 insertions(+) create mode 100644 IvyProbe/ETSLayout.cpp diff --git a/IvyProbe/ETSLayout.cpp b/IvyProbe/ETSLayout.cpp new file mode 100644 index 0000000..fa62a7b --- /dev/null +++ b/IvyProbe/ETSLayout.cpp @@ -0,0 +1,2873 @@ +//////////////////////////////////////////// +// ___ ____ _________________ // +// / _/_ _// _______________/ // +// / _/ / / / / ___ ___ ____ // +// /__/ /_/ / / / // _/_ _/ // +// _________/ / / / // _/ / / // +// __(c) 1998-9_/ /___//_/ /_/ // +// // +//////////////////////////////////////////// +// all rights reserved // +//////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutDialog +// +// A class for smart layouting of Dialogs and such +// +// USAGE: See LayoutMgr.html +// +// AUTHOR: Erwin Tratar +// +// DISCLAIMER: +// +// This Sourcecode and all accompaning material is ©1998-1999 Erwin Tratar. +// All rights reserved. +// +// The source code may be used in compiled form in any way you desire +// (including usage in commercial applications), providing that your +// application adds essential code (i.e. it is not only a wrapper) to the +// functionality found here +// +// Redistribution of the sourcecode itself, publication in any media or +// inclusion in a library requires the authors expressed written consent. +// You may not sale this code for profit. +// +// THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. USE IT +// AT YOUR OWN RISK! THE AUTHOR ACCEPTS NO LIABILITY FOR ANY DAMAGE/LOSS OF +// BUSINESS THAT THIS PRODUCT MAY CAUSE. +// +// +// HISTORY: +// 1998/05/1 Initial Release +// 1998/05/13 Added ability to have a Pane with a control +// 1998/05/13 Added better support for TabControls +// 1998/05/14 automatically set Icon to IDR_MAINFRAME +// 1998/05/19 no flicker on restoring position in OnInitialUpdate +// Changed procedure for load/save, see constructor +// 1998/10/02 Added support for Maximum (tracking) size +// 1998/10/02 Much improved handling regarding RELATIVE/GREEDY +// /w critical minimum size +// 1998/10/02 turn on/off gripper at lower right corner +// 1998/10/05 Support for user defined minimum size for items +// (was hardcoded 5 before) +// 1998/10/07 Fix for FormViews +// 1998/10/31 Support for SECDialogBar/CDialogBar +// 1998/10/31 simplified interface +// 1998/10/31 Advanced positioning options +// 1998/10/31 Added paneNull for empty Pane (former: NULL) +// 1998/11/20 Swapped ETSLayoutDialog constructor parameters +// 1998/11/20 Added Pane::addItemSpaceBetween +// [Leo Zelevinsky] +// 1998/11/24 Added fixup for greedy panes +// 1998/11/24 addItemSpaceBetween now subtracts 2*nDefaultBorder +// 1998/11/24 addGrowing() added as a shortcut for a paneNull +// 1998/11/24 simplified interface: no more PaneBase:: / Pane:: +// needed +// 1998/11/24 added FILL_* Modes +// 1998/11/24 improved maximum size handling for greedy panes +// 1998/11/25 Fixup of greedy panes caused infinite loop in some +// cases +// 1999/01/07 addItemSpaceLike() added +// 1999/04/03 Fixed ETSLayoutFormView memory leak +// 1999/04/07 Fixed ALIGN_xCENTER +// 1999/04/08 New simple stream-interface added +// 1999/04/09 Added support for an empty Status-Bar for resizing +// instead of a gripper in the lower right corner +// [Andreas Kapust] +// 1999/04/11 New code for much less flickering, OnEraseBkgnd() +// overidden for this task +// 1999/05/12 Split Layout code into understandable pieces and adding +// a lot of comments +// 1999/06/20 ABSOLUTE_X + ALIGN_FILL_X expands item if there is any +// left space (after all Abs/Rel/Greedy processing is done) +// 1999/10/06 Changed Load() and Save() to use WINDOWPLACEMENT +// [Keith Bussell] +// 1999/11/18 Added possibility to add panes of the same orientation +// to another pane. This merges both panes in one big +// pane with the same orientation +// 1999/11/18 Added support for BCGDialogBar (only with BCG > 4.52!) +// 1999/11/25 Addes support for PropertyPages/Sheets. Uses some code +// of a code submission from Anreas Kapust +// 1999/11/25 Renamed classes to ETSLayoutXXX +// 1999/11/25 Use CreateRoot() and Root() instead of m_pRootPane in +// derived class. +// 1999/11/26 Added autopointer support. No need to use normal pointers +// when defining layout anymore. Changed m_pRootPane to +// m_RootPane +// 1999/11/26 Bug in Fixup Greedy II with multiple GREEDY panes and one +// of them min/max limited +// 1999/11/28 Fixed PaneTab::getConstrainVert() for ABSOLUTE_VERT +// 1999/11/28 Fixed itemFixed() +// 1999/11/28 Changed DWORD modeResize Arguments to layModeResize for +// better type safety. Added typesafe operator| +// 1999/12/04 Don't reposition window in UpdateLayout if it's a child +// (as a child Dialog or PropertyPage) +// 1999/12/04 Erase Backgroung with GCL_HBRBACKGROUND (if available) +// 1999/12/04 itemSpaceXXX() adds a NORESIZE item instead of ABSOLUTE_XXX +// this will fix unwanted growing in secondary direction +// 1999/12/10 Erase Backgroung within TabCtrl was 'fixed' badly. Reverted to +// old working code +// 2000/02/02 When the Dialog is child of a View the class works correctly +// now [Didier BULTIAUW] +// 2000/02/15 Combo-Boxes were not working correctly (in all modes!) + + +#define OEMRESOURCE +#include + +#include "stdafx.h" +#include "ETSLayout.h" + +#ifndef OBM_SIZE +#define OBM_SIZE 32766 +// taken from WinresRc.h +// if not used for any reason +#endif + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +static UINT auIDStatusBar[] = +{ + ID_SEPARATOR +}; + +const int ERASE_GROUP_BORDER = 10; +const int FIXUP_CUTOFF = 5; +const int TAB_SPACE = 5; + +// the _NULL-Pane +CWnd* ETSLayoutMgr::paneNull = 0; + +void ETSLayoutMgr::Layout(CRect& rcClient) +{ + // Does nothing, use DECLARE_LAYOUT in derived class + // see DialogMgr.h +} + + +ETSLayoutMgr::CPane ETSLayoutMgr::pane( layOrientation orientation, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, + int sizeBorder /*=nDefaultBorder*/, int sizeExtraBorder /*=0*/, + int sizeSecondary /*=0*/) +{ + Pane* pPane = new Pane ( this, orientation, sizeBorder, sizeExtraBorder ); + pPane->m_sizeSecondary = sizeSecondary; + pPane->m_modeResize = modeResize; + + return CPane(pPane); +} + +ETSLayoutMgr::CPane ETSLayoutMgr::paneTab( CTabCtrl* pTab, layOrientation orientation, + ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeBorder /*=nDefaultBorder*/, + int sizeExtraBorder /*=0*/, int sizeSecondary /*=0*/) +{ + Pane* pPane = new PaneTab ( pTab, this, orientation, sizeBorder, sizeExtraBorder ); + pPane->m_sizeSecondary = sizeSecondary; + pPane->m_modeResize = modeResize; + + return CPane(pPane); +} + + +ETSLayoutMgr::CPane ETSLayoutMgr::paneCtrl( CWnd* pCtrl, layOrientation orientation, + ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeBorder /*=nDefaultBorder*/, + int sizeExtraBorder /*=0*/, int sizeTopExtra /*=0*/, + int sizeSecondary /*=0*/) +{ + Pane* pPane = new PaneCtrl ( pCtrl, this, orientation, sizeBorder, sizeExtraBorder, sizeTopExtra ); + pPane->m_sizeSecondary = sizeSecondary; + pPane->m_modeResize = modeResize; + + return CPane(pPane); +} + +ETSLayoutMgr::CPane ETSLayoutMgr::paneCtrl( UINT nID, layOrientation orientation, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, + int sizeBorder /*=nDefaultBorder*/, int sizeExtraBorder /*=0*/, + int sizeTopExtra /*=0*/, int sizeSecondary /*=0*/) +{ + Pane* pPane = new PaneCtrl ( nID, this, orientation, sizeBorder, sizeExtraBorder, sizeTopExtra ); + pPane->m_sizeSecondary = sizeSecondary; + pPane->m_modeResize = modeResize; + + return CPane(pPane); +} + + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::item(UINT nID, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/, + int sizeXMin /*=-1*/, int sizeYMin /*=-1*/) +{ + return new PaneItem( nID, this, modeResize, sizeX, sizeY, sizeXMin, sizeYMin); +} + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::item(CWnd* pWnd, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, + int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=-1*/, + int sizeYMin /*=-1*/) +{ + return new PaneItem( pWnd, this, modeResize, sizeX, sizeY, sizeXMin, sizeYMin); +} + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemFixed(layOrientation orientation, int sizePrimary) +{ + CPaneBase p = new PaneItem(paneNull, this, NORESIZE, (orientation==HORIZONTAL)?sizePrimary:0, (orientation==VERTICAL)?sizePrimary:0); + return p; +} + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemGrowing(layOrientation orientation) +{ + return new PaneItem(paneNull, this, (orientation==HORIZONTAL)?ABSOLUTE_VERT:ABSOLUTE_HORZ, 0, 0, -nDefaultBorder, -nDefaultBorder); +} + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceBetween( layOrientation orientation, CWnd* pWndFirst, CWnd* pWndSecond ) +{ + if( orientation == HORIZONTAL ) { + // I'm interested in horizontal spacing + + CRect rLeft, rRight; + pWndFirst->GetWindowRect(&rLeft); + pWndSecond->GetWindowRect(&rRight); + + int sizeX = rRight.left - rLeft.right; + + if( sizeX < 0 ) { + // compare top to top + sizeX = rRight.left - rLeft.left; + } + else { + sizeX -= 2*nDefaultBorder; + } + + return new PaneItem(paneNull, this, NORESIZE, sizeX, 0); + } + else { + // I'm interested in vertical spacing + CRect rTop, rBot; + pWndFirst->GetWindowRect(&rTop); + pWndSecond->GetWindowRect(&rBot); + + int sizeY = rBot.top - rTop.bottom; + + if( sizeY < 0 ) { + // compare top to top + sizeY = sizeY = rBot.top - rTop.top; + } + else { + sizeY -= 2*nDefaultBorder; + } + + return new PaneItem(paneNull, this, NORESIZE, 0, sizeY); + } +} + + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceBetween( layOrientation orientation, UINT nIDFirst, UINT nIDSecond ) +{ + CWnd *pFirst = GetWnd()->GetDlgItem(nIDFirst); + CWnd *pSecond = GetWnd()->GetDlgItem(nIDSecond); + + ASSERT( pFirst && pSecond ); + + return itemSpaceBetween( orientation, pFirst, pSecond ); +} + + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceLike( layOrientation orientation, CWnd* pWnd ) +{ + CRect rRect; + pWnd->GetWindowRect(&rRect); + + if( orientation == HORIZONTAL ) { + // I'm interested in horizontal spacing + return new PaneItem(paneNull, this, NORESIZE, rRect.Width(), 0); + } + else { + // I'm interested in vertical spacing + return new PaneItem(paneNull, this, NORESIZE, 0, rRect.Height() ); + } + +} + + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceLike( layOrientation orientation, UINT nID ) +{ + CWnd *pWnd = GetWnd()->GetDlgItem(nID); + ASSERT( pWnd ); + + return itemSpaceLike( orientation, pWnd ); +} + + + +ETSLayoutMgr::~ETSLayoutMgr() +{ +} + +void ETSLayoutMgr::UpdateLayout() +{ + if(!m_RootPane) + return; + + // Check constraints + CRect rcClient = GetRect(); + + if( m_pWnd->IsKindOf( RUNTIME_CLASS( CDialog ) ) && !(m_pWnd->GetStyle()&WS_CHILD) ) { + CRect rcWindow; + m_pWnd->GetWindowRect(rcWindow); + + // Added by Didier BULTIAUW + CWnd* parentWnd = m_pWnd->GetParent(); + if( (parentWnd != 0) && parentWnd->IsKindOf(RUNTIME_CLASS(CView)) ) + { + CRect rcParent; + parentWnd->GetWindowRect(rcParent); + rcWindow.OffsetRect(-rcParent.left,-rcParent.top); + } + // end add + + CRect rcBorder = rcWindow; + rcBorder -= rcClient; + + // Min and Max info + int minWidth = m_RootPane->getMinConstrainHorz() + rcBorder.Width() + 2*m_sizeRootBorders.cx; + int minHeight = m_RootPane->getMinConstrainVert() + rcBorder.Height() + 2*m_sizeRootBorders.cy; + int maxWidth = m_RootPane->getMaxConstrainHorz(); + if(maxWidth != -1) { + maxWidth += rcBorder.Width() + 2*m_sizeRootBorders.cx; + maxWidth = max(maxWidth, minWidth); + } + int maxHeight = m_RootPane->getMaxConstrainVert(); + if(maxHeight != -1) { + maxHeight += rcBorder.Height() + 2*m_sizeRootBorders.cy; + maxHeight = max(maxHeight, minHeight); + } + + if(rcWindow.Width() < minWidth) + rcWindow.right = rcWindow.left + minWidth; + if(rcWindow.Height() < minHeight) + rcWindow.bottom = rcWindow.top + minHeight; + + if(maxWidth != -1 && rcWindow.Width() > maxWidth) + rcWindow.right = rcWindow.left + maxWidth; + if(maxHeight != -1 && rcWindow.Height() > maxHeight) + rcWindow.bottom = rcWindow.top + maxHeight; + + m_pWnd->MoveWindow(rcWindow); + } + // Do the Layout + rcClient = GetRect(); + + // Add a Border around the rootPane + rcClient.top += m_sizeRootBorders.cy; + rcClient.bottom -= m_sizeRootBorders.cy; + rcClient.left += m_sizeRootBorders.cx; + rcClient.right -= m_sizeRootBorders.cx; + + if(GetWnd()->IsWindowVisible()) { + // Avoid ugly artifacts + //GetWnd()->SetRedraw(FALSE); + Layout(rcClient); + //GetWnd()->SetRedraw(TRUE); + } + else + Layout(rcClient); + + GetWnd()->Invalidate(); +} + + +bool ETSLayoutMgr::Save(LPCTSTR lpstrRegKey) +{ + CRect rcWnd; + + if(IsWindow(GetWnd()->m_hWnd)) + { + WINDOWPLACEMENT wp; + if(GetWnd()->GetWindowPlacement(&wp)) + { + // Make sure we don't pop up + // minimized the next time + if(wp.showCmd != SW_SHOWMAXIMIZED) + wp.showCmd = SW_SHOWNORMAL; + + AfxGetApp()->WriteProfileBinary(lpstrRegKey, + "WindowPlacement", + reinterpret_cast(&wp), sizeof(wp)); + } + } + return true; +} + +bool ETSLayoutMgr::Load(LPCTSTR lpstrRegKey) +{ + LPBYTE pbtData = 0; + UINT nSize = 0; + if(AfxGetApp()->GetProfileBinary(lpstrRegKey, + "WindowPlacement", &pbtData, &nSize)) + { + WINDOWPLACEMENT* pwp = + reinterpret_cast(pbtData); + + ASSERT(nSize == sizeof(WINDOWPLACEMENT)); + if(nSize == sizeof(WINDOWPLACEMENT)) + GetWnd()->SetWindowPlacement(reinterpret_cast(pbtData)); + + delete [] pbtData; + } + return true; +} + + +void ETSLayoutMgr::EraseBkgnd(CDC* pDC) +{ + CRect rcClient; + GetWnd()->GetClientRect( rcClient ); + + CRgn rgn; + rgn.CreateRectRgnIndirect(rcClient); + + CRgn rgnRect; + rgnRect.CreateRectRgn(0,0,0,0); + + CRect rcChild; + CWnd* pWndChild = GetWnd()->GetWindow( GW_CHILD ); + + TCHAR szClassName[ MAX_PATH ]; + + CRect rcClip; + pDC->GetClipBox(&rcClip); + + while( pWndChild ) { + + pWndChild->GetWindowRect(rcChild); + GetWnd()->ScreenToClient( rcChild ); + + rgnRect.SetRectRgn( rcChild ); + + ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH ); + DWORD dwStyle = pWndChild->GetStyle(); + + // doesn't make sense for hidden children + if( dwStyle & WS_VISIBLE ) { + + if( _tcscmp(szClassName,"Button")==0 && (dwStyle & BS_GROUPBOX) ) { + // it is a group-box, ignore completely + } + else if( _tcscmp(szClassName,"SysTabControl32")==0 ) { + // ignore Tab-Control's inside rect + static_cast(pWndChild)->AdjustRect(FALSE,rcChild); + + CRgn rgnContent; + rgnContent.CreateRectRgnIndirect(rcChild); + + rgnRect.CombineRgn( &rgnRect, &rgnContent, RGN_DIFF ); + rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF ); + } + else { + rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF ); + } + } + + pWndChild = pWndChild->GetNextWindow(); + } + + + HBRUSH hBrBack = (HBRUSH) ::GetClassLong(GetWnd()->GetSafeHwnd(), GCL_HBRBACKGROUND) ; + if( hBrBack == 0 ) + hBrBack = ::GetSysColorBrush(COLOR_BTNFACE); + + pDC->FillRgn( &rgn, + CBrush::FromHandle( hBrBack ) + ); + +} + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutMgr::PaneItem implementation + + +ETSLayoutMgr::PaneItem::PaneItem(CWnd* pWnd, ETSLayoutMgr* pMgr, ETSLayoutMgr::layResizeMode modeResize/*=GREEDY*/ + , int sizeX/*=0*/, int sizeY/*=0*/ + , int sizeXMin/*=-1*/, int sizeYMin/*=-1*/ ) : PaneBase( pMgr ) +{ + m_modeResize = modeResize; + m_hwndCtrl = pWnd->GetSafeHwnd(); + + m_sizeX = 0; + m_sizeY = 0; + + m_bComboSpecial = false; + + m_sizeXMin = sizeXMin; + m_sizeYMin = sizeYMin; + + if(!m_hwndCtrl) { // only Dummy! + m_sizeX = sizeX; + m_sizeY = sizeY; + } + else { + CRect rcControl; + ::GetWindowRect(m_hwndCtrl, &rcControl); + + if(sizeX == 0) { + m_sizeX = rcControl.Width(); + } + else { + m_sizeX = sizeX; + } + if( m_sizeXMin == -1 ) { + // do not make smaller than current size + m_sizeXMin = rcControl.Width(); + } + + if(sizeY == 0) { + m_sizeY = rcControl.Height(); + } + else { + m_sizeY = sizeY; + } + if( m_sizeYMin == -1 ) { + // do not make smaller than current size + m_sizeYMin = rcControl.Height(); + } + + TCHAR szClassName[ MAX_PATH ]; + ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH ); + + // special treatment for combo-boxes + if( _tcscmp(szClassName,"ComboBox")==0 ) { + m_bComboSpecial = true; + } + } +} + +ETSLayoutMgr::PaneItem::PaneItem( UINT nID, ETSLayoutMgr* pMgr, ETSLayoutMgr::layResizeMode modeResize/*=GREEDY*/ + , int sizeX/*=0*/, int sizeY/*=0*/ + , int sizeXMin/*=-1*/, int sizeYMin/*=-1*/ ) : PaneBase( pMgr ) +{ + CWnd* pWnd = pMgr->GetWnd()->GetDlgItem(nID); + m_hwndCtrl = pWnd->GetSafeHwnd(); + + m_sizeX = 0; + m_sizeY = 0; + + m_bComboSpecial = false; + + m_modeResize = modeResize; + + m_sizeXMin = sizeXMin; + m_sizeYMin = sizeYMin; + + if(!m_hwndCtrl) { // only Dummy! + m_sizeX = sizeX; + m_sizeY = sizeY; + } + else { + CRect rcControl; + ::GetWindowRect(m_hwndCtrl, &rcControl); + + if(sizeX == 0) { + m_sizeX = rcControl.Width(); + } + else { + m_sizeX = sizeX; + } + if( m_sizeXMin == -1 ) { + // do not make smaller than current size + m_sizeXMin = rcControl.Width(); + } + + if(sizeY == 0) { + m_sizeY = rcControl.Height(); + } + else { + m_sizeY = sizeY; + } + if( m_sizeYMin == -1 ) { + // do not make smaller than current size + m_sizeYMin = rcControl.Height(); + } + + TCHAR szClassName[ MAX_PATH ]; + ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH ); + + // special treatment for combo-boxes + if( _tcscmp(szClassName,"ComboBox")==0 ) { + m_bComboSpecial = true; + } + } +} + +int ETSLayoutMgr::PaneItem::getConstrainHorz(int sizeParent) +{ + if( m_modeResize & ABSOLUTE_HORZ) { + return m_sizeX; + } + if(m_modeResize & RELATIVE_HORZ) { + return (sizeParent * m_sizeX) / 100; + } + return -1; +} + +int ETSLayoutMgr::PaneItem::getConstrainVert(int sizeParent) +{ + if(m_modeResize & ABSOLUTE_VERT) { + return m_sizeY; + } + if(m_modeResize & RELATIVE_VERT) { + return (sizeParent * m_sizeY) / 100; + } + return -1; +} + +int ETSLayoutMgr::PaneItem::getMinConstrainHorz() +{ + if(m_modeResize & ABSOLUTE_HORZ) { + return m_sizeX; + } + return max(nMinConstrain,m_sizeXMin); +} + +int ETSLayoutMgr::PaneItem::getMinConstrainVert() +{ + if(m_modeResize & ABSOLUTE_VERT) { + return m_sizeY; + } + return max(nMinConstrain,m_sizeYMin); +} + +int ETSLayoutMgr::PaneItem::getMaxConstrainHorz() +{ + if(m_modeResize & ABSOLUTE_HORZ) { + return m_sizeX; + } + return -1; +} + +int ETSLayoutMgr::PaneItem::getMaxConstrainVert() +{ + if(m_modeResize & ABSOLUTE_VERT) { + return m_sizeY; + } + return -1; +} + +bool ETSLayoutMgr::PaneItem::resizeTo(CRect& rcNewArea) +{ + if(m_hwndCtrl) { + + CRect rcWnd; + ::GetWindowRect( m_hwndCtrl, rcWnd ); + + if( !(m_modeResize & ALIGN_FILL_HORZ) && m_modeResize & ABSOLUTE_HORZ ) { + + + if( (m_modeResize & ALIGN_HCENTER) == ALIGN_HCENTER ) { + rcNewArea.OffsetRect( (rcNewArea.Width() - rcWnd.Width())/2, 0 ); + } + else if( m_modeResize & ALIGN_RIGHT ) { + rcNewArea.OffsetRect( rcNewArea.Width() - rcWnd.Width(), 0 ); + } + + rcNewArea.right = rcNewArea.left + rcWnd.Width(); + } + if( !(m_modeResize & ALIGN_FILL_VERT) && m_modeResize & ABSOLUTE_VERT ) { + + + if( (m_modeResize & ALIGN_VCENTER) == ALIGN_VCENTER ) { + rcNewArea.OffsetRect( 0, (rcNewArea.Height()-rcWnd.Height())/2 ); + } + else if( m_modeResize & ALIGN_BOTTOM ) { + rcNewArea.OffsetRect( 0, rcNewArea.Height() - rcWnd.Height()); + } + + rcNewArea.bottom = rcNewArea.top + rcWnd.Height(); + + } + + DWORD dwStyle = ::GetWindowLong( m_hwndCtrl, GWL_STYLE ); + + // special treatment for combo-boxes + if( m_bComboSpecial && (dwStyle & CBS_DROPDOWN) ) { + // keep height (though only fully visible when dropped down) + rcNewArea.bottom = rcNewArea.top + rcWnd.Height(); + } + + ::MoveWindow( m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); + + if( m_bComboSpecial && !(dwStyle & CBS_DROPDOWN) && !(dwStyle & CBS_NOINTEGRALHEIGHT) ) { + + // Keep CB Size = Edit + LB ( if not CBS_NOINTEGRALHEIGHT) + + ::GetWindowRect( m_hwndCtrl, rcWnd ); + + CRect rcListBox; + HWND hwndListBox = ::GetDlgItem(m_hwndCtrl, 1000); // ListBox of CB + if( hwndListBox != 0 ) + { + ::GetWindowRect( hwndListBox, rcListBox ); + rcWnd.bottom = rcListBox.bottom; + + rcNewArea.bottom = rcNewArea.top + rcWnd.Height(); + + ::MoveWindow( m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); + } + } + + ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW ); + + } + return true; +} + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutMgr::PaneTab implementation + + +ETSLayoutMgr::PaneTab::PaneTab( CTabCtrl* pTab, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/ ) +: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder) +{ + ASSERT(pTab); + m_pTab = pTab; +} + +int ETSLayoutMgr::PaneTab::getConstrainHorz(int sizeParent) +{ + CRect rcTab; + m_pTab->AdjustRect(TRUE, &rcTab); + + if(rcTab.Width() > sizeParent) + return rcTab.Width(); + + return Pane::getConstrainHorz(sizeParent /*- rcTab.Width()*/); +} + +int ETSLayoutMgr::PaneTab::getConstrainVert(int sizeParent) +{ + CRect rcTab; + m_pTab->AdjustRect(TRUE, &rcTab); + + if( m_modeResize & ABSOLUTE_VERT ) { + return m_sizeSecondary + rcTab.Height(); + } + + if(rcTab.Height() > sizeParent) + return rcTab.Height(); + + return Pane::getConstrainVert(sizeParent /*- rcTab.Height()*/); +} + +int ETSLayoutMgr::PaneTab::getMinConstrainHorz() +{ + CRect rcTab(0,0,0,0); + m_pTab->AdjustRect(TRUE, &rcTab); + + return Pane::getMinConstrainHorz() + rcTab.Width() ; +} + +int ETSLayoutMgr::PaneTab::getMinConstrainVert() +{ + CRect rcTab(0,0,0,0); + m_pTab->AdjustRect(TRUE, &rcTab); + + return Pane::getMinConstrainVert() + rcTab.Height(); +} + +int ETSLayoutMgr::PaneTab::getMaxConstrainHorz() +{ + CRect rcTab(0,0,0,0); + m_pTab->AdjustRect(TRUE, &rcTab); + + int paneMax = Pane::getMaxConstrainHorz(); + return (paneMax != -1) ? paneMax + rcTab.Width() : -1; +} + +int ETSLayoutMgr::PaneTab::getMaxConstrainVert() +{ + CRect rcTab(0,0,0,0); + m_pTab->AdjustRect(TRUE, &rcTab); + + int paneMax = Pane::getMaxConstrainVert(); + return (paneMax != -1) ? paneMax + rcTab.Height() : -1; +} + +bool ETSLayoutMgr::PaneTab::resizeTo(CRect& rcNewArea) +{ + m_pTab->MoveWindow(rcNewArea); + m_pTab->AdjustRect(FALSE,rcNewArea); + + return Pane::resizeTo(rcNewArea); +} + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutMgr::PaneCtrl implementation + + +ETSLayoutMgr::PaneCtrl::PaneCtrl( CWnd* pCtrl, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/, int sizeTopExtra /*= 0*/ ) +: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder) +{ + m_sizeTopExtra = sizeTopExtra; + + ASSERT(pCtrl); + m_hwndCtrl = pCtrl->GetSafeHwnd(); +} + +ETSLayoutMgr::PaneCtrl::PaneCtrl( UINT nID, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/, int sizeTopExtra /*= 0*/ ) +: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder) +{ + m_sizeTopExtra = sizeTopExtra; + + m_hwndCtrl = ::GetDlgItem(pMgr->GetWnd()->GetSafeHwnd(), nID); + ASSERT(m_hwndCtrl); +} + +int ETSLayoutMgr::PaneCtrl::getConstrainHorz(int sizeParent) +{ + return Pane::getConstrainHorz(sizeParent) ; +} + +int ETSLayoutMgr::PaneCtrl::getConstrainVert(int sizeParent) +{ + return Pane::getConstrainVert(sizeParent); +} + +int ETSLayoutMgr::PaneCtrl::getMinConstrainHorz() +{ + return Pane::getMinConstrainHorz(); +} + +int ETSLayoutMgr::PaneCtrl::getMinConstrainVert() +{ + return Pane::getMinConstrainVert() + m_sizeTopExtra; +} + +int ETSLayoutMgr::PaneCtrl::getMaxConstrainHorz() +{ + int paneMax = Pane::getMaxConstrainHorz(); + return ( paneMax == -1) ? -1 : paneMax ; +} + +int ETSLayoutMgr::PaneCtrl::getMaxConstrainVert() +{ + int paneMax = Pane::getMaxConstrainVert(); + return ( paneMax == -1) ? -1 : paneMax + m_sizeTopExtra; +} + +bool ETSLayoutMgr::PaneCtrl::resizeTo(CRect& rcNewArea) +{ + ::MoveWindow(m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true); + ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW |RDW_ERASE); + rcNewArea.top += m_sizeTopExtra; + return Pane::resizeTo(rcNewArea); +} + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutMgr::Pane implementation + +ETSLayoutMgr::Pane::Pane( ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /* = nDefaultBorder */, int sizeExtraBorder /*= 0*/) +: PaneBase(pMgr) +{ + m_Orientation = orientation; + m_sizeBorder = sizeBorder; + m_sizeSecondary = 0; + m_modeResize = 0; + m_sizeExtraBorder= sizeExtraBorder; +} + + +ETSLayoutMgr::Pane::~Pane() +{ +} + + +bool ETSLayoutMgr::Pane::addItem( CWnd* pWnd, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=0*/, int sizeYMin /*=0*/) +{ + CPaneBase pItem = new PaneItem( pWnd, m_pMgr, modeResize, sizeX, sizeY, sizeXMin, sizeYMin); + return addPane( pItem ); +} + +bool ETSLayoutMgr::Pane::addItem( UINT nID, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=0*/, int sizeYMin /*=0*/) +{ + CPaneBase pItem = new PaneItem( nID, m_pMgr, modeResize, sizeX, sizeY, sizeXMin, sizeYMin); + return addPane( pItem ); +} + +bool ETSLayoutMgr::Pane::addItemFixed(int size) +{ + CPaneBase pNewItem = m_pMgr->itemFixed(m_Orientation, size); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addItemGrowing() +{ + CPaneBase pNewItem = m_pMgr->itemGrowing(m_Orientation); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addItemSpaceBetween( CWnd* pWndFirst, CWnd* pWndSecond ) +{ + CPaneBase pNewItem = m_pMgr->itemSpaceBetween(m_Orientation, pWndFirst, pWndSecond); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addItemSpaceBetween( UINT nIDFirst, UINT nIDSecond ) +{ + CPaneBase pNewItem = m_pMgr->itemSpaceBetween(m_Orientation, nIDFirst, nIDSecond); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addItemSpaceLike( CWnd* pWnd ) +{ + CPaneBase pNewItem = m_pMgr->itemSpaceLike(m_Orientation, pWnd); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addItemSpaceLike( UINT nID ) +{ + CPaneBase pNewItem = m_pMgr->itemSpaceLike(m_Orientation, nID); + return addPane( pNewItem ); +} + +bool ETSLayoutMgr::Pane::addPane( CPane pSubpane, ETSLayoutMgr::layResizeMode modeResize, int sizeSecondary /* = 0 */) +{ + if( pSubpane->getOrientation() == m_Orientation) + { + // wrap in subpane of opposite orientation + CPane pPaneWrap = new Pane(m_pMgr, m_Orientation==HORIZONTAL?VERTICAL:HORIZONTAL,0,0); + pPaneWrap->addPane( pSubpane ); + + addPane( pPaneWrap, modeResize, sizeSecondary ); + } + else + { + pSubpane->m_modeResize = modeResize; + + if(m_Orientation==HORIZONTAL && (modeResize & ABSOLUTE_HORZ) ) { + if(sizeSecondary == 0) { + pSubpane->m_sizeSecondary = pSubpane->getMinConstrainHorz(); + } + } + else if(m_Orientation==HORIZONTAL && (modeResize & RELATIVE_HORZ) ) { + pSubpane->m_sizeSecondary = sizeSecondary; + } + else if(m_Orientation==VERTICAL && (modeResize & ABSOLUTE_VERT) ) { + if(sizeSecondary == 0) { + pSubpane->m_sizeSecondary = pSubpane->getMinConstrainVert(); + } + } + else if(m_Orientation==VERTICAL && (modeResize & RELATIVE_VERT) ) { + pSubpane->m_sizeSecondary = sizeSecondary; + } + + m_paneItems.Add(pSubpane); + } + + return true; +} + +bool ETSLayoutMgr::Pane::addPane( CPaneBase pItem ) +{ + m_paneItems.Add(pItem); + return true; +} + +int ETSLayoutMgr::Pane::getConstrainHorz(int sizeParent) +{ + ASSERT( m_Orientation == VERTICAL); + + if( m_modeResize & RELATIVE_HORZ ) { + return (sizeParent * m_sizeSecondary) / 100; + } + else if( m_modeResize & ABSOLUTE_HORZ ){ + return m_sizeSecondary; + } + else + return 0; +} + + +int ETSLayoutMgr::Pane::getConstrainVert(int sizeParent) +{ + ASSERT( m_Orientation == HORIZONTAL); + + if( m_modeResize & RELATIVE_VERT ) { + return (sizeParent * m_sizeSecondary) / 100; + } + else if( m_modeResize & ABSOLUTE_VERT ) { + return m_sizeSecondary; + } + else { + return 0; + } +} + +int ETSLayoutMgr::Pane::getMaxConstrainHorz() +{ + if(m_Orientation == HORIZONTAL) { + int nMaxConstr = -1; + for(int i=0; igetMaxConstrainHorz(); + if(nConstrain == -1) + return -1; + + nMaxConstr += nConstrain; + } + return (nMaxConstr == -1) ? -1 : nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder; + } + else if( m_modeResize & ABSOLUTE_HORZ && m_sizeSecondary!=0) { + return m_sizeSecondary; // + 2*m_sizeExtraBorder; + } + else { + int nMaxConstr = -1; + for(int i=0; igetMaxConstrainHorz(); + + if( nConstrain == -1) + return -1; + else + nMaxConstr = max(nMaxConstr, nConstrain); + + } + return (nMaxConstr == -1) ? -1 : nMaxConstr + 2*m_sizeExtraBorder; + } +} + +int ETSLayoutMgr::Pane::getMaxConstrainVert() +{ + if(m_Orientation == VERTICAL) { + int nMaxConstr = -1; + for(int i=0; igetMaxConstrainVert(); + if(nConstrain == -1) + return -1; + + nMaxConstr += nConstrain; + } + return (nMaxConstr == -1) ? -1 : nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder; + } + else if( m_modeResize & ABSOLUTE_VERT && m_sizeSecondary!=0) { + return m_sizeSecondary; // + 2*m_sizeExtraBorder; + } + else { + int nMaxConstr = -1; + for(int i=0; igetMaxConstrainVert(); + + if( nConstrain == -1) + return -1; + else + nMaxConstr = max(nMaxConstr, nConstrain); + + } + return (nMaxConstr == -1) ? -1 : nMaxConstr + 2*m_sizeExtraBorder; + } +} + +int ETSLayoutMgr::Pane::getMinConstrainHorz() +{ + if(m_Orientation == HORIZONTAL) { + int nMaxConstr = 0; + for(int i=0; igetMinConstrainHorz()); + } + return nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder; + } + else if( m_modeResize & ABSOLUTE_HORZ && m_sizeSecondary!=0) { + return m_sizeSecondary; // + 2*m_sizeExtraBorder; + } + else { + int nMaxConstr = 0; + for(int i=0; igetMinConstrainHorz(); + nMaxConstr = max(nMaxConstr, nConstrain); + } + return nMaxConstr + 2*m_sizeExtraBorder; + } +} + +int ETSLayoutMgr::Pane::getMinConstrainVert() +{ + if(m_Orientation == VERTICAL) { + int nMaxConstr = 0; + for(int i=0; igetMinConstrainVert()); + } + return nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder; + } + else if( m_modeResize & ABSOLUTE_VERT && m_sizeSecondary!=0) { + return m_sizeSecondary; // + 2*m_sizeExtraBorder; + } + else { + int nMaxConstr = 0; + for(int i=0; igetMinConstrainVert(); + nMaxConstr = max(nMaxConstr, nConstrain); + } + return nMaxConstr + 2*m_sizeExtraBorder; + } +} + + +int ETSLayoutMgr::Pane::resizeToAbsolute(int& availSpace, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax) +{ + // count all greedy items as returnvalue + int nGreedy = 0; + + // first, subtract all absoulute items from available space + for(int i=0; imodeResize() & ABSOLUTE_HORZ) { + availSpace -= (sizePrimary[i] = pItem->getConstrainHorz(0)); + } + + // count Greedy items for later + if(!(pItem->modeResize() & ABSOLUTE_HORZ) && !(pItem->modeResize() & RELATIVE_HORZ)) { + nGreedy++; + } + + sizeMin[i] = pItem->getMinConstrainHorz(); + sizeMax[i] = pItem->getMaxConstrainHorz(); + } + else { + + // for absolute items subtract their size from available space + if(pItem->modeResize() & ABSOLUTE_VERT) { + availSpace -= (sizePrimary[i] = pItem->getConstrainVert(0)); + } + + // count Greedy items for later + if(!(pItem->modeResize() & ABSOLUTE_VERT) && !(pItem->modeResize() & RELATIVE_VERT)) { + nGreedy++; + } + + sizeMin[i] = pItem->getMinConstrainVert(); + sizeMax[i] = pItem->getMaxConstrainVert(); + } + + } + + // Must not be negative !! + availSpace = max(availSpace, 0); + + return nGreedy; +} + +bool ETSLayoutMgr::Pane::resizeToRelative(int& availSpace, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax) +{ + // Then all relative items as percentage of left space (as of now after + // all absolute items are subtracted + + int availRel = availSpace; // At the beginning all of remaining space is available. We want all + // operation to be relative to the left space at this moment, so we + // save this amount here. Then we safly can lower availSpace + + int relDiff = 0; // The cumulated difference between first proposed size and + // eventual maximum/minimum size. This amount has to be + // saved in some other place (i.e. where relativ items/subpane + // are not limited by min/max + + int relLeft = 0; // The cumulated amout of space that can be saved by + // shrinking the items/panes up to the minimum + + int relCount = 0; // Actually allocated item/subpane's cumulated primary sizes + // of non-limited items/subpanes (these can be modified in fixup) + // needed for equally distribution of differences amoung non-limited + // relative items/subpanes + + for(int i=0; imodeResize() & RELATIVE_HORZ) + || + (m_Orientation==VERTICAL && pItem->modeResize() & RELATIVE_VERT) ) + { + // minimum item/subpane size in primary direction (pixels) + int nSizeRelMin = sizeMin[i]; + + // maximum item/subpane size in primary direction (pixels) + int nSizeRelMax = sizeMax[i]; + + // Relative size in primary direction (pixels) + int nSizeRel = (m_Orientation==HORIZONTAL) + ? + (pItem->getConstrainHorz(availRel)) + : + (pItem->getConstrainVert(availRel)); + + if( nSizeRel < nSizeRelMin) { + // The item/pane is shrinked too small! + // We will grow it to it's minimum-size. In order not to modify + // this item later when fixing up set the size to the negative + // minimum size + sizePrimary[i] = -nSizeRelMin; + + // As we grew one item/subpane we have to shrink another one. + // We keep count on how much space we needed to grow the item + // to it's minimum size + relDiff += ( nSizeRelMin - nSizeRel ); + } + else if( nSizeRelMax != -1 && nSizeRel > nSizeRelMax) { + // if there's a maximum size (nSizeRelMax != -1) and our item/subpane + // is to be resized over that amount correct it. In order not to modify + // this item later when fixing up set the size to the negative + // maximum size + sizePrimary[i] = -nSizeRelMax; + + // As we shrinked one item/subpane we have to grow another one. + // We keep count on how much space we needed to grow the item + // to it's maximum size. + relDiff += ( nSizeRelMax - nSizeRel ); + } + else { + // this is the normal case: neither are we minimum limited nor maximum + // limited + + // As this item/subpane is larger that it's minimum we could later (if + // necessary for fixup) shrink it for the difference amount of pixels + relLeft += ( nSizeRel - nSizeRelMin ); + + // Set the primary size of this item/pane. Can later be modified by fixup + sizePrimary[i] = nSizeRel; + + // Add this item/subpane's primary size to the count of already allocated + // cumulated size of non-limited items/subpanes (these can be modified in fixup) + relCount += nSizeRel; + } + + // decrease available space by used space in this step + availSpace -= nSizeRel; + } + } + + // We now have the situation that some items/subpanes had to be adjusted for cumulated + // relDiff pixels (positive value means more space taken than indicated by percentage of + // left space). On the other hand we have some items/subpanes which were not limited (in + // their current dimensions) but could be if necessary up to relLeft pixels. + if(relLeft < relDiff && availSpace >= (relDiff-relLeft) ){ + + // If it's not possible to shrink other (relative) panes in order to distribute the + // difference because the left for shrinking (relLeft) is too small we need to aquire + // more space from the globally left space (if available at all) + availSpace -= (relDiff-relLeft); + relDiff = relLeft; + } + + // At this point we should have some space left (at least not be negative with the leftover + // space) and on the other hand there's enough space for the limit-difference to be distributed + ASSERT( availSpace >= 0 && relLeft >= relDiff); + + // Fixup Relative: + // Distribute (if anecessary) relDiff on other (not limited) relative items/subpanes + // (if available - if not later just grow the limited panes) + while( relDiff != 0 && relCount >= 0 ) { + + // in every iteration there must be some space distributed (of the difference) or it could + // come to endless looping. Save the amount of space actually distributed in this iteration + int relDist = 0; + + for(i=0; imodeResize() & RELATIVE_HORZ) && sizePrimary[i] > 0) + || + (m_Orientation==VERTICAL && (pItem->modeResize() & RELATIVE_VERT) && sizePrimary[i] > 0) ) + { + // keep a flag for termination of this iteration + bool bLast = false; + + // the difference should be distributed amoung all non-limited items/subpanes equally. + // nDiff is the amount for the current item/subpane + int nDiff = (relDiff * sizePrimary[i]) / relCount; + + // if it's a too small value just add it to the current pane and break iteration + if( abs(relDiff) <= FIXUP_CUTOFF ) { + // take it all in this step + nDiff = relDiff; + + // set break flag + bLast = true; + } + + // calculate the new size for the current item/subpane + int nNewSize = sizePrimary[i] - nDiff; + + if( nNewSize < sizeMin[i] ) { + // oh, we are limited here. Revise our plan: + + // Not all of the space could be saved, add the actually possible space + // to the sum + relDist += ( sizePrimary[i] - sizeMin[i] ); + + // set it to the minimum possible size + sizePrimary[i] = -sizeMin[i]; + + // as this item/subpane is now limited it's occupied space doesn't count + // for relCount anymore + relCount-= ( sizePrimary[i] ); + } + else { + // account the difference of the sizes in relDist and set new size + relDist += ( sizePrimary[i] - nNewSize ); + sizePrimary[i] = nNewSize; + + // if it's the last one break now + if(bLast) + break; + } + } + } + // Distributed some relDiff-space in every iteration + ASSERT(relDist != 0); + relDiff -= relDist; + } + + // Fixup Relative: invert all negative (limited) sized to correct value + for(i=0; imodeResize() & RELATIVE_HORZ) && sizePrimary[i] < 0) + || + (m_Orientation==VERTICAL && (pItem->modeResize() & RELATIVE_VERT) && sizePrimary[i] < 0) ) + { + sizePrimary[i] *= -1; + } + } + + return true; +} + +bool ETSLayoutMgr::Pane::resizeToGreedy(int& availSpace, int nGreedy, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax) +{ + // Now resize all Greedy items/subpanes equally among the remaining space + int greedyDiff = 0; // The cumulated difference between first proposed size and + // eventual maximum/minimum size. This amount has to be + // saved in some other place (i.e. where items/subpane + // are not limited by min/max + + int greedyLeft = 0; // The cumulated amount of space that can be saved by + // shrinking the items/panes up to the minimum + + int greedyCount = 0; // Actually allocated item/subpane's cumulated primary sizes + // of non-limited items/subpanes (these can be modified in fixup) + // needed for equally distribution of differences amoung non-limited + // items/subpanes + + for(int i=0; imodeResize()&ABSOLUTE_HORZ) + && !(pItem->modeResize()&RELATIVE_HORZ) + ) + || + (m_Orientation==VERTICAL + && !(pItem->modeResize()&ABSOLUTE_VERT) + && !(pItem->modeResize()&RELATIVE_VERT) + ) + ) + { + + // All greedy items get an equal portion of the left space + int nSize = availSpace / nGreedy; + + // minimum item/subpane size in primary direction (pixels) + int nSizeMin = sizeMin[i]; + + // maximum item/subpane size in primary direction (pixels) + int nSizeMax = sizeMax[i]; + + + // the last gets the all of the remaining space + if( nGreedy == 1 ) + nSize = availSpace; + + if( nSize < nSizeMin) { + // The item/pane is shrinked too small! + // We will grow it to it's minimum-size. In order not to modify + // this item later when fixing up set the size to the negative + // minimum size + sizePrimary[i] = -nSizeMin; + + // As we grew one item/subpane we have to shrink another one. + // We keep count on how much space we needed to grow the item + // to it's minimum size + greedyDiff += ( nSizeMin - nSize ); + } + else if( nSizeMax != -1 && nSize > nSizeMax) { + // if there's a maximum size (nSizeRelMax != -1) and our item/subpane + // is to be resized over that amount correct it. In order not to modify + // this item later when fixing up set the size to the negative + // maximum size + sizePrimary[i] = -nSizeMax; + + // As we shrinked one item/subpane we have to grow another one. + // We keep count on how much space we needed to grow the item + // to it's maximum size. + greedyDiff += ( nSizeMax - nSize ); + } + else { + + // this is the normal case: neither are we minimum limited nor maximum + // limited + + // As this item/subpane is larger that it's minimum we could later (if + // necessary for fixup) shrink it for the difference amount of pixels + greedyLeft += ( nSize - nSizeMin ); + + // Set the primary size of this item/pane. Can later be modified by fixup + sizePrimary[i] = nSize; + + // Add this item/subpane's primary size to the count of already allocated + // cumulated size of non-limited items/subpanes (these can be modified in fixup) + greedyCount += nSize; + } + + // decrease available space by used space in this step + availSpace -= nSize; + + // one greedy item/subpane complete + --nGreedy; + } + } + + + // Fixup Greedy I + // Distribute (if anecessary) greedyDiff on other (not limited) greedy items/subpanes + // (if available - if not later just grow the limited panes) + + // at least on not limited item present + bool bAtLeastOne = true; + + while( bAtLeastOne && greedyDiff != 0 && greedyCount > 0) { + + // in every iteration there must be some space distributed (of the difference) or it could + // come to endless looping. Save the amount of space actually distributed in this iteration + int greedyDist = 0; + + // at least on not limited item present + bAtLeastOne = false; + + for(i=0; imodeResize()&ABSOLUTE_HORZ) + && !(pItem->modeResize()&RELATIVE_HORZ) + && sizePrimary[i] > 0 + ) + || + (m_Orientation==VERTICAL + && !(pItem->modeResize()&ABSOLUTE_VERT) + && !(pItem->modeResize()&RELATIVE_VERT) + && sizePrimary[i] > 0 + ) + ) + { + // keep a flag for termination of this iteration + bool bLast = false; + + // the difference should be distributed among all non-limited items/subpanes equally. + // nDiff is the amount for the current item/subpane + int nDiff = (greedyDiff * sizePrimary[i]) / greedyCount; + + // if it's a too small value just add it to the current pane and break iteration + if( abs(greedyDiff) <= FIXUP_CUTOFF || nDiff == 0) { + // take it all in this step + nDiff = greedyDiff; + + // set break flag + bLast = true; + } + + // calculate the new size for the current item/subpane + int nNewSize = sizePrimary[i] - nDiff; + + if( nNewSize < sizeMin[i] ) { + // oh, we are limited here. Revise our plan: + + if( sizePrimary[i] != sizeMin[i] ) + bAtLeastOne = true; + + // Not all of the space could be saved, add the actually possible space + // to the sum + greedyDist += ( sizePrimary[i] - sizeMin[i] ); + + // set it to the minimum possible size + sizePrimary[i] = sizeMin[i]; + + // as this item/subpane is now limited its occupied space doesn't count + // for relCount anymore + greedyCount -= ( sizePrimary[i] ); + } + else { + // yes, there is one + bAtLeastOne = true; + + // account the difference of the sizes in relDist and set new size + greedyDist += ( sizePrimary[i] - nNewSize ); + sizePrimary[i] = nNewSize; + + // if it's the last one break now + if(bLast) + break; + } + } + } + // Distributed some greedyDiff-space in every iteration + ASSERT(!bAtLeastOne || greedyDist != 0 || greedyCount<=0); + greedyDiff -= greedyDist; + } + + + // Fixup Greedy II + if( greedyDiff < 0 ) { + // still difference, some space left + + // are there any items which are minimum-limited where we can give more space? + for(i=0; imodeResize()&ABSOLUTE_HORZ) + && !(pItem->modeResize()&RELATIVE_HORZ) + ) + || + (m_Orientation==VERTICAL + && !(pItem->modeResize()&ABSOLUTE_VERT) + && !(pItem->modeResize()&RELATIVE_VERT) + ) + ) + { + if( sizePrimary[i] == -sizeMin[i] ) { + // fill this one up as much as possible + if( sizeMax[i] == -1) { + // all fits in + sizePrimary[i] += greedyDiff; + greedyDiff = 0; + } + else { + sizePrimary[i] += -min( -greedyDiff, sizeMax[i]-sizeMin[i]); + greedyDiff -= -min( -greedyDiff, sizeMax[i]-sizeMin[i]); + } + } + } + } + } + + + // Fixup Greedy III: invert all negative (limited) sized to correct value + for(i=0; imodeResize() & ABSOLUTE_HORZ) + && !(pItem->modeResize() & RELATIVE_HORZ) + && sizePrimary[i] < 0 + && sizeMin[i] >= 0 + ) + || + (m_Orientation==VERTICAL + && !(pItem->modeResize() & ABSOLUTE_VERT) + && !(pItem->modeResize() & RELATIVE_VERT) + && sizePrimary[i] < 0 + && sizeMin[i] >= 0 + ) + ) + { + if(sizePrimary[i] < 0) + sizePrimary[i] *= -1; + } + } + + return true; +} + + +bool ETSLayoutMgr::Pane::resizeTo(CRect& rcNewArea) +{ + // There must be some items or subpanes + ASSERT(m_paneItems.GetSize()); + + // This Array holds the size in primary direction for each item/subpane + CArray sizePrimary; + sizePrimary.SetSize(m_paneItems.GetSize()); + + // This Array holds information about the minimum size in primary direction + CArray sizeMin; + sizeMin.SetSize(m_paneItems.GetSize()); + + // This Array holds information about the maximum size in primary direction + CArray sizeMax; + sizeMax.SetSize(m_paneItems.GetSize()); + + + // How much space is actually available, subtract all borders between items + int availSpace = (m_Orientation == HORIZONTAL ? rcNewArea.Width() : rcNewArea.Height() ) - (m_paneItems.GetUpperBound()*m_sizeBorder); + + // If there is some Extra border (on top/bottem resp. left/right) subtract it too + availSpace -= 2*m_sizeExtraBorder; + + // Add the extra Border to top/bottem resp. left/right + if(m_Orientation == HORIZONTAL) { + rcNewArea.top += m_sizeExtraBorder; + rcNewArea.bottom -= m_sizeExtraBorder; + } + else { + rcNewArea.left += m_sizeExtraBorder; + rcNewArea.right -= m_sizeExtraBorder; + } + + // Counts the number of greedy items/subpanes + int nGreedy = resizeToAbsolute(availSpace, sizePrimary, sizeMin, sizeMax ); + + if(nGreedy == -1) + return false; + + if(! resizeToRelative(availSpace, sizePrimary, sizeMin, sizeMax ) ) + return false; + + if(! resizeToGreedy(availSpace, nGreedy, sizePrimary, sizeMin, sizeMax ) ) + return false; + + + // If there is any left space and there are ALIGN_FILL_* Items to assign it + // equally among them + if( availSpace > 0 ) { + // Count possible Items + int nFillItems = 0; + + for(int i=0; imodeResize() & ABSOLUTE_HORZ ) + && (pItem->modeResize() & ALIGN_FILL_HORZ) + + || + + (pItem->modeResize() & ABSOLUTE_VERT ) + && (pItem->modeResize() & ALIGN_FILL_VERT) + ) + { + ++nFillItems; + } + } + + if( nFillItems > 0 ) { + // okay, there are nFillItems, make them all availSpace/nFillItems bigger + for(int i=0; imodeResize() & ABSOLUTE_HORZ ) + && (pItem->modeResize() & ALIGN_FILL_HORZ) + + || + + (pItem->modeResize() & ABSOLUTE_VERT ) + && (pItem->modeResize() & ALIGN_FILL_VERT) + ) + { + + if( nFillItems == 1 ) { + // the last one gets all the rest + sizePrimary[i] += availSpace; + availSpace = 0; + --nFillItems; + } + else { + sizePrimary[i] += availSpace/nFillItems; + availSpace -= availSpace/nFillItems; + --nFillItems; + } + + } + } + } + + } + + // Now reposition all items: + + // starting offset + int nOffset = (m_Orientation==HORIZONTAL ? rcNewArea.left : rcNewArea.top ) + m_sizeExtraBorder; + for(int i=0; iresizeTo( rcPane ); + + // go to the next position (old pos + size + border) + ASSERT(sizePrimary[i] >= 0); + nOffset += m_sizeBorder + sizePrimary[i]; + } + + + return true; +} + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutDialog dialog + +#pragma warning(disable: 4355) +ETSLayoutDialog::ETSLayoutDialog(UINT nID, CWnd* pParent /*=NULL*/, LPCTSTR strName /*=NULL*/, bool bGripper /*=true*/) + : CBaseDialog(nID, pParent), ETSLayoutMgr( this ) +{ + //{{AFX_DATA_INIT(ETSLayoutDialog) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + m_bGripper = bGripper; + + if(strName) + m_strRegStore = strName; +} +#pragma warning(default: 4355) + +BEGIN_MESSAGE_MAP(ETSLayoutDialog, CBaseDialog) + //{{AFX_MSG_MAP(ETSLayoutDialog) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_WM_ERASEBKGND() + ON_WM_DESTROY() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutDialog message handlers + +BOOL ETSLayoutDialog::OnEraseBkgnd(CDC* pDC) +{ + EraseBkgnd(pDC); + return true; +} + +void ETSLayoutDialog::OnSize(UINT nType, int cx, int cy) +{ + CBaseDialog::OnSize(nType, cx, cy); + + if( abs(cx) + abs(cy) > 0) + { + // Reposition Size Marker + // Re-Layout all controls + UpdateLayout(); + RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); + } + +} + +void ETSLayoutDialog::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + + CRect rcWnd; + GetWindowRect(rcWnd); + + // How much do Window and Client differ + int nDiffHorz = rcWnd.Width() - rcClient.Width(); + int nDiffVert = rcWnd.Height() - rcClient.Height(); + + // Take into account that there is a border around the rootPane + lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx, + m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy); + + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); + + if( maxWidth != -1 ) { + lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + } + + if( maxHeight != -1 ) { + lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + } + } +} + + +CRect ETSLayoutDialog::GetRect() +{ + CRect r; + GetClientRect(r); + + if( m_bGripper ) + { + if( ::IsWindow(m_StatusBar.GetSafeHwnd()) ) + { + CRect rcSizeIcon; + m_StatusBar.GetWindowRect( rcSizeIcon); + r.bottom -= (rcSizeIcon.Height() - m_sizeRootBorders.cy - 5); + } + } + + return r; +} + + +BOOL ETSLayoutDialog::OnInitDialog() +{ + CBaseDialog::OnInitDialog(); + + if(!m_strRegStore.IsEmpty()) { + Load(m_strRegStore); + } + +#ifdef _AUTO_SET_ICON + POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition(); + if(pos) { + + class ETSPseudoDocTemplate : public CDocTemplate + { + friend class ETSLayoutDialog; + }; + + ETSPseudoDocTemplate* pDocT = (ETSPseudoDocTemplate*) AfxGetApp()->GetNextDocTemplate(pos); + SetIcon( AfxGetApp()->LoadIcon(pDocT->m_nIDResource) ,FALSE); + } +#endif + + // Sizing icon + if(m_bGripper) + { + if(m_StatusBar.Create(m_pWnd)) + { + m_StatusBar.SetIndicators(auIDStatusBar, sizeof(auIDStatusBar) / sizeof(UINT)); + m_StatusBar.SetWindowText(""); + m_StatusBar.SetPaneStyle( 0, SBPS_STRETCH | SBPS_NOBORDERS ); + m_pWnd -> RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); + } + else + AfxMessageBox("Error - Statusbar"); + + } + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void ETSLayoutDialog::OnDestroy() +{ + // Store size/position + if(!m_strRegStore.IsEmpty()) { + Save(m_strRegStore); + } + + // manually delete layout definition if object is reused + m_RootPane = 0; + + CBaseDialog::OnDestroy(); +} + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutDialog dialog + +#pragma warning(disable: 4355) +#ifdef CS_HELP +ETSLayoutDialogBar::ETSLayoutDialogBar(UINT nID ) + : CBaseDialogBar( nID ), ETSLayoutMgr( this ) +#else +ETSLayoutDialogBar::ETSLayoutDialogBar() + : ETSLayoutMgr( this ) +#endif +{ + //{{AFX_DATA_INIT(ETSLayoutDialogBar) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT + m_bInitialized = false; + setRootBorders(0,0); +} +#pragma warning(default: 4355) + +BEGIN_MESSAGE_MAP(ETSLayoutDialogBar, CBaseDialogBar) + //{{AFX_MSG_MAP(ETSLayoutDialogBar) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_WM_DESTROY() + ON_WM_ERASEBKGND() + ON_MESSAGE(WM_INITDIALOG, OnInitDialog) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutDialogBar message handlers + +LRESULT ETSLayoutDialogBar::OnInitDialog(WPARAM, LPARAM) +{ + Default(); + Initialize(); + return TRUE; +} + +CSize ETSLayoutDialogBar::CalcDynamicLayout(int nLength, DWORD dwMode) +{ + CSize sizeRet = CBaseDialogBar::CalcDynamicLayout(nLength, dwMode); + + CSize sizeMin = sizeRet; + CSize sizeMax = sizeRet; + + if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + + CRect rcWnd; + GetWindowRect(rcWnd); + + // How much do Window and Client differ + CSize sizeDiff( rcWnd.Width() - rcClient.Width(), rcWnd.Height() - rcClient.Height()); + + // Take into account that there is a border around the rootPane + sizeMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx, + m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy); + + + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); + + if( maxWidth != -1 ) { + sizeMax.cx = maxWidth + sizeDiff.cy + 2*m_sizeRootBorders.cx; + } + + if( maxHeight != -1 ) { + sizeMax.cy = maxHeight + sizeDiff.cy + 2*m_sizeRootBorders.cy; + } + } + + if( IsFloating() || !(dwMode&LM_HORZ)) + { + sizeRet.cx = min( sizeRet.cx, sizeMax.cx ); + } + if( IsFloating() || (dwMode&LM_HORZ)) + { + sizeRet.cy = min( sizeRet.cy, sizeMax.cy ); + } + + sizeRet.cx = max( sizeRet.cx, sizeMin.cx ); + sizeRet.cy = max( sizeRet.cy, sizeMin.cy ); + + return sizeRet; +} + +BOOL ETSLayoutDialogBar::OnEraseBkgnd(CDC* pDC) +{ + EraseBkgnd(pDC); + return true; +} + + +void ETSLayoutDialogBar::OnSize(UINT nType, int cx, int cy) +{ + CBaseDialogBar::OnSize(nType, cx, cy); + + if( abs(cx) + abs(cy) > 0) + { + // Re-Layout all controls + UpdateLayout(); + } + RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); + +} + + +CRect ETSLayoutDialogBar::GetRect() +{ + CRect r; + GetClientRect(r); + + if( IsFloating() ) + r.DeflateRect(4,4); + + return r; +} + + +void ETSLayoutDialogBar::OnDestroy() +{ + // Store size/position on your own! + CBaseDialogBar::OnDestroy(); +} + + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutFormView dialog + +IMPLEMENT_DYNAMIC(ETSLayoutFormView, CFormView) + +#pragma warning(disable: 4355) +ETSLayoutFormView::ETSLayoutFormView(UINT nID, LPCTSTR strName /*=NULL*/) + : CBaseFormView(nID), ETSLayoutMgr( this ) +{ + if(strName) + m_strRegStore = strName; +} +#pragma warning(default: 4355) + +BEGIN_MESSAGE_MAP(ETSLayoutFormView, CBaseFormView) + //{{AFX_MSG_MAP(ETSLayoutFormView) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_WM_ERASEBKGND() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutFormView message handlers + +BOOL ETSLayoutFormView::OnEraseBkgnd(CDC* pDC) +{ + EraseBkgnd(pDC); + return true; +} + + +void ETSLayoutFormView::OnSize(UINT nType, int cx, int cy) +{ +// CBaseFormView::OnSize(nType, cx, cy); + SetScrollSizes(MM_TEXT, CSize(cx,cy)); + if( abs(cx) + abs(cy) > 0) { + // Re-Layout all controls + UpdateLayout(); + } +// MoveWindow(0,0,cx,cy); +} + +/* +void ETSLayoutFormView::UpdateLayout() +{ + ETSLayoutMgr::UpdateLayout(); + + if(m_RootPane.IsValid()) { + // Force MainFrame to re-layout + CFrameWnd* pFrame = static_cast(GetParent()); + if(pFrame) { + + CRect rcWnd; + pFrame->GetWindowRect(rcWnd); + pFrame->MoveWindow(rcWnd); + pFrame->RecalcLayout(); + + } + return; + } +} +*/ + +void ETSLayoutFormView::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + // To use this you'll have to modify your CMainFrame: + // + // 1) Add a handler for WM_GETMINMAXINFO() + // 2) Let this handler be: + // void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) + // { + // CFrameWnd::OnGetMinMaxInfo(lpMMI); + // + // if( GetActiveView() && GetActiveView()->IsKindOf( RUNTIME_CLASS(ETSLayoutFormView) ) ) { + // GetActiveView()->SendMessage( WM_GETMINMAXINFO, 0, (LPARAM) lpMMI ); + // } + // } + // 3) Add "#include "dialogmgr.h" to MainFrm.cpp + + if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + + CRect rcWnd; + GetParent()->GetWindowRect(rcWnd); + + // How much do Window and Client differ + rcWnd-=rcClient; + + // Take into account that there is a border around the rootPane + lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + rcWnd.Width() + 2*m_sizeRootBorders.cx, + m_RootPane->getMinConstrainVert() + rcWnd.Height() + 2*m_sizeRootBorders.cy); + + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); + + if( maxWidth != -1 ) { + lpMMI->ptMaxTrackSize.x = maxWidth + rcWnd.Width()+ 2*m_sizeRootBorders.cx; + lpMMI->ptMaxSize.x = maxWidth + rcWnd.Width()+ 2*m_sizeRootBorders.cx; + } + + if( maxHeight != -1 ) { + lpMMI->ptMaxTrackSize.y = maxHeight + rcWnd.Height() + 2*m_sizeRootBorders.cy; + lpMMI->ptMaxSize.y = maxHeight + rcWnd.Height() + 2*m_sizeRootBorders.cy; + } + } +} + +ETSLayoutFormView::~ETSLayoutFormView() +{ + // Cleanup +} + + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutPropertyPage + +#ifdef CS_HELP + IMPLEMENT_DYNCREATE(ETSLayoutPropertyPage, ETSCSHelpPropPage) +#else + IMPLEMENT_DYNCREATE(ETSLayoutPropertyPage, CPropertyPage) +#endif + +#pragma warning(disable: 4355) +ETSLayoutPropertyPage::ETSLayoutPropertyPage( ) : ETSLayoutMgr( this ) +{ + m_bLockMove = false; +} + +ETSLayoutPropertyPage::ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption /*= 0*/ ) + : CBasePropertyPage(nIDTemplate, nIDCaption), ETSLayoutMgr( this ) +{ + m_bLockMove = false; +} + +ETSLayoutPropertyPage::ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption /*= 0*/ ) + : CBasePropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this ) +{ + m_bLockMove = false; +} +#pragma warning(default: 4355) + +ETSLayoutPropertyPage::~ETSLayoutPropertyPage() +{ +} + + +BEGIN_MESSAGE_MAP(ETSLayoutPropertyPage, CBasePropertyPage) + //{{AFX_MSG_MAP(ETSLayoutPropertyPage) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_WM_ERASEBKGND() + ON_WM_WINDOWPOSCHANGING() + ON_WM_DESTROY() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +///////////////////////////////////////////////////////////////////////////// +// Behandlungsroutinen für Nachrichten ETSLayoutPropertyPage + + +void ETSLayoutPropertyPage::OnWindowPosChanging( WINDOWPOS* lpwndpos ) +{ + // In WizardMode the System calls SetWindowPos with the + // original size at every activation. This could cause + // some flicker in certain circumstances. Therefore we lock + // moving the page and unlock it only if _we_ move the page + if( m_bLockMove) + { + lpwndpos->flags |= SWP_NOMOVE | SWP_NOSIZE; + } + CBasePropertyPage::OnWindowPosChanging( lpwndpos ); +} + +BOOL ETSLayoutPropertyPage::OnEraseBkgnd(CDC* pDC) +{ + EraseBkgnd(pDC); + return true; +} + +void ETSLayoutPropertyPage::OnDestroy() +{ + // manually delete layout definition if object is reused + m_RootPane = 0; + + CBasePropertyPage::OnDestroy(); +} + +void ETSLayoutPropertyPage::OnSize(UINT nType, int cx, int cy) +{ + CBasePropertyPage::OnSize(nType, cx, cy); + + if( abs(cx) + abs(cy) > 0) + { + // Re-Layout all controls + UpdateLayout(); + } +} + +void ETSLayoutPropertyPage::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + + CRect rcWnd; + GetWindowRect(rcWnd); + + // How much do Window and Client differ + int nDiffHorz = rcWnd.Width() - rcClient.Width(); + int nDiffVert = rcWnd.Height() - rcClient.Height(); + + // Take into account that there is a border around the rootPane + lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx, + m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy); + + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); + + if( maxWidth != -1 ) { + lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + } + + if( maxHeight != -1 ) { + lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + } + } +} + + +CRect ETSLayoutPropertyPage::GetRect() +{ + CRect r; + GetClientRect(r); + return r; +} + + +BOOL ETSLayoutPropertyPage::OnInitDialog() +{ + CBasePropertyPage::OnInitDialog(); + UpdateLayout(); + + ETSLayoutPropertySheet* pSheet = (ETSLayoutPropertySheet*) GetParent(); + + ASSERT_KINDOF( ETSLayoutPropertySheet, pSheet); + if(pSheet) + { + if(pSheet->IsWizard()) + { + m_bLockMove = true; + } + } + + return TRUE; +} + +BOOL ETSLayoutPropertyPage::OnSetActive() +{ + ETSLayoutPropertySheet* pSheet = (ETSLayoutPropertySheet*) GetParent(); + + ASSERT_KINDOF( ETSLayoutPropertySheet, pSheet); + if(pSheet) + { + if(pSheet->IsWizard()) + { + // In WizardMode the System calls SetWindowPos with the + // original size on Page Activation. This will position the + // page at the correct position + m_bLockMove = false; + MoveWindow(pSheet->m_rcPage); + m_bLockMove = true; + } + } + + UpdateLayout(); + + return CBasePropertyPage::OnSetActive(); +} + +///////////////////////////////////////////////////////////////////////////// +// ETSLayoutPropertySheet + +IMPLEMENT_DYNAMIC(ETSLayoutPropertySheet, CPropertySheet) + +#pragma warning(disable: 4355) +ETSLayoutPropertySheet::ETSLayoutPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage, + LPCTSTR strName /*=NULL*/, bool bGripper/*=true*/) + : CPropertySheet(nIDCaption, pParentWnd, iSelectPage), ETSLayoutMgr( this ) +{ + Init(strName, bGripper); +} + +ETSLayoutPropertySheet::ETSLayoutPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage, + LPCTSTR strName /*=NULL*/, bool bGripper/*=true*/) + : CPropertySheet(pszCaption, pParentWnd, iSelectPage), ETSLayoutMgr( this ) +{ + Init(strName, bGripper); +} +#pragma warning(default: 4355) + +void ETSLayoutPropertySheet::Init(LPCTSTR strName, bool bGripper) +{ + m_bGripper = bGripper; + if(strName) + m_strRegStore = strName; + + m_bAutoDestroy = false; + m_bAutoDestroyPages = false; + m_bModelessButtons = false; +} + +ETSLayoutPropertySheet::~ETSLayoutPropertySheet() +{ +} + + +BEGIN_MESSAGE_MAP(ETSLayoutPropertySheet, CPropertySheet) + //{{AFX_MSG_MAP(ETSLayoutPropertySheet) + ON_WM_CREATE() + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_WM_DESTROY() + ON_WM_ERASEBKGND() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// Behandlungsroutinen für Nachrichten ETSLayoutPropertySheet + +BOOL ETSLayoutPropertySheet::OnEraseBkgnd(CDC* pDC) +{ + EraseBkgnd(pDC); + return true; +} + + +int ETSLayoutPropertySheet::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CPropertySheet::OnCreate(lpCreateStruct) == -1) + return -1; + + ModifyStyle(0,WS_THICKFRAME| WS_SYSMENU |WS_CLIPCHILDREN); + return 0; +} + + +void ETSLayoutPropertySheet::Resize(int cx, int cy) +{ + if( abs(cx) + abs(cy) > 0 && m_RootPane.IsValid() ) + { + UpdateLayout(); + + if(IsWizard()) + { + // manual reposition of the FINISH button + // can not be done with normaly layouting because it + // shares position with the NEXT button + CWnd *pWndFinish; + pWndFinish=GetDlgItem(ID_WIZFINISH); + + if(pWndFinish) + { + CRect rcWnd; + GetDlgItem(ID_WIZNEXT)->GetWindowRect(&rcWnd); + ScreenToClient(&rcWnd); + pWndFinish->MoveWindow(rcWnd); + pWndFinish->RedrawWindow(0,0, RDW_INVALIDATE | RDW_UPDATENOW ); + } + } + + // reposition Gripper + if(m_bGripper) + RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); + + CPropertyPage* pPage = (CPropertyPage*)GetActivePage(); + + if(pPage) + { + CRect rcWnd; + GetTabControl()->GetWindowRect(&rcWnd); + ScreenToClient(&rcWnd); + + if(!IsWizard()) { + // get inside of tab + GetTabControl()->AdjustRect(FALSE, &rcWnd); + } + else + { + rcWnd.bottom += 5; + } + + // we need this size in WizardMode in order to + // reposition newly activated page correctly + m_rcPage = rcWnd; + + if( IsWizard() && pPage->IsKindOf(RUNTIME_CLASS(ETSLayoutPropertyPage)) ) + { + ETSLayoutPropertyPage* pEtsPage = reinterpret_cast(pPage); + + pEtsPage->m_bLockMove = false; + pEtsPage->MoveWindow(m_rcPage); + pEtsPage->m_bLockMove = true; + } + else + { + pPage->MoveWindow(m_rcPage); + } + + } + + if(IsWindowVisible()) + { + RedrawWindow(0,0, RDW_INVALIDATE|RDW_UPDATENOW ); + + if(!IsWizard()) + GetTabControl()->RedrawWindow(0,0, RDW_INVALIDATE|RDW_UPDATENOW ); + } + } +} + +void ETSLayoutPropertySheet::OnSize(UINT nType, int cx, int cy) +{ + CPropertySheet::OnSize(nType, cx, cy); + Resize(cx,cy); +} + +// IDs of all PropertySheet controls +long _PropertySheetIDs[] = +{ + ID_WIZBACK, + ID_WIZNEXT, + IDOK, + IDCANCEL, + ID_APPLY_NOW, + IDHELP +}; + + +BOOL ETSLayoutPropertySheet::OnInitDialog() +{ + BOOL bRet = CPropertySheet::OnInitDialog(); + + ASSERT(!m_RootPane); + + // Save initial rect + GetWindowRect(&m_rcStart); + + CPropertyPage* pPage = CPropertySheet::GetActivePage(); + ASSERT(pPage); + + CRect rcPage; + pPage->GetClientRect(&rcPage); + + CreateRoot(VERTICAL); + ASSERT(m_RootPane); + + // Add Tabcontrol to root pane + m_ItemTab = item( GetTabControl(), GREEDY, 0, 0, 0, 0); + m_RootPane << m_ItemTab; + + // Tabcontrol is invisible in WizardMode + if(IsWizard()) + { + GetTabControl()->ShowWindow(false); + } + + // add horizontal line in WizardMode + if(IsWizard() && GetDlgItem(ID_WIZFINISH+1)) + { + m_RootPane << item(ID_WIZFINISH+1, ABSOLUTE_VERT, 0, 0, 0, 0); + } + + if( IsWizard() || !m_bModeless || m_bModelessButtons ) + { + // No spaces in WizardMode in order to keep BACK & NEXT together + CPane bottomPane = pane(HORIZONTAL, ABSOLUTE_VERT, IsWizard() ? 0 : 5); + + // first item greedy to keep others right + bottomPane->addItem (paneNull, GREEDY); + + + // add all Controls to the layouting + bool bFirst = true; + for(int i = 0; i < (sizeof(_PropertySheetIDs) / sizeof(long)) ; i++) + { + CWnd* pWnd = GetDlgItem(_PropertySheetIDs[i]); + + if(pWnd) + { + + if(!(m_psh.dwFlags & PSH_HASHELP) && _PropertySheetIDs[i] == IDHELP) + { + // don't insert + continue; + } + + if((m_psh.dwFlags & PSH_NOAPPLYNOW) && _PropertySheetIDs[i] == ID_APPLY_NOW) + { + // don't insert + continue; + } + + // space before first one and between BACK & NEXT + if( IsWizard() ) + { + if( !bFirst && !(_PropertySheetIDs[i]==ID_WIZNEXT) ) + { + bottomPane->addItem(paneNull, NORESIZE,12,0,0,0); + } + } + + pWnd->ShowWindow(true); + bottomPane->addItem(_PropertySheetIDs[i], NORESIZE); + bFirst = false; + } + } + + // add bottom (button) pane + m_RootPane << bottomPane; + } + + + + // some Space between Buttons und Gripper + if(m_bGripper) + { + m_RootPane->addItem(paneNull, ABSOLUTE_VERT,0,2); + + if(m_StatusBar.Create(m_pWnd)) + { + m_StatusBar.SetIndicators(auIDStatusBar, + sizeof(auIDStatusBar) / sizeof(UINT)); + m_StatusBar.SetWindowText(""); + RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); + } + else + { + AfxMessageBox("Error - Statusbar"); + } + } + + if(!m_strRegStore.IsEmpty()) + { + Load(m_strRegStore); + } + + Resize(1,1); // Fix. for 95/98/NT difference + + CRect rcWnd; + GetWindowRect( & rcWnd ); + MoveWindow( rcWnd ); + + return bRet; +} + + +void ETSLayoutPropertySheet::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + if(m_RootPane.IsValid() && GetTabControl() != 0 ) + { + CRect rcWnd; + GetWindowRect(rcWnd); + + CRect rcClient = GetRect(); + rcWnd-=rcClient; + + // ask for MinMax of all pages + CSize sizePageMax(0,0); + CSize sizePageMin(0,0); + for( int nPage=0; nPageGetSafeHwnd()) ) + { + pPage->SendMessage(WM_GETMINMAXINFO, 0, (LPARAM) &mmi); + + if(mmi.ptMaxTrackSize.x != 0) + { + sizePageMax.cx = min(sizePageMax.cx, mmi.ptMaxTrackSize.x); + } + if(mmi.ptMaxTrackSize.y != 0) + { + sizePageMax.cy = min(sizePageMax.cy, mmi.ptMaxTrackSize.y); + } + if(mmi.ptMinTrackSize.x != 0) + { + sizePageMin.cx = max(sizePageMin.cx, mmi.ptMinTrackSize.x); + } + if(mmi.ptMinTrackSize.y != 0) + { + sizePageMin.cy = max(sizePageMin.cy, mmi.ptMinTrackSize.y); + } + } + } + } + static_cast( m_ItemTab.GetPaneBase() )->m_sizeXMin = sizePageMin.cx; + static_cast( m_ItemTab.GetPaneBase() )->m_sizeYMin = sizePageMin.cy; + + // calculate the needed size of the tabctrl in non-wizard-mode + CRect rcItem(0,0,0,0); + if(!IsWizard()) + { + GetTabControl()->AdjustRect( TRUE, rcItem ); + } + + lpMMI->ptMinTrackSize.x = m_RootPane->getMinConstrainHorz() + rcWnd.Width() + 2*m_sizeRootBorders.cx + + rcItem.Width(); + + lpMMI->ptMinTrackSize.y = m_RootPane->getMinConstrainVert() + rcWnd.Height() + 2*m_sizeRootBorders.cy + + rcItem.Height(); + + // never smaller than inital size! + lpMMI->ptMinTrackSize.x = max(lpMMI->ptMinTrackSize.x, m_rcStart.Width() ); + lpMMI->ptMinTrackSize.y = max(lpMMI->ptMinTrackSize.y, m_rcStart.Height() ); + + // Rest like ETSLayoutMgr + + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); + + if( maxWidth != -1 ) + { + lpMMI->ptMaxSize.x = sizePageMax.cx + rcWnd.Width()+ 2*m_sizeRootBorders.cx + rcItem.Width() ; + } + + if( maxHeight != -1 ) + { + lpMMI->ptMaxSize.y = sizePageMax.cy + rcWnd.Height() + 2*m_sizeRootBorders.cy + rcItem.Width() ; + } + + lpMMI->ptMaxTrackSize = lpMMI->ptMaxSize; + + } +} + + +void ETSLayoutPropertySheet::OnDestroy() +{ + // Store size/position + if(!m_strRegStore.IsEmpty()) + { + Save(m_strRegStore); + } + m_RootPane = 0; + + CPropertySheet::OnDestroy(); +} + +void ETSLayoutPropertySheet::PostNcDestroy() +{ + if(m_bAutoDestroyPages) + { + // walk all pages and destry them + for( int nPage=0; nPageRelease(); +} + +void ETSLayoutMgr::CPaneBase::operator=( PaneBase* pPane ) +{ + if(m_pPaneHolder) + { + m_pPaneHolder->Release(); + m_pPaneHolder = 0; + } + + if( pPane != 0 ) + m_pPaneHolder = new PaneHolder( pPane ); +} + +void ETSLayoutMgr::CPaneBase::operator=( const CPaneBase& other ) +{ + ASSERT( other.m_pPaneHolder ); + + if(m_pPaneHolder) + { + m_pPaneHolder->Release(); + m_pPaneHolder = 0; + } + + other.m_pPaneHolder->AddRef(); + m_pPaneHolder = other.m_pPaneHolder; +} + +ETSLayoutMgr::PaneBase* ETSLayoutMgr::CPaneBase::operator->() const +{ + ASSERT(m_pPaneHolder); + + if(!m_pPaneHolder) + return 0; + + return (m_pPaneHolder->m_pPane); +} + + + +ETSLayoutMgr::CPane::CPane( ) +{ +} + +ETSLayoutMgr::CPane::CPane( Pane* pPane ) : ETSLayoutMgr::CPaneBase( static_cast(pPane) ) +{ +} + +ETSLayoutMgr::CPane::CPane( const CPane& other ) +{ + operator=(other); +} + +ETSLayoutMgr::CPane::~CPane() +{ +} + +void ETSLayoutMgr::CPane::operator=( Pane* pPane ) +{ + CPaneBase::operator=(pPane); +} + +void ETSLayoutMgr::CPane::operator=( const ETSLayoutMgr::CPane& other ) +{ + ASSERT( other.m_pPaneHolder ); + + if(m_pPaneHolder) + { + m_pPaneHolder->Release(); + m_pPaneHolder = 0; + } + + other.m_pPaneHolder->AddRef(); + m_pPaneHolder = other.m_pPaneHolder; +} + +ETSLayoutMgr::Pane* ETSLayoutMgr::CPane::operator->() const +{ + ASSERT(m_pPaneHolder); + + if(!m_pPaneHolder) + return 0; + + return reinterpret_cast(m_pPaneHolder->m_pPane); +} + +ETSLayoutMgr::CPaneBase ETSLayoutMgr::CPane::ConvertBase() const +{ + ASSERT(m_pPaneHolder); + return CPaneBase( m_pPaneHolder->m_pPane ); +} + +ETSLayoutMgr::CPane& ETSLayoutMgr::CPane::operator<< ( const ETSLayoutMgr::CPane pPane ) +{ + GetPane()->addPane( pPane, (ETSLayoutMgr::layResizeMode)pPane->m_modeResize, pPane->m_sizeSecondary); + return (*this); +} + +ETSLayoutMgr::CPane& ETSLayoutMgr::CPane::operator<< ( const ETSLayoutMgr::CPaneBase pItem ) +{ + GetPane()->addPane( pItem ); + return (*this); +} -- cgit v1.1 From 789bc690bf2a350d08514dce166f02d4888a7440 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:27 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 2) --- IvyProbe/ETSLayout.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/IvyProbe/ETSLayout.cpp b/IvyProbe/ETSLayout.cpp index fa62a7b..e7f52bb 100644 --- a/IvyProbe/ETSLayout.cpp +++ b/IvyProbe/ETSLayout.cpp @@ -1748,7 +1748,7 @@ bool ETSLayoutMgr::Pane::resizeTo(CRect& rcNewArea) #pragma warning(disable: 4355) ETSLayoutDialog::ETSLayoutDialog(UINT nID, CWnd* pParent /*=NULL*/, LPCTSTR strName /*=NULL*/, bool bGripper /*=true*/) - : CBaseDialog(nID, pParent), ETSLayoutMgr( this ) + : CDialog(nID, pParent), ETSLayoutMgr( this ) { //{{AFX_DATA_INIT(ETSLayoutDialog) // NOTE: the ClassWizard will add member initialization here @@ -1760,7 +1760,7 @@ ETSLayoutDialog::ETSLayoutDialog(UINT nID, CWnd* pParent /*=NULL*/, LPCTSTR strN } #pragma warning(default: 4355) -BEGIN_MESSAGE_MAP(ETSLayoutDialog, CBaseDialog) +BEGIN_MESSAGE_MAP(ETSLayoutDialog, CDialog) //{{AFX_MSG_MAP(ETSLayoutDialog) ON_WM_SIZE() ON_WM_GETMINMAXINFO() @@ -1917,7 +1917,7 @@ ETSLayoutDialogBar::ETSLayoutDialogBar() } #pragma warning(default: 4355) -BEGIN_MESSAGE_MAP(ETSLayoutDialogBar, CBaseDialogBar) +BEGIN_MESSAGE_MAP(ETSLayoutDialogBar, CDialogBar) //{{AFX_MSG_MAP(ETSLayoutDialogBar) ON_WM_SIZE() ON_WM_GETMINMAXINFO() @@ -2034,14 +2034,14 @@ IMPLEMENT_DYNAMIC(ETSLayoutFormView, CFormView) #pragma warning(disable: 4355) ETSLayoutFormView::ETSLayoutFormView(UINT nID, LPCTSTR strName /*=NULL*/) - : CBaseFormView(nID), ETSLayoutMgr( this ) + : CFormView(nID), ETSLayoutMgr( this ) { if(strName) m_strRegStore = strName; } #pragma warning(default: 4355) -BEGIN_MESSAGE_MAP(ETSLayoutFormView, CBaseFormView) +BEGIN_MESSAGE_MAP(ETSLayoutFormView, CFormView) //{{AFX_MSG_MAP(ETSLayoutFormView) ON_WM_SIZE() ON_WM_GETMINMAXINFO() @@ -2164,7 +2164,7 @@ ETSLayoutPropertyPage::ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption } ETSLayoutPropertyPage::ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption /*= 0*/ ) - : CBasePropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this ) + : CPropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this ) { m_bLockMove = false; } @@ -2175,7 +2175,7 @@ ETSLayoutPropertyPage::~ETSLayoutPropertyPage() } -BEGIN_MESSAGE_MAP(ETSLayoutPropertyPage, CBasePropertyPage) +BEGIN_MESSAGE_MAP(ETSLayoutPropertyPage, CPropertyPage) //{{AFX_MSG_MAP(ETSLayoutPropertyPage) ON_WM_SIZE() ON_WM_GETMINMAXINFO() @@ -2485,7 +2485,7 @@ BOOL ETSLayoutPropertySheet::OnInitDialog() pPage->GetClientRect(&rcPage); CreateRoot(VERTICAL); - ASSERT(m_RootPane); + //ASSERT(m_RootPane); // Add Tabcontrol to root pane m_ItemTab = item( GetTabControl(), GREEDY, 0, 0, 0, 0); -- cgit v1.1 From 3dfc319868dcadc1da4b88f126ff5c3cdab760c7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:29 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 3) --- IvyProbe/ETSLayout.cpp | 368 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 275 insertions(+), 93 deletions(-) diff --git a/IvyProbe/ETSLayout.cpp b/IvyProbe/ETSLayout.cpp index e7f52bb..921e129 100644 --- a/IvyProbe/ETSLayout.cpp +++ b/IvyProbe/ETSLayout.cpp @@ -4,7 +4,7 @@ // / _/ / / / / ___ ___ ____ // // /__/ /_/ / / / // _/_ _/ // // _________/ / / / // _/ / / // -// __(c) 1998-9_/ /___//_/ /_/ // +// (c) 1998-2000_/ /___//_/ /_/ // // // //////////////////////////////////////////// // all rights reserved // @@ -106,12 +106,42 @@ // 1999/12/04 Erase Backgroung with GCL_HBRBACKGROUND (if available) // 1999/12/04 itemSpaceXXX() adds a NORESIZE item instead of ABSOLUTE_XXX // this will fix unwanted growing in secondary direction +// +// Version: 1.0 [1999/12/04] Initial Article on CodeProject +// // 1999/12/10 Erase Backgroung within TabCtrl was 'fixed' badly. Reverted to // old working code // 2000/02/02 When the Dialog is child of a View the class works correctly // now [Didier BULTIAUW] // 2000/02/15 Combo-Boxes were not working correctly (in all modes!) - +// 2000/02/17 aligned SpinButton Controls (with buddy) now handled +// automatically +// !! do not add such a control to the layout !! it is always +// reattached to its buddy. +// 2000/02/17 changed some cotrol class names to the defined constants +// +// Version: 1.1 [2000/02/17] +// +// 2000/02/25 Fixed auto alignment of SpinButton Controls to only affect +// visible ones +// 2000/02/27 Put all the classes into the namespace 'ETSLayout' +// 2000/03/07 Fixed growing Dialog after minimizing and restoring +// 2000/05/22 Whole Statusbar (Gripper) is not excluded anymore in EraseBkgnd() +// instead only the triangular Gripper is excluded +// 2000/05/31 Fix for PropertySheets with PSH_WIZARDHASFINISH [Thömmi] +// 2000/05/31 Fix for UpDown-Controls with EditCtrl Buddy in PropertyPages. +// These were not repositioned every time the page is being show +// until the first resize +// 2000/07/28 Problems with resizing ActiveX Controls fixed [Micheal Chapman] +// 2000/07/28 Some strings were not properly wrapped with _T() +// 2000/08/03 Check for BS_GROUPBOX was not correct as BS_GROUPBOX is more than one Bit +// 2000/08/03 New override AddMainArea added to ETSLayoutPropertySheet in order to +// have a hook for additional controls in a PropertySheet (besides the Tab) +// 2000/08/03 New override AddButtons added to ETSLayoutPropertySheet in order to +// have a hook for additional controls in the bottem pane of a PropertySheet +// 2000/08/03 Removed the need for DECLARE_LAYOUT +// +// Version: 1.2 [2000/08/05] #define OEMRESOURCE #include @@ -119,6 +149,10 @@ #include "stdafx.h" #include "ETSLayout.h" +using namespace ETSLayout; +#pragma warning(disable: 4097 4610 4510 4100) + + #ifndef OBM_SIZE #define OBM_SIZE 32766 // taken from WinresRc.h @@ -145,8 +179,8 @@ CWnd* ETSLayoutMgr::paneNull = 0; void ETSLayoutMgr::Layout(CRect& rcClient) { - // Does nothing, use DECLARE_LAYOUT in derived class - // see DialogMgr.h + if(rcClient.Height() && rcClient.Width() && m_RootPane.IsValid()) \ + m_RootPane->resizeTo(rcClient); \ } @@ -374,6 +408,30 @@ void ETSLayoutMgr::UpdateLayout() else Layout(rcClient); + // Take special care of SpinButtons (Up-Down Controls) with Buddy set, enumerate + // all childs: + CWnd* pWndChild = GetWnd()->GetWindow(GW_CHILD); + TCHAR szClassName[ MAX_PATH ]; + while(pWndChild) + { + ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH ); + DWORD dwStyle = pWndChild->GetStyle(); + + // is it a SpinButton? + if( _tcscmp(szClassName, UPDOWN_CLASS)==0 && ::IsWindowVisible(pWndChild->GetSafeHwnd()) ) { + HWND hwndBuddy = (HWND)::SendMessage( pWndChild->GetSafeHwnd(), UDM_GETBUDDY, 0, 0); + if( hwndBuddy != 0 && (dwStyle&(UDS_ALIGNRIGHT|UDS_ALIGNLEFT)) != 0 ) + { + // reset Buddy + ::SendMessage( pWndChild->GetSafeHwnd(), UDM_SETBUDDY, (WPARAM)hwndBuddy, 0); + } + } + + + pWndChild = pWndChild->GetWindow(GW_HWNDNEXT); + } + + GetWnd()->Invalidate(); } @@ -393,7 +451,7 @@ bool ETSLayoutMgr::Save(LPCTSTR lpstrRegKey) wp.showCmd = SW_SHOWNORMAL; AfxGetApp()->WriteProfileBinary(lpstrRegKey, - "WindowPlacement", + _T("WindowPlacement"), reinterpret_cast(&wp), sizeof(wp)); } } @@ -405,7 +463,7 @@ bool ETSLayoutMgr::Load(LPCTSTR lpstrRegKey) LPBYTE pbtData = 0; UINT nSize = 0; if(AfxGetApp()->GetProfileBinary(lpstrRegKey, - "WindowPlacement", &pbtData, &nSize)) + _T("WindowPlacement"), &pbtData, &nSize)) { WINDOWPLACEMENT* pwp = reinterpret_cast(pbtData); @@ -427,6 +485,7 @@ void ETSLayoutMgr::EraseBkgnd(CDC* pDC) CRgn rgn; rgn.CreateRectRgnIndirect(rcClient); + //TRACE("CreateRgn (%d,%d,%d,%d)\n", rcClient.left, rcClient.top, rcClient.right, rcClient.bottom ); CRgn rgnRect; rgnRect.CreateRectRgn(0,0,0,0); @@ -436,9 +495,8 @@ void ETSLayoutMgr::EraseBkgnd(CDC* pDC) TCHAR szClassName[ MAX_PATH ]; - CRect rcClip; - pDC->GetClipBox(&rcClip); - + pDC->SelectClipRgn(NULL); + while( pWndChild ) { pWndChild->GetWindowRect(rcChild); @@ -451,11 +509,12 @@ void ETSLayoutMgr::EraseBkgnd(CDC* pDC) // doesn't make sense for hidden children if( dwStyle & WS_VISIBLE ) { - - if( _tcscmp(szClassName,"Button")==0 && (dwStyle & BS_GROUPBOX) ) { + + // Fix: BS_GROUPBOX is more than one Bit, extend check to (dwStyle & BS_GROUPBOX)==BS_GROUPBOX [ET] + if( _tcscmp(szClassName,_T("Button"))==0 && (dwStyle & BS_GROUPBOX)==BS_GROUPBOX ) { // it is a group-box, ignore completely } - else if( _tcscmp(szClassName,"SysTabControl32")==0 ) { + else if( _tcscmp(szClassName,WC_TABCONTROL )==0 ) { // ignore Tab-Control's inside rect static_cast(pWndChild)->AdjustRect(FALSE,rcChild); @@ -465,6 +524,19 @@ void ETSLayoutMgr::EraseBkgnd(CDC* pDC) rgnRect.CombineRgn( &rgnRect, &rgnContent, RGN_DIFF ); rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF ); } + else if( _tcscmp(szClassName,STATUSCLASSNAME)==0 ) { + + CPoint ptTriangleGrip[3]; + ptTriangleGrip[0] = CPoint(rcChild.right,rcChild.top); + ptTriangleGrip[1] = CPoint(rcChild.right,rcChild.bottom); + ptTriangleGrip[2] = CPoint(rcChild.right-rcChild.Height(),rcChild.bottom); + + CRgn rgnGripper; + rgnGripper.CreatePolygonRgn(ptTriangleGrip,3, WINDING); + + rgn.CombineRgn( &rgn, &rgnGripper, RGN_DIFF ); + + } else { rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF ); } @@ -537,7 +609,7 @@ ETSLayoutMgr::PaneItem::PaneItem(CWnd* pWnd, ETSLayoutMgr* pMgr, ETSLayoutMgr::l ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH ); // special treatment for combo-boxes - if( _tcscmp(szClassName,"ComboBox")==0 ) { + if( _tcscmp(szClassName,_T("ComboBox"))==0 || _tcscmp(szClassName,WC_COMBOBOXEX)==0) { m_bComboSpecial = true; } } @@ -594,7 +666,7 @@ ETSLayoutMgr::PaneItem::PaneItem( UINT nID, ETSLayoutMgr* pMgr, ETSLayoutMgr::la ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH ); // special treatment for combo-boxes - if( _tcscmp(szClassName,"ComboBox")==0 ) { + if( _tcscmp(szClassName,_T("ComboBox"))==0 || _tcscmp(szClassName,WC_COMBOBOXEX)==0) { m_bComboSpecial = true; } } @@ -695,7 +767,9 @@ bool ETSLayoutMgr::PaneItem::resizeTo(CRect& rcNewArea) rcNewArea.bottom = rcNewArea.top + rcWnd.Height(); } - ::MoveWindow( m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); + // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman] + CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl ); + pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height() ); if( m_bComboSpecial && !(dwStyle & CBS_DROPDOWN) && !(dwStyle & CBS_NOINTEGRALHEIGHT) ) { @@ -712,7 +786,9 @@ bool ETSLayoutMgr::PaneItem::resizeTo(CRect& rcNewArea) rcNewArea.bottom = rcNewArea.top + rcWnd.Height(); - ::MoveWindow( m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); + // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman] + CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl ); + pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); } } @@ -858,8 +934,11 @@ int ETSLayoutMgr::PaneCtrl::getMaxConstrainVert() bool ETSLayoutMgr::PaneCtrl::resizeTo(CRect& rcNewArea) { - ::MoveWindow(m_hwndCtrl, rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true); - ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW |RDW_ERASE); + // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman] + CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl ); + pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true ); + + ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW |RDW_ERASE); rcNewArea.top += m_sizeTopExtra; return Pane::resizeTo(rcNewArea); } @@ -1276,7 +1355,7 @@ bool ETSLayoutMgr::Pane::resizeToRelative(int& availSpace, CArray& size // At this point we should have some space left (at least not be negative with the leftover // space) and on the other hand there's enough space for the limit-difference to be distributed - ASSERT( availSpace >= 0 && relLeft >= relDiff); +// ASSERT( availSpace >= 0 && relLeft >= relDiff); // Fixup Relative: // Distribute (if anecessary) relDiff on other (not limited) relative items/subpanes @@ -1342,8 +1421,11 @@ bool ETSLayoutMgr::Pane::resizeToRelative(int& availSpace, CArray& size } } // Distributed some relDiff-space in every iteration - ASSERT(relDist != 0); +// ASSERT(relDist != 0); relDiff -= relDist; + + if( relDist == 0 ) + break; } // Fixup Relative: invert all negative (limited) sized to correct value @@ -1748,7 +1830,7 @@ bool ETSLayoutMgr::Pane::resizeTo(CRect& rcNewArea) #pragma warning(disable: 4355) ETSLayoutDialog::ETSLayoutDialog(UINT nID, CWnd* pParent /*=NULL*/, LPCTSTR strName /*=NULL*/, bool bGripper /*=true*/) - : CDialog(nID, pParent), ETSLayoutMgr( this ) + : CBaseDialog(nID, pParent), ETSLayoutMgr( this ) { //{{AFX_DATA_INIT(ETSLayoutDialog) // NOTE: the ClassWizard will add member initialization here @@ -1796,30 +1878,34 @@ void ETSLayoutDialog::OnSize(UINT nType, int cx, int cy) void ETSLayoutDialog::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + if( rcClient.Height() > 0 || rcClient.Width() > 0 ) + { - CRect rcWnd; - GetWindowRect(rcWnd); - - // How much do Window and Client differ - int nDiffHorz = rcWnd.Width() - rcClient.Width(); - int nDiffVert = rcWnd.Height() - rcClient.Height(); + CRect rcWnd; + GetWindowRect(rcWnd); + + // How much do Window and Client differ + int nDiffHorz = rcWnd.Width() - rcClient.Width(); + int nDiffVert = rcWnd.Height() - rcClient.Height(); - // Take into account that there is a border around the rootPane - lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx, - m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy); + // Take into account that there is a border around the rootPane + lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx, + m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy); - int maxWidth = m_RootPane->getMaxConstrainHorz(); - int maxHeight = m_RootPane->getMaxConstrainVert(); + int maxWidth = m_RootPane->getMaxConstrainHorz(); + int maxHeight = m_RootPane->getMaxConstrainVert(); - if( maxWidth != -1 ) { - lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; - lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; - } + if( maxWidth != -1 ) { + lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx; + } - if( maxHeight != -1 ) { - lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; - lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + if( maxHeight != -1 ) { + lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy; + } } } } @@ -1848,6 +1934,9 @@ BOOL ETSLayoutDialog::OnInitDialog() { CBaseDialog::OnInitDialog(); + // Ensure that the dialog is resizable + this->ModifyStyle(0, WS_THICKFRAME); + if(!m_strRegStore.IsEmpty()) { Load(m_strRegStore); } @@ -1872,12 +1961,12 @@ BOOL ETSLayoutDialog::OnInitDialog() if(m_StatusBar.Create(m_pWnd)) { m_StatusBar.SetIndicators(auIDStatusBar, sizeof(auIDStatusBar) / sizeof(UINT)); - m_StatusBar.SetWindowText(""); + m_StatusBar.SetWindowText(_T("")); m_StatusBar.SetPaneStyle( 0, SBPS_STRETCH | SBPS_NOBORDERS ); m_pWnd -> RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); } else - AfxMessageBox("Error - Statusbar"); + AfxMessageBox(_T("Error - Statusbar")); } return TRUE; // return TRUE unless you set the focus to a control @@ -1938,6 +2027,25 @@ LRESULT ETSLayoutDialogBar::OnInitDialog(WPARAM, LPARAM) return TRUE; } +void ETSLayoutDialogBar::UpdateLayout() +{ + ETSLayoutMgr::UpdateLayout(); + + if(m_RootPane.IsValid()) { + CRect rcClient = GetRect(); + + CRect rcWnd; + GetWindowRect(rcWnd); + + // How much do Window and Client differ + CSize sizeDiff( rcWnd.Width() - rcClient.Width(), rcWnd.Height() - rcClient.Height()); + + // Take into account that there is a border around the rootPane +// m_szMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx, +// m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy); + } +} + CSize ETSLayoutDialogBar::CalcDynamicLayout(int nLength, DWORD dwMode) { CSize sizeRet = CBaseDialogBar::CalcDynamicLayout(nLength, dwMode); @@ -1955,8 +2063,8 @@ CSize ETSLayoutDialogBar::CalcDynamicLayout(int nLength, DWORD dwMode) CSize sizeDiff( rcWnd.Width() - rcClient.Width(), rcWnd.Height() - rcClient.Height()); // Take into account that there is a border around the rootPane - sizeMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx, - m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy); +// sizeMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx, +// m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy); int maxWidth = m_RootPane->getMaxConstrainHorz(); @@ -2034,7 +2142,7 @@ IMPLEMENT_DYNAMIC(ETSLayoutFormView, CFormView) #pragma warning(disable: 4355) ETSLayoutFormView::ETSLayoutFormView(UINT nID, LPCTSTR strName /*=NULL*/) - : CFormView(nID), ETSLayoutMgr( this ) + : CBaseFormView(nID), ETSLayoutMgr( this ) { if(strName) m_strRegStore = strName; @@ -2155,18 +2263,21 @@ ETSLayoutFormView::~ETSLayoutFormView() ETSLayoutPropertyPage::ETSLayoutPropertyPage( ) : ETSLayoutMgr( this ) { m_bLockMove = false; + m_bResetBuddyOnNextTimeVisible = true; } ETSLayoutPropertyPage::ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption /*= 0*/ ) : CBasePropertyPage(nIDTemplate, nIDCaption), ETSLayoutMgr( this ) { m_bLockMove = false; + m_bResetBuddyOnNextTimeVisible = true; } ETSLayoutPropertyPage::ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption /*= 0*/ ) - : CPropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this ) + : CBasePropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this ) { m_bLockMove = false; + m_bResetBuddyOnNextTimeVisible = true; } #pragma warning(default: 4355) @@ -2182,6 +2293,7 @@ BEGIN_MESSAGE_MAP(ETSLayoutPropertyPage, CPropertyPage) ON_WM_ERASEBKGND() ON_WM_WINDOWPOSCHANGING() ON_WM_DESTROY() + ON_WM_WINDOWPOSCHANGED() //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -2190,6 +2302,54 @@ END_MESSAGE_MAP() // Behandlungsroutinen für Nachrichten ETSLayoutPropertyPage + +void ETSLayoutPropertyPage::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) +{ + CBasePropertyPage::OnWindowPosChanged(lpwndpos); + + // This code is needed in order to reset the buddy after this page has + // been activated. At least on Win2k this is not done thru normal resizing, + // as the page is not visible when first layouted. And without the page + // being visible it's not possible to tell if the attached buddy is visible + // or not (at least I don't know any way to do so) + + if( ::IsWindowVisible( GetWnd()->GetSafeHwnd() ) ) + { + if( m_bResetBuddyOnNextTimeVisible ) + { + // Take special care of SpinButtons (Up-Down Controls) with Buddy set, enumerate + // all childs: + CWnd* pWndChild = GetWnd()->GetWindow(GW_CHILD); + TCHAR szClassName[ MAX_PATH ]; + while(pWndChild) + { + ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH ); + DWORD dwStyle = pWndChild->GetStyle(); + + // is it a SpinButton? + if( _tcscmp(szClassName, UPDOWN_CLASS)==0 && ::IsWindowVisible(pWndChild->GetSafeHwnd()) ) { + HWND hwndBuddy = (HWND)::SendMessage( pWndChild->GetSafeHwnd(), UDM_GETBUDDY, 0, 0); + if( hwndBuddy != 0 && (dwStyle&(UDS_ALIGNRIGHT|UDS_ALIGNLEFT)) != 0 ) + { + // reset Buddy + ::SendMessage( pWndChild->GetSafeHwnd(), UDM_SETBUDDY, (WPARAM)hwndBuddy, 0); + } + } + + + pWndChild = pWndChild->GetWindow(GW_HWNDNEXT); + } + + m_bResetBuddyOnNextTimeVisible = false; + } + } + else + { + // has been hidden again + m_bResetBuddyOnNextTimeVisible = true; + } +} + void ETSLayoutPropertyPage::OnWindowPosChanging( WINDOWPOS* lpwndpos ) { // In WizardMode the System calls SetWindowPos with the @@ -2372,7 +2532,7 @@ int ETSLayoutPropertySheet::OnCreate(LPCREATESTRUCT lpCreateStruct) if (CPropertySheet::OnCreate(lpCreateStruct) == -1) return -1; - ModifyStyle(0,WS_THICKFRAME| WS_SYSMENU |WS_CLIPCHILDREN); + ModifyStyle(0,WS_THICKFRAME| WS_SYSMENU); return 0; } @@ -2383,7 +2543,8 @@ void ETSLayoutPropertySheet::Resize(int cx, int cy) { UpdateLayout(); - if(IsWizard()) + // Fix for PSH_WIZARDHASFINISH [Thömmi] + if (IsWizard() && !(m_psh.dwFlags & PSH_WIZARDHASFINISH) ) { // manual reposition of the FINISH button // can not be done with normaly layouting because it @@ -2462,18 +2623,76 @@ long _PropertySheetIDs[] = { ID_WIZBACK, ID_WIZNEXT, + ID_WIZFINISH, IDOK, IDCANCEL, ID_APPLY_NOW, IDHELP }; +void ETSLayoutPropertySheet::AddMainArea(CPane paneRoot, CPaneBase itemTab) +{ + // the default is: Whole main Area is covered by the TabCtrl + paneRoot << itemTab; +} + +void ETSLayoutPropertySheet::AddButtons(CPane paneBottom) +{ + // first item greedy to keep others right + paneBottom->addItem (paneNull, GREEDY); + + + // add all Controls to the layouting + bool bFirst = true; + for(int i = 0; i < (sizeof(_PropertySheetIDs) / sizeof(long)) ; i++) + { + // Prevent movement of finish button, if it is not shown explicitly [Thömmi] + if( IsWizard() + && _PropertySheetIDs[i] == ID_WIZFINISH + && !(m_psh.dwFlags & PSH_WIZARDHASFINISH) ) + { + continue; + } + + CWnd* pWnd = GetDlgItem(_PropertySheetIDs[i]); + + if(pWnd) + { + + if(!(m_psh.dwFlags & PSH_HASHELP) && _PropertySheetIDs[i] == IDHELP) + { + // don't insert + continue; + } + + if((m_psh.dwFlags & PSH_NOAPPLYNOW) && _PropertySheetIDs[i] == ID_APPLY_NOW) + { + // don't insert + continue; + } + + // space before first one and between BACK & NEXT + if( IsWizard() ) + { + if( !bFirst && !(_PropertySheetIDs[i]==ID_WIZNEXT) ) + { + paneBottom->addItem(paneNull, NORESIZE,12,0,0,0); + } + } + + pWnd->ShowWindow(true); + paneBottom->addItem(_PropertySheetIDs[i], NORESIZE); + bFirst = false; + } + } + +} BOOL ETSLayoutPropertySheet::OnInitDialog() { BOOL bRet = CPropertySheet::OnInitDialog(); - ASSERT(!m_RootPane); + //ASSERT(!m_RootPane); // Save initial rect GetWindowRect(&m_rcStart); @@ -2489,7 +2708,7 @@ BOOL ETSLayoutPropertySheet::OnInitDialog() // Add Tabcontrol to root pane m_ItemTab = item( GetTabControl(), GREEDY, 0, 0, 0, 0); - m_RootPane << m_ItemTab; + AddMainArea(m_RootPane, m_ItemTab); // Tabcontrol is invisible in WizardMode if(IsWizard()) @@ -2508,48 +2727,11 @@ BOOL ETSLayoutPropertySheet::OnInitDialog() // No spaces in WizardMode in order to keep BACK & NEXT together CPane bottomPane = pane(HORIZONTAL, ABSOLUTE_VERT, IsWizard() ? 0 : 5); - // first item greedy to keep others right - bottomPane->addItem (paneNull, GREEDY); - - - // add all Controls to the layouting - bool bFirst = true; - for(int i = 0; i < (sizeof(_PropertySheetIDs) / sizeof(long)) ; i++) - { - CWnd* pWnd = GetDlgItem(_PropertySheetIDs[i]); - - if(pWnd) - { - - if(!(m_psh.dwFlags & PSH_HASHELP) && _PropertySheetIDs[i] == IDHELP) - { - // don't insert - continue; - } - - if((m_psh.dwFlags & PSH_NOAPPLYNOW) && _PropertySheetIDs[i] == ID_APPLY_NOW) - { - // don't insert - continue; - } - - // space before first one and between BACK & NEXT - if( IsWizard() ) - { - if( !bFirst && !(_PropertySheetIDs[i]==ID_WIZNEXT) ) - { - bottomPane->addItem(paneNull, NORESIZE,12,0,0,0); - } - } - - pWnd->ShowWindow(true); - bottomPane->addItem(_PropertySheetIDs[i], NORESIZE); - bFirst = false; - } - } - - // add bottom (button) pane - m_RootPane << bottomPane; + AddButtons(bottomPane); + // add bottom (button) pane if any controls were added + if(bottomPane->m_paneItems.GetSize() > 0) { + m_RootPane << bottomPane; + } } @@ -2563,12 +2745,12 @@ BOOL ETSLayoutPropertySheet::OnInitDialog() { m_StatusBar.SetIndicators(auIDStatusBar, sizeof(auIDStatusBar) / sizeof(UINT)); - m_StatusBar.SetWindowText(""); + m_StatusBar.SetWindowText(_T("")); RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); } else { - AfxMessageBox("Error - Statusbar"); + AfxMessageBox(_T("Error - Statusbar")); } } -- cgit v1.1 From 0e34d281c7df993cf5f72d60c16f5205d0fc06ac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:31 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/IvyProbe Commentaire: (vss 4) --- IvyProbe/ETSLayout.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/IvyProbe/ETSLayout.cpp b/IvyProbe/ETSLayout.cpp index 921e129..994c5ce 100644 --- a/IvyProbe/ETSLayout.cpp +++ b/IvyProbe/ETSLayout.cpp @@ -545,8 +545,10 @@ void ETSLayoutMgr::EraseBkgnd(CDC* pDC) pWndChild = pWndChild->GetNextWindow(); } - - HBRUSH hBrBack = (HBRUSH) ::GetClassLong(GetWnd()->GetSafeHwnd(), GCL_HBRBACKGROUND) ; + HBRUSH hBrBack = 0; +#ifdef GCL_HBRBACKGROUND + hBrBack = (HBRUSH) ::GetClassLong(GetWnd()->GetSafeHwnd(), GCL_HBRBACKGROUND) ; +#endif if( hBrBack == 0 ) hBrBack = ::GetSysColorBrush(COLOR_BTNFACE); @@ -1366,7 +1368,7 @@ bool ETSLayoutMgr::Pane::resizeToRelative(int& availSpace, CArray& size // come to endless looping. Save the amount of space actually distributed in this iteration int relDist = 0; - for(i=0; i& size } // Fixup Relative: invert all negative (limited) sized to correct value - for(i=0; imodeResize() & RELATIVE_HORZ) && sizePrimary[i] < 0) || @@ -1555,7 +1557,7 @@ bool ETSLayoutMgr::Pane::resizeToGreedy(int& availSpace, int nGreedy, CArray +// +// DISCLAIMER: +// +// This Sourcecode and all accompaning material is ©1998-1999 Erwin Tratar. +// All rights reserved. +// +// The source code may be used in compiled form in any way you desire +// (including usage in commercial applications), providing that your +// application adds essential code (i.e. it is not only a wrapper) to the +// functionality found here +// +// Redistribution of the sourcecode itself, publication in any media or +// inclusion in a library requires the authors expressed written consent. +// You may not sale this code for profit. +// +// THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. USE IT +// AT YOUR OWN RISK! THE AUTHOR ACCEPTS NO LIABILITY FOR ANY DAMAGE/LOSS OF +// BUSINESS THAT THIS PRODUCT MAY CAUSE. + + +#if !defined(ETS_LAYOUTMGR_INCLUDED_) +#define ETS_LAYOUTMGR_INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 +// DialogMgr.h : header file +// + +#ifdef CS_HELP + typedef ETSCSHelpDialog CBaseDialog; + typedef ETSCSHelpFormView CBaseFormView; + typedef ETSCSHelpDlgBar CBaseDialogBar; + typedef ETSCSHelpPropPage CBasePropertyPage; +#else + typedef CDialog CBaseDialog; + typedef CFormView CBaseFormView; + typedef CDialogBar CBaseDialogBar; + typedef CPropertyPage CBasePropertyPage; +#endif + +// Support for CBCGDialogBar instead of CDialogBar available +// you just have to change the typedef to CBaseDialogBar + +#ifndef ETSGUI_EXT_CLASS +#define ETSGUI_EXT_CLASS +#endif + +#include + +// Support for CBCGDialogBar instead of CDialogBar + +/** + * Controls whether the Icon is automatically set to IDR_MAINFRAME + */ +#define _AUTO_SET_ICON + + +/** + * Use this helper in your derived class as usually + * + * example: [MyDerivedClass.h] + * + * CMyDerivedClass::CMyDerivedClass() + * { + * DECLARE_LAYOUT(); + * ... + * + * FUNCTION: Connects the layout mechanism to your class + */ +#define DECLARE_LAYOUT() \ +virtual void Layout(CRect& rcClient) \ + { \ + if(rcClient.Height() && rcClient.Width() && m_RootPane.IsValid()) \ + m_RootPane->resizeTo(rcClient); \ + } + +/** + * This is a NOOP now + */ +#define IMPLEMENT_LAYOUT() + +/** + * This is the default border size between the panes. You + * may override it in Pane constructor, but it is the + * fixed border around the root pane + */ +const int nDefaultBorder = 5; + +/** + * The minimum size for not ABSOLUTE_XXX items + */ +const int nMinConstrain = 5; + +class ETSGUI_EXT_CLASS ETSLayoutMgr +{ +public: + + enum layResizeMode { + GREEDY = 0, // Will eat up as much as it can + ABSOLUTE_HORZ = 1 << 0, // Horizontal size is absolute + RELATIVE_HORZ = 1 << 1, // Horizontal size in percent + ABSOLUTE_VERT = 1 << 2, // Vertical size is absolute + RELATIVE_VERT = 1 << 3, // Vertical size in percent + + NORESIZE = ABSOLUTE_HORZ | ABSOLUTE_VERT, + + SIZE_MASK = NORESIZE, + + ALIGN_LEFT = 1 << 4, // following only for NORESIZE + ALIGN_RIGHT = 1 << 5, + ALIGN_TOP = 1 << 6, + ALIGN_BOTTOM = 1 << 7, + + ALIGN_HCENTER = ALIGN_LEFT | ALIGN_RIGHT, + ALIGN_VCENTER = ALIGN_TOP | ALIGN_BOTTOM, + + ALIGN_CENTER = ALIGN_HCENTER | ALIGN_VCENTER, + + ALIGN_FILL_HORZ = 1 << 8, + ALIGN_FILL_VERT = 1 << 9, + ALIGN_FILL = ALIGN_FILL_HORZ | ALIGN_FILL_VERT, + +/* TRACKER_LEFT = 1 << 10, // not yet. May allow tracking of borders + TRACKER_RIGHT = 1 << 11, // between items in the future + TRACKER_TOP = 1 << 12, + TRACKER_BOTTOM = 1 << 13, +*/ + }; + + enum layOrientation { + HORIZONTAL, + VERTICAL + }; + + /** + * This is the base class for all kind of panes. + */ + class ETSGUI_EXT_CLASS PaneBase { + friend class ETSLayoutMgr; + friend class CPaneBase; + friend class CPane; + + public: + + /** + * Informs the caller how much of the given space this pane would + * like to receive in horizontal direction + */ + virtual int getConstrainHorz(int sizeParent) = 0; + + + /** + * Informs the caller how much of the given space this pane would + * like to receive in vertical direction + */ + virtual int getConstrainVert(int sizeParent) = 0; + + /** + * Informs the caller how much of the given space this pane + * minimally need. This would be an absolute Value if + * the mode contains ABSOLUTE_HORZ or an explicit minimum + * value, else nMinConstrain + */ + virtual int getMinConstrainHorz() = 0; + /** + * Informs the caller if there is an restriction for maximum + * space this pane needs. Return -1 for unrestricted (GREEDY + * or RELATIVE) + */ + virtual int getMaxConstrainHorz() = 0; + + /** + * Informs the caller how much of the given space this pane + * minimally need. This would be an absolute Value if + * the mode contains ABSOLUTE_VERT or an explicit minimum + * value, else nMinConstrain + */ + virtual int getMinConstrainVert() = 0; + + /** + * Informs the caller if there is an restriction for maximum + * space this pane needs. Return -1 for unrestricted (GREEDY + * or RELATIVE) + */ + virtual int getMaxConstrainVert() = 0; + + /** + * This will do the actual resize operation after the + * caller computed a new area for this pane + */ + virtual bool resizeTo(CRect& rcNewArea) = 0; + + /** + * Constructor needed pointer to LayoutManager + */ + PaneBase( ETSLayoutMgr* pMgr ) { m_pMgr = pMgr; }; + + /** + * Virtual destructor needed in Container operations + */ + virtual ~PaneBase() {}; + + /** + * Returs the Resize Mode of this pane + */ + DWORD modeResize() { return m_modeResize; }; + + protected: + /** + * How this Item will be resized, a combination of the flags above + */ + DWORD m_modeResize; + + /** + * A pointer to the holding LayoutManager derivate + */ + ETSLayoutMgr* m_pMgr; + }; + + /** + * CPaneBase represents an autopointer to a PaneBase. Use this and you won't have to worry + * about cleaning up any Panes. Also this autopointer lets you return Pane objects + * from function without using pointers (at least you won't see them :) ) + */ + struct ETSGUI_EXT_CLASS PaneHolder + { + PaneHolder(PaneBase* pPane ); + ~PaneHolder(); + + void AddRef(); + void Release(); + + PaneBase* m_pPane; + long m_nRefCount; + }; + + class ETSGUI_EXT_CLASS CPaneBase + { + protected: + PaneHolder* m_pPaneHolder; + + public: + // Standardconstructor + CPaneBase( ); + CPaneBase( PaneBase* pPane ); + CPaneBase( const CPaneBase& other ); + + ~CPaneBase(); + + void operator=( PaneBase* pPane ); + void operator=( const CPaneBase& other ); + PaneBase* operator->() const; + PaneBase* GetPaneBase() { return operator->(); } + + bool IsValid() { return (m_pPaneHolder != 0); } + operator !() { return (m_pPaneHolder == 0); } + + }; + + class Pane; + class ETSGUI_EXT_CLASS CPane : public CPaneBase + { + public: + // Standardconstructor + CPane( ); + CPane( Pane* pPane ); + CPane( const CPane& other ); + + ~CPane(); + + void operator=( Pane* pPane ); + void operator=( const CPane& other ); + Pane* operator->() const; + Pane* GetPane() { return operator->(); } + + CPaneBase ConvertBase() const; + + CPane& operator<< ( const CPane pPane ); + CPane& operator<< ( const CPaneBase pItem ); + }; + + + + /** + * PaneItem represents a single control + */ + class ETSGUI_EXT_CLASS PaneItem : public PaneBase { + friend class ETSLayoutMgr; + friend class Pane; + protected: + /** + * Creates a new PaneItem from an Control. If sizeX or sizeY are 0 + * and modeResize is ABSOLUTE will copy the current dimensions of + * the control to m_sizeX/Y. So the appearance does not change + * from the Dialog Editor + */ + PaneItem( CWnd* pWnd, ETSLayoutMgr* pMgr, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=0, int sizeYMin=0); + + /** + * If your control is not mapped you can name it by its ChildID. Pass + * the pMgr to receive the CWnd* of nID. + * The rest as stated above + */ + PaneItem( UINT nID, ETSLayoutMgr* pMgr, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=0, int sizeYMin=0); + + + public: + /** + * see PaneBase + */ + virtual int getConstrainHorz(int sizeParent); + virtual int getConstrainVert(int sizeParent); + virtual int getMinConstrainHorz(); + virtual int getMinConstrainVert(); + virtual int getMaxConstrainHorz(); + virtual int getMaxConstrainVert(); + virtual bool resizeTo(CRect& rcNewArea); + + bool isDummy() { return (m_hwndCtrl == 0); } + + protected: + friend class ETSLayoutPropertySheet; + + /** + * The horizontal size of the control (see m_modeResize) + */ + int m_sizeX; + int m_sizeXMin; + + /** + * The vertical size of the control (see m_modeResize) + */ + int m_sizeY; + int m_sizeYMin; + + /** + * Child Control pointer + */ + HWND m_hwndCtrl; + + /** + * Combo box needs special treatment + */ + bool m_bComboSpecial; + }; + + + /** + * This class encapsulates a Subpane (and indeed the root Pane too) + * it is a container of PaneBase* which it will recursivly resize + */ + class ETSGUI_EXT_CLASS Pane : public PaneBase { + friend class ETSLayoutMgr; + friend class CPaneBase; + friend class CPane; + + protected: + /** + * Tell the pane in which direction it is positioned. A HORIZONTAL pane + * arranges it's subpanes from left to right, a VERTICAL from top to bottom + */ + Pane( ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 ); + + public: + /** + * If your control is not mapped you can name it by its ChildID. Pass + * the pMgr to receive the CWnd* of nID. + * The rest as stated above + */ + bool addItem( UINT nID, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=-1, int sizeYMin=-1); + + /** + * Creates a new PaneItem from an Control. If sizeX or sizeY are 0 + * and modeResize is ABSOLUTE will copy the current dimensions of + * the control to m_sizeX/Y. So the appearance does not change + * from the Dialog Editor + */ + bool addItem( CWnd* pWnd, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=-1, int sizeYMin=-1); + + + /** + * Add a whitespace Item (paneNull) of variable size with + * a minimum size of 0 + */ + bool addItemGrowing(); + + /** + * Add a whitespace Item (paneNull) with fixed size + */ + bool addItemFixed(int size); + + /** + * Add a whitespace Item (paneNull) of fixed size based on the + * current layout (as in the dialog template). Based on the layout + * of the pane vertical or horizontal spacing is considered + * + * First argument is the left (top) item for a HORIZONTAL (VERTICAL) pane + */ + bool addItemSpaceBetween( CWnd* pWndFirst, CWnd* pWndSecond ); + bool addItemSpaceBetween( UINT nIDFirst, UINT nIDSecond ); + + + /** + * Add a whitespace Item (paneNull) of fixed size based on the + * size of another item + */ + bool addItemSpaceLike( CWnd* pWnd ); + bool addItemSpaceLike( UINT nID ); + + + /** + * Add an item to the pane, appending at the end. This may be either obtained + * by a call to ETSLayoutMgr::item() or one of the ETSLayoutMgr::paneXXX() calls + */ + bool addPane( CPaneBase pItem ); + bool addPane( CPane pSubpane, layResizeMode modeResize, int sizeSecondary /* = 0 */); + + virtual int getConstrainHorz(int sizeParent); + virtual int getConstrainVert(int sizeParent); + virtual int getMinConstrainHorz(); + virtual int getMinConstrainVert(); + virtual int getMaxConstrainHorz(); + virtual int getMaxConstrainVert(); + virtual bool resizeTo(CRect& rcNewArea); + + /** + * The destructor takes care of destroying all Subpanes and items + */ + virtual ~Pane(); + + /** + * Access to the orientation of this pane + */ + layOrientation getOrientation() { return m_Orientation; }; + + + protected: + + int resizeToAbsolute(int& availSpace, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax); + + bool resizeToRelative(int& availSpace, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax); + + bool resizeToGreedy( int& availSpace, int nGreedy, CArray& sizePrimary, + CArray& sizeMin, CArray& sizeMax); + + /** + * The orientation of the pane. Keep in mind that all subpanes + * must have the complementary orientation, i.e. a VERTICAL + * pane must have all HORIZONTAL SubPanes (or normal Items + * of course) + */ + layOrientation m_Orientation; + + /** + * This array holds the pointers to the Items/SubPanes + */ + CArray m_paneItems; + + /** + * The secondary constrain + */ + int m_sizeSecondary; + + /** + * Size of gap between childs + */ + int m_sizeBorder; + int m_sizeExtraBorder; + }; + + + /** + * This class encapsulates a Subpane which is a Tab + * it will use calls to AdjustRect to position it's + * childs + */ + class ETSGUI_EXT_CLASS PaneTab : public Pane + { + friend class ETSLayoutMgr; + + protected: + /** + * Tell the pane in which direction it is positioned. A HORIZONTAL pane + * arranges it's subpanes from left to right, a VERTICAL from top to bottom + */ + PaneTab( CTabCtrl* pTab, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 ); + + public: + virtual int getConstrainHorz(int sizeParent); + virtual int getConstrainVert(int sizeParent); + virtual int getMinConstrainHorz(); + virtual int getMinConstrainVert(); + virtual int getMaxConstrainHorz(); + virtual int getMaxConstrainVert(); + virtual bool resizeTo(CRect& rcNewArea); + + private: + CTabCtrl* m_pTab; + }; + + /** + * This class encapsulates a Subpane which is a Static + * it will use calls to AdjustRect to position it's + * childs + */ + class ETSGUI_EXT_CLASS PaneCtrl : public Pane + { + friend class ETSLayoutMgr; + protected: + /** + * Tell the pane in which direction it is positioned. A HORIZONTAL pane + * arranges it's subpanes from left to right, a VERTICAL from top to bottom + */ + PaneCtrl( CWnd* pCtrl, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0); + PaneCtrl( UINT nID, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0 ); + + public: + + virtual int getConstrainHorz(int sizeParent); + virtual int getConstrainVert(int sizeParent); + virtual int getMinConstrainHorz(); + virtual int getMinConstrainVert(); + virtual int getMaxConstrainHorz(); + virtual int getMaxConstrainVert(); + virtual bool resizeTo(CRect& rcNewArea); + + private: + HWND m_hwndCtrl; + int m_sizeTopExtra; + }; + + + + + ETSLayoutMgr(CWnd* pWnd) { m_pWnd = pWnd; m_sizeRootBorders = CSize(5,5); }; + virtual ~ETSLayoutMgr(); + + virtual CRect GetRect() { CRect r; m_pWnd->GetClientRect(r); return r; }; + CWnd* m_pWnd; + CWnd* GetWnd() { return m_pWnd; }; + void setRootBorders(int cx, int cy) { m_sizeRootBorders = CSize(cx,cy); }; + + /** + * Pass this for a pseudo Pane with no content + */ + static CWnd* paneNull; + + /** + * Loads the current position and size from the registry using a supplied + * key. Will be loaded with AfxGetApp()->WriteProfileXXX(). You may + * specify a subfolder (e.g. Load( _T("MyDialog\\Layout") ); ). Will + * load the following keys: + * + * - lpstrRegKey+"SizeX"; + * - lpstrRegKey+"SizeY"; + * - lpstrRegKey+"PosX"; + * - lpstrRegKey+"PosY"; + * + * Is automatically called during OnActivate() if key specified in + * constructor. + */ + bool Load(LPCTSTR lpstrRegKey); + + /** + * Store the current position and size to the registry using a supplied + * key. Will be stored with AfxGetApp()->WriteProfileXXX(). You may + * specify a subfolder (e.g. Save( _T("MyDialog\\Layout") ); ). Will + * create the following keys: + * + * - lpstrRegKey+"SizeX"; + * - lpstrRegKey+"SizeY"; + * - lpstrRegKey+"PosX"; + * - lpstrRegKey+"PosY"; + * + * Is automatically called during DestroyWindow() if key specified in + * constructor. + */ + bool Save(LPCTSTR lpstrRegKey); + + /** + * Updates the layout after you specify the new + * layout + */ + virtual void UpdateLayout(); + virtual void UpdateLayout(CPane p) { + if(m_RootPane.IsValid()) + { + // free old root + m_RootPane = 0; + } + m_RootPane = p; + UpdateLayout(); + } + + /** + * Does the actual Layout, called from OnSize() + * Default implementation does nothing, use + * IMPLEMENT_LAYOUT in your derived class (see above) + */ + virtual void Layout(CRect& rcClient); + + + /** + * Erasing only the these parts of the client area where + * there is no child window. Extra-code for group-boxes + * included! + */ + void EraseBkgnd(CDC* pDC); + + /** + * Helperfunctions for the stream-interface. For usage see sample Application + * and/or documentation. + */ + + /** + * Create a new Pane. You may specify the resize + * mode for both directions. If you add modes for the secondary direction + * (i.e. *_VERT for a HORIZONTAL pane) then sizeSecondary is used as it's + * size. If you do not specify sizeSecondary and the mode is ABSOLUTE_VERT + * it will be computed as the maximum Height of all SubPanes (the same is + * true for VERTICAL panes and subpanes with *_HORZ) + */ + CPane pane( layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeSecondary = 0); + + /** + * Create one of the special control panes. Parameter are like pane(). For + * additional information see documentation + */ + CPane paneTab( CTabCtrl* pTab, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeSecondary = 0); + CPane paneCtrl( UINT nID, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0, int sizeSecondary = 0); + CPane paneCtrl( CWnd* pCtrl, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0, int sizeSecondary = 0); + + /** + * Creates a new PaneItem for an Control. If sizeX or sizeY are 0 + * and modeResize is ABSOLUTE will copy the current dimensions of + * the control to m_sizeX/Y. So the appearance does not change + * from the Dialog Editor. size*Min = -1 means: do not make smaller + * than in Dialog Template. + */ + CPaneBase item(UINT nID, layResizeMode modeResize = GREEDY, int sizeX =0, int sizeY =0, int sizeXMin =-1, int sizeYMin =-1); + CPaneBase item(CWnd* pWnd, layResizeMode modeResize = GREEDY, int sizeX =0, int sizeY =0, int sizeXMin =-1, int sizeYMin =-1); + + + /** + * Add a whitespace Item (paneNull) of variable size with + * a minimum size of 0 + */ + CPaneBase itemGrowing(layOrientation orientation); + + /** + * Add a whitespace Item (paneNull) with fixed size + */ + CPaneBase itemFixed(layOrientation orientation, int sizePrimary); + + /** + * Add a whitespace Item (paneNull) of fixed size based on the + * current layout (as in the dialog template). Based on the layout + * of the pane vertical or horizontal spacing is considered + * + * First argument is the left (top) item for a HORIZONTAL (VERTICAL) pane + */ + CPaneBase itemSpaceBetween( layOrientation orientation, CWnd* pWndFirst, CWnd* pWndSecond ); + CPaneBase itemSpaceBetween( layOrientation orientation, UINT nIDFirst, UINT nIDSecond ); + + /** + * Add a whitespace Item (paneNull) of fixed size based on the + * size of another item + */ + CPaneBase itemSpaceLike( layOrientation orientation, CWnd* pWnd ); + CPaneBase itemSpaceLike( layOrientation orientation, UINT nID ); + +protected: + /** + * This holds the root pane. Fill in InitDialog() + */ + CPane m_RootPane; + + /** + * Create a root pane + */ + CPane CreateRoot(layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 ) + { + if(m_RootPane.IsValid()) + { + // free old root + m_RootPane = 0; + } + m_RootPane = new Pane( this, orientation, sizeBorder, sizeExtraBorder); + return m_RootPane; + } + + /** + * Key in Registry where to store Size + */ + CString m_strRegStore; + + /** + * Borders around root + */ + CSize m_sizeRootBorders; +}; + +inline ETSLayoutMgr::layResizeMode operator|(const ETSLayoutMgr::layResizeMode m1, + const ETSLayoutMgr::layResizeMode m2) + { return (ETSLayoutMgr::layResizeMode)( (DWORD)m1|(DWORD)m2); } + + +/** + * Base class for the Layout function. Derive your own class + * from this or derive it from CDialog and modify _all_ + * references to CDialog to ETSLayoutDialog + */ +class ETSGUI_EXT_CLASS ETSLayoutDialog : public CBaseDialog, protected ETSLayoutMgr +{ +// Construction +public: + ETSLayoutDialog(UINT nID, CWnd* pParent = NULL, LPCTSTR strName = NULL, bool bGripper = true); // standard constructor + +// Dialog Data + //{{AFX_DATA(ETSLayoutDialog) + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(ETSLayoutDialog) + //}}AFX_VIRTUAL + +// Implementation +protected: + // Generated message map functions + //{{AFX_MSG(ETSLayoutDialog) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + virtual BOOL OnInitDialog(); + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + virtual CRect GetRect(); + + bool m_bGripper; + CStatusBar m_StatusBar; +}; + + +/** + * Base class for the Layout function. Derive your own class + * from this or derive it from CDialog and modify _all_ + * references to CFormView to ETSLayoutFormView + */ +class ETSGUI_EXT_CLASS ETSLayoutFormView : public CBaseFormView, public ETSLayoutMgr +{ +// Construction + DECLARE_DYNAMIC(ETSLayoutFormView) +public: + ETSLayoutFormView(UINT nID, LPCTSTR strName = NULL); // standard constructor + virtual ~ETSLayoutFormView(); + +// virtual void UpdateLayout(); + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(ETSLayoutDialog) + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(ETSLayoutDialog) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +/** + * Base class for the Layout function. Derive your own class + * from this or derive it from CBCGDialogBar/CDialogBar and + * modify _all_ references to CBCGDialogBar/CDialogBar to + * ETSLayoutDialogBar + */ +class ETSGUI_EXT_CLASS ETSLayoutDialogBar : public CBaseDialogBar, protected ETSLayoutMgr +{ +// Construction +public: +#ifdef CS_HELP + ETSLayoutDialogBar(UINT nID); +#else + ETSLayoutDialogBar(); +#endif + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(ETSLayoutDialogBar) + virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode); + //}}AFX_VIRTUAL + + /** + * Override this to define Layout + */ + virtual BOOL Initialize() { return false; }; + +// Implementation +protected: + // Generated message map functions + //{{AFX_MSG(ETSLayoutDialogBar) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnDestroy(); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + LRESULT OnInitDialog(WPARAM, LPARAM); + DECLARE_MESSAGE_MAP() + + virtual CRect GetRect(); + bool m_bInitialized; +}; + + + +/************************************************** + ** ! the code is only tested for modal sheets ! ** + **************************************************/ + + +/** + * Resizable PropertySheet. Use this class standalone + * or as your base class (instead CProptertySheet) + */ +class ETSGUI_EXT_CLASS ETSLayoutPropertySheet : public CPropertySheet, protected ETSLayoutMgr +{ + DECLARE_DYNAMIC(ETSLayoutPropertySheet) + DECLARE_LAYOUT() + +// Construction +public: + ETSLayoutPropertySheet(UINT nIDCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0, LPCTSTR strName=NULL, bool bGripper=true); + ETSLayoutPropertySheet(LPCTSTR pszCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0, LPCTSTR strName=NULL, bool bGripper=true); + +// Operationen +public: + void SetAutoDestroy() { m_bAutoDestroy = true; } + void SetAutoDestroyPages() { m_bAutoDestroyPages = true; } + void ModelessWithButtons() { m_bModelessButtons = true; } +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(ETSLayoutPropertySheet) + public: + virtual BOOL OnInitDialog(); + virtual void PostNcDestroy(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~ETSLayoutPropertySheet(); + + // Generated message map functions +protected: + //{{AFX_MSG(ETSLayoutPropertySheet) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + afx_msg void OnDestroy(); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + void Resize(int cx, int cy); + +friend class ETSLayoutPropertyPage; + + void Init(LPCTSTR strName, bool bGripper); + CRect m_rcStart; + CRect m_rcPage; + bool m_bGripper; + CStatusBar m_StatusBar; + CPaneBase m_ItemTab; + bool m_bAutoDestroy; + bool m_bAutoDestroyPages; + bool m_bModelessButtons; +}; + +/** + * Base class for the Layout function. Derive your own class + * from this or derive it from CPropertyPage and + * modify _all_ references to CPropertyPage to + * ETSLayoutPropertyPage + */ +class ETSGUI_EXT_CLASS ETSLayoutPropertyPage : public CBasePropertyPage, protected ETSLayoutMgr +{ +friend class ETSLayoutPropertySheet; + + DECLARE_DYNCREATE(ETSLayoutPropertyPage) + +// Konstruktion +public: + ETSLayoutPropertyPage( ); + ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption = 0 ); + ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption = 0 ); + + ~ETSLayoutPropertyPage(); + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(ETSLayoutPropertyPage) + public: + virtual BOOL OnSetActive(); + //}}AFX_VIRTUAL + +// Implementation +protected: + // Generated message map functions + //{{AFX_MSG(ETSLayoutPropertyPage) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); + virtual BOOL OnInitDialog(); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnWindowPosChanging( WINDOWPOS* lpwndpos ); + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + virtual CRect GetRect(); + bool m_bLockMove; +}; + + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(ETS_LAYOUTMGR_INCLUDED_) -- cgit v1.1 From fcc74cd15b9c82be4e12e6efdab2844c0a20dc76 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:35 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 2) --- IvyProbe/ETSLayout.h | 53 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/IvyProbe/ETSLayout.h b/IvyProbe/ETSLayout.h index 9ff5693..b532c56 100644 --- a/IvyProbe/ETSLayout.h +++ b/IvyProbe/ETSLayout.h @@ -4,7 +4,7 @@ // / _/ / / / / ___ ___ ____ // // /__/ /_/ / / / // _/_ _/ // // _________/ / / / // _/ / / // -// __(c) 1998-9_/ /___//_/ /_/ // +// (c) 1998-2000_/ /___//_/ /_/ // // // //////////////////////////////////////////// // all rights reserved // @@ -46,6 +46,8 @@ #endif // _MSC_VER >= 1000 // DialogMgr.h : header file // +namespace ETSLayout +{ #ifdef CS_HELP typedef ETSCSHelpDialog CBaseDialog; @@ -58,8 +60,9 @@ typedef CDialogBar CBaseDialogBar; typedef CPropertyPage CBasePropertyPage; #endif +} -// Support for CBCGDialogBar instead of CDialogBar available +// Support for CBCGDialogBar instead of CDialogBar available: // you just have to change the typedef to CBaseDialogBar #ifndef ETSGUI_EXT_CLASS @@ -74,30 +77,22 @@ * Controls whether the Icon is automatically set to IDR_MAINFRAME */ #define _AUTO_SET_ICON - /** - * Use this helper in your derived class as usually - * - * example: [MyDerivedClass.h] - * - * CMyDerivedClass::CMyDerivedClass() - * { - * DECLARE_LAYOUT(); - * ... - * - * FUNCTION: Connects the layout mechanism to your class + * Forward class declarations */ -#define DECLARE_LAYOUT() \ -virtual void Layout(CRect& rcClient) \ - { \ - if(rcClient.Height() && rcClient.Width() && m_RootPane.IsValid()) \ - m_RootPane->resizeTo(rcClient); \ - } +class ETSLayoutDialog; +class ETSLayoutDialogBar; +class ETSLayoutFormView; +class ETSLayoutMgr; +class ETSLayoutPropertyPage; +class ETSLayoutPropertySheet; + /** - * This is a NOOP now + * These are NOOPs now */ +#define DECLARE_LAYOUT() #define IMPLEMENT_LAYOUT() /** @@ -374,7 +369,8 @@ public: friend class ETSLayoutMgr; friend class CPaneBase; friend class CPane; - + friend class ETSLayoutPropertySheet; + protected: /** * Tell the pane in which direction it is positioned. A HORIZONTAL pane @@ -733,7 +729,7 @@ inline ETSLayoutMgr::layResizeMode operator|(const ETSLayoutMgr::layResizeMode m * from this or derive it from CDialog and modify _all_ * references to CDialog to ETSLayoutDialog */ -class ETSGUI_EXT_CLASS ETSLayoutDialog : public CBaseDialog, protected ETSLayoutMgr +class ETSGUI_EXT_CLASS ETSLayoutDialog : public ETSLayout::CBaseDialog, protected ETSLayoutMgr { // Construction public: @@ -773,7 +769,7 @@ protected: * from this or derive it from CDialog and modify _all_ * references to CFormView to ETSLayoutFormView */ -class ETSGUI_EXT_CLASS ETSLayoutFormView : public CBaseFormView, public ETSLayoutMgr +class ETSGUI_EXT_CLASS ETSLayoutFormView : public ETSLayout::CBaseFormView, public ETSLayoutMgr { // Construction DECLARE_DYNAMIC(ETSLayoutFormView) @@ -808,7 +804,7 @@ protected: * modify _all_ references to CBCGDialogBar/CDialogBar to * ETSLayoutDialogBar */ -class ETSGUI_EXT_CLASS ETSLayoutDialogBar : public CBaseDialogBar, protected ETSLayoutMgr +class ETSGUI_EXT_CLASS ETSLayoutDialogBar : public ETSLayout::CBaseDialogBar, protected ETSLayoutMgr { // Construction public: @@ -829,6 +825,7 @@ public: * Override this to define Layout */ virtual BOOL Initialize() { return false; }; + virtual void UpdateLayout(); // Implementation protected: @@ -859,7 +856,6 @@ protected: class ETSGUI_EXT_CLASS ETSLayoutPropertySheet : public CPropertySheet, protected ETSLayoutMgr { DECLARE_DYNAMIC(ETSLayoutPropertySheet) - DECLARE_LAYOUT() // Construction public: @@ -872,6 +868,9 @@ public: void SetAutoDestroyPages() { m_bAutoDestroyPages = true; } void ModelessWithButtons() { m_bModelessButtons = true; } // Overrides + virtual void AddMainArea(CPane paneRoot, CPaneBase itemTab); + virtual void AddButtons(CPane paneBottom); + // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(ETSLayoutPropertySheet) public: @@ -915,7 +914,7 @@ friend class ETSLayoutPropertyPage; * modify _all_ references to CPropertyPage to * ETSLayoutPropertyPage */ -class ETSGUI_EXT_CLASS ETSLayoutPropertyPage : public CBasePropertyPage, protected ETSLayoutMgr +class ETSGUI_EXT_CLASS ETSLayoutPropertyPage : public ETSLayout::CBasePropertyPage, protected ETSLayoutMgr { friend class ETSLayoutPropertySheet; @@ -947,11 +946,13 @@ protected: afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnWindowPosChanging( WINDOWPOS* lpwndpos ); afx_msg void OnDestroy(); + afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos); //}}AFX_MSG DECLARE_MESSAGE_MAP() virtual CRect GetRect(); bool m_bLockMove; + bool m_bResetBuddyOnNextTimeVisible; }; -- cgit v1.1 From a1d3578395e6bf404a017e8157882fc4e441e71c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:37 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/IvyProbe Commentaire: (vss 3) --- IvyProbe/ETSLayout.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/ETSLayout.h b/IvyProbe/ETSLayout.h index b532c56..3bdc0da 100644 --- a/IvyProbe/ETSLayout.h +++ b/IvyProbe/ETSLayout.h @@ -269,7 +269,7 @@ public: PaneBase* GetPaneBase() { return operator->(); } bool IsValid() { return (m_pPaneHolder != 0); } - operator !() { return (m_pPaneHolder == 0); } + bool operator !() { return (m_pPaneHolder == 0); } }; -- cgit v1.1 From ef2674c77032ad6fa7bc30049d588576ed9163ec Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:39 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:07 Créé (vss 1) --- IvyProbe/HistoryEdit.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 IvyProbe/HistoryEdit.cpp diff --git a/IvyProbe/HistoryEdit.cpp b/IvyProbe/HistoryEdit.cpp new file mode 100644 index 0000000..cdb1f0f --- /dev/null +++ b/IvyProbe/HistoryEdit.cpp @@ -0,0 +1,82 @@ +/* + * HistoryEdit.cpp + * + * Description: + * CHistoryEdit implementation + * + * A CEdit subclass that allows you to display a text history + * of events. + * + * Author: + * Ravi Bhavnani (ravib@datablast.net) + * + * Revision History: + * 15 Mar 1998 rab Original version + */ + +#include "stdafx.h" +#include "HistoryEdit.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit + +CHistoryEdit::CHistoryEdit() +{ + m_bSelectable = FALSE; +} + +CHistoryEdit::~CHistoryEdit() +{ +} + +BEGIN_MESSAGE_MAP(CHistoryEdit, CEdit) + //{{AFX_MSG_MAP(CHistoryEdit) + ON_WM_SETFOCUS() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit operations + +void CHistoryEdit::AppendString + (CString str) +// +// Purpose: +// Appends a text string to the history buffer. +// +// Returns: +// None. +// +{ +CString strBuffer; // current contents of edit control + + // Append string + GetWindowText (strBuffer); + if (!strBuffer.IsEmpty()) + strBuffer += "\r\n"; + strBuffer += str; + SetWindowText (strBuffer); + + // Scroll the edit control + LineScroll (GetLineCount(), 0); +} + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit message handlers + +void CHistoryEdit::OnSetFocus(CWnd* pOldWnd) +{ + // Don't allow user to select text + if (m_bSelectable) + CEdit::OnSetFocus (pOldWnd); + else + pOldWnd->SetFocus(); +} + +// End EditHistroy.cpp \ No newline at end of file -- cgit v1.1 From 90c8b869cad1f5b0a3212d4a06dd1180e0abb881 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:42 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:07 Créé (vss 1) --- IvyProbe/HistoryEdit.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 IvyProbe/HistoryEdit.h diff --git a/IvyProbe/HistoryEdit.h b/IvyProbe/HistoryEdit.h new file mode 100644 index 0000000..7e2a112 --- /dev/null +++ b/IvyProbe/HistoryEdit.h @@ -0,0 +1,65 @@ +/* + * HistoryEdit.h + * + * Description: + * CHistoryEdit interface + * + * A CEdit subclass that allows you to display a scrolling history + * of text entries. + * + * Author: + * Ravi Bhavnani (ravib@datablast.net) + * + * Revision History: + * 15 Mar 1998 rab Original version + */ + +#ifndef _HistoryEdit_h_ +#define _HistoryEdit_h_ + +///////////////////////////////////////////////////////////////////////////// +// CHistoryEdit window + +class CHistoryEdit : public CEdit +{ +// Construction +public: + CHistoryEdit(); + +// Attributes +public: + +// Operations +public: + void AppendString (CString str); + BOOL IsSelectable() { return m_bSelectable; } + void AllowSelection (BOOL bAllowSelect) { m_bSelectable = bAllowSelect; } + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CHistoryEdit) + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CHistoryEdit(); + + // Generated message map functions +protected: + //{{AFX_MSG(CHistoryEdit) + afx_msg void OnSetFocus(CWnd* pOldWnd); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +protected: + BOOL m_bSelectable; // flag: user can select text in control +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif + +// End HistoryEdit.h \ No newline at end of file -- cgit v1.1 From 6fb054266e7c43885881887a8f717bd762a4e3be Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:49 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 14:18 Créé Commentaire: (vss 1) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 795 +++++++++++++++++++++++++++++++++++ 1 file changed, 795 insertions(+) create mode 100644 IvyProbe/InstIvyProbe/InstIvy.vdproj diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj new file mode 100644 index 0000000..389bdf1 --- /dev/null +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -0,0 +1,795 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:InstIvyProbe" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_0088293C6A2C43C2B498B6990246F26D" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EBC1E4E12A6A4272A4D45B939944839E" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EBC1E4E12A6A4272A4D45B939944839E" + "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EC83C83518AD43C0AF167831168E4416" + "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstIvy.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstIvyProbe.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_CE403128DFF0A5ADE28CDD21A4FA625C" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_6810FE826BCA47699640BBE149228D19" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_7E2D48F81BBB4C3E85E07FE19427A508" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_8C785282719E44848328E169496E2F49" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:IvyProbe" + "ProductCode" = "8:{3C66BD6E-59BA-414B-9051-C66F305DC0CD}" + "PackageCode" = "8:{0A1F09BB-96BD-4EBE-B109-183904AEA43B}" + "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:IvyProbe" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_3CFCEFACEAB64F9DA1C4D0BF5DB65AF2" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_30BD5DA559A740258BDEE3A9A52D6355" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_8D5BE70E7653487A9D35B4DAFC2995D0" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_58B700D8E98A4CE9BF8CF67ADA0B9C99" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_022345F0521F463B86815C734F1947EA" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_DFD3FCE52AD84DFA98F21EA2D4E5300C" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_1E6A5A56054A4B9287DEFFDCBE6D9F4B" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_FCFBFF119DAD44FAAA795641018FC42F" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_39324675C5D24D6FB11A1F89C6A50838" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_7BA271C57B2945AB90EA4E3B81F2352C" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BCB663D68120404AAE84380C98DEDD48" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A791F39DCDF943EFB51C225AB3BA8A50" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_97F78B3941544772A5EC49812DAD11D5" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_CDE881ABAB7C4726B526DDBA45B4BDE1" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_B620B069BE064ABA87B90550DA692268" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C345A4ECF4334C0299B1BF93AF8DD68B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_DA4D7E682468404D838C7F08BA4E6124" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_F349BA4DD2FF4C538D17E0E5A2E0CF02" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_F6158F17384D4EE89AE7C515234C4964" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_7F57E9802DDD47E7BB8A93A6650F6889" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A37E56D6E5634F64BA1D3DEF6558A9B1" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_CC824A96BD584085B9BF72FA74944CD7" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_0088293C6A2C43C2B498B6990246F26D" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EBC1E4E12A6A4272A4D45B939944839E" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EC83C83518AD43C0AF167831168E4416" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_0276FC79DC124BFD9F646E903DA13A3D" + { + "SourcePath" = "8:..\\..\\C++\\Bus\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" + { + "SourcePath" = "8:..\\..\\Program Files\\Release\\IvyProbe.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From e6c8f97de1714aeaf420f62fbbcbcbc6711fc568 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:51 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 14:19 Archivé dans $/InstIvyProbe Commentaire: (vss 2) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 389bdf1..d7c0e13 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -195,12 +195,12 @@ "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:CENA" + "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" "Title" = "8:IvyProbe" "Subject" = "8:" - "ARPCONTACT" = "8:CENA" + "ARPCONTACT" = "8:CENA PII" "Keywords" = "8:" "ARPCOMMENTS" = "8:" "ARPURLINFOABOUT" = "8:" -- cgit v1.1 From 25057acc4a0f394fa9ba2088d34b262dfabe57d0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:52 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:35 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 3) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 76 ++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index d7c0e13..870f6f5 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -3,7 +3,7 @@ "VSVersion" = "3:701" "ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" "IsWebType" = "8:FALSE" -"ProjectName" = "8:InstIvyProbe" +"ProjectName" = "8:Install" "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" @@ -15,44 +15,44 @@ { "Entry" { - "MsmKey" = "8:_0088293C6A2C43C2B498B6990246F26D" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_641B2A5C0F3C40F1A43EBACE5A05A8FE" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EBC1E4E12A6A4272A4D45B939944839E" + "MsmKey" = "8:_E7885381EBD8450FB013F7D503C988CB" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EBC1E4E12A6A4272A4D45B939944839E" - "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "MsmKey" = "8:_E7885381EBD8450FB013F7D503C988CB" + "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EC83C83518AD43C0AF167831168E4416" - "OwnerKey" = "8:_0276FC79DC124BFD9F646E903DA13A3D" + "MsmKey" = "8:_EAB15F657FA44BBEA153E32B0CA46731" + "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" "MsmSig" = "8:_UNDEFINED" } } @@ -79,7 +79,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\InstIvyProbe.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyProbe.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -188,13 +188,13 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" - "ProductCode" = "8:{3C66BD6E-59BA-414B-9051-C66F305DC0CD}" - "PackageCode" = "8:{0A1F09BB-96BD-4EBE-B109-183904AEA43B}" + "ProductCode" = "8:{2B7D1859-E738-4EC8-9D0C-7C51D267F7BE}" + "PackageCode" = "8:{D093C886-AB21-4B3B-923D-648D6D52A9FE}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.0.0" + "ProductVersion" = "8:1.1.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" @@ -686,7 +686,7 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_0088293C6A2C43C2B498B6990246F26D" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_641B2A5C0F3C40F1A43EBACE5A05A8FE" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -700,7 +700,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EBC1E4E12A6A4272A4D45B939944839E" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E7885381EBD8450FB013F7D503C988CB" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -714,7 +714,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EC83C83518AD43C0AF167831168E4416" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EAB15F657FA44BBEA153E32B0CA46731" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -731,9 +731,9 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_0276FC79DC124BFD9F646E903DA13A3D" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\C++\\Bus\\Ivy\\Release\\Ivy.dll" + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -753,15 +753,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_740A387FD38C478F8BE46DD1967CFE61" { - "SourcePath" = "8:..\\..\\Program Files\\Release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -781,6 +781,34 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B619C71BCF024E7FBF55B2FECBD581F4" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:ContentFiles" "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" -- cgit v1.1 From 03517bb225923313cd4a07b453681aff0ad45896 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:55 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:31 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 4) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 148 ++++++++++++----------------------- 1 file changed, 50 insertions(+), 98 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 870f6f5..d1d223b 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,46 +15,28 @@ { "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_641B2A5C0F3C40F1A43EBACE5A05A8FE" + "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E7885381EBD8450FB013F7D503C988CB" + "MsmKey" = "8:_B243ED47D69336DC2A0939257105AD26" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } - "Entry" - { - "MsmKey" = "8:_E7885381EBD8450FB013F7D503C988CB" - "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_EAB15F657FA44BBEA153E32B0CA46731" - "OwnerKey" = "8:_740A387FD38C478F8BE46DD1967CFE61" - "MsmSig" = "8:_UNDEFINED" - } } "Configurations" { @@ -113,10 +95,10 @@ } "File" { - "{A582A373-4685-4296-BEFE-614B80A702C3}:_CE403128DFF0A5ADE28CDD21A4FA625C" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" { - "SourcePath" = "8:WSOCK32.dll" - "TargetName" = "8:WSOCK32.dll" + "SourcePath" = "8:MSVCR71D.dll" + "TargetName" = "8:MSVCR71D.dll" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" "Condition" = "8:" @@ -129,7 +111,47 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_42C15A47159F1A326ACC1442FEE5A1FA" + { + "SourcePath" = "8:MSVCP71D.dll" + "TargetName" = "8:MSVCP71D.dll" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_B243ED47D69336DC2A0939257105AD26" + { + "SourcePath" = "8:MFC71D.DLL" + "TargetName" = "8:MFC71D.DLL" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -686,54 +708,12 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_641B2A5C0F3C40F1A43EBACE5A05A8FE" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E7885381EBD8450FB013F7D503C988CB" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EAB15F657FA44BBEA153E32B0CA46731" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } } "ProjectOutput" { "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Debug\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -759,34 +739,6 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_740A387FD38C478F8BE46DD1967CFE61" - { - "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B619C71BCF024E7FBF55B2FECBD581F4" { "SourcePath" = "8:" -- cgit v1.1 From 0b54c52e0f383e606182644605fb19198b35ada0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:57 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:49 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 5) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 148 +++++++++++++++++++++++------------ 1 file changed, 98 insertions(+), 50 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index d1d223b..f2a90d5 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,14 +15,14 @@ { "Entry" { - "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" + "MsmKey" = "8:_23E96E753EDE45A589E0E7CFB598B6C2" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_23E96E753EDE45A589E0E7CFB598B6C2" + "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -33,10 +33,28 @@ } "Entry" { - "MsmKey" = "8:_B243ED47D69336DC2A0939257105AD26" + "MsmKey" = "8:_895C8AF2F25941B8A9C3D14DB4F392DB" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } + "Entry" + { + "MsmKey" = "8:_C3FE25FF1A854AF188FC46F575194D34" + "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F532513605F14AF0805D02C68D73096A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } } "Configurations" { @@ -95,30 +113,10 @@ } "File" { - "{A582A373-4685-4296-BEFE-614B80A702C3}:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" - { - "SourcePath" = "8:MSVCR71D.dll" - "TargetName" = "8:MSVCR71D.dll" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_42C15A47159F1A326ACC1442FEE5A1FA" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_CE403128DFF0A5ADE28CDD21A4FA625C" { - "SourcePath" = "8:MSVCP71D.dll" - "TargetName" = "8:MSVCP71D.dll" + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" "Condition" = "8:" @@ -131,27 +129,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_B243ED47D69336DC2A0939257105AD26" - { - "SourcePath" = "8:MFC71D.DLL" - "TargetName" = "8:MFC71D.DLL" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -211,7 +189,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" "ProductCode" = "8:{2B7D1859-E738-4EC8-9D0C-7C51D267F7BE}" - "PackageCode" = "8:{D093C886-AB21-4B3B-923D-648D6D52A9FE}" + "PackageCode" = "8:{B0D9A2F9-46EC-4A56-863C-8217C453B10C}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" @@ -708,12 +686,54 @@ } "MergeModule" { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_23E96E753EDE45A589E0E7CFB598B6C2" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_895C8AF2F25941B8A9C3D14DB4F392DB" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_C3FE25FF1A854AF188FC46F575194D34" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } } "ProjectOutput" { "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Debug\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -767,6 +787,34 @@ { } } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F532513605F14AF0805D02C68D73096A" + { + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } } "VJSharpPlugin" { -- cgit v1.1 From 598c867a8beaf09676e8c68db9cb1cbef686c99f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:08:58 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:41 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 6) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 130 +++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 53 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index f2a90d5..9df9500 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -3,7 +3,7 @@ "VSVersion" = "3:701" "ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" "IsWebType" = "8:FALSE" -"ProjectName" = "8:Install" +"ProjectName" = "8:InstallIvyProbe" "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" @@ -15,32 +15,38 @@ { "Entry" { - "MsmKey" = "8:_23E96E753EDE45A589E0E7CFB598B6C2" + "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_23E96E753EDE45A589E0E7CFB598B6C2" + "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_895C8AF2F25941B8A9C3D14DB4F392DB" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" + "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C3FE25FF1A854AF188FC46F575194D34" - "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B243ED47D69336DC2A0939257105AD26" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -113,6 +119,66 @@ } "File" { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" + { + "SourcePath" = "8:MSVCR71D.dll" + "TargetName" = "8:MSVCR71D.dll" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_42C15A47159F1A326ACC1442FEE5A1FA" + { + "SourcePath" = "8:MSVCP71D.dll" + "TargetName" = "8:MSVCP71D.dll" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_B243ED47D69336DC2A0939257105AD26" + { + "SourcePath" = "8:MFC71D.DLL" + "TargetName" = "8:MFC71D.DLL" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{A582A373-4685-4296-BEFE-614B80A702C3}:_CE403128DFF0A5ADE28CDD21A4FA625C" { "SourcePath" = "8:WSOCK32.dll" @@ -686,54 +752,12 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_23E96E753EDE45A589E0E7CFB598B6C2" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_895C8AF2F25941B8A9C3D14DB4F392DB" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_C3FE25FF1A854AF188FC46F575194D34" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } } "ProjectOutput" { "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Debug\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -789,7 +813,7 @@ } "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F532513605F14AF0805D02C68D73096A" { - "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "SourcePath" = "8:..\\..\\Ivy\\Debug\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" -- cgit v1.1 From 5735fc81980dd1f0c505a36fd3fc8ff8a2105aea Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:01 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 10:52 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 7) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 188 +++++++++-------------------------- 1 file changed, 46 insertions(+), 142 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 9df9500..5c7e842 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,50 +15,20 @@ { "Entry" { - "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" - "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_42C15A47159F1A326ACC1442FEE5A1FA" - "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B243ED47D69336DC2A0939257105AD26" + "MsmKey" = "8:_B14AED86FE884C009F4AC9751AD4D18D" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_F532513605F14AF0805D02C68D73096A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F532513605F14AF0805D02C68D73096A" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_D8C594BE1B9D4DAF9249260CD8F3983A" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } } @@ -119,86 +89,6 @@ } "File" { - "{A582A373-4685-4296-BEFE-614B80A702C3}:_1CA310AF2FDF5EAD53AB0FBF6465B9E3" - { - "SourcePath" = "8:MSVCR71D.dll" - "TargetName" = "8:MSVCR71D.dll" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_42C15A47159F1A326ACC1442FEE5A1FA" - { - "SourcePath" = "8:MSVCP71D.dll" - "TargetName" = "8:MSVCP71D.dll" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_B243ED47D69336DC2A0939257105AD26" - { - "SourcePath" = "8:MFC71D.DLL" - "TargetName" = "8:MFC71D.DLL" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_CE403128DFF0A5ADE28CDD21A4FA625C" - { - "SourcePath" = "8:WSOCK32.dll" - "TargetName" = "8:WSOCK32.dll" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } } "FileType" { @@ -369,6 +259,20 @@ } "Shortcut" { + "{478F747B-8505-45D1-9AAE-8C3B645C26E3}:_B5814460213041F499A85C9521ED219F" + { + "Name" = "8:IvyProbe" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:0" + "Transitive" = "11:FALSE" + "Target" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "Folder" = "8:_7E2D48F81BBB4C3E85E07FE19427A508" + "WorkingFolder" = "8:_8C785282719E44848328E169496E2F49" + "Icon" = "8:" + "Feature" = "8:" + } } "UserInterface" { @@ -752,12 +656,40 @@ } "MergeModule" { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_B14AED86FE884C009F4AC9751AD4D18D" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_D8C594BE1B9D4DAF9249260CD8F3983A" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } } "ProjectOutput" { "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Debug\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -811,34 +743,6 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F532513605F14AF0805D02C68D73096A" - { - "SourcePath" = "8:..\\..\\Ivy\\Debug\\Ivy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_8C785282719E44848328E169496E2F49" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } } "VJSharpPlugin" { -- cgit v1.1 From caeb9e5f63e90c02f6ba44a96615bc66b75dd6bf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:02 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 8) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 316 ++++++++++++++++++++++++++++------- 1 file changed, 255 insertions(+), 61 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 5c7e842..5de0f4d 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -1,7 +1,7 @@ "DeployProject" { -"VSVersion" = "3:701" -"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" "IsWebType" = "8:FALSE" "ProjectName" = "8:InstallIvyProbe" "LanguageId" = "3:1036" @@ -15,22 +15,64 @@ { "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_1D801A7EE44D49369F603CD8C484C564" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B14AED86FE884C009F4AC9751AD4D18D" + "MsmKey" = "8:_286F2393B0174197984735489436A6A0" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D8C594BE1B9D4DAF9249260CD8F3983A" + "MsmKey" = "8:_286F2393B0174197984735489436A6A0" + "OwnerKey" = "8:_1D801A7EE44D49369F603CD8C484C564" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_286F2393B0174197984735489436A6A0" + "OwnerKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_36DE29478DD946ED8B923C81E77CAD23" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } + "Entry" + { + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CDD2F450AD2043DCAB5947901229278C" + "OwnerKey" = "8:_36DE29478DD946ED8B923C81E77CAD23" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DF4A3CC201874ECCAFED12A9ACE93481" + "OwnerKey" = "8:_286F2393B0174197984735489436A6A0" + "MsmSig" = "8:_UNDEFINED" + } } "Configurations" { @@ -49,6 +91,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } "Release" { @@ -65,6 +118,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } } "Deployable" @@ -84,18 +148,35 @@ { } } - "Feature" - { - } "File" { + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CE403128DFF0A5ADE28CDD21A4FA625C" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { } "Folder" { - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_6810FE826BCA47699640BBE149228D19" + "{1525181F-901A-416C-8A58-119130FE478E}:_6810FE826BCA47699640BBE149228D19" { "Name" = "8:#1916" "AlwaysCreate" = "11:FALSE" @@ -106,7 +187,7 @@ { } } - "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_7E2D48F81BBB4C3E85E07FE19427A508" + "{1525181F-901A-416C-8A58-119130FE478E}:_7E2D48F81BBB4C3E85E07FE19427A508" { "Name" = "8:#1919" "AlwaysCreate" = "11:FALSE" @@ -115,11 +196,22 @@ "Property" = "8:ProgramMenuFolder" "Folders" { + "{9EF0B969-E518-4E46-987F-47570745A589}:_E78B932249794DE1A6AD0A860FBA7DA8" + { + "Name" = "8:SDER PII" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:_F25DEE7C682F4C46A5C9D75BC2CEDD0A" + "Folders" + { + } + } } } - "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_8C785282719E44848328E169496E2F49" + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_8C785282719E44848328E169496E2F49" { - "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" "AlwaysCreate" = "11:FALSE" "Condition" = "8:" @@ -144,19 +236,20 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" - "ProductCode" = "8:{2B7D1859-E738-4EC8-9D0C-7C51D267F7BE}" - "PackageCode" = "8:{B0D9A2F9-46EC-4A56-863C-8217C453B10C}" + "ProductCode" = "8:{F526A4E7-6E14-4D82-8C87-F483AEE19CEC}" + "PackageCode" = "8:{349D7642-CCBC-4876-933A-8364F38A2A46}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.1.0" - "Manufacturer" = "8:CENA PII" + "InstallAllUsers" = "11:TRUE" + "ProductVersion" = "8:1.1.1" + "Manufacturer" = "8:SDER PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" "Title" = "8:IvyProbe" "Subject" = "8:" - "ARPCONTACT" = "8:CENA PII" + "ARPCONTACT" = "8:SDER PII" "Keywords" = "8:" "ARPCOMMENTS" = "8:" "ARPURLINFOABOUT" = "8:" @@ -164,6 +257,10 @@ "ARPIconIndex" = "3:0" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:1" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" } "Registry" { @@ -171,7 +268,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_3CFCEFACEAB64F9DA1C4D0BF5DB65AF2" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3CFCEFACEAB64F9DA1C4D0BF5DB65AF2" { "Name" = "8:Software" "Condition" = "8:" @@ -180,7 +277,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_30BD5DA559A740258BDEE3A9A52D6355" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_30BD5DA559A740258BDEE3A9A52D6355" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -205,7 +302,7 @@ { "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_8D5BE70E7653487A9D35B4DAFC2995D0" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_8D5BE70E7653487A9D35B4DAFC2995D0" { "Name" = "8:Software" "Condition" = "8:" @@ -214,7 +311,7 @@ "Transitive" = "11:FALSE" "Keys" { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_58B700D8E98A4CE9BF8CF67ADA0B9C99" + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_58B700D8E98A4CE9BF8CF67ADA0B9C99" { "Name" = "8:[Manufacturer]" "Condition" = "8:" @@ -259,7 +356,7 @@ } "Shortcut" { - "{478F747B-8505-45D1-9AAE-8C3B645C26E3}:_B5814460213041F499A85C9521ED219F" + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_B5814460213041F499A85C9521ED219F" { "Name" = "8:IvyProbe" "Arguments" = "8:" @@ -268,7 +365,7 @@ "IconIndex" = "3:0" "Transitive" = "11:FALSE" "Target" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "Folder" = "8:_7E2D48F81BBB4C3E85E07FE19427A508" + "Folder" = "8:_E78B932249794DE1A6AD0A860FBA7DA8" "WorkingFolder" = "8:_8C785282719E44848328E169496E2F49" "Icon" = "8:" "Feature" = "8:" @@ -276,17 +373,17 @@ } "UserInterface" { - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_022345F0521F463B86815C734F1947EA" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_022345F0521F463B86815C734F1947EA" { "Name" = "8:#1901" "Sequence" = "3:2" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_DFD3FCE52AD84DFA98F21EA2D4E5300C" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DFD3FCE52AD84DFA98F21EA2D4E5300C" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminProgressDlg.wid" @@ -320,17 +417,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_1E6A5A56054A4B9287DEFFDCBE6D9F4B" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1E6A5A56054A4B9287DEFFDCBE6D9F4B" { "Name" = "8:#1902" "Sequence" = "3:1" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_FCFBFF119DAD44FAAA795641018FC42F" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FCFBFF119DAD44FAAA795641018FC42F" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFinishedDlg.wid" @@ -364,23 +461,23 @@ } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_39324675C5D24D6FB11A1F89C6A50838" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_39324675C5D24D6FB11A1F89C6A50838" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdBasicDialogs.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_7BA271C57B2945AB90EA4E3B81F2352C" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7BA271C57B2945AB90EA4E3B81F2352C" { "Name" = "8:#1902" "Sequence" = "3:2" "Attributes" = "3:3" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_BCB663D68120404AAE84380C98DEDD48" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BCB663D68120404AAE84380C98DEDD48" { "Sequence" = "3:100" - "DisplayName" = "8:Terminé" + "DisplayName" = "8:Finished" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" @@ -401,17 +498,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A791F39DCDF943EFB51C225AB3BA8A50" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A791F39DCDF943EFB51C225AB3BA8A50" { "Name" = "8:#1901" "Sequence" = "3:1" "Attributes" = "3:2" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_97F78B3941544772A5EC49812DAD11D5" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_97F78B3941544772A5EC49812DAD11D5" { "Sequence" = "3:100" - "DisplayName" = "8:Progression" + "DisplayName" = "8:Progress" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdProgressDlg.wid" @@ -445,17 +542,17 @@ } } } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_CDE881ABAB7C4726B526DDBA45B4BDE1" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CDE881ABAB7C4726B526DDBA45B4BDE1" { "Name" = "8:#1900" "Sequence" = "3:1" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_B620B069BE064ABA87B90550DA692268" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B620B069BE064ABA87B90550DA692268" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdConfirmDlg.wid" @@ -474,10 +571,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C345A4ECF4334C0299B1BF93AF8DD68B" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C345A4ECF4334C0299B1BF93AF8DD68B" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdWelcomeDlg.wid" @@ -522,10 +619,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_DA4D7E682468404D838C7F08BA4E6124" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DA4D7E682468404D838C7F08BA4E6124" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdFolderDlg.wid" @@ -542,27 +639,40 @@ "Setting" = "3:1" "UsePlugInResources" = "11:TRUE" } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } } } } } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_F349BA4DD2FF4C538D17E0E5A2E0CF02" + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_F349BA4DD2FF4C538D17E0E5A2E0CF02" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdUserInterface.wim" } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_F6158F17384D4EE89AE7C515234C4964" + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F6158F17384D4EE89AE7C515234C4964" { "Name" = "8:#1900" "Sequence" = "3:2" "Attributes" = "3:1" "Dialogs" { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_7F57E9802DDD47E7BB8A93A6650F6889" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7F57E9802DDD47E7BB8A93A6650F6889" { "Sequence" = "3:300" - "DisplayName" = "8:Confirmer l'installation" + "DisplayName" = "8:Confirm Installation" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" @@ -581,10 +691,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A37E56D6E5634F64BA1D3DEF6558A9B1" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A37E56D6E5634F64BA1D3DEF6558A9B1" { "Sequence" = "3:100" - "DisplayName" = "8:Bienvenue" + "DisplayName" = "8:Welcome" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" @@ -629,10 +739,10 @@ } } } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_CC824A96BD584085B9BF72FA74944CD7" + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CC824A96BD584085B9BF72FA74944CD7" { "Sequence" = "3:200" - "DisplayName" = "8:Dossier d'installation" + "DisplayName" = "8:Installation Folder" "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:FALSE" "SourcePath" = "8:\\VsdAdminFolderDlg.wid" @@ -656,30 +766,58 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_B14AED86FE884C009F4AC9751AD4D18D" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_286F2393B0174197984735489436A6A0" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:Microsoft_VC80_CRT_x86_x64.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_D8C594BE1B9D4DAF9249260CD8F3983A" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_36DE29478DD946ED8B923C81E77CAD23" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_mfc71_rtl_x86_---.msm" + "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CDD2F450AD2043DCAB5947901229278C" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:TRUE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_DF4A3CC201874ECCAFED12A9ACE93481" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:TRUE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" @@ -687,9 +825,65 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_57A5694E20F44D878FE43630B5B52BF5" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1074423A2F6F490CA85D9B808D40BAA0" + { + "SourcePath" = "8:..\\..\\x64\\release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1D801A7EE44D49369F603CD8C484C564" + { + "SourcePath" = "8:..\\..\\x64\\release\\pcre.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_8C785282719E44848328E169496E2F49" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\x64\\release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -715,7 +909,7 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B619C71BCF024E7FBF55B2FECBD581F4" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4" { "SourcePath" = "8:" "TargetName" = "8:" -- cgit v1.1 From 04bd56d5f703163e492d89ea1f24c38089654fe4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:04 +0000 Subject: Utilisateur : Fcolin Date : 22/12/05 Heure : 10:09 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 9) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 100 ++++++++++------------------------- 1 file changed, 27 insertions(+), 73 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 5de0f4d..8bac0e9 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,62 +15,44 @@ { "Entry" { - "MsmKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" + "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1D801A7EE44D49369F603CD8C484C564" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_286F2393B0174197984735489436A6A0" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" + "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_286F2393B0174197984735489436A6A0" - "OwnerKey" = "8:_1D801A7EE44D49369F603CD8C484C564" + "MsmKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" + "OwnerKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_286F2393B0174197984735489436A6A0" - "OwnerKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_36DE29478DD946ED8B923C81E77CAD23" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CDD2F450AD2043DCAB5947901229278C" - "OwnerKey" = "8:_36DE29478DD946ED8B923C81E77CAD23" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_1074423A2F6F490CA85D9B808D40BAA0" + "OwnerKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF4A3CC201874ECCAFED12A9ACE93481" - "OwnerKey" = "8:_286F2393B0174197984735489436A6A0" + "MsmKey" = "8:_E82995808C8A47FBA63F06A4DDCB57BB" + "OwnerKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" "MsmSig" = "8:_UNDEFINED" } } @@ -766,25 +748,11 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_286F2393B0174197984735489436A6A0" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_CRT_x86_x64.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:TRUE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_36DE29478DD946ED8B923C81E77CAD23" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_A15C3CE7ECAA48B1AA5AE1373459D91D" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm" + "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86_x64.msm" "Properties" { } @@ -794,25 +762,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CDD2F450AD2043DCAB5947901229278C" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_E82995808C8A47FBA63F06A4DDCB57BB" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:TRUE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_DF4A3CC201874ECCAFED12A9ACE93481" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86_x64.msm" "Properties" { } @@ -825,9 +779,9 @@ } "ProjectOutput" { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1074423A2F6F490CA85D9B808D40BAA0" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" { - "SourcePath" = "8:..\\..\\x64\\release\\Ivy.dll" + "SourcePath" = "8:..\\x64\\Release\\pcre.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -847,15 +801,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1D801A7EE44D49369F603CD8C484C564" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\x64\\release\\pcre.dll" + "SourcePath" = "8:..\\x64\\Release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -875,15 +829,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4" { - "SourcePath" = "8:..\\..\\x64\\release\\IvyProbe.exe" + "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -902,16 +856,16 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" + "OutputGroupCanonicalName" = "8:ContentFiles" "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B874F2E999A34E8B88657D3AE68328DD" { - "SourcePath" = "8:" + "SourcePath" = "8:..\\x64\\Release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -930,8 +884,8 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:ContentFiles" - "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From a02b3a6d2deb7651e3222e3a264d7e0a9d8dba82 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:06 +0000 Subject: Utilisateur : Fcolin Date : 20/01/06 Heure : 13:50 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 10) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 118 ++++++++++++++++++++++++----------- 1 file changed, 82 insertions(+), 36 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 8bac0e9..1cdc4de 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,44 +15,62 @@ { "Entry" { - "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" + "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" - "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "MsmKey" = "8:_190806647E074EEF9E45C86F55A5A133" + "OwnerKey" = "8:_4ADFF1F09F0546128EC1C3BB7C613885" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" - "OwnerKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" + "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" + "MsmKey" = "8:_4ADFF1F09F0546128EC1C3BB7C613885" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_B874F2E999A34E8B88657D3AE68328DD" + "MsmKey" = "8:_B55CE2FB9EEF4AD9B35B004A1D1724F4" + "OwnerKey" = "8:_068231B255BA4CF597D465240FC17EE1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E82995808C8A47FBA63F06A4DDCB57BB" - "OwnerKey" = "8:_A15C3CE7ECAA48B1AA5AE1373459D91D" + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "MsmSig" = "8:_UNDEFINED" } } @@ -90,7 +108,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyProbe.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyProbex86.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -148,7 +166,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -193,7 +211,7 @@ } "{3C67513D-01DD-4637-8A68-80971EB9504F}:_8C785282719E44848328E169496E2F49" { - "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]" + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" "AlwaysCreate" = "11:FALSE" "Condition" = "8:" @@ -219,7 +237,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" "ProductCode" = "8:{F526A4E7-6E14-4D82-8C87-F483AEE19CEC}" - "PackageCode" = "8:{349D7642-CCBC-4876-933A-8364F38A2A46}" + "PackageCode" = "8:{F9355FAA-63EF-4457-A276-E1F3DB043C16}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -239,7 +257,7 @@ "ARPIconIndex" = "3:0" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:1" + "TargetPlatform" = "3:0" "PreBuildEvent" = "8:" "PostBuildEvent" = "8:" "RunPostBuildEvent" = "3:0" @@ -748,30 +766,58 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_A15C3CE7ECAA48B1AA5AE1373459D91D" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_068231B255BA4CF597D465240FC17EE1" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86_x64.msm" + "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_E82995808C8A47FBA63F06A4DDCB57BB" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_190806647E074EEF9E45C86F55A5A133" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86_x64.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4ADFF1F09F0546128EC1C3BB7C613885" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:Microsoft_VC80_MFC_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_B55CE2FB9EEF4AD9B35B004A1D1724F4" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" @@ -779,9 +825,9 @@ } "ProjectOutput" { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0734E8B2079B44C29422ACB2369ED265" { - "SourcePath" = "8:..\\x64\\Release\\pcre.dll" + "SourcePath" = "8:..\\..\\release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -801,15 +847,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" { - "SourcePath" = "8:..\\x64\\Release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\release\\pcre.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -829,15 +875,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:" + "SourcePath" = "8:c:\\users\\fcolin\\program files\\release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -856,16 +902,16 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:ContentFiles" + "OutputGroupCanonicalName" = "8:Built" "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B874F2E999A34E8B88657D3AE68328DD" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4" { - "SourcePath" = "8:..\\x64\\Release\\Ivy.dll" + "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -884,8 +930,8 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" + "OutputGroupCanonicalName" = "8:ContentFiles" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 66a671b5da7e327cd83f78eccd140976302aa814 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:08 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 11) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 64 ++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 1cdc4de..f8f2940 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,62 +15,62 @@ { "Entry" { - "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" - "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "MsmKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_068231B255BA4CF597D465240FC17EE1" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_0734E8B2079B44C29422ACB2369ED265" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_827AA27AD2624E259C908F24DBF828D8" + "OwnerKey" = "8:_9320DA3A60974545BD98E0A01DFE532C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_190806647E074EEF9E45C86F55A5A133" - "OwnerKey" = "8:_4ADFF1F09F0546128EC1C3BB7C613885" + "MsmKey" = "8:_9320DA3A60974545BD98E0A01DFE532C" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4ADFF1F09F0546128EC1C3BB7C613885" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B55CE2FB9EEF4AD9B35B004A1D1724F4" - "OwnerKey" = "8:_068231B255BA4CF597D465240FC17EE1" + "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" + "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_F639FAEF00B1428EBDF34009FAD86322" + "OwnerKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" "MsmSig" = "8:_UNDEFINED" } } @@ -123,7 +123,7 @@ "Enabled" = "11:FALSE" "PromptEnabled" = "11:TRUE" "PrerequisitesLocation" = "2:1" - "Url" = "8:" + "Url" = "8:http://www.tls.cena.fr/products/ivy/download/packages" "ComponentsUrl" = "8:" "Items" { @@ -237,7 +237,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" "ProductCode" = "8:{F526A4E7-6E14-4D82-8C87-F483AEE19CEC}" - "PackageCode" = "8:{F9355FAA-63EF-4457-A276-E1F3DB043C16}" + "PackageCode" = "8:{C9CEBC1A-1557-4483-8966-25FEA160F725}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -246,11 +246,11 @@ "ProductVersion" = "8:1.1.1" "Manufacturer" = "8:SDER PII" "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" + "ARPHELPLINK" = "8:http://www.tls.cena.fr/products/ivy" "Title" = "8:IvyProbe" "Subject" = "8:" "ARPCONTACT" = "8:SDER PII" - "Keywords" = "8:" + "Keywords" = "8:Ivy" "ARPCOMMENTS" = "8:" "ARPURLINFOABOUT" = "8:" "ARPPRODUCTICON" = "8:" @@ -259,7 +259,7 @@ "UseSystemSearchPath" = "11:TRUE" "TargetPlatform" = "3:0" "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" + "PostBuildEvent" = "8:\"$(ProjectDir)..\\..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\"" "RunPostBuildEvent" = "3:0" } "Registry" @@ -766,11 +766,11 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_068231B255BA4CF597D465240FC17EE1" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_827AA27AD2624E259C908F24DBF828D8" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86.msm" "Properties" { } @@ -780,11 +780,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_190806647E074EEF9E45C86F55A5A133" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_9320DA3A60974545BD98E0A01DFE532C" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86.msm" + "SourcePath" = "8:Microsoft_VC80_MFC_x86.msm" "Properties" { } @@ -794,11 +794,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4ADFF1F09F0546128EC1C3BB7C613885" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_EC3961DD6B5E49BCB884EC87E514AEF7" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_MFC_x86.msm" + "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm" "Properties" { } @@ -808,7 +808,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_B55CE2FB9EEF4AD9B35B004A1D1724F4" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_F639FAEF00B1428EBDF34009FAD86322" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" -- cgit v1.1 From f61bc571655accd5856df46a7de945d6dda25909 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:11 +0000 Subject: Utilisateur : Fcolin Date : 10/11/06 Heure : 13:43 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 12) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 58 ++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index f8f2940..8e3adc6 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -21,56 +21,56 @@ } "Entry" { - "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_1486B93EEEB04B74B1C24F8566ED3577" + "OwnerKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_827AA27AD2624E259C908F24DBF828D8" - "OwnerKey" = "8:_9320DA3A60974545BD98E0A01DFE532C" + "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9320DA3A60974545BD98E0A01DFE532C" + "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" + "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_3F76C1261811461981DF48D8B1A436DC" + "OwnerKey" = "8:_CFEFAFB2A3984CD79CCF8A0E2486954C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" - "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F639FAEF00B1428EBDF34009FAD86322" - "OwnerKey" = "8:_EC3961DD6B5E49BCB884EC87E514AEF7" + "MsmKey" = "8:_CFEFAFB2A3984CD79CCF8A0E2486954C" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } } @@ -166,7 +166,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -237,7 +237,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:IvyProbe" "ProductCode" = "8:{F526A4E7-6E14-4D82-8C87-F483AEE19CEC}" - "PackageCode" = "8:{C9CEBC1A-1557-4483-8966-25FEA160F725}" + "PackageCode" = "8:{95A8A0F5-3264-46D3-986E-49849DEAA566}" "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -766,11 +766,11 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_827AA27AD2624E259C908F24DBF828D8" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1486B93EEEB04B74B1C24F8566ED3577" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm" "Properties" { } @@ -780,11 +780,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_9320DA3A60974545BD98E0A01DFE532C" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_2E1B70E1D3E34BF1B830A2B513C59F8D" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_MFC_x86.msm" + "SourcePath" = "8:Microsoft_VC80_CRT_x86_x64.msm" "Properties" { } @@ -794,11 +794,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_EC3961DD6B5E49BCB884EC87E514AEF7" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_3F76C1261811461981DF48D8B1A436DC" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm" "Properties" { } @@ -808,11 +808,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_F639FAEF00B1428EBDF34009FAD86322" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CFEFAFB2A3984CD79CCF8A0E2486954C" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm" + "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm" "Properties" { } @@ -827,7 +827,7 @@ { "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0734E8B2079B44C29422ACB2369ED265" { - "SourcePath" = "8:..\\..\\release\\Ivy.dll" + "SourcePath" = "8:..\\..\\x64\\release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -855,7 +855,7 @@ } "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" { - "SourcePath" = "8:..\\..\\release\\pcre.dll" + "SourcePath" = "8:..\\..\\x64\\release\\pcre.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -883,7 +883,7 @@ } "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:c:\\users\\fcolin\\program files\\release\\IvyProbe.exe" + "SourcePath" = "8:..\\..\\x64\\release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" -- cgit v1.1 From d9e0258f42f6d5b3a3511effc009aac3216c8339 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:12 +0000 Subject: Utilisateur : Fcolin Date : 20/11/06 Heure : 18:38 Archivé dans $/Bus/IvyProbe/InstIvyProbe Commentaire: (vss 13) --- IvyProbe/InstIvyProbe/InstIvy.vdproj | 70 ++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj b/IvyProbe/InstIvyProbe/InstIvy.vdproj index 8e3adc6..4723fde 100644 --- a/IvyProbe/InstIvyProbe/InstIvy.vdproj +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj @@ -15,44 +15,44 @@ { "Entry" { - "MsmKey" = "8:_0734E8B2079B44C29422ACB2369ED265" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_0BD6F02CECD440B69ED6C192591DACC5" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1486B93EEEB04B74B1C24F8566ED3577" - "OwnerKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" + "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4" + "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4" + "OwnerKey" = "8:_60AC32E483D448BD9E9F46857BA217C9" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4" + "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_1EFC5F9E826F4C7E822FFAE03114C84F" + "OwnerKey" = "8:_0DEC983A1D87453191CA274F5F2176F4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2E1B70E1D3E34BF1B830A2B513C59F8D" - "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "MsmKey" = "8:_28A6C3696FE941E1BA95263704863C73" + "OwnerKey" = "8:_0BD6F02CECD440B69ED6C192591DACC5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3F76C1261811461981DF48D8B1A436DC" - "OwnerKey" = "8:_CFEFAFB2A3984CD79CCF8A0E2486954C" + "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -63,14 +63,14 @@ } "Entry" { - "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" - "OwnerKey" = "8:_0734E8B2079B44C29422ACB2369ED265" + "MsmKey" = "8:_60AC32E483D448BD9E9F46857BA217C9" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CFEFAFB2A3984CD79CCF8A0E2486954C" - "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5" + "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C" + "OwnerKey" = "8:_60AC32E483D448BD9E9F46857BA217C9" "MsmSig" = "8:_UNDEFINED" } } @@ -166,7 +166,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -766,11 +766,11 @@ } "MergeModule" { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1486B93EEEB04B74B1C24F8566ED3577" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0BD6F02CECD440B69ED6C192591DACC5" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm" + "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm" "Properties" { } @@ -780,7 +780,7 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_2E1B70E1D3E34BF1B830A2B513C59F8D" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0DEC983A1D87453191CA274F5F2176F4" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -794,11 +794,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_3F76C1261811461981DF48D8B1A436DC" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1EFC5F9E826F4C7E822FFAE03114C84F" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm" "Properties" { } @@ -808,11 +808,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CFEFAFB2A3984CD79CCF8A0E2486954C" + "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_28A6C3696FE941E1BA95263704863C73" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm" + "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm" "Properties" { } @@ -825,9 +825,9 @@ } "ProjectOutput" { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0734E8B2079B44C29422ACB2369ED265" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" { - "SourcePath" = "8:..\\..\\x64\\release\\Ivy.dll" + "SourcePath" = "8:..\\x64\\Release\\pcre.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -847,15 +847,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" { - "SourcePath" = "8:..\\..\\x64\\release\\pcre.dll" + "SourcePath" = "8:..\\x64\\Release\\IvyProbe.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -875,15 +875,15 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5" + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_60AC32E483D448BD9E9F46857BA217C9" { - "SourcePath" = "8:..\\..\\x64\\release\\IvyProbe.exe" + "SourcePath" = "8:..\\x64\\Release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_8C785282719E44848328E169496E2F49" @@ -903,7 +903,7 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 807481fc60708fdb8482ac8373d2f2262c6a3bec Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:15 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 14:18 Créé Commentaire: (vss 1) --- IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc diff --git a/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc b/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc new file mode 100644 index 0000000..7b71a95 --- /dev/null +++ b/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From 179334803ebf8c0a72789f7b4bc80bde747d5592 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:17 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/IvyProbe.cpp | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 IvyProbe/IvyProbe.cpp diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp new file mode 100644 index 0000000..68259e6 --- /dev/null +++ b/IvyProbe/IvyProbe.cpp @@ -0,0 +1,83 @@ +// Test.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "Test.h" +#include "TestDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CTestApp + +BEGIN_MESSAGE_MAP(CTestApp, CWinApp) + //{{AFX_MSG_MAP(CTestApp) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + ON_COMMAND(ID_HELP, CWinApp::OnHelp) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTestApp construction + +CTestApp::CTestApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CTestApp object + +CTestApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CTestApp initialization + +BOOL CTestApp::InitInstance() +{ + // CG: The following block was added by the Windows Sockets component. + { + if (!AfxSocketInit()) + { + AfxMessageBox(CG_IDS_SOCKETS_INIT_FAILED); + return FALSE; + } + + } + AfxEnableControlContainer(); + + // Standard initialization + // If you are not using these features and wish to reduce the size + // of your final executable, you should remove from the following + // the specific initialization routines you do not need. + +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif + + CTestDlg dlg; + m_pMainWnd = &dlg; + int nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + else if (nResponse == IDCANCEL) + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} -- cgit v1.1 From e6a2d8e3d46e0ce4a5d94a261066ffcdfd76ecda Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:18 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:39 Archivé dans $/Bus/Test (vss 2) --- IvyProbe/IvyProbe.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp index 68259e6..e0afcfb 100644 --- a/IvyProbe/IvyProbe.cpp +++ b/IvyProbe/IvyProbe.cpp @@ -16,6 +16,7 @@ static char THIS_FILE[] = __FILE__; BEGIN_MESSAGE_MAP(CTestApp, CWinApp) //{{AFX_MSG_MAP(CTestApp) + ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG @@ -56,12 +57,13 @@ BOOL CTestApp::InitInstance() // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. - +#ifndef UNDER_CE #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif +#endif CTestDlg dlg; m_pMainWnd = &dlg; @@ -81,3 +83,9 @@ BOOL CTestApp::InitInstance() // application, rather than start the application's message pump. return FALSE; } +// App command to run the dialog +void CTestApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} -- cgit v1.1 From 2e62a1c09769fbbc11af46310f1ac4f429294298 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:20 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 3) --- IvyProbe/IvyProbe.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp index e0afcfb..00eca87 100644 --- a/IvyProbe/IvyProbe.cpp +++ b/IvyProbe/IvyProbe.cpp @@ -59,9 +59,9 @@ BOOL CTestApp::InitInstance() // the specific initialization routines you do not need. #ifndef UNDER_CE #ifdef _AFXDLL - Enable3dControls(); // Call this when using MFC in a shared DLL + //Enable3dControls(); // Call this when using MFC in a shared DLL #else - Enable3dControlsStatic(); // Call this when linking to MFC statically + //Enable3dControlsStatic(); // Call this when linking to MFC statically #endif #endif -- cgit v1.1 From be6b2906b41ec652689fa946e84d70fc1f882df4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:22 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 4) --- IvyProbe/IvyProbe.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp index 00eca87..f201abc 100644 --- a/IvyProbe/IvyProbe.cpp +++ b/IvyProbe/IvyProbe.cpp @@ -2,8 +2,8 @@ // #include "stdafx.h" -#include "Test.h" -#include "TestDlg.h" +#include "IvyProbe.h" +#include "IvyProbeDlg.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -14,7 +14,7 @@ static char THIS_FILE[] = __FILE__; ///////////////////////////////////////////////////////////////////////////// // CTestApp -BEGIN_MESSAGE_MAP(CTestApp, CWinApp) +BEGIN_MESSAGE_MAP(CIvyProbeApp, CWinApp) //{{AFX_MSG_MAP(CTestApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // NOTE - the ClassWizard will add and remove mapping macros here. @@ -26,7 +26,7 @@ END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTestApp construction -CTestApp::CTestApp() +CIvyProbeApp::CIvyProbeApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance @@ -35,12 +35,12 @@ CTestApp::CTestApp() ///////////////////////////////////////////////////////////////////////////// // The one and only CTestApp object -CTestApp theApp; +CIvyProbeApp theApp; ///////////////////////////////////////////////////////////////////////////// // CTestApp initialization -BOOL CTestApp::InitInstance() +BOOL CIvyProbeApp::InitInstance() { // CG: The following block was added by the Windows Sockets component. { @@ -51,7 +51,7 @@ BOOL CTestApp::InitInstance() } } - AfxEnableControlContainer(); + //AfxEnableControlContainer(); // Standard initialization // If you are not using these features and wish to reduce the size @@ -60,12 +60,13 @@ BOOL CTestApp::InitInstance() #ifndef UNDER_CE #ifdef _AFXDLL //Enable3dControls(); // Call this when using MFC in a shared DLL + InitCommonControls(); #else //Enable3dControlsStatic(); // Call this when linking to MFC statically #endif #endif - CTestDlg dlg; + CIvyProbeDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) @@ -84,7 +85,7 @@ BOOL CTestApp::InitInstance() return FALSE; } // App command to run the dialog -void CTestApp::OnAppAbout() +void CIvyProbeApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); -- cgit v1.1 From b85b4621a4e9c6103a56aaf80a3215b93b93b517 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:24 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:40 Archivé dans $/Bus/IvyProbe Commentaire: suppression bouton clock start (vss 5) --- IvyProbe/IvyProbe.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp index f201abc..2365dd4 100644 --- a/IvyProbe/IvyProbe.cpp +++ b/IvyProbe/IvyProbe.cpp @@ -42,6 +42,9 @@ CIvyProbeApp theApp; BOOL CIvyProbeApp::InitInstance() { + InitCommonControls(); + CWinApp::InitInstance(); + // CG: The following block was added by the Windows Sockets component. { if (!AfxSocketInit()) @@ -60,7 +63,6 @@ BOOL CIvyProbeApp::InitInstance() #ifndef UNDER_CE #ifdef _AFXDLL //Enable3dControls(); // Call this when using MFC in a shared DLL - InitCommonControls(); #else //Enable3dControlsStatic(); // Call this when linking to MFC statically #endif -- cgit v1.1 From 8b4407ef34db1f87fffbd42d160a1e66904b17e8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:26 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/IvyProbe Commentaire: (vss 6) --- IvyProbe/IvyProbe.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/IvyProbe/IvyProbe.cpp b/IvyProbe/IvyProbe.cpp index 2365dd4..df84f85 100644 --- a/IvyProbe/IvyProbe.cpp +++ b/IvyProbe/IvyProbe.cpp @@ -54,19 +54,6 @@ BOOL CIvyProbeApp::InitInstance() } } - //AfxEnableControlContainer(); - - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. -#ifndef UNDER_CE -#ifdef _AFXDLL - //Enable3dControls(); // Call this when using MFC in a shared DLL -#else - //Enable3dControlsStatic(); // Call this when linking to MFC statically -#endif -#endif CIvyProbeDlg dlg; m_pMainWnd = &dlg; -- cgit v1.1 From 10329c3fb58c6d56f2ea28c40072737e2274d5d4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:29 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/IvyProbe.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 IvyProbe/IvyProbe.h diff --git a/IvyProbe/IvyProbe.h b/IvyProbe/IvyProbe.h new file mode 100644 index 0000000..d70c177 --- /dev/null +++ b/IvyProbe/IvyProbe.h @@ -0,0 +1,49 @@ +// Test.h : main header file for the TEST application +// + +#if !defined(AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CTestApp: +// See Test.cpp for the implementation of this class +// + +class CTestApp : public CWinApp +{ +public: + CTestApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTestApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CTestApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From b969f81a2eccdedbf79cb6c850ece8e6a1d873bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:30 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:39 Archivé dans $/Bus/Test (vss 2) --- IvyProbe/IvyProbe.h | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyProbe/IvyProbe.h b/IvyProbe/IvyProbe.h index d70c177..c1042a2 100644 --- a/IvyProbe/IvyProbe.h +++ b/IvyProbe/IvyProbe.h @@ -34,6 +34,7 @@ public: // Implementation //{{AFX_MSG(CTestApp) + afx_msg void OnAppAbout(); // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG -- cgit v1.1 From 37533c5f88162d5eca205853b54c5d1be59fd012 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:32 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 3) --- IvyProbe/IvyProbe.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbe.h b/IvyProbe/IvyProbe.h index c1042a2..998fd04 100644 --- a/IvyProbe/IvyProbe.h +++ b/IvyProbe/IvyProbe.h @@ -19,10 +19,10 @@ // See Test.cpp for the implementation of this class // -class CTestApp : public CWinApp +class CIvyProbeApp : public CWinApp { public: - CTestApp(); + CIvyProbeApp(); // Overrides // ClassWizard generated virtual function overrides -- cgit v1.1 From 463b38558ef9be23aff66c36112184db5518f68d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:35 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/IvyProbe.rc | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 IvyProbe/IvyProbe.rc diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc new file mode 100644 index 0000000..7d994fc --- /dev/null +++ b/IvyProbe/IvyProbe.rc @@ -0,0 +1,224 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 12, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif\r\n" + "#include ""res\\Test.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""l.fra\\afxres.rc"" // Standard components\r\n" + "#endif\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON DISCARDABLE "res\\Test.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "A propos de Test" +FONT 8, "MS Sans Serif" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "Test version 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 1997",IDC_STATIC,40,25,119,8 + DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP +END + +IDD_TEST_DIALOG DIALOGEX 0, 0, 185, 149 +STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | + WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "Test" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "QUIT",IDOK,128,14,50,14 + EDITTEXT IDC_BUSNUMBER,13,14,46,14,ES_AUTOHSCROLL | ES_WANTRETURN | + ES_NUMBER + PUSHBUTTON "Start",IDC_START,71,14,44,14 + CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,16,91,10,51 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,30,91,10,51 + CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,58,91,10,51 + CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,72,91,10,51 + CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,86,91,10,51 + CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,100,91,10,51 + CONTROL "Slider1",IDC_SLIDER7,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,114,91,10,51 + CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,44,91,10,51 + EDITTEXT IDC_TEXT,7,36,171,52,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_READONLY +END + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040C04B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Application MFC Test\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "Test\0" + VALUE "LegalCopyright", "Copyright (C) 1997\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "Test.EXE\0" + VALUE "ProductName", "Application Test\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Traduction", 0x40c, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 210 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END + + IDD_TEST_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 178 + TOPMARGIN, 7 + BOTTOMMARGIN, 142 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUTBOX "&A propos de Test..." + CG_IDS_SOCKETS_INIT_FAILED "Windows sockets initialization failed." +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE 12, 1 +#pragma code_page(1252) +#endif +#include "res\Test.rc2" // non-Microsoft Visual C++ edited resources +#include "l.fra\afxres.rc" // Standard components +#endif +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From 3a04c6aee7a5b559268024c10f5854287615b62e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:36 +0000 Subject: Utilisateur : Fcolin Date : 22/12/98 Heure : 16:54 Archivé dans $/Bus/Test Commentaire: modif ligne message a emettre (vss 2) --- IvyProbe/IvyProbe.rc | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 7d994fc..fd0ef46 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -83,35 +83,37 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END -IDD_TEST_DIALOG DIALOGEX 0, 0, 185, 149 +IDD_TEST_DIALOG DIALOGEX 0, 0, 185, 195 STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Test" FONT 8, "MS Sans Serif" BEGIN - DEFPUSHBUTTON "QUIT",IDOK,128,14,50,14 + PUSHBUTTON "QUIT",IDOK,128,14,50,14 EDITTEXT IDC_BUSNUMBER,13,14,46,14,ES_AUTOHSCROLL | ES_WANTRETURN | ES_NUMBER PUSHBUTTON "Start",IDC_START,71,14,44,14 CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,16,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,31,92,10,51 CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,30,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,45,92,10,51 CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,58,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,73,92,10,51 CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,72,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,87,92,10,51 CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,86,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,101,92,10,51 CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,100,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,115,92,10,51 CONTROL "Slider1",IDC_SLIDER7,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,114,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,129,92,10,51 CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,44,91,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,59,92,10,51 EDITTEXT IDC_TEXT,7,36,171,52,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_MSG,7,147,171,13,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_WANTRETURN END @@ -179,7 +181,7 @@ BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 178 TOPMARGIN, 7 - BOTTOMMARGIN, 142 + BOTTOMMARGIN, 188 END END #endif // APSTUDIO_INVOKED -- cgit v1.1 From fe1e735f29344487ef9eea71531a1a1048239998 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:38 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 16:22 Archivé dans $/Bus/Test (vss 3) --- IvyProbe/IvyProbe.rc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index fd0ef46..d6c4699 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -90,10 +90,10 @@ EXSTYLE WS_EX_APPWINDOW CAPTION "Test" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "QUIT",IDOK,128,14,50,14 - EDITTEXT IDC_BUSNUMBER,13,14,46,14,ES_AUTOHSCROLL | ES_WANTRETURN | + PUSHBUTTON "QUIT",IDOK,160,15,21,14 + EDITTEXT IDC_BUSNUMBER,5,14,125,14,ES_AUTOHSCROLL | ES_WANTRETURN | ES_NUMBER - PUSHBUTTON "Start",IDC_START,71,14,44,14 + PUSHBUTTON "Start",IDC_START,135,15,19,14 CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,31,92,10,51 CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_VERT | -- cgit v1.1 From d8d315cf5a79bd7bcb2284baf2d981ba1f46364d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:40 +0000 Subject: Utilisateur : Fcolin Date : 6/01/00 Heure : 11:15 Archivé dans $/Bus/Test Commentaire: ajout bind to msg (vss 4) --- IvyProbe/IvyProbe.rc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index d6c4699..f6c07d2 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -112,8 +112,12 @@ BEGIN TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,59,92,10,51 EDITTEXT IDC_TEXT,7,36,171,52,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY - EDITTEXT IDC_MSG,7,147,171,13,ES_MULTILINE | ES_AUTOVSCROLL | + EDITTEXT IDC_MSG,29,147,149,13,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN + EDITTEXT IDC_BIND,29,169,149,13,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_WANTRETURN + LTEXT "Bind:",IDC_STATIC,7,169,16,8 + LTEXT "Msg:",IDC_STATIC,7,148,14,12 END -- cgit v1.1 From dfb076b5747af6197f7b9bf2b67a62bbaf01e140 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:42 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 11:49 Archivé dans $/Bus/Test Commentaire: modif boite resize et combo box (vss 5) --- IvyProbe/IvyProbe.rc | 60 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index f6c07d2..6fe385e 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -83,41 +83,42 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END -IDD_TEST_DIALOG DIALOGEX 0, 0, 185, 195 -STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU +IDD_TEST_DIALOG DIALOGEX 0, 0, 157, 205 +STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "Test" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "QUIT",IDOK,160,15,21,14 - EDITTEXT IDC_BUSNUMBER,5,14,125,14,ES_AUTOHSCROLL | ES_WANTRETURN | + EDITTEXT IDC_BUSNUMBER,7,14,120,14,ES_AUTOHSCROLL | ES_WANTRETURN | ES_NUMBER - PUSHBUTTON "Start",IDC_START,135,15,19,14 + PUSHBUTTON "Start",IDC_START,131,15,19,14 CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,31,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,7,90,10,51 CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,45,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,21,90,10,51 CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,73,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,49,90,10,51 CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,87,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,63,90,10,51 CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,101,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,77,90,10,51 CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,115,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,91,90,10,51 CONTROL "Slider1",IDC_SLIDER7,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,129,92,10,51 + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,105,90,10,51 CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,59,92,10,51 - EDITTEXT IDC_TEXT,7,36,171,52,ES_MULTILINE | ES_AUTOVSCROLL | + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,35,90,10,51 + EDITTEXT IDC_TEXT,7,36,140,52,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY - EDITTEXT IDC_MSG,29,147,149,13,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_WANTRETURN - EDITTEXT IDC_BIND,29,169,149,13,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_WANTRETURN - LTEXT "Bind:",IDC_STATIC,7,169,16,8 - LTEXT "Msg:",IDC_STATIC,7,148,14,12 + LTEXT "Bind:",IDC_STATIC_BIND,7,172,16,8 + LTEXT "Msg:",IDC_STATIC_MSG,7,148,16,12 + COMBOBOX IDC_MSG,26,146,100,82,CBS_DROPDOWN | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Send",IDC_SEND,128,145,21,14 + PUSHBUTTON "Bind",IDC_BIND,129,170,21,14 + COMBOBOX IDC_REGEXP,26,171,100,66,CBS_DROPDOWN | CBS_SORT | + WS_VSCROLL | WS_TABSTOP END @@ -183,9 +184,9 @@ BEGIN IDD_TEST_DIALOG, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 178 + RIGHTMARGIN, 150 TOPMARGIN, 7 - BOTTOMMARGIN, 188 + BOTTOMMARGIN, 198 END END #endif // APSTUDIO_INVOKED @@ -193,6 +194,19 @@ END ///////////////////////////////////////////////////////////////////////////// // +// Dialog Info +// + +IDD_TEST_DIALOG DLGINIT +BEGIN + IDC_REGEXP, 0x403, 5, 0 +0x2e28, 0x292a, "\000" + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// // String Table // -- cgit v1.1 From 9b89bfb02369fae8d44316dce3aafa071a17cfff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:44 +0000 Subject: Utilisateur : Fcolin Date : 16/03/00 Heure : 9:27 Archivé dans $/Bus/Test (vss 6) --- IvyProbe/IvyProbe.rc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 6fe385e..c8e8970 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -90,8 +90,7 @@ EXSTYLE WS_EX_APPWINDOW CAPTION "Test" FONT 8, "MS Sans Serif" BEGIN - EDITTEXT IDC_BUSNUMBER,7,14,120,14,ES_AUTOHSCROLL | ES_WANTRETURN | - ES_NUMBER + EDITTEXT IDC_BUSNUMBER,7,14,120,14,ES_AUTOHSCROLL PUSHBUTTON "Start",IDC_START,131,15,19,14 CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,7,90,10,51 @@ -109,8 +108,6 @@ BEGIN TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,105,90,10,51 CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,35,90,10,51 - EDITTEXT IDC_TEXT,7,36,140,52,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_READONLY LTEXT "Bind:",IDC_STATIC_BIND,7,172,16,8 LTEXT "Msg:",IDC_STATIC_MSG,7,148,16,12 COMBOBOX IDC_MSG,26,146,100,82,CBS_DROPDOWN | CBS_SORT | @@ -119,6 +116,8 @@ BEGIN PUSHBUTTON "Bind",IDC_BIND,129,170,21,14 COMBOBOX IDC_REGEXP,26,171,100,66,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_TEXT,7,36,143,53,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL END -- cgit v1.1 From abaf38bf54043da9aeb1f30359ccbb80939237a3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:46 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 15:21 Archivé dans $/Bus/Test (vss 7) --- IvyProbe/IvyProbe.rc | 55 ++++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index c8e8970..37084b3 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -83,41 +83,32 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END -IDD_TEST_DIALOG DIALOGEX 0, 0, 157, 205 +IDD_TEST_DIALOG DIALOGEX 0, 0, 158, 165 STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "Test" FONT 8, "MS Sans Serif" BEGIN - EDITTEXT IDC_BUSNUMBER,7,14,120,14,ES_AUTOHSCROLL - PUSHBUTTON "Start",IDC_START,131,15,19,14 - CONTROL "Slider1",IDC_SLIDER0,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,7,90,10,51 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,21,90,10,51 - CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,49,90,10,51 - CONTROL "Slider1",IDC_SLIDER4,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,63,90,10,51 - CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,77,90,10,51 - CONTROL "Slider1",IDC_SLIDER6,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,91,90,10,51 - CONTROL "Slider1",IDC_SLIDER7,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,105,90,10,51 - CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,35,90,10,51 - LTEXT "Bind:",IDC_STATIC_BIND,7,172,16,8 - LTEXT "Msg:",IDC_STATIC_MSG,7,148,16,12 - COMBOBOX IDC_MSG,26,146,100,82,CBS_DROPDOWN | CBS_SORT | + EDITTEXT IDC_BUSNUMBER,2,14,120,14,ES_AUTOHSCROLL + PUSHBUTTON "Start",IDC_START,135,15,19,14 + LTEXT "Bind:",IDC_STATIC_BIND,2,142,16,8 + LTEXT "Msg:",IDC_STATIC_MSG,2,118,16,12 + COMBOBOX IDC_MSG,26,115,100,82,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Send",IDC_SEND,128,145,21,14 - PUSHBUTTON "Bind",IDC_BIND,129,170,21,14 - COMBOBOX IDC_REGEXP,26,171,100,66,CBS_DROPDOWN | CBS_SORT | + DEFPUSHBUTTON "Send",IDC_SEND,128,115,21,14 + PUSHBUTTON "Bind",IDC_BIND,133,139,21,14 + COMBOBOX IDC_REGEXP,26,142,100,66,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_TEXT,7,36,143,53,ES_MULTILINE | ES_AUTOVSCROLL | + EDITTEXT IDC_TEXT,2,31,152,53,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL + PUSHBUTTON "<<",IDC_CLOCK_FAST_BACKWARD,2,93,17,14 + PUSHBUTTON "<",IDC_CLOCK_BACKWARD,24,93,17,14 + PUSHBUTTON ">",IDC_CLOCK_START,68,93,17,14 + PUSHBUTTON "||",IDC_CLOCK_PAUSE,46,93,17,14 + PUSHBUTTON ">>",IDC_CLOCK_FORWARD,112,92,17,14 + PUSHBUTTON ">>>",IDC_CLOCK_FAST_FORWARD,134,92,17,14 + PUSHBUTTON ">:",IDC_CLOCK_RATE,90,92,17,14 END @@ -182,10 +173,10 @@ BEGIN IDD_TEST_DIALOG, DIALOG BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 150 - TOPMARGIN, 7 - BOTTOMMARGIN, 198 + LEFTMARGIN, 2 + RIGHTMARGIN, 154 + TOPMARGIN, 1 + BOTTOMMARGIN, 161 END END #endif // APSTUDIO_INVOKED @@ -198,8 +189,8 @@ END IDD_TEST_DIALOG DLGINIT BEGIN - IDC_REGEXP, 0x403, 5, 0 -0x2e28, 0x292a, "\000" + IDC_REGEXP, 0x403, 2, 0 +0x0028, 0 END -- cgit v1.1 From 155f5a275062f69077e2f183b1529d8e21dc32b5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:48 +0000 Subject: Utilisateur : Fcolin Date : 27/03/02 Heure : 12:29 Archivé dans $/Bus/Test Commentaire: Add file load and save for message (vss 8) --- IvyProbe/IvyProbe.rc | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 37084b3..efbcb92 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -88,18 +88,19 @@ STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "Test" +MENU IDR_MENU1 FONT 8, "MS Sans Serif" BEGIN EDITTEXT IDC_BUSNUMBER,2,14,120,14,ES_AUTOHSCROLL PUSHBUTTON "Start",IDC_START,135,15,19,14 LTEXT "Bind:",IDC_STATIC_BIND,2,142,16,8 LTEXT "Msg:",IDC_STATIC_MSG,2,118,16,12 - COMBOBOX IDC_MSG,26,115,100,82,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_MSG,26,115,100,82,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP DEFPUSHBUTTON "Send",IDC_SEND,128,115,21,14 PUSHBUTTON "Bind",IDC_BIND,133,139,21,14 - COMBOBOX IDC_REGEXP,26,142,100,66,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_REGEXP,26,142,100,66,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP EDITTEXT IDC_TEXT,2,31,152,53,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL PUSHBUTTON "<<",IDC_CLOCK_FAST_BACKWARD,2,93,17,14 @@ -189,14 +190,29 @@ END IDD_TEST_DIALOG DLGINIT BEGIN - IDC_REGEXP, 0x403, 2, 0 -0x0028, + IDC_REGEXP, 0x403, 5, 0 +0x2e28, 0x292a, "\000" 0 END ///////////////////////////////////////////////////////////////////////////// // +// Menu +// + +IDR_MENU1 MENU DISCARDABLE +BEGIN + POPUP "File" + BEGIN + MENUITEM "Save", FILE_SAVE + MENUITEM "Load", FILE_LOAD + END +END + + +///////////////////////////////////////////////////////////////////////////// +// // String Table // -- cgit v1.1 From 9537a137710e3ed788f3c761ba8e619355bc543f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:50 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 9) --- IvyProbe/IvyProbe.rc | 51 +++++++++++++++++++++++---------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index efbcb92..8336ea0 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,7 +13,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// French (France) resources +// Français (France) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) #ifdef _WIN32 @@ -27,18 +27,18 @@ LANGUAGE LANG_FRENCH, SUBLANG_FRENCH // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -65,15 +65,15 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\Test.ico" +IDR_MAINFRAME ICON "res\\Test.ico" ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_ABOUTBOX DIALOG 0, 0, 217, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "A propos de Test" FONT 8, "MS Sans Serif" BEGIN @@ -84,12 +84,12 @@ BEGIN END IDD_TEST_DIALOG DIALOGEX 0, 0, 158, 165 -STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW -CAPTION "Test" +CAPTION "IvyProbe" MENU IDR_MENU1 -FONT 8, "MS Sans Serif" +//FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN EDITTEXT IDC_BUSNUMBER,2,14,120,14,ES_AUTOHSCROLL PUSHBUTTON "Start",IDC_START,135,15,19,14 @@ -113,7 +113,6 @@ BEGIN END -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -136,15 +135,13 @@ BEGIN BEGIN BLOCK "040C04B0" BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Application MFC Test\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "Test\0" - VALUE "LegalCopyright", "Copyright (C) 1997\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "Test.EXE\0" - VALUE "ProductName", "Application Test\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "FileDescription", "Application MFC Test" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "Test" + VALUE "LegalCopyright", "Copyright (C) 1997" + VALUE "OriginalFilename", "Test.EXE" + VALUE "ProductName", "Application Test" + VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" @@ -153,8 +150,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -162,7 +157,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTBOX, DIALOG BEGIN @@ -201,7 +196,7 @@ END // Menu // -IDR_MENU1 MENU DISCARDABLE +IDR_MENU1 MENU BEGIN POPUP "File" BEGIN @@ -216,13 +211,13 @@ END // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDS_ABOUTBOX "&A propos de Test..." CG_IDS_SOCKETS_INIT_FAILED "Windows sockets initialization failed." END -#endif // French (France) resources +#endif // Français (France) resources ///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 14f30024ed1f99b888f8e075180c9281884d3cdc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:52 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 10) --- IvyProbe/IvyProbe.rc | 71 ++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 8336ea0..354e89e 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -50,7 +50,7 @@ BEGIN "LANGUAGE 12, 1\r\n" "#pragma code_page(1252)\r\n" "#endif\r\n" - "#include ""res\\Test.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""res\\IvyProbe.rc2"" // non-Microsoft Visual C++ edited resources\r\n" "#include ""l.fra\\afxres.rc"" // Standard components\r\n" "#endif\0" END @@ -65,51 +65,45 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON "res\\Test.ico" +IDR_MAINFRAME ICON "res\\IvyProbe.ico" ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_ABOUTBOX DIALOG 0, 0, 217, 55 +IDD_ABOUTBOX DIALOGEX 0, 0, 217, 55 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "A propos de Test" -FONT 8, "MS Sans Serif" +CAPTION "A propos de IvyProbe" +FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "Test version 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX + LTEXT "IvyProbe version 1.1",IDC_STATIC,40,10,119,8, + SS_NOPREFIX LTEXT "Copyright (C) 1997",IDC_STATIC,40,25,119,8 DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END -IDD_TEST_DIALOG DIALOGEX 0, 0, 158, 165 +IDD_IVYPROBE_DIALOG DIALOGEX 0, 0, 163, 152 STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "IvyProbe" MENU IDR_MENU1 -//FONT 8, "MS Sans Serif", 0, 0, 0x1 +FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN EDITTEXT IDC_BUSNUMBER,2,14,120,14,ES_AUTOHSCROLL - PUSHBUTTON "Start",IDC_START,135,15,19,14 - LTEXT "Bind:",IDC_STATIC_BIND,2,142,16,8 - LTEXT "Msg:",IDC_STATIC_MSG,2,118,16,12 - COMBOBOX IDC_MSG,26,115,100,82,CBS_DROPDOWN | WS_VSCROLL | + PUSHBUTTON "Start",IDC_START,130,15,25,14 + LTEXT "Bind:",IDC_STATIC_BIND,2,135,17,8 + LTEXT "Msg:",IDC_STATIC_MSG,2,117,17,12 + COMBOBOX IDC_MSG,27,117,100,82,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Send",IDC_SEND,128,115,21,14 - PUSHBUTTON "Bind",IDC_BIND,133,139,21,14 - COMBOBOX IDC_REGEXP,26,142,100,66,CBS_DROPDOWN | WS_VSCROLL | + DEFPUSHBUTTON "Send",IDC_SEND,128,116,27,14 + PUSHBUTTON "Bind",IDC_BIND,128,132,27,14 + COMBOBOX IDC_REGEXP,27,133,100,66,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_TEXT,2,31,152,53,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL - PUSHBUTTON "<<",IDC_CLOCK_FAST_BACKWARD,2,93,17,14 - PUSHBUTTON "<",IDC_CLOCK_BACKWARD,24,93,17,14 - PUSHBUTTON ">",IDC_CLOCK_START,68,93,17,14 - PUSHBUTTON "||",IDC_CLOCK_PAUSE,46,93,17,14 - PUSHBUTTON ">>",IDC_CLOCK_FORWARD,112,92,17,14 - PUSHBUTTON ">>>",IDC_CLOCK_FAST_FORWARD,134,92,17,14 - PUSHBUTTON ">:",IDC_CLOCK_RATE,90,92,17,14 + EDITTEXT IDC_TEXT,2,31,153,82,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL END @@ -133,20 +127,20 @@ VS_VERSION_INFO VERSIONINFO BEGIN BLOCK "StringFileInfo" BEGIN - BLOCK "040C04B0" + BLOCK "040c04b0" BEGIN - VALUE "FileDescription", "Application MFC Test" + VALUE "FileDescription", "Application IvyProbe" VALUE "FileVersion", "1, 0, 0, 1" VALUE "InternalName", "Test" VALUE "LegalCopyright", "Copyright (C) 1997" - VALUE "OriginalFilename", "Test.EXE" - VALUE "ProductName", "Application Test" + VALUE "OriginalFilename", "IvyProbe.exe" + VALUE "ProductName", "IvyProbe" VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" BEGIN - VALUE "Traduction", 0x40c, 1200 + VALUE "Translation", 0x40c, 1200 END END @@ -167,12 +161,12 @@ BEGIN BOTTOMMARGIN, 48 END - IDD_TEST_DIALOG, DIALOG + IDD_IVYPROBE_DIALOG, DIALOG BEGIN LEFTMARGIN, 2 - RIGHTMARGIN, 154 + RIGHTMARGIN, 155 TOPMARGIN, 1 - BOTTOMMARGIN, 161 + BOTTOMMARGIN, 148 END END #endif // APSTUDIO_INVOKED @@ -183,7 +177,7 @@ END // Dialog Info // -IDD_TEST_DIALOG DLGINIT +IDD_IVYPROBE_DIALOG DLGINIT BEGIN IDC_REGEXP, 0x403, 5, 0 0x2e28, 0x292a, "\000" @@ -208,12 +202,19 @@ END ///////////////////////////////////////////////////////////////////////////// // +// RT_MANIFEST +// + +IDR_MANIFEST RT_MANIFEST "res\\IvyProbe.manifest" + +///////////////////////////////////////////////////////////////////////////// +// // String Table // STRINGTABLE BEGIN - IDS_ABOUTBOX "&A propos de Test..." + IDS_ABOUTBOX "&A propos de IvyProbe..." CG_IDS_SOCKETS_INIT_FAILED "Windows sockets initialization failed." END @@ -237,7 +238,7 @@ END LANGUAGE 12, 1 #pragma code_page(1252) #endif -#include "res\Test.rc2" // non-Microsoft Visual C++ edited resources +#include "res\IvyProbe.rc2" // non-Microsoft Visual C++ edited resources #include "l.fra\afxres.rc" // Standard components #endif ///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 60d4af6dbd1c4eb910205f694e35baa54c45e8bc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:55 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/IvyProbe Commentaire: (vss 11) --- IvyProbe/IvyProbe.rc | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/IvyProbe/IvyProbe.rc b/IvyProbe/IvyProbe.rc index 354e89e..6896394 100644 --- a/IvyProbe/IvyProbe.rc +++ b/IvyProbe/IvyProbe.rc @@ -13,7 +13,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Français (France) resources +// French (France) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) #ifdef _WIN32 @@ -78,32 +78,27 @@ CAPTION "A propos de IvyProbe" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "IvyProbe version 1.1",IDC_STATIC,40,10,119,8, - SS_NOPREFIX + LTEXT "IvyProbe version 1.1",IDC_STATIC,40,10,119,8,SS_NOPREFIX LTEXT "Copyright (C) 1997",IDC_STATIC,40,25,119,8 DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP END IDD_IVYPROBE_DIALOG DIALOGEX 0, 0, 163, 152 -STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "IvyProbe" MENU IDR_MENU1 FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - EDITTEXT IDC_BUSNUMBER,2,14,120,14,ES_AUTOHSCROLL + EDITTEXT IDC_BUSNUMBER,4,14,120,14,ES_AUTOHSCROLL PUSHBUTTON "Start",IDC_START,130,15,25,14 - LTEXT "Bind:",IDC_STATIC_BIND,2,135,17,8 - LTEXT "Msg:",IDC_STATIC_MSG,2,117,17,12 - COMBOBOX IDC_MSG,27,117,100,82,CBS_DROPDOWN | WS_VSCROLL | - WS_TABSTOP + LTEXT "Bind:",IDC_STATIC_BIND,4,135,17,8 + LTEXT "Msg:",IDC_STATIC_MSG,4,117,17,12 + COMBOBOX IDC_MSG,27,117,100,82,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "Send",IDC_SEND,128,116,27,14 PUSHBUTTON "Bind",IDC_BIND,128,132,27,14 - COMBOBOX IDC_REGEXP,27,133,100,66,CBS_DROPDOWN | WS_VSCROLL | - WS_TABSTOP - EDITTEXT IDC_TEXT,2,31,153,82,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL + COMBOBOX IDC_REGEXP,27,133,100,66,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_TEXT,4,31,151,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL END @@ -163,7 +158,7 @@ BEGIN IDD_IVYPROBE_DIALOG, DIALOG BEGIN - LEFTMARGIN, 2 + LEFTMARGIN, 4 RIGHTMARGIN, 155 TOPMARGIN, 1 BOTTOMMARGIN, 148 @@ -194,8 +189,10 @@ IDR_MENU1 MENU BEGIN POPUP "File" BEGIN - MENUITEM "Save", FILE_SAVE - MENUITEM "Load", FILE_LOAD + MENUITEM "Save Msg", FILE_SAVE + MENUITEM "Load Msg", FILE_LOAD + MENUITEM "Save Bindings", ID_FILE_SAVEBINDINGS + MENUITEM "Load Bindings", ID_FILE_LOADBINDINGS END END @@ -218,7 +215,7 @@ BEGIN CG_IDS_SOCKETS_INIT_FAILED "Windows sockets initialization failed." END -#endif // Français (France) resources +#endif // French (France) resources ///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 21902db0a855e80e6196f9de26d006c85033f49f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:57 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:21 Créé Commentaire: (vss 1) --- IvyProbe/IvyProbe.sln | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 IvyProbe/IvyProbe.sln diff --git a/IvyProbe/IvyProbe.sln b/IvyProbe/IvyProbe.sln new file mode 100644 index 0000000..22e0629 --- /dev/null +++ b/IvyProbe/IvyProbe.sln @@ -0,0 +1,42 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe.vcproj", "{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "InstIvy\InstIvy.vdproj", "{61A08759-9E99-481F-811D-204553D27E75}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 3 + SccProjectUniqueName0 = IvyProbe.vcproj + SccLocalPath0 = . + CanCheckoutShared = false + SccProjectUniqueName1 = InstIvy\\InstIvy.vdproj + SccProjectName1 = \u0022$/InstIvyProbe\u0022,\u0020IPFAAAAA + SccLocalPath1 = InstIvy + CanCheckoutShared = false + SccLocalPath2 = . + CanCheckoutShared = false + SolutionUniqueID = {CFBC3463-2A25-4A65-99D7-92F0A19DACAB} + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.ActiveCfg = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.Build.0 = Debug|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32 + {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.Build.0 = Release|Win32 + {61A08759-9E99-481F-811D-204553D27E75}.Debug.ActiveCfg = Debug + {61A08759-9E99-481F-811D-204553D27E75}.Debug.Build.0 = Debug + {61A08759-9E99-481F-811D-204553D27E75}.Release.ActiveCfg = Release + {61A08759-9E99-481F-811D-204553D27E75}.Release.Build.0 = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From 54cd4082bd37482695e2bc2b60a526c0a55fca7e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:09:59 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 11:34 Créé Commentaire: (vss 1) --- IvyProbe/IvyProbe.vcproj | 205 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 IvyProbe/IvyProbe.vcproj diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj new file mode 100644 index 0000000..a2a89fc --- /dev/null +++ b/IvyProbe/IvyProbe.vcproj @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From c9c311fa8364e77feaaccf37f31e3fa3585b9e65 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:01 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Archivé dans $/Bus/Test Commentaire: (vss 2) --- IvyProbe/IvyProbe.vcproj | 1 - 1 file changed, 1 deletion(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index a2a89fc..fd395ad 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -24,7 +24,6 @@ Name="VCCLCompilerTool" Optimization="0" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" - RuntimeLibrary="1" UsePrecompiledHeader="3" PrecompiledHeaderThrough="stdafx.h" PrecompiledHeaderFile=".\Debug/Test.pch" -- cgit v1.1 From 24138c5c4cdd7eafc51139877e4ba293a75566cf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:02 +0000 Subject: Utilisateur : Fcolin Date : 2/07/02 Heure : 15:21 Archivé dans $/Bus/Test Commentaire: (vss 3) --- IvyProbe/IvyProbe.vcproj | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index fd395ad..ef16f4f 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -19,11 +19,14 @@ IntermediateDirectory=".\Debug" ConfigurationType="1" UseOfMFC="2" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="2"> + + + -- cgit v1.1 From c5922079b58ea16396e450c376ed77ae65614ad9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:05 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:50 Archivé dans $/Bus/Test Commentaire: (vss 4) --- IvyProbe/IvyProbe.vcproj | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index ef16f4f..a2a89fc 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -19,14 +19,12 @@ IntermediateDirectory=".\Debug" ConfigurationType="1" UseOfMFC="2" - ATLMinimizesCRunTimeLibraryUsage="FALSE" - CharacterSet="2"> + ATLMinimizesCRunTimeLibraryUsage="FALSE"> - - - -- cgit v1.1 From 30805533c3cbb4e9a718930b584ba70580e3cbb2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:06 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/Bus/Test Commentaire: (vss 5) --- IvyProbe/IvyProbe.vcproj | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index a2a89fc..3195334 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -2,7 +2,7 @@ @@ -70,7 +70,7 @@ + Name="VCPostBuildEventTool" + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)" + +"/> + Name="VCPostBuildEventTool" + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)" + +"/> + RelativePath="ETSLayout.cpp"> @@ -140,12 +147,14 @@ Name="Debug|Win32"> @@ -163,7 +172,7 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl"> + RelativePath="ETSLayout.h"> -- cgit v1.1 From da6d688aed1e2eb8847f4c18ae0b4cdf0f96123f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:12 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 8) --- IvyProbe/IvyProbe.vcproj | 76 ++++++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index 96d73a8..0d1aa35 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -1,8 +1,9 @@ - + + Name="VCPostBuildEventTool"/> + + + + Name="VCPostBuildEventTool"/> + + + + + + RelativePath=".\ETSLayout.cpp"> + + + + - - - - @@ -172,22 +179,22 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl"> + RelativePath=".\ETSLayout.h"> + RelativePath="IvyProbe.h"> + RelativePath="IvyProbeDlg.h"> + RelativePath=".\Resource.h"> + RelativePath=".\StdAfx.h"> @@ -197,16 +204,23 @@ Name="Resource Files" Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"> + RelativePath="res\IvyProbe.ico"> + + + RelativePath="IvyProbe.rc"> + RelativePath="res\IvyProbe.rc2"> + + -- cgit v1.1 From 027ec854a16e688a6d9566840b948153ecbc37ed Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:15 +0000 Subject: Utilisateur : Fcolin Date : 3/03/05 Heure : 14:10 Archivé dans $/Bus/IvyProbe Commentaire: (vss 9) --- IvyProbe/IvyProbe.vcproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index 0d1aa35..51eb42d 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -24,7 +24,7 @@ @@ -86,7 +87,7 @@ + Keyword="MFCProj" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + + + Name="VCPreLinkEventTool" + /> + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="2" + /> + + + + + + + + + + + + + + + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Debug/Test.tlb" + /> - + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\Ivy;"..\..\..\pcre-6.4"" + PreprocessorDefinitions="USE_ETS" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + Name="VCManagedResourceCompilerTool" + /> + Culture="1036" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + LinkIncremental="2" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="17" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + SuppressStartupBanner="true" + /> + Name="VCManagedResourceCompilerTool" + /> + + + SubSystem="2" + /> + + + + + + + + + + + + + + + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Release/Test.tlb" + /> - + Name="VCCLCompilerTool" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="..\Ivy;"..\..\..\pcre-6.4"" + PreprocessorDefinitions="USE_ETS" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="2" + WarningLevel="3" + SuppressStartupBanner="true" + Detect64BitPortabilityProblems="true" + /> + Name="VCManagedResourceCompilerTool" + /> + Culture="1036" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="" + SubSystem="2" + TargetMachine="17" + /> + + + + + + Name="VCAppVerifierTool" + /> + Name="VCWebDeploymentTool" + /> + Name="VCPostBuildEventTool" + /> + + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + RelativePath=".\ETSLayout.cpp" + > + RelativePath=".\HistoryEdit.cpp" + > + RelativePath="IvyProbe.cpp" + > + RelativePath="IvyProbeDlg.cpp" + > + RelativePath=".\StdAfx.cpp" + > + Name="Debug|Win32" + > + UsePrecompiledHeader="1" + /> + Name="Debug|x64" + > + UsePrecompiledHeader="1" + /> + + + + + + + RelativePath=".\TestParseCmdLine.cpp" + > + Filter="h;hpp;hxx;hm;inl" + > + RelativePath=".\ETSLayout.h" + > + RelativePath=".\HistoryEdit.h" + > + RelativePath="IvyProbe.h" + > + RelativePath="IvyProbeDlg.h" + > + RelativePath=".\Resource.h" + > + RelativePath=".\StdAfx.h" + > + RelativePath=".\TestParseCmdLine.h" + > + Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" + > + RelativePath="res\IvyProbe.ico" + > + RelativePath="res\IvyProbe.manifest" + > + + + + + + + + + + + + + RelativePath="IvyProbe.rc" + > + RelativePath="res\IvyProbe.rc2" + > + DeploymentContent="true" + > + + + + + + + + + + + + + RelativePath=".\ReadMe.txt" + > -- cgit v1.1 From eb995a25295f2b9c2ba74c6cadc9f049f6951fca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:19 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus/IvyProbe Commentaire: (vss 11) --- IvyProbe/IvyProbe.vcproj | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index 542fa9f..062ca7d 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -524,43 +524,6 @@ - - - - - - - - - - - - - - -- cgit v1.1 From 884803b2b27f112951e44079d965f81b7cf80316 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:20 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/IvyProbe Commentaire: (vss 12) --- IvyProbe/IvyProbe.vcproj | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/IvyProbe/IvyProbe.vcproj b/IvyProbe/IvyProbe.vcproj index 062ca7d..cdf5dda 100644 --- a/IvyProbe/IvyProbe.vcproj +++ b/IvyProbe/IvyProbe.vcproj @@ -197,8 +197,8 @@ + -- cgit v1.1 From b37b4249097a0bdc44980010e1f93ba973ab6163 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:23 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Créé Commentaire: (vss 1) --- IvyProbe/IvyProbe.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyProbe/IvyProbe.vcproj.vspscc diff --git a/IvyProbe/IvyProbe.vcproj.vspscc b/IvyProbe/IvyProbe.vcproj.vspscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/IvyProbe/IvyProbe.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From da8a2ef0f8687b734e0fefe83cc62d5a223144ba Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:25 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:21 Créé Commentaire: (vss 1) --- IvyProbe/IvyProbe.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 IvyProbe/IvyProbe.vssscc diff --git a/IvyProbe/IvyProbe.vssscc b/IvyProbe/IvyProbe.vssscc new file mode 100644 index 0000000..794f014 --- /dev/null +++ b/IvyProbe/IvyProbe.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From b123c857a242e591ec02fbf73cadb7bc2b5b2fdf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:27 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/IvyProbeDlg.cpp | 315 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 IvyProbe/IvyProbeDlg.cpp diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp new file mode 100644 index 0000000..cea28e4 --- /dev/null +++ b/IvyProbe/IvyProbeDlg.cpp @@ -0,0 +1,315 @@ +// TestDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Test.h" +#include "TestDlg.h" + +#include "BusApplication.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTestDlg dialog + +CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) + : CDialog(CTestDlg::IDD, pParent) +{ + //{{AFX_DATA_INIT(CTestDlg) + m_busnumber = 0; + //}}AFX_DATA_INIT + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + + +} + +void CTestDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CTestDlg) + DDX_Control(pDX, IDC_TEXT, m_text); + DDX_Control(pDX, IDC_SLIDER7, m_slider7); + DDX_Control(pDX, IDC_SLIDER6, m_slider6); + DDX_Control(pDX, IDC_SLIDER5, m_slider5); + DDX_Control(pDX, IDC_SLIDER4, m_slider4); + DDX_Control(pDX, IDC_SLIDER3, m_slider3); + DDX_Control(pDX, IDC_SLIDER2, m_slider2); + DDX_Control(pDX, IDC_SLIDER1, m_slider1); + DDX_Control(pDX, IDC_SLIDER0, m_slider0); + DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); + DDV_MinMaxUInt(pDX, m_busnumber, 1024, 65535); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CTestDlg, CDialog) + //{{AFX_MSG_MAP(CTestDlg) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_START, OnStart) + ON_WM_VSCROLL() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTestDlg message handlers + +BOOL CTestDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + m_busnumber = 2010; + UpdateData(FALSE); + + m_slider0.SetRange( 0, 127); + m_slider1.SetRange( 0, 127); + m_slider2.SetRange( 0, 127); + m_slider3.SetRange( 0, 127); + m_slider4.SetRange( 0, 127); + m_slider5.SetRange( 0, 127); + m_slider6.SetRange( 0, 127); + m_slider7.SetRange( 0, 127); + + m_slider0.SetWindowText( "MIDICS10:fader0 value=" ); + m_slider1.SetWindowText( "MIDICS10:fader1 value=" ); + m_slider2.SetWindowText( "MIDICS10:fader2 value=" ); + m_slider3.SetWindowText( "MIDICS10:fader3 value=" ); + m_slider4.SetWindowText( "MIDICS10:fader4 value=" ); + m_slider5.SetWindowText( "MIDICS10:fader5 value=" ); + m_slider6.SetWindowText( "MIDICS10:fader6 value=" ); + m_slider7.SetWindowText( "MIDICS10:fader7 value=" ); + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CTestDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CTestDlg::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + +void CTestDlg::OnStart() +{ + UpdateData(TRUE); + bus = new Bus( "TEST NT", m_busnumber,"TEST NT READY",new BusApplicationCallbackOf(this, ApplicationCallback)); + BusMessageCallbackOf *fader; + fader = new BusMessageCallbackOf(this, FaderCallback ); + + bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)",fader); + bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)",fader); + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); + bus->start(); +} + +void CTestDlg::BusCallback(BusApplication *app, int argc, const char **argv) +{ + int i; + CString text; + TRACE(" Called function args:"); + m_text.SetSel( -1, -1, TRUE ); + text.Format("Bus callback %d args\r\n",argc ); + m_text.ReplaceSel( text ); + for ( i = 0; i < argc; i++ ) + { + m_text.SetSel( -1, -1, TRUE ); + text.Format("Bus callback arg%d '%s'\r\n",i, argv[i] ); + m_text.ReplaceSel( text ); + TRACE(" '%s'",argv[i]); + } + TRACE("\n"); + +} + +void CTestDlg::OnOK() +{ + // TODO: Add extra validation here + delete bus; + CDialog::OnOK(); +} + +void CTestDlg::FaderCallback(BusApplication *app, int argc, const char **argv) +{ +int fader; +int value; +if ( argc != 2 ) + { + TRACE("bad Fader call back\n"); + return; + } + fader = atoi( argv[0] ); + value = atoi( argv[1] ); + switch ( fader ) { + case 0: + m_slider0.SetPos( value ); + break; + case 1: + m_slider1.SetPos( value ); + break; + case 2: + m_slider2.SetPos( value ); + break; + case 3: + m_slider3.SetPos( value ); + break; + case 4: + m_slider4.SetPos( value ); + break; + case 5: + m_slider5.SetPos( value ); + break; + case 6: + m_slider6.SetPos( value ); + break; + case 7: + m_slider7.SetPos( value ); + break; +} +UpdateData(FALSE); + +} + +void CTestDlg::DirectCallback(BusApplication *app, int id, const char *arg) +{ +TRACE("Direct Msg Receive %d, %s\n",id,arg ); +} + +void CTestDlg::ApplicationCallback(BusApplication *app, int event) +{ + CString text; + m_text.SetSel( -1, -1, TRUE ); + text.Format("Application: %s %s\r\n",(LPCSTR)(app->GetName()), event ? "bye" : "ready" ); + m_text.ReplaceSel( text ); +} + + +void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) +{ + // TODO: Add your message handler code here and/or call default + CSliderCtrl *slider = (CSliderCtrl *)pScrollBar; + CString text; + CString value; + slider->GetWindowText( text ); + value.Format("%d",slider->GetPos()); + text += value; + TRACE("%s\n",(LPCSTR)text ); + bus->SendMsg( text ); + CDialog::OnVScroll(nSBCode, nPos, pScrollBar); +} -- cgit v1.1 From 61f0cf6e2dc786e051b5e5b0132dd45760ef8deb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:28 +0000 Subject: Utilisateur : Fcolin Date : 22/12/98 Heure : 16:54 Archivé dans $/Bus/Test Commentaire: modif ligne message a emettre (vss 2) --- IvyProbe/IvyProbeDlg.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index cea28e4..be948ac 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -78,6 +78,7 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) + DDX_Control(pDX, IDC_MSG, m_msgToSend); DDX_Control(pDX, IDC_TEXT, m_text); DDX_Control(pDX, IDC_SLIDER7, m_slider7); DDX_Control(pDX, IDC_SLIDER6, m_slider6); @@ -99,6 +100,7 @@ BEGIN_MESSAGE_MAP(CTestDlg, CDialog) ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) ON_WM_VSCROLL() + ON_EN_VSCROLL(IDC_MSG, OnVscrollMsg) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -215,6 +217,8 @@ void CTestDlg::OnStart() bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)",fader); bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)",fader); + bus->BindMsg("(.*)",new BusMessageCallbackOf(this, BusCallback )); + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); bus->start(); } @@ -313,3 +317,20 @@ void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) bus->SendMsg( text ); CDialog::OnVScroll(nSBCode, nPos, pScrollBar); } + +void CTestDlg::OnVscrollMsg() +{ + // TODO: Add your control notification handler code here + char buffer[200]; + int line = m_msgToSend.GetFirstVisibleLine( ) -1 ; + if ( line >= 0 ) + { + int len = m_msgToSend.GetLine( line , buffer, sizeof(buffer)-1); + if ( len ) + { + buffer[len] = '\0'; + TRACE("IDC MSG Scroll %d len= %d %s\n",line,len, buffer); + bus->SendMsg( buffer ); + } + } +} -- cgit v1.1 From 16d8c9bef9a0dd034435c4c463baf3d8bacc3339 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:30 +0000 Subject: Utilisateur : Fcolin Date : 12/03/99 Heure : 18:52 Archivé dans $/Bus/Test (vss 3) --- IvyProbe/IvyProbeDlg.cpp | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index be948ac..2112270 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -211,13 +211,11 @@ HCURSOR CTestDlg::OnQueryDragIcon() void CTestDlg::OnStart() { UpdateData(TRUE); - bus = new Bus( "TEST NT", m_busnumber,"TEST NT READY",new BusApplicationCallbackOf(this, ApplicationCallback)); - BusMessageCallbackOf *fader; - fader = new BusMessageCallbackOf(this, FaderCallback ); - - bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)",fader); - bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)",fader); - bus->BindMsg("(.*)",new BusMessageCallbackOf(this, BusCallback )); + bus = new Bus( "TEST NT", m_busnumber,"TEST NT READY",this); + + bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, BusCallback )); //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); bus->start(); @@ -228,14 +226,14 @@ void CTestDlg::BusCallback(BusApplication *app, int argc, const char **argv) int i; CString text; TRACE(" Called function args:"); - m_text.SetSel( -1, -1, TRUE ); +// m_text.SetSel( -1, -1, FALSE ); text.Format("Bus callback %d args\r\n",argc ); - m_text.ReplaceSel( text ); +// m_text.ReplaceSel( text ); for ( i = 0; i < argc; i++ ) { - m_text.SetSel( -1, -1, TRUE ); +// m_text.SetSel( -1, -1, FALSE ); text.Format("Bus callback arg%d '%s'\r\n",i, argv[i] ); - m_text.ReplaceSel( text ); +// m_text.ReplaceSel( text ); TRACE(" '%s'",argv[i]); } TRACE("\n"); @@ -290,19 +288,25 @@ UpdateData(FALSE); } -void CTestDlg::DirectCallback(BusApplication *app, int id, const char *arg) +void CTestDlg::OnDirectMessage(BusApplication *app, int id, const char *arg) { TRACE("Direct Msg Receive %d, %s\n",id,arg ); } -void CTestDlg::ApplicationCallback(BusApplication *app, int event) +void CTestDlg::OnApplicationConnected(BusApplication *app) { CString text; - m_text.SetSel( -1, -1, TRUE ); - text.Format("Application: %s %s\r\n",(LPCSTR)(app->GetName()), event ? "bye" : "ready" ); + m_text.SetSel( -1, -1, FALSE ); + text.Format("Application: %s ready\r\n",(LPCSTR)(app->GetName()) ); + m_text.ReplaceSel( text ); +} +void CTestDlg::OnApplicationDisconnected(BusApplication *app) +{ + CString text; + m_text.SetSel( -1, -1, FALSE ); + text.Format("Application: %s bye\r\n",(LPCSTR)(app->GetName()) ); m_text.ReplaceSel( text ); } - void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { -- cgit v1.1 From 472fdb6d65fdea0c4cccbe6691162ecbcef1d240 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:32 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 16:22 Archivé dans $/Bus/Test (vss 4) --- IvyProbe/IvyProbeDlg.cpp | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 2112270..998c5dc 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -5,7 +5,7 @@ #include "Test.h" #include "TestDlg.h" -#include "BusApplication.h" +#include "IvyApplication.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -66,7 +66,7 @@ CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CTestDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestDlg) - m_busnumber = 0; + m_busnumber = ""; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); @@ -89,7 +89,6 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_SLIDER1, m_slider1); DDX_Control(pDX, IDC_SLIDER0, m_slider0); DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); - DDV_MinMaxUInt(pDX, m_busnumber, 1024, 65535); //}}AFX_DATA_MAP } @@ -135,7 +134,14 @@ BOOL CTestDlg::OnInitDialog() SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here - m_busnumber = 2010; + bus = new Ivy( "TEST NT","TEST NT READY",this); + + bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); + m_busnumber = bus->GetDomain( m_busnumber ); UpdateData(FALSE); m_slider0.SetRange( 0, 127); @@ -211,29 +217,25 @@ HCURSOR CTestDlg::OnQueryDragIcon() void CTestDlg::OnStart() { UpdateData(TRUE); - bus = new Bus( "TEST NT", m_busnumber,"TEST NT READY",this); - - bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, BusCallback )); - - //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); - bus->start(); + bus->stop(); + m_busnumber = bus->GetDomain( m_busnumber ); + bus->start(m_busnumber); + UpdateData(FALSE); } -void CTestDlg::BusCallback(BusApplication *app, int argc, const char **argv) +void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) { int i; CString text; TRACE(" Called function args:"); -// m_text.SetSel( -1, -1, FALSE ); - text.Format("Bus callback %d args\r\n",argc ); -// m_text.ReplaceSel( text ); + m_text.SetSel( -1, -1, FALSE ); + text.Format("Ivy callback %d args\r\n",argc ); + m_text.ReplaceSel( text ); for ( i = 0; i < argc; i++ ) { -// m_text.SetSel( -1, -1, FALSE ); - text.Format("Bus callback arg%d '%s'\r\n",i, argv[i] ); -// m_text.ReplaceSel( text ); + m_text.SetSel( -1, -1, FALSE ); + text.Format("Ivy callback arg%d '%s'\r\n",i, argv[i] ); + m_text.ReplaceSel( text ); TRACE(" '%s'",argv[i]); } TRACE("\n"); @@ -247,7 +249,7 @@ void CTestDlg::OnOK() CDialog::OnOK(); } -void CTestDlg::FaderCallback(BusApplication *app, int argc, const char **argv) +void CTestDlg::FaderCallback(IvyApplication *app, int argc, const char **argv) { int fader; int value; @@ -288,19 +290,19 @@ UpdateData(FALSE); } -void CTestDlg::OnDirectMessage(BusApplication *app, int id, const char *arg) +void CTestDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) { TRACE("Direct Msg Receive %d, %s\n",id,arg ); } -void CTestDlg::OnApplicationConnected(BusApplication *app) +void CTestDlg::OnApplicationConnected(IvyApplication *app) { CString text; m_text.SetSel( -1, -1, FALSE ); text.Format("Application: %s ready\r\n",(LPCSTR)(app->GetName()) ); m_text.ReplaceSel( text ); } -void CTestDlg::OnApplicationDisconnected(BusApplication *app) +void CTestDlg::OnApplicationDisconnected(IvyApplication *app) { CString text; m_text.SetSel( -1, -1, FALSE ); -- cgit v1.1 From 96b784c956f7f266987e03a573a58fdb8e4c3fb3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:34 +0000 Subject: Utilisateur : Fcolin Date : 29/07/99 Heure : 16:46 Archivé dans $/Bus/Test (vss 5) --- IvyProbe/IvyProbeDlg.cpp | 71 ++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 998c5dc..c37ee48 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -71,7 +71,7 @@ CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); - + bus = NULL; } void CTestDlg::DoDataExchange(CDataExchange* pDX) @@ -100,6 +100,7 @@ BEGIN_MESSAGE_MAP(CTestDlg, CDialog) ON_BN_CLICKED(IDC_START, OnStart) ON_WM_VSCROLL() ON_EN_VSCROLL(IDC_MSG, OnVscrollMsg) + ON_WM_CLOSE() //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -134,16 +135,6 @@ BOOL CTestDlg::OnInitDialog() SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here - bus = new Ivy( "TEST NT","TEST NT READY",this); - - bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); - - //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); - m_busnumber = bus->GetDomain( m_busnumber ); - UpdateData(FALSE); - m_slider0.SetRange( 0, 127); m_slider1.SetRange( 0, 127); m_slider2.SetRange( 0, 127); @@ -161,6 +152,18 @@ BOOL CTestDlg::OnInitDialog() m_slider5.SetWindowText( "MIDICS10:fader5 value=" ); m_slider6.SetWindowText( "MIDICS10:fader6 value=" ); m_slider7.SetWindowText( "MIDICS10:fader7 value=" ); + + bus = new Ivy( "TEST NT","TEST NT READY",this); + + bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); + bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + + //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); + m_busnumber = bus->GetDomain( m_busnumber ); + UpdateData(FALSE); + + return TRUE; // return TRUE unless you set the focus to a control } @@ -228,26 +231,18 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) int i; CString text; TRACE(" Called function args:"); - m_text.SetSel( -1, -1, FALSE ); text.Format("Ivy callback %d args\r\n",argc ); - m_text.ReplaceSel( text ); + WriteMessage( text ); for ( i = 0; i < argc; i++ ) { - m_text.SetSel( -1, -1, FALSE ); text.Format("Ivy callback arg%d '%s'\r\n",i, argv[i] ); - m_text.ReplaceSel( text ); + WriteMessage( text ); TRACE(" '%s'",argv[i]); } TRACE("\n"); } -void CTestDlg::OnOK() -{ - // TODO: Add extra validation here - delete bus; - CDialog::OnOK(); -} void CTestDlg::FaderCallback(IvyApplication *app, int argc, const char **argv) { @@ -286,7 +281,7 @@ if ( argc != 2 ) m_slider7.SetPos( value ); break; } -UpdateData(FALSE); +//UpdateData(FALSE); } @@ -298,18 +293,20 @@ TRACE("Direct Msg Receive %d, %s\n",id,arg ); void CTestDlg::OnApplicationConnected(IvyApplication *app) { CString text; - m_text.SetSel( -1, -1, FALSE ); text.Format("Application: %s ready\r\n",(LPCSTR)(app->GetName()) ); - m_text.ReplaceSel( text ); + WriteMessage( text ); } void CTestDlg::OnApplicationDisconnected(IvyApplication *app) { CString text; - m_text.SetSel( -1, -1, FALSE ); text.Format("Application: %s bye\r\n",(LPCSTR)(app->GetName()) ); + WriteMessage( text ); +} +void CTestDlg::WriteMessage(const CString & text) +{ + m_text.SetSel( -1, -1, FALSE ); m_text.ReplaceSel( text ); } - void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default @@ -336,7 +333,27 @@ void CTestDlg::OnVscrollMsg() { buffer[len] = '\0'; TRACE("IDC MSG Scroll %d len= %d %s\n",line,len, buffer); - bus->SendMsg( buffer ); + int count = bus->SendMsg( buffer ); + CString mess; + mess.Format("Sending %d message %s\r\n",count,buffer); + WriteMessage( mess ); } } } + +void CTestDlg::OnClose() +{ + // TODO: Add your message handler code here and/or call default + TRACE ( "Quitting\n"); + if (bus) delete bus; + + CDialog::OnClose(); +} + +void CTestDlg::OnOK() +{ + // TODO: Add extra validation here + TRACE ( "Quitting\n"); + if (bus) delete bus; + CDialog::OnOK(); +} -- cgit v1.1 From bb80edd06eb39c91a574b65a4d15c2f483a9a918 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:36 +0000 Subject: Utilisateur : Fcolin Date : 6/01/00 Heure : 11:15 Archivé dans $/Bus/Test Commentaire: ajout bind to msg (vss 6) --- IvyProbe/IvyProbeDlg.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index c37ee48..9cd53c3 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -78,6 +78,7 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) + DDX_Control(pDX, IDC_BIND, m_bind); DDX_Control(pDX, IDC_MSG, m_msgToSend); DDX_Control(pDX, IDC_TEXT, m_text); DDX_Control(pDX, IDC_SLIDER7, m_slider7); @@ -101,6 +102,7 @@ BEGIN_MESSAGE_MAP(CTestDlg, CDialog) ON_WM_VSCROLL() ON_EN_VSCROLL(IDC_MSG, OnVscrollMsg) ON_WM_CLOSE() + ON_EN_VSCROLL(IDC_BIND, OnVscrollBind) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -153,11 +155,11 @@ BOOL CTestDlg::OnInitDialog() m_slider6.SetWindowText( "MIDICS10:fader6 value=" ); m_slider7.SetWindowText( "MIDICS10:fader7 value=" ); - bus = new Ivy( "TEST NT","TEST NT READY",this); + bus = new Ivy( "TEST NT","TEST NT READY",this,FALSE); bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); +// bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); m_busnumber = bus->GetDomain( m_busnumber ); @@ -357,3 +359,22 @@ void CTestDlg::OnOK() if (bus) delete bus; CDialog::OnOK(); } + +void CTestDlg::OnVscrollBind() +{ + char buffer[200]; + int line = m_bind.GetFirstVisibleLine( ) -1 ; + if ( line >= 0 ) + { + int len = m_bind.GetLine( line , buffer, sizeof(buffer)-1); + if ( len ) + { + buffer[len] = '\0'; + TRACE("IDC BIND Scroll %d len= %d %s\n",line,len, buffer); + int count = bus->BindMsg( buffer , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + CString mess; + mess.Format("Binding to '%s'\r\n",buffer); + WriteMessage( mess ); + } + } +} -- cgit v1.1 From 64762a94e5c9f1fd90a9ffd252908d27dc58da5a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:38 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 11:49 Archivé dans $/Bus/Test Commentaire: modif boite resize et combo box (vss 7) --- IvyProbe/IvyProbeDlg.cpp | 158 ++++++++++++++++++++--------------------------- 1 file changed, 68 insertions(+), 90 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 9cd53c3..ff339c1 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -63,7 +63,7 @@ END_MESSAGE_MAP() // CTestDlg dialog CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) - : CDialog(CTestDlg::IDD, pParent) + : ETSLayoutDialog(CTestDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestDlg) m_busnumber = ""; @@ -76,10 +76,10 @@ CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) void CTestDlg::DoDataExchange(CDataExchange* pDX) { - CDialog::DoDataExchange(pDX); + ETSLayoutDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) - DDX_Control(pDX, IDC_BIND, m_bind); - DDX_Control(pDX, IDC_MSG, m_msgToSend); + DDX_Control(pDX, IDC_REGEXP, m_expr); + DDX_Control(pDX, IDC_MSG, m_msg); DDX_Control(pDX, IDC_TEXT, m_text); DDX_Control(pDX, IDC_SLIDER7, m_slider7); DDX_Control(pDX, IDC_SLIDER6, m_slider6); @@ -93,16 +93,14 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) //}}AFX_DATA_MAP } -BEGIN_MESSAGE_MAP(CTestDlg, CDialog) +BEGIN_MESSAGE_MAP(CTestDlg, ETSLayoutDialog) //{{AFX_MSG_MAP(CTestDlg) ON_WM_SYSCOMMAND() - ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) - ON_WM_VSCROLL() - ON_EN_VSCROLL(IDC_MSG, OnVscrollMsg) ON_WM_CLOSE() - ON_EN_VSCROLL(IDC_BIND, OnVscrollBind) + ON_BN_CLICKED(IDC_SEND, OnSend) + ON_BN_CLICKED(IDC_BIND, OnBind) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -111,7 +109,7 @@ END_MESSAGE_MAP() BOOL CTestDlg::OnInitDialog() { - CDialog::OnInitDialog(); + ETSLayoutDialog::OnInitDialog(); // Add "About..." menu item to system menu. @@ -136,6 +134,37 @@ BOOL CTestDlg::OnInitDialog() SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon + // define the Layout + CreateRoot( VERTICAL ) + << ( pane( HORIZONTAL, ABSOLUTE_VERT ) + << item ( IDC_BUSNUMBER, GREEDY ) + << item ( IDC_START, NORESIZE ) + ) + << item ( IDC_TEXT, GREEDY ) + << ( pane( HORIZONTAL, ABSOLUTE_VERT ) + << item( paneNull, GREEDY ) + << item( IDC_SLIDER0, NORESIZE ) + << item( IDC_SLIDER1, NORESIZE ) + << item( IDC_SLIDER2, NORESIZE ) + << item( IDC_SLIDER3, NORESIZE ) + << item( IDC_SLIDER4, NORESIZE ) + << item( IDC_SLIDER5, NORESIZE ) + << item( IDC_SLIDER6, NORESIZE ) + << item( IDC_SLIDER7, NORESIZE ) + << item( paneNull, GREEDY ) + ) + << ( pane( HORIZONTAL, ABSOLUTE_VERT ) + << item( IDC_STATIC_MSG, NORESIZE ) + << item( IDC_MSG, GREEDY ) + << item( IDC_SEND, NORESIZE ) + ) + << ( pane( HORIZONTAL, ABSOLUTE_VERT ) + << item( IDC_STATIC_BIND, NORESIZE ) + << item( IDC_REGEXP, GREEDY ) + << item( IDC_BIND, NORESIZE ) + ); + UpdateLayout (); + // TODO: Add extra initialization here m_slider0.SetRange( 0, 127); m_slider1.SetRange( 0, 127); @@ -179,38 +208,11 @@ void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) } else { - CDialog::OnSysCommand(nID, lParam); + ETSLayoutDialog::OnSysCommand(nID, lParam); } } -// If you add a minimize button to your dialog, you will need the code below -// to draw the icon. For MFC applications using the document/view model, -// this is automatically done for you by the framework. - -void CTestDlg::OnPaint() -{ - if (IsIconic()) - { - CPaintDC dc(this); // device context for painting - - SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); - - // Center icon in client rectangle - int cxIcon = GetSystemMetrics(SM_CXICON); - int cyIcon = GetSystemMetrics(SM_CYICON); - CRect rect; - GetClientRect(&rect); - int x = (rect.Width() - cxIcon + 1) / 2; - int y = (rect.Height() - cyIcon + 1) / 2; - // Draw the icon - dc.DrawIcon(x, y, m_hIcon); - } - else - { - CDialog::OnPaint(); - } -} // The system calls this to obtain the cursor to display while the user drags // the minimized window. @@ -309,39 +311,7 @@ void CTestDlg::WriteMessage(const CString & text) m_text.SetSel( -1, -1, FALSE ); m_text.ReplaceSel( text ); } -void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) -{ - // TODO: Add your message handler code here and/or call default - CSliderCtrl *slider = (CSliderCtrl *)pScrollBar; - CString text; - CString value; - slider->GetWindowText( text ); - value.Format("%d",slider->GetPos()); - text += value; - TRACE("%s\n",(LPCSTR)text ); - bus->SendMsg( text ); - CDialog::OnVScroll(nSBCode, nPos, pScrollBar); -} -void CTestDlg::OnVscrollMsg() -{ - // TODO: Add your control notification handler code here - char buffer[200]; - int line = m_msgToSend.GetFirstVisibleLine( ) -1 ; - if ( line >= 0 ) - { - int len = m_msgToSend.GetLine( line , buffer, sizeof(buffer)-1); - if ( len ) - { - buffer[len] = '\0'; - TRACE("IDC MSG Scroll %d len= %d %s\n",line,len, buffer); - int count = bus->SendMsg( buffer ); - CString mess; - mess.Format("Sending %d message %s\r\n",count,buffer); - WriteMessage( mess ); - } - } -} void CTestDlg::OnClose() { @@ -349,32 +319,40 @@ void CTestDlg::OnClose() TRACE ( "Quitting\n"); if (bus) delete bus; - CDialog::OnClose(); + ETSLayoutDialog::OnClose(); } -void CTestDlg::OnOK() + +void CTestDlg::OnSend() { - // TODO: Add extra validation here - TRACE ( "Quitting\n"); - if (bus) delete bus; - CDialog::OnOK(); + CString buffer; + m_msg.SetEditSel( 0, -1 ); + m_msg.GetWindowText( buffer ); + if ( buffer.IsEmpty() ) return; + int count = bus->SendMsg( buffer ); + if ( m_msg.FindStringExact(-1, buffer) == CB_ERR ) + { + m_msg.AddString( buffer ); + } + CString mess; + mess.Format("Sending %d message %s\r\n",count,buffer); + WriteMessage( mess ); + m_msg.Clear(); } -void CTestDlg::OnVscrollBind() +void CTestDlg::OnBind() { - char buffer[200]; - int line = m_bind.GetFirstVisibleLine( ) -1 ; - if ( line >= 0 ) - { - int len = m_bind.GetLine( line , buffer, sizeof(buffer)-1); - if ( len ) + CString buffer; + m_expr.SetEditSel( 0, -1 ); + m_expr.GetWindowText( buffer ); + if ( buffer.IsEmpty() ) return; + int count = bus->BindMsg( buffer , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + if ( m_expr.FindStringExact(-1, buffer) == CB_ERR ) { - buffer[len] = '\0'; - TRACE("IDC BIND Scroll %d len= %d %s\n",line,len, buffer); - int count = bus->BindMsg( buffer , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); - CString mess; - mess.Format("Binding to '%s'\r\n",buffer); - WriteMessage( mess ); + m_expr.AddString( buffer ); } - } + CString mess; + mess.Format("Binding to %s\r\n",buffer); + WriteMessage( mess ); + m_expr.Clear(); } -- cgit v1.1 From 2a3f2940210bd608f129aec6fc1f40b1240db2ff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:41 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:49 Archivé dans $/Bus/Test Commentaire: modif Text Scroll (vss 8) --- IvyProbe/IvyProbeDlg.cpp | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index ff339c1..62fd7ac 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -80,7 +80,6 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) //{{AFX_DATA_MAP(CTestDlg) DDX_Control(pDX, IDC_REGEXP, m_expr); DDX_Control(pDX, IDC_MSG, m_msg); - DDX_Control(pDX, IDC_TEXT, m_text); DDX_Control(pDX, IDC_SLIDER7, m_slider7); DDX_Control(pDX, IDC_SLIDER6, m_slider6); DDX_Control(pDX, IDC_SLIDER5, m_slider5); @@ -165,7 +164,9 @@ BOOL CTestDlg::OnInitDialog() ); UpdateLayout (); - // TODO: Add extra initialization here + // extra initialization here + m_text.SubclassDlgItem (IDC_TEXT, this); + m_slider0.SetRange( 0, 127); m_slider1.SetRange( 0, 127); m_slider2.SetRange( 0, 127); @@ -235,12 +236,10 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) int i; CString text; TRACE(" Called function args:"); - text.Format("Ivy callback %d args\r\n",argc ); - WriteMessage( text ); + WriteMessage( "Ivy callback %d args",argc ); for ( i = 0; i < argc; i++ ) { - text.Format("Ivy callback arg%d '%s'\r\n",i, argv[i] ); - WriteMessage( text ); + WriteMessage( " arg%d='%s'",i, argv[i] ); TRACE(" '%s'",argv[i]); } TRACE("\n"); @@ -296,20 +295,21 @@ TRACE("Direct Msg Receive %d, %s\n",id,arg ); void CTestDlg::OnApplicationConnected(IvyApplication *app) { - CString text; - text.Format("Application: %s ready\r\n",(LPCSTR)(app->GetName()) ); - WriteMessage( text ); + WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); } void CTestDlg::OnApplicationDisconnected(IvyApplication *app) { - CString text; - text.Format("Application: %s bye\r\n",(LPCSTR)(app->GetName()) ); - WriteMessage( text ); + WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); } -void CTestDlg::WriteMessage(const CString & text) +void CTestDlg::WriteMessage(LPCTSTR format, ...) { - m_text.SetSel( -1, -1, FALSE ); - m_text.ReplaceSel( text ); + CString str; + // format and write the data we were given + va_list args; + va_start(args, format); + str.FormatV(format, args); + + m_text.AppendString( str ); } @@ -334,9 +334,7 @@ void CTestDlg::OnSend() { m_msg.AddString( buffer ); } - CString mess; - mess.Format("Sending %d message %s\r\n",count,buffer); - WriteMessage( mess ); + WriteMessage( "Sending %d message %s",count,(LPCSTR)buffer ); m_msg.Clear(); } @@ -351,8 +349,6 @@ void CTestDlg::OnBind() { m_expr.AddString( buffer ); } - CString mess; - mess.Format("Binding to %s\r\n",buffer); - WriteMessage( mess ); + WriteMessage( "Binding to %s", (LPCSTR)buffer ); m_expr.Clear(); } -- cgit v1.1 From 19e9d97b62a0d300d18e1e006339073cd0c10803 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:42 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Bus/Test Commentaire: win CE compile not finished (vss 9) --- IvyProbe/IvyProbeDlg.cpp | 71 ++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 62fd7ac..dc99158 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -4,6 +4,7 @@ #include "stdafx.h" #include "Test.h" #include "TestDlg.h" +#include "TestParseCmdLine.h" #include "IvyApplication.h" @@ -63,7 +64,7 @@ END_MESSAGE_MAP() // CTestDlg dialog CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) - : ETSLayoutDialog(CTestDlg::IDD, pParent) + : MyDialog(CTestDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestDlg) m_busnumber = ""; @@ -76,7 +77,7 @@ CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) void CTestDlg::DoDataExchange(CDataExchange* pDX) { - ETSLayoutDialog::DoDataExchange(pDX); + MyDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) DDX_Control(pDX, IDC_REGEXP, m_expr); DDX_Control(pDX, IDC_MSG, m_msg); @@ -92,7 +93,7 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) //}}AFX_DATA_MAP } -BEGIN_MESSAGE_MAP(CTestDlg, ETSLayoutDialog) +BEGIN_MESSAGE_MAP(CTestDlg, MyDialog) //{{AFX_MSG_MAP(CTestDlg) ON_WM_SYSCOMMAND() ON_WM_QUERYDRAGICON() @@ -108,7 +109,7 @@ END_MESSAGE_MAP() BOOL CTestDlg::OnInitDialog() { - ETSLayoutDialog::OnInitDialog(); + MyDialog::OnInitDialog(); // Add "About..." menu item to system menu. @@ -132,7 +133,8 @@ BOOL CTestDlg::OnInitDialog() // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon - + +#ifndef UNDER_CE // define the Layout CreateRoot( VERTICAL ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) @@ -163,7 +165,7 @@ BOOL CTestDlg::OnInitDialog() << item( IDC_BIND, NORESIZE ) ); UpdateLayout (); - +#endif // extra initialization here m_text.SubclassDlgItem (IDC_TEXT, this); @@ -176,15 +178,22 @@ BOOL CTestDlg::OnInitDialog() m_slider6.SetRange( 0, 127); m_slider7.SetRange( 0, 127); - m_slider0.SetWindowText( "MIDICS10:fader0 value=" ); - m_slider1.SetWindowText( "MIDICS10:fader1 value=" ); - m_slider2.SetWindowText( "MIDICS10:fader2 value=" ); - m_slider3.SetWindowText( "MIDICS10:fader3 value=" ); - m_slider4.SetWindowText( "MIDICS10:fader4 value=" ); - m_slider5.SetWindowText( "MIDICS10:fader5 value=" ); - m_slider6.SetWindowText( "MIDICS10:fader6 value=" ); - m_slider7.SetWindowText( "MIDICS10:fader7 value=" ); - + m_slider0.SetWindowText( TEXT("MIDICS10:fader0 value=") ); + m_slider1.SetWindowText( TEXT("MIDICS10:fader1 value=") ); + m_slider2.SetWindowText( TEXT("MIDICS10:fader2 value=") ); + m_slider3.SetWindowText( TEXT("MIDICS10:fader3 value=") ); + m_slider4.SetWindowText( TEXT("MIDICS10:fader4 value=") ); + m_slider5.SetWindowText( TEXT("MIDICS10:fader5 value=") ); + m_slider6.SetWindowText( TEXT("MIDICS10:fader6 value=") ); + m_slider7.SetWindowText( TEXT("MIDICS10:fader7 value=") ); + + // parse command Line Info + TestParseCmdLine cmd; + AfxGetApp()->ParseCommandLine( cmd ); + + // Set Argument from Command Line + m_busnumber = cmd.m_busNumber; + bus = new Ivy( "TEST NT","TEST NT READY",this,FALSE); bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); @@ -195,7 +204,9 @@ BOOL CTestDlg::OnInitDialog() m_busnumber = bus->GetDomain( m_busnumber ); UpdateData(FALSE); - + // force bus start in case of start + if ( cmd.m_start ) + OnStart(); return TRUE; // return TRUE unless you set the focus to a control } @@ -209,7 +220,7 @@ void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) } else { - ETSLayoutDialog::OnSysCommand(nID, lParam); + MyDialog::OnSysCommand(nID, lParam); } } @@ -235,14 +246,14 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) { int i; CString text; - TRACE(" Called function args:"); - WriteMessage( "Ivy callback %d args",argc ); + TRACE(TEXT(" Called function args:")); + WriteMessage( TEXT("Ivy callback %d args"),argc ); for ( i = 0; i < argc; i++ ) { - WriteMessage( " arg%d='%s'",i, argv[i] ); - TRACE(" '%s'",argv[i]); + WriteMessage( TEXT(" arg%d='%s'"),i, argv[i] ); + TRACE(TEXT(" '%s'"),argv[i]); } - TRACE("\n"); + TRACE(TEXT("\n")); } @@ -253,7 +264,7 @@ int fader; int value; if ( argc != 2 ) { - TRACE("bad Fader call back\n"); + TRACE(TEXT("bad Fader call back\n")); return; } fader = atoi( argv[0] ); @@ -290,16 +301,16 @@ if ( argc != 2 ) void CTestDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) { -TRACE("Direct Msg Receive %d, %s\n",id,arg ); +TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg ); } void CTestDlg::OnApplicationConnected(IvyApplication *app) { - WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); + WriteMessage( TEXT("Application: %s ready"),(LPCSTR)(app->GetName()) ); } void CTestDlg::OnApplicationDisconnected(IvyApplication *app) { - WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); + WriteMessage( TEXT("Application: %s bye"),(LPCSTR)(app->GetName()) ); } void CTestDlg::WriteMessage(LPCTSTR format, ...) { @@ -316,10 +327,10 @@ void CTestDlg::WriteMessage(LPCTSTR format, ...) void CTestDlg::OnClose() { // TODO: Add your message handler code here and/or call default - TRACE ( "Quitting\n"); + TRACE ( TEXT("Quitting\n")); if (bus) delete bus; - ETSLayoutDialog::OnClose(); + MyDialog::OnClose(); } @@ -334,7 +345,7 @@ void CTestDlg::OnSend() { m_msg.AddString( buffer ); } - WriteMessage( "Sending %d message %s",count,(LPCSTR)buffer ); + WriteMessage( TEXT("Sending %d message %s"),count,(LPCSTR)buffer ); m_msg.Clear(); } @@ -349,6 +360,6 @@ void CTestDlg::OnBind() { m_expr.AddString( buffer ); } - WriteMessage( "Binding to %s", (LPCSTR)buffer ); + WriteMessage( TEXT("Binding to %s"), (LPCSTR)buffer ); m_expr.Clear(); } -- cgit v1.1 From 9d1aedd52ee1c7589d2b6509e059048ac4006c06 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:44 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:39 Archivé dans $/Bus/Test (vss 10) --- IvyProbe/IvyProbeDlg.cpp | 115 +++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 60 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index dc99158..6982f2a 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -14,32 +14,26 @@ static char THIS_FILE[] = __FILE__; #endif +const char * CONVSTR( const CString& str ) +{ +#ifdef UNDER_CE + + static char buffer[4096]; + int len = str.GetLength(); + buffer[0] = '\0'; + if ( len ) + { + int err = WideCharToMultiByte( CP_ACP, WC_DEFAULTCHAR, str, len, buffer, 4096, "X", NULL ); + if ( err == 0 ) TRACE(TEXT("Error converting chars %d\n"),GetLastError()); + } + return buffer; +#else + return (LPCSTR) str; +#endif + +} -///////////////////////////////////////////////////////////////////////////// -// CAboutDlg dialog used for App About -class CAboutDlg : public CDialog -{ -public: - CAboutDlg(); - -// Dialog Data - //{{AFX_DATA(CAboutDlg) - enum { IDD = IDD_ABOUTBOX }; - //}}AFX_DATA - - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CAboutDlg) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - //{{AFX_MSG(CAboutDlg) - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { @@ -111,23 +105,23 @@ BOOL CTestDlg::OnInitDialog() { MyDialog::OnInitDialog(); - // Add "About..." menu item to system menu. - - // IDM_ABOUTBOX must be in the system command range. - ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); - ASSERT(IDM_ABOUTBOX < 0xF000); - - CMenu* pSysMenu = GetSystemMenu(FALSE); - if (pSysMenu != NULL) - { - CString strAboutMenu; - strAboutMenu.LoadString(IDS_ABOUTBOX); - if (!strAboutMenu.IsEmpty()) - { - pSysMenu->AppendMenu(MF_SEPARATOR); - pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); - } - } +// // Add "About..." menu item to system menu. +// +// // IDM_ABOUTBOX must be in the system command range. +// ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); +// ASSERT(IDM_ABOUTBOX < 0xF000); +// +// CMenu* pSysMenu = GetSystemMenu(FALSE); +// if (pSysMenu != NULL) +// { +// CString strAboutMenu; +// strAboutMenu.LoadString(IDS_ABOUTBOX); +// if (!strAboutMenu.IsEmpty()) +// { +// pSysMenu->AppendMenu(MF_SEPARATOR); +// pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); +// } +// } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog @@ -201,7 +195,7 @@ BOOL CTestDlg::OnInitDialog() // bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); - m_busnumber = bus->GetDomain( m_busnumber ); + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); UpdateData(FALSE); // force bus start in case of start @@ -211,18 +205,19 @@ BOOL CTestDlg::OnInitDialog() return TRUE; // return TRUE unless you set the focus to a control } -void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) -{ - if ((nID & 0xFFF0) == IDM_ABOUTBOX) - { - CAboutDlg dlgAbout; - dlgAbout.DoModal(); - } - else - { - MyDialog::OnSysCommand(nID, lParam); - } -} + +//void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) +//{ +// if ((nID & 0xFFF0) == IDM_ABOUTBOX) +// { +// CAboutDlg dlgAbout; +// dlgAbout.DoModal(); +// } +// else +// { +// MyDialog::OnSysCommand(nID, lParam); +// } +//} @@ -237,8 +232,8 @@ void CTestDlg::OnStart() { UpdateData(TRUE); bus->stop(); - m_busnumber = bus->GetDomain( m_busnumber ); - bus->start(m_busnumber); + m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) ); + bus->start(CONVSTR(m_busnumber)); UpdateData(FALSE); } @@ -340,12 +335,12 @@ void CTestDlg::OnSend() m_msg.SetEditSel( 0, -1 ); m_msg.GetWindowText( buffer ); if ( buffer.IsEmpty() ) return; - int count = bus->SendMsg( buffer ); + int count = bus->SendMsg( CONVSTR(buffer) ); if ( m_msg.FindStringExact(-1, buffer) == CB_ERR ) { m_msg.AddString( buffer ); } - WriteMessage( TEXT("Sending %d message %s"),count,(LPCSTR)buffer ); + WriteMessage( TEXT("Sending %d message %s"),count,CONVSTR(buffer) ); m_msg.Clear(); } @@ -355,11 +350,11 @@ void CTestDlg::OnBind() m_expr.SetEditSel( 0, -1 ); m_expr.GetWindowText( buffer ); if ( buffer.IsEmpty() ) return; - int count = bus->BindMsg( buffer , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + int count = bus->BindMsg( CONVSTR(buffer) , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); if ( m_expr.FindStringExact(-1, buffer) == CB_ERR ) { m_expr.AddString( buffer ); } - WriteMessage( TEXT("Binding to %s"), (LPCSTR)buffer ); + WriteMessage( TEXT("Binding to %s"), CONVSTR(buffer) ); m_expr.Clear(); } -- cgit v1.1 From 214ff4d7a214e87c78ffdb2e66d430ad1ab4a99e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:47 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 17:00 Archivé dans $/Bus/Test (vss 11) --- IvyProbe/IvyProbeDlg.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 6982f2a..4a891d9 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -20,11 +20,12 @@ const char * CONVSTR( const CString& str ) static char buffer[4096]; int len = str.GetLength(); - buffer[0] = '\0'; + buffer[len] = '\0'; if ( len ) { - int err = WideCharToMultiByte( CP_ACP, WC_DEFAULTCHAR, str, len, buffer, 4096, "X", NULL ); - if ( err == 0 ) TRACE(TEXT("Error converting chars %d\n"),GetLastError()); + int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL ); + if ( err == 0 ) + TRACE(TEXT("Error converting chars %d\n"),GetLastError()); } return buffer; #else @@ -242,10 +243,10 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) int i; CString text; TRACE(TEXT(" Called function args:")); - WriteMessage( TEXT("Ivy callback %d args"),argc ); + WriteMessage( "Ivy callback %d args",argc ); for ( i = 0; i < argc; i++ ) { - WriteMessage( TEXT(" arg%d='%s'"),i, argv[i] ); + WriteMessage(" arg%d='%s'",i, argv[i] ); TRACE(TEXT(" '%s'"),argv[i]); } TRACE(TEXT("\n")); @@ -301,19 +302,19 @@ TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg ); void CTestDlg::OnApplicationConnected(IvyApplication *app) { - WriteMessage( TEXT("Application: %s ready"),(LPCSTR)(app->GetName()) ); + WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); } void CTestDlg::OnApplicationDisconnected(IvyApplication *app) { - WriteMessage( TEXT("Application: %s bye"),(LPCSTR)(app->GetName()) ); + WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); } -void CTestDlg::WriteMessage(LPCTSTR format, ...) +void CTestDlg::WriteMessage(const char *format, ...) { - CString str; + char str[4096]; // format and write the data we were given va_list args; va_start(args, format); - str.FormatV(format, args); + vsprintf(str, format, args); m_text.AppendString( str ); } @@ -340,7 +341,7 @@ void CTestDlg::OnSend() { m_msg.AddString( buffer ); } - WriteMessage( TEXT("Sending %d message %s"),count,CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); m_msg.Clear(); } @@ -355,6 +356,6 @@ void CTestDlg::OnBind() { m_expr.AddString( buffer ); } - WriteMessage( TEXT("Binding to %s"), CONVSTR(buffer) ); + WriteMessage( "Binding to %s", CONVSTR(buffer) ); m_expr.Clear(); } -- cgit v1.1 From 45ff209d0041034924f45cd35cc39c5634a6573c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:48 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 15:21 Archivé dans $/Bus/Test (vss 12) --- IvyProbe/IvyProbeDlg.cpp | 140 ++++++++++++++++++++++------------------------- 1 file changed, 64 insertions(+), 76 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 4a891d9..3ecc751 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -76,26 +76,25 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) //{{AFX_DATA_MAP(CTestDlg) DDX_Control(pDX, IDC_REGEXP, m_expr); DDX_Control(pDX, IDC_MSG, m_msg); - DDX_Control(pDX, IDC_SLIDER7, m_slider7); - DDX_Control(pDX, IDC_SLIDER6, m_slider6); - DDX_Control(pDX, IDC_SLIDER5, m_slider5); - DDX_Control(pDX, IDC_SLIDER4, m_slider4); - DDX_Control(pDX, IDC_SLIDER3, m_slider3); - DDX_Control(pDX, IDC_SLIDER2, m_slider2); - DDX_Control(pDX, IDC_SLIDER1, m_slider1); - DDX_Control(pDX, IDC_SLIDER0, m_slider0); DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CTestDlg, MyDialog) //{{AFX_MSG_MAP(CTestDlg) - ON_WM_SYSCOMMAND() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) ON_WM_CLOSE() ON_BN_CLICKED(IDC_SEND, OnSend) ON_BN_CLICKED(IDC_BIND, OnBind) + ON_BN_CLICKED(IDC_CLOCK_FAST_BACKWARD, OnClockFastBackward) + ON_BN_CLICKED(IDC_CLOCK_BACKWARD, OnClockBackward) + ON_BN_CLICKED(IDC_CLOCK_PAUSE, OnClockPause) + ON_BN_CLICKED(IDC_CLOCK_START, OnClockStart) + ON_BN_CLICKED(IDC_CLOCK_FORWARD, OnClockForward) + ON_BN_CLICKED(IDC_CLOCK_FAST_FORWARD, OnClockFastForward) + ON_WM_SYSCOMMAND() + ON_BN_CLICKED(IDC_CLOCK_RATE, OnClockRate) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -139,14 +138,13 @@ BOOL CTestDlg::OnInitDialog() << item ( IDC_TEXT, GREEDY ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) << item( paneNull, GREEDY ) - << item( IDC_SLIDER0, NORESIZE ) - << item( IDC_SLIDER1, NORESIZE ) - << item( IDC_SLIDER2, NORESIZE ) - << item( IDC_SLIDER3, NORESIZE ) - << item( IDC_SLIDER4, NORESIZE ) - << item( IDC_SLIDER5, NORESIZE ) - << item( IDC_SLIDER6, NORESIZE ) - << item( IDC_SLIDER7, NORESIZE ) + << item( IDC_CLOCK_FAST_BACKWARD, NORESIZE ) + << item( IDC_CLOCK_BACKWARD, NORESIZE ) + << item( IDC_CLOCK_PAUSE, NORESIZE ) + << item( IDC_CLOCK_START, NORESIZE ) + << item( IDC_CLOCK_RATE, NORESIZE ) + << item( IDC_CLOCK_FORWARD, NORESIZE ) + << item( IDC_CLOCK_FAST_FORWARD, NORESIZE ) << item( paneNull, GREEDY ) ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) @@ -164,23 +162,6 @@ BOOL CTestDlg::OnInitDialog() // extra initialization here m_text.SubclassDlgItem (IDC_TEXT, this); - m_slider0.SetRange( 0, 127); - m_slider1.SetRange( 0, 127); - m_slider2.SetRange( 0, 127); - m_slider3.SetRange( 0, 127); - m_slider4.SetRange( 0, 127); - m_slider5.SetRange( 0, 127); - m_slider6.SetRange( 0, 127); - m_slider7.SetRange( 0, 127); - - m_slider0.SetWindowText( TEXT("MIDICS10:fader0 value=") ); - m_slider1.SetWindowText( TEXT("MIDICS10:fader1 value=") ); - m_slider2.SetWindowText( TEXT("MIDICS10:fader2 value=") ); - m_slider3.SetWindowText( TEXT("MIDICS10:fader3 value=") ); - m_slider4.SetWindowText( TEXT("MIDICS10:fader4 value=") ); - m_slider5.SetWindowText( TEXT("MIDICS10:fader5 value=") ); - m_slider6.SetWindowText( TEXT("MIDICS10:fader6 value=") ); - m_slider7.SetWindowText( TEXT("MIDICS10:fader7 value=") ); // parse command Line Info TestParseCmdLine cmd; @@ -191,8 +172,6 @@ BOOL CTestDlg::OnInitDialog() bus = new Ivy( "TEST NT","TEST NT READY",this,FALSE); - bus->BindMsg("^MIDICS10:fader([0-7]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); - bus->BindMsg("^MIDICS10:knob([0-5]) value=([0-9]+)", BUS_CALLBACK_OF(CTestDlg, FaderCallback)); // bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb); @@ -254,46 +233,6 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) } -void CTestDlg::FaderCallback(IvyApplication *app, int argc, const char **argv) -{ -int fader; -int value; -if ( argc != 2 ) - { - TRACE(TEXT("bad Fader call back\n")); - return; - } - fader = atoi( argv[0] ); - value = atoi( argv[1] ); - switch ( fader ) { - case 0: - m_slider0.SetPos( value ); - break; - case 1: - m_slider1.SetPos( value ); - break; - case 2: - m_slider2.SetPos( value ); - break; - case 3: - m_slider3.SetPos( value ); - break; - case 4: - m_slider4.SetPos( value ); - break; - case 5: - m_slider5.SetPos( value ); - break; - case 6: - m_slider6.SetPos( value ); - break; - case 7: - m_slider7.SetPos( value ); - break; -} -//UpdateData(FALSE); - -} void CTestDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) { @@ -359,3 +298,52 @@ void CTestDlg::OnBind() WriteMessage( "Binding to %s", CONVSTR(buffer) ); m_expr.Clear(); } + +void CTestDlg::OnClockFastBackward() +{ + CString buffer = "SetClock Rate=-9.0" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockBackward() +{ + CString buffer = "SetClock Rate=-1.0" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockPause() +{ + CString buffer = "ClockPause" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockStart() +{ + CString buffer = "ClockStart" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockForward() +{ + CString buffer = "SetClock Rate=9.0" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockFastForward() +{ + CString buffer = "SetClock Rate=100.0" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} + +void CTestDlg::OnClockRate() +{ + CString buffer = "SetClock Rate=1.0" ; + int count = bus->SendMsg( CONVSTR(buffer) ); + WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); +} -- cgit v1.1 From 0440889eb6038aaf47668f0f5ea2958c0868bdb7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:51 +0000 Subject: Utilisateur : Fcolin Date : 27/03/02 Heure : 12:29 Archivé dans $/Bus/Test Commentaire: Add file load and save for message (vss 13) --- IvyProbe/IvyProbeDlg.cpp | 85 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 22 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 3ecc751..f504a1c 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -14,27 +14,6 @@ static char THIS_FILE[] = __FILE__; #endif -const char * CONVSTR( const CString& str ) -{ -#ifdef UNDER_CE - - static char buffer[4096]; - int len = str.GetLength(); - buffer[len] = '\0'; - if ( len ) - { - int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL ); - if ( err == 0 ) - TRACE(TEXT("Error converting chars %d\n"),GetLastError()); - } - return buffer; -#else - return (LPCSTR) str; -#endif - -} - - CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { @@ -93,11 +72,36 @@ BEGIN_MESSAGE_MAP(CTestDlg, MyDialog) ON_BN_CLICKED(IDC_CLOCK_START, OnClockStart) ON_BN_CLICKED(IDC_CLOCK_FORWARD, OnClockForward) ON_BN_CLICKED(IDC_CLOCK_FAST_FORWARD, OnClockFastForward) - ON_WM_SYSCOMMAND() ON_BN_CLICKED(IDC_CLOCK_RATE, OnClockRate) + ON_WM_SYSCOMMAND() + ON_COMMAND(FILE_LOAD, OnLoad) + ON_COMMAND(FILE_SAVE, OnSave) //}}AFX_MSG_MAP END_MESSAGE_MAP() + + +const char * CONVSTR( const CString& str ) +{ +#ifdef UNDER_CE + + static char buffer[4096]; + int len = str.GetLength(); + buffer[len] = '\0'; + if ( len ) + { + int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL ); + if ( err == 0 ) + TRACE(TEXT("Error converting chars %d\n"),GetLastError()); + } + return buffer; +#else + return (LPCSTR) str; +#endif + +} + + ///////////////////////////////////////////////////////////////////////////// // CTestDlg message handlers @@ -347,3 +351,40 @@ void CTestDlg::OnClockRate() int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } + +void CTestDlg::OnLoad() +{ + CString message; + + CFileDialog dialog( TRUE, "txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Ivy Messages Files (*.txt)"); + if ( dialog.DoModal() == IDOK ) + { + CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText ); + m_msg.ResetContent(); + while ( file.ReadString(message) ) + { + m_msg.AddString( message ); + } + file.Close(); + } + +} + +void CTestDlg::OnSave() +{ + CString message; + + CFileDialog dialog( FALSE, "txt" , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Ivy Messages Files (*.txt)"); + if ( dialog.DoModal() == IDOK ) + { + CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText ); + for (int i=0;i < m_msg.GetCount();i++) + { + m_msg.GetLBText( i, message ); + file.WriteString(message + "\n"); + } + file.Close(); + + } + +} -- cgit v1.1 From 3ad3e0bad3ad035a281bb4fa1166084f0696a003 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:53 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 14) --- IvyProbe/IvyProbeDlg.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index f504a1c..96bb3a2 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -132,7 +132,7 @@ BOOL CTestDlg::OnInitDialog() SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon -#ifndef UNDER_CE +#ifdef USE_ETS // define the Layout CreateRoot( VERTICAL ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) @@ -174,7 +174,7 @@ BOOL CTestDlg::OnInitDialog() // Set Argument from Command Line m_busnumber = cmd.m_busNumber; - bus = new Ivy( "TEST NT","TEST NT READY",this,FALSE); + bus = new Ivy( "IvyProbe Windows","IvyProbe Windows Ready",this,FALSE); // bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); @@ -354,37 +354,41 @@ void CTestDlg::OnClockRate() void CTestDlg::OnLoad() { +#ifndef UNDER_CE + // TODO ReadString doesn't existe CString message; - CFileDialog dialog( TRUE, "txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Ivy Messages Files (*.txt)"); + CFileDialog dialog( TRUE, TEXT("txt"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("Ivy Messages Files (*.txt)")); if ( dialog.DoModal() == IDOK ) { CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText ); m_msg.ResetContent(); - while ( file.ReadString(message) ) + while ( file.ReadString( message )) { m_msg.AddString( message ); } file.Close(); } - +#endif } void CTestDlg::OnSave() { +#ifndef UNDER_CE + // TODO WriteString doesn't existe CString message; - CFileDialog dialog( FALSE, "txt" , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Ivy Messages Files (*.txt)"); + CFileDialog dialog( FALSE, TEXT("txt") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("Ivy Messages Files (*.txt)")); if ( dialog.DoModal() == IDOK ) { CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText ); for (int i=0;i < m_msg.GetCount();i++) { m_msg.GetLBText( i, message ); - file.WriteString(message + "\n"); + file.WriteString(message + TEXT("\n")); } file.Close(); } - +#endif } -- cgit v1.1 From b95d0100933b20176881eedcf4f88e095801f35c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:55 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 15) --- IvyProbe/IvyProbeDlg.cpp | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 96bb3a2..0a6e7a4 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -2,8 +2,8 @@ // #include "stdafx.h" -#include "Test.h" -#include "TestDlg.h" +#include "IvyProbe.h" +#include "IvyProbeDlg.h" #include "TestParseCmdLine.h" #include "IvyApplication.h" @@ -37,8 +37,8 @@ END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) - : MyDialog(CTestDlg::IDD, pParent) +CIvyProbeDlg::CIvyProbeDlg(CWnd* pParent /*=NULL*/) + : MyDialog(CIvyProbeDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestDlg) m_busnumber = ""; @@ -49,7 +49,7 @@ CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) bus = NULL; } -void CTestDlg::DoDataExchange(CDataExchange* pDX) +void CIvyProbeDlg::DoDataExchange(CDataExchange* pDX) { MyDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) @@ -59,7 +59,7 @@ void CTestDlg::DoDataExchange(CDataExchange* pDX) //}}AFX_DATA_MAP } -BEGIN_MESSAGE_MAP(CTestDlg, MyDialog) +BEGIN_MESSAGE_MAP(CIvyProbeDlg, MyDialog) //{{AFX_MSG_MAP(CTestDlg) ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) @@ -105,7 +105,7 @@ const char * CONVSTR( const CString& str ) ///////////////////////////////////////////////////////////////////////////// // CTestDlg message handlers -BOOL CTestDlg::OnInitDialog() +BOOL CIvyProbeDlg::OnInitDialog() { MyDialog::OnInitDialog(); @@ -207,12 +207,12 @@ BOOL CTestDlg::OnInitDialog() // The system calls this to obtain the cursor to display while the user drags // the minimized window. -HCURSOR CTestDlg::OnQueryDragIcon() +HCURSOR CIvyProbeDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } -void CTestDlg::OnStart() +void CIvyProbeDlg::OnStart() { UpdateData(TRUE); bus->stop(); @@ -221,7 +221,7 @@ void CTestDlg::OnStart() UpdateData(FALSE); } -void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) +void CIvyProbeDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) { int i; CString text; @@ -238,20 +238,20 @@ void CTestDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) -void CTestDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) +void CIvyProbeDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg) { TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg ); } -void CTestDlg::OnApplicationConnected(IvyApplication *app) +void CIvyProbeDlg::OnApplicationConnected(IvyApplication *app) { WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) ); } -void CTestDlg::OnApplicationDisconnected(IvyApplication *app) +void CIvyProbeDlg::OnApplicationDisconnected(IvyApplication *app) { WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); } -void CTestDlg::WriteMessage(const char *format, ...) +void CIvyProbeDlg::WriteMessage(const char *format, ...) { char str[4096]; // format and write the data we were given @@ -263,7 +263,7 @@ void CTestDlg::WriteMessage(const char *format, ...) } -void CTestDlg::OnClose() +void CIvyProbeDlg::OnClose() { // TODO: Add your message handler code here and/or call default TRACE ( TEXT("Quitting\n")); @@ -273,7 +273,7 @@ void CTestDlg::OnClose() } -void CTestDlg::OnSend() +void CIvyProbeDlg::OnSend() { CString buffer; m_msg.SetEditSel( 0, -1 ); @@ -288,13 +288,13 @@ void CTestDlg::OnSend() m_msg.Clear(); } -void CTestDlg::OnBind() +void CIvyProbeDlg::OnBind() { CString buffer; m_expr.SetEditSel( 0, -1 ); m_expr.GetWindowText( buffer ); if ( buffer.IsEmpty() ) return; - int count = bus->BindMsg( CONVSTR(buffer) , BUS_CALLBACK_OF(CTestDlg, IvyCallback )); + int count = bus->BindMsg( CONVSTR(buffer) , BUS_CALLBACK_OF(CIvyProbeDlg, IvyCallback )); if ( m_expr.FindStringExact(-1, buffer) == CB_ERR ) { m_expr.AddString( buffer ); @@ -303,56 +303,56 @@ void CTestDlg::OnBind() m_expr.Clear(); } -void CTestDlg::OnClockFastBackward() +void CIvyProbeDlg::OnClockFastBackward() { CString buffer = "SetClock Rate=-9.0" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockBackward() +void CIvyProbeDlg::OnClockBackward() { CString buffer = "SetClock Rate=-1.0" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockPause() +void CIvyProbeDlg::OnClockPause() { CString buffer = "ClockPause" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockStart() +void CIvyProbeDlg::OnClockStart() { CString buffer = "ClockStart" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockForward() +void CIvyProbeDlg::OnClockForward() { CString buffer = "SetClock Rate=9.0" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockFastForward() +void CIvyProbeDlg::OnClockFastForward() { CString buffer = "SetClock Rate=100.0" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnClockRate() +void CIvyProbeDlg::OnClockRate() { CString buffer = "SetClock Rate=1.0" ; int count = bus->SendMsg( CONVSTR(buffer) ); WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); } -void CTestDlg::OnLoad() +void CIvyProbeDlg::OnLoad() { #ifndef UNDER_CE // TODO ReadString doesn't existe @@ -372,7 +372,7 @@ void CTestDlg::OnLoad() #endif } -void CTestDlg::OnSave() +void CIvyProbeDlg::OnSave() { #ifndef UNDER_CE // TODO WriteString doesn't existe -- cgit v1.1 From e335964812eab775f8f634867481fa3e67bd1cca Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:56 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:40 Archivé dans $/Bus/IvyProbe Commentaire: suppression bouton clock start (vss 16) --- IvyProbe/IvyProbeDlg.cpp | 62 ------------------------------------------------ 1 file changed, 62 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 0a6e7a4..88cc8e2 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -66,13 +66,6 @@ BEGIN_MESSAGE_MAP(CIvyProbeDlg, MyDialog) ON_WM_CLOSE() ON_BN_CLICKED(IDC_SEND, OnSend) ON_BN_CLICKED(IDC_BIND, OnBind) - ON_BN_CLICKED(IDC_CLOCK_FAST_BACKWARD, OnClockFastBackward) - ON_BN_CLICKED(IDC_CLOCK_BACKWARD, OnClockBackward) - ON_BN_CLICKED(IDC_CLOCK_PAUSE, OnClockPause) - ON_BN_CLICKED(IDC_CLOCK_START, OnClockStart) - ON_BN_CLICKED(IDC_CLOCK_FORWARD, OnClockForward) - ON_BN_CLICKED(IDC_CLOCK_FAST_FORWARD, OnClockFastForward) - ON_BN_CLICKED(IDC_CLOCK_RATE, OnClockRate) ON_WM_SYSCOMMAND() ON_COMMAND(FILE_LOAD, OnLoad) ON_COMMAND(FILE_SAVE, OnSave) @@ -142,13 +135,6 @@ BOOL CIvyProbeDlg::OnInitDialog() << item ( IDC_TEXT, GREEDY ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) << item( paneNull, GREEDY ) - << item( IDC_CLOCK_FAST_BACKWARD, NORESIZE ) - << item( IDC_CLOCK_BACKWARD, NORESIZE ) - << item( IDC_CLOCK_PAUSE, NORESIZE ) - << item( IDC_CLOCK_START, NORESIZE ) - << item( IDC_CLOCK_RATE, NORESIZE ) - << item( IDC_CLOCK_FORWARD, NORESIZE ) - << item( IDC_CLOCK_FAST_FORWARD, NORESIZE ) << item( paneNull, GREEDY ) ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) @@ -303,54 +289,6 @@ void CIvyProbeDlg::OnBind() m_expr.Clear(); } -void CIvyProbeDlg::OnClockFastBackward() -{ - CString buffer = "SetClock Rate=-9.0" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockBackward() -{ - CString buffer = "SetClock Rate=-1.0" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockPause() -{ - CString buffer = "ClockPause" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockStart() -{ - CString buffer = "ClockStart" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockForward() -{ - CString buffer = "SetClock Rate=9.0" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockFastForward() -{ - CString buffer = "SetClock Rate=100.0" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} - -void CIvyProbeDlg::OnClockRate() -{ - CString buffer = "SetClock Rate=1.0" ; - int count = bus->SendMsg( CONVSTR(buffer) ); - WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); -} void CIvyProbeDlg::OnLoad() { -- cgit v1.1 From d9c1c56cccbe7ab0247a582272ac5f0b0c14f235 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:10:58 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:49 Archivé dans $/Bus/IvyProbe Commentaire: (vss 17) --- IvyProbe/IvyProbeDlg.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 88cc8e2..b782aa7 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -127,17 +127,13 @@ BOOL CIvyProbeDlg::OnInitDialog() #ifdef USE_ETS // define the Layout - CreateRoot( VERTICAL ) + CreateRoot( VERTICAL, nDefaultBorder, 5 ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) << item ( IDC_BUSNUMBER, GREEDY ) << item ( IDC_START, NORESIZE ) ) << item ( IDC_TEXT, GREEDY ) << ( pane( HORIZONTAL, ABSOLUTE_VERT ) - << item( paneNull, GREEDY ) - << item( paneNull, GREEDY ) - ) - << ( pane( HORIZONTAL, ABSOLUTE_VERT ) << item( IDC_STATIC_MSG, NORESIZE ) << item( IDC_MSG, GREEDY ) << item( IDC_SEND, NORESIZE ) -- cgit v1.1 From 98c6dc0bc00a97a159e664e77606fc3d52082bff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:00 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 16:30 Archivé dans $/Bus/IvyProbe Commentaire: (vss 18) --- IvyProbe/IvyProbeDlg.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index b782aa7..d64c616 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -248,8 +248,12 @@ void CIvyProbeDlg::WriteMessage(const char *format, ...) void CIvyProbeDlg::OnClose() { // TODO: Add your message handler code here and/or call default - TRACE ( TEXT("Quitting\n")); - if (bus) delete bus; + TRACE ( TEXT("IvyProbe Quitting\n")); + if (bus) + { + bus->stop(); + delete bus; + } MyDialog::OnClose(); } -- cgit v1.1 From ec4b01a7990a0de789a40b846c62a679092e7409 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:02 +0000 Subject: Utilisateur : Fcolin Date : 1/06/05 Heure : 16:45 Archivé dans $/Bus/IvyProbe Commentaire: (vss 19) --- IvyProbe/IvyProbeDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index d64c616..b29fd72 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -239,7 +239,7 @@ void CIvyProbeDlg::WriteMessage(const char *format, ...) // format and write the data we were given va_list args; va_start(args, format); - vsprintf(str, format, args); + _vsnprintf(str, sizeof(str), format, args); m_text.AppendString( str ); } -- cgit v1.1 From 49e3b1e92ab32714523690991027b5bc0cbb18ef Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:04 +0000 Subject: Utilisateur : Fcolin Date : 18/11/05 Heure : 11:46 Archivé dans $/Bus/IvyProbe Commentaire: (vss 20) --- IvyProbe/IvyProbeDlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index b29fd72..997ae6f 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -239,7 +239,7 @@ void CIvyProbeDlg::WriteMessage(const char *format, ...) // format and write the data we were given va_list args; va_start(args, format); - _vsnprintf(str, sizeof(str), format, args); + _vsnprintf_s(str, sizeof(str), sizeof(str)-1, format, args); m_text.AppendString( str ); } -- cgit v1.1 From 8576e4d65fb5683bda81d2a4d40327e0f34f4804 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:06 +0000 Subject: Utilisateur : Fcolin Date : 6/06/06 Heure : 16:43 Archivé dans $/Bus/IvyProbe Commentaire: (vss 21) --- IvyProbe/IvyProbeDlg.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 997ae6f..3d0e7b2 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -157,6 +157,7 @@ BOOL CIvyProbeDlg::OnInitDialog() m_busnumber = cmd.m_busNumber; bus = new Ivy( "IvyProbe Windows","IvyProbe Windows Ready",this,FALSE); + bus->SetBindCallback( this ); // bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback )); @@ -203,7 +204,7 @@ void CIvyProbeDlg::OnStart() UpdateData(FALSE); } -void CIvyProbeDlg::IvyCallback(IvyApplication *app, int argc, const char **argv) +void CIvyProbeDlg::OnMessage(IvyApplication *app, int argc, const char **argv) { int i; CString text; @@ -233,6 +234,20 @@ void CIvyProbeDlg::OnApplicationDisconnected(IvyApplication *app) { WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) ); } + +void CIvyProbeDlg::OnAddBind (IvyApplication *app, int id, const char * regexp) +{ + WriteMessage( "Application: %s Add Binding %s",(LPCSTR)(app->GetName()), regexp ); +} +void CIvyProbeDlg::OnRemoveBind (IvyApplication *app, int id, const char * regexp) +{ + WriteMessage( "Application: %s Remove Binding %s",(LPCSTR)(app->GetName()), regexp ); +} +void CIvyProbeDlg::OnFilterBind (IvyApplication *app, int id, const char * regexp) +{ + WriteMessage( "Application: %s Filtered Binding %s",(LPCSTR)(app->GetName()), regexp ); +} + void CIvyProbeDlg::WriteMessage(const char *format, ...) { char str[4096]; @@ -280,7 +295,7 @@ void CIvyProbeDlg::OnBind() m_expr.SetEditSel( 0, -1 ); m_expr.GetWindowText( buffer ); if ( buffer.IsEmpty() ) return; - int count = bus->BindMsg( CONVSTR(buffer) , BUS_CALLBACK_OF(CIvyProbeDlg, IvyCallback )); + int count = bus->BindMsg( CONVSTR(buffer) , this ); if ( m_expr.FindStringExact(-1, buffer) == CB_ERR ) { m_expr.AddString( buffer ); -- cgit v1.1 From 6d324616b64ce89bd9666ef8a87d9517407d9418 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:08 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/IvyProbe Commentaire: (vss 22) --- IvyProbe/IvyProbeDlg.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.cpp b/IvyProbe/IvyProbeDlg.cpp index 3d0e7b2..ef7bff8 100644 --- a/IvyProbe/IvyProbeDlg.cpp +++ b/IvyProbe/IvyProbeDlg.cpp @@ -14,6 +14,8 @@ static char THIS_FILE[] = __FILE__; #endif +static char BASED_CODE szFilterMsg[] = "Ivy Messages Files (*.ivm)|*.ivm|Ivy Files (*.ivm;*.ivb;*.txt)|*.ivm;*.ivb;*.txt|All Files (*.*)|*.*||"; +static char BASED_CODE szFilterBind[] = "Ivy Bindings Files (*.ivb)|*.ivb|Ivy Files (*.ivm;*.ivb;*.txt)|*.ivm;*.ivb;*.txt|All Files (*.*)|*.*||"; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { @@ -70,6 +72,8 @@ BEGIN_MESSAGE_MAP(CIvyProbeDlg, MyDialog) ON_COMMAND(FILE_LOAD, OnLoad) ON_COMMAND(FILE_SAVE, OnSave) //}}AFX_MSG_MAP + ON_COMMAND(ID_FILE_SAVEBINDINGS, &CIvyProbeDlg::OnFileSavebindings) + ON_COMMAND(ID_FILE_LOADBINDINGS, &CIvyProbeDlg::OnFileLoadbindings) END_MESSAGE_MAP() @@ -283,7 +287,8 @@ void CIvyProbeDlg::OnSend() int count = bus->SendMsg( CONVSTR(buffer) ); if ( m_msg.FindStringExact(-1, buffer) == CB_ERR ) { - m_msg.AddString( buffer ); + //m_msg.AddString( buffer ); + m_msg.InsertString( 0, buffer ); } WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) ); m_msg.Clear(); @@ -311,7 +316,7 @@ void CIvyProbeDlg::OnLoad() // TODO ReadString doesn't existe CString message; - CFileDialog dialog( TRUE, TEXT("txt"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("Ivy Messages Files (*.txt)")); + CFileDialog dialog( TRUE, TEXT("ivm"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterMsg); if ( dialog.DoModal() == IDOK ) { CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText ); @@ -331,7 +336,7 @@ void CIvyProbeDlg::OnSave() // TODO WriteString doesn't existe CString message; - CFileDialog dialog( FALSE, TEXT("txt") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("Ivy Messages Files (*.txt)")); + CFileDialog dialog( FALSE, TEXT("ivm") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterMsg); if ( dialog.DoModal() == IDOK ) { CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText ); @@ -345,3 +350,45 @@ void CIvyProbeDlg::OnSave() } #endif } + +void CIvyProbeDlg::OnFileLoadbindings() +{ +#ifndef UNDER_CE + // TODO ReadString doesn't existe + CString message; + + CFileDialog dialog( TRUE, TEXT("ivb"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterBind); + if ( dialog.DoModal() == IDOK ) + { + CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText ); + m_expr.ResetContent(); + while ( file.ReadString( message )) + { + m_expr.AddString( message ); + bus->BindMsg( CONVSTR(message) , this ); + } + file.Close(); + } +#endif +} + +void CIvyProbeDlg::OnFileSavebindings() +{ +#ifndef UNDER_CE + // TODO WriteString doesn't existe + CString message; + + CFileDialog dialog( FALSE, TEXT("ivb") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterBind); + if ( dialog.DoModal() == IDOK ) + { + CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText ); + for (int i=0;i < m_expr.GetCount();i++) + { + m_expr.GetLBText( i, message ); + file.WriteString(message + TEXT("\n")); + } + file.Close(); + + } +#endif +} -- cgit v1.1 From c49ed23fb67decde21919759b35b02e974266d10 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:11 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/IvyProbeDlg.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 IvyProbe/IvyProbeDlg.h diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h new file mode 100644 index 0000000..1534e65 --- /dev/null +++ b/IvyProbe/IvyProbeDlg.h @@ -0,0 +1,69 @@ +// TestDlg.h : header file +// + +#if !defined(AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include "Bus.h" + +///////////////////////////////////////////////////////////////////////////// +// CTestDlg dialog + +class CTestDlg : public CDialog +{ +// Construction +public: + + CTestDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CTestDlg) + enum { IDD = IDD_TEST_DIALOG }; + CEdit m_text; + CSliderCtrl m_slider7; + CSliderCtrl m_slider6; + CSliderCtrl m_slider5; + CSliderCtrl m_slider4; + CSliderCtrl m_slider3; + CSliderCtrl m_slider2; + CSliderCtrl m_slider1; + CSliderCtrl m_slider0; + UINT m_busnumber; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTestDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + void ApplicationCallback( BusApplication *app, int event ); + void DirectCallback( BusApplication *app, int id, const char *arg ); + void FaderCallback( BusApplication *app, int argc, const char **argv ); + void BusCallback( BusApplication *app, int argc, const char **argv ); + Bus *bus; HICON m_hIcon; + + // Generated message map functions + //{{AFX_MSG(CTestDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnStart(); + virtual void OnOK(); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From c5c7e1fda322c75ca990c409a1a6b5704dddfbc8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:12 +0000 Subject: Utilisateur : Fcolin Date : 22/12/98 Heure : 16:54 Archivé dans $/Bus/Test Commentaire: modif ligne message a emettre (vss 2) --- IvyProbe/IvyProbeDlg.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 1534e65..05675ad 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -23,6 +23,7 @@ public: // Dialog Data //{{AFX_DATA(CTestDlg) enum { IDD = IDD_TEST_DIALOG }; + CEdit m_msgToSend; CEdit m_text; CSliderCtrl m_slider7; CSliderCtrl m_slider6; @@ -58,6 +59,7 @@ protected: afx_msg void OnStart(); virtual void OnOK(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVscrollMsg(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From e0e5eee4825779a1ede9c15a85fde77491d698bd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:14 +0000 Subject: Utilisateur : Fcolin Date : 12/03/99 Heure : 18:52 Archivé dans $/Bus/Test (vss 3) --- IvyProbe/IvyProbeDlg.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 05675ad..1667588 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -13,7 +13,7 @@ ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CTestDlg : public CDialog +class CTestDlg : public CDialog, public BusApplicationCallback { // Construction public: @@ -44,8 +44,9 @@ public: // Implementation protected: - void ApplicationCallback( BusApplication *app, int event ); - void DirectCallback( BusApplication *app, int id, const char *arg ); + void OnApplicationConnected( BusApplication *app ); + void OnApplicationDisconnected( BusApplication *app ); + void OnDirectMessage( BusApplication *app, int id, const char *arg ); void FaderCallback( BusApplication *app, int argc, const char **argv ); void BusCallback( BusApplication *app, int argc, const char **argv ); Bus *bus; HICON m_hIcon; -- cgit v1.1 From 291bcf2e81ebae13339d08964bd52f44706be0f8 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:16 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 16:22 Archivé dans $/Bus/Test (vss 4) --- IvyProbe/IvyProbeDlg.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 1667588..62e3c95 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -8,12 +8,12 @@ #pragma once #endif // _MSC_VER >= 1000 -#include "Bus.h" +#include "Ivy.h" ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CTestDlg : public CDialog, public BusApplicationCallback +class CTestDlg : public CDialog, public IvyApplicationCallback { // Construction public: @@ -23,8 +23,8 @@ public: // Dialog Data //{{AFX_DATA(CTestDlg) enum { IDD = IDD_TEST_DIALOG }; - CEdit m_msgToSend; - CEdit m_text; + CEdit m_msgToSend; + CEdit m_text; CSliderCtrl m_slider7; CSliderCtrl m_slider6; CSliderCtrl m_slider5; @@ -33,7 +33,7 @@ public: CSliderCtrl m_slider2; CSliderCtrl m_slider1; CSliderCtrl m_slider0; - UINT m_busnumber; + CString m_busnumber; //}}AFX_DATA // ClassWizard generated virtual function overrides @@ -44,12 +44,12 @@ public: // Implementation protected: - void OnApplicationConnected( BusApplication *app ); - void OnApplicationDisconnected( BusApplication *app ); - void OnDirectMessage( BusApplication *app, int id, const char *arg ); - void FaderCallback( BusApplication *app, int argc, const char **argv ); - void BusCallback( BusApplication *app, int argc, const char **argv ); - Bus *bus; HICON m_hIcon; + void OnApplicationConnected( IvyApplication *app ); + void OnApplicationDisconnected( IvyApplication *app ); + void OnDirectMessage( IvyApplication *app, int id, const char *arg ); + void FaderCallback( IvyApplication *app, int argc, const char **argv ); + void IvyCallback( IvyApplication *app, int argc, const char **argv ); + Ivy *bus; HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CTestDlg) -- cgit v1.1 From ec1119c0331d63dd8e8e218784e9fd6f7f929262 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:18 +0000 Subject: Utilisateur : Fcolin Date : 29/07/99 Heure : 16:46 Archivé dans $/Bus/Test (vss 5) --- IvyProbe/IvyProbeDlg.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 62e3c95..d9706dd 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -44,6 +44,7 @@ public: // Implementation protected: + void WriteMessage(const CString & text); void OnApplicationConnected( IvyApplication *app ); void OnApplicationDisconnected( IvyApplication *app ); void OnDirectMessage( IvyApplication *app, int id, const char *arg ); @@ -58,9 +59,10 @@ protected: afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnStart(); - virtual void OnOK(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnVscrollMsg(); + afx_msg void OnClose(); + virtual void OnOK(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From 294eaddf62e91fa43f412159fb06afa8de44ec69 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:20 +0000 Subject: Utilisateur : Fcolin Date : 6/01/00 Heure : 11:15 Archivé dans $/Bus/Test Commentaire: ajout bind to msg (vss 6) --- IvyProbe/IvyProbeDlg.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index d9706dd..ac32f11 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -23,6 +23,7 @@ public: // Dialog Data //{{AFX_DATA(CTestDlg) enum { IDD = IDD_TEST_DIALOG }; + CEdit m_bind; CEdit m_msgToSend; CEdit m_text; CSliderCtrl m_slider7; @@ -63,6 +64,7 @@ protected: afx_msg void OnVscrollMsg(); afx_msg void OnClose(); virtual void OnOK(); + afx_msg void OnVscrollBind(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From 7cd160a4389e4abc0a26b5d880d260f4e3af5437 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:22 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 11:49 Archivé dans $/Bus/Test Commentaire: modif boite resize et combo box (vss 7) --- IvyProbe/IvyProbeDlg.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index ac32f11..953d403 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -13,18 +13,19 @@ ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CTestDlg : public CDialog, public IvyApplicationCallback +class CTestDlg : public ETSLayoutDialog, public IvyApplicationCallback { // Construction public: CTestDlg(CWnd* pParent = NULL); // standard constructor + DECLARE_LAYOUT(); // Dialog Data //{{AFX_DATA(CTestDlg) enum { IDD = IDD_TEST_DIALOG }; - CEdit m_bind; - CEdit m_msgToSend; + CComboBox m_expr; + CComboBox m_msg; CEdit m_text; CSliderCtrl m_slider7; CSliderCtrl m_slider6; @@ -57,14 +58,12 @@ protected: //{{AFX_MSG(CTestDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); - afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnStart(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); - afx_msg void OnVscrollMsg(); afx_msg void OnClose(); - virtual void OnOK(); - afx_msg void OnVscrollBind(); + afx_msg void OnSend(); + afx_msg void OnBind(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From 28e0cb4fc10c7813d06a8d1c8154d64f250e9ce7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:24 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:49 Archivé dans $/Bus/Test Commentaire: modif Text Scroll (vss 8) --- IvyProbe/IvyProbeDlg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 953d403..bd6c941 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -21,12 +21,12 @@ public: CTestDlg(CWnd* pParent = NULL); // standard constructor DECLARE_LAYOUT(); + CHistoryEdit m_text; // Dialog Data //{{AFX_DATA(CTestDlg) enum { IDD = IDD_TEST_DIALOG }; CComboBox m_expr; CComboBox m_msg; - CEdit m_text; CSliderCtrl m_slider7; CSliderCtrl m_slider6; CSliderCtrl m_slider5; @@ -46,7 +46,7 @@ public: // Implementation protected: - void WriteMessage(const CString & text); + void WriteMessage(LPCTSTR format, ...); void OnApplicationConnected( IvyApplication *app ); void OnApplicationDisconnected( IvyApplication *app ); void OnDirectMessage( IvyApplication *app, int id, const char *arg ); -- cgit v1.1 From 60d0d61b5ef2cd7ab13804a12617de856f23b7d3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:26 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Bus/Test Commentaire: win CE compile not finished (vss 9) --- IvyProbe/IvyProbeDlg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index bd6c941..5ed0e5e 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -13,7 +13,7 @@ ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CTestDlg : public ETSLayoutDialog, public IvyApplicationCallback +class CTestDlg : public MyDialog, public IvyApplicationCallback { // Construction public: -- cgit v1.1 From 8c356cbfd8b74015466126cacb1b4eb9c162d676 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:28 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 10:39 Archivé dans $/Bus/Test (vss 10) --- IvyProbe/IvyProbeDlg.h | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 5ed0e5e..61e3c12 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -9,6 +9,31 @@ #endif // _MSC_VER >= 1000 #include "Ivy.h" +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + +// Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog @@ -57,7 +82,7 @@ protected: // Generated message map functions //{{AFX_MSG(CTestDlg) virtual BOOL OnInitDialog(); - afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + //afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnStart(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); -- cgit v1.1 From c87f297c3840c032d3fc6a3ea9dfea48d9c88397 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:30 +0000 Subject: Utilisateur : Fcolin Date : 19/02/01 Heure : 17:00 Archivé dans $/Bus/Test (vss 11) --- IvyProbe/IvyProbeDlg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 61e3c12..4d97c67 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -71,7 +71,7 @@ public: // Implementation protected: - void WriteMessage(LPCTSTR format, ...); + void WriteMessage(const char * format, ...); void OnApplicationConnected( IvyApplication *app ); void OnApplicationDisconnected( IvyApplication *app ); void OnDirectMessage( IvyApplication *app, int id, const char *arg ); -- cgit v1.1 From 0f81b4e3805796d2d71d318b60537b8847ac65d3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:32 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 15:21 Archivé dans $/Bus/Test (vss 12) --- IvyProbe/IvyProbeDlg.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 4d97c67..fa90f09 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -82,13 +82,19 @@ protected: // Generated message map functions //{{AFX_MSG(CTestDlg) virtual BOOL OnInitDialog(); - //afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnStart(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnClose(); afx_msg void OnSend(); afx_msg void OnBind(); + afx_msg void OnClockFastBackward(); + afx_msg void OnClockBackward(); + afx_msg void OnClockPause(); + afx_msg void OnClockStart(); + afx_msg void OnClockForward(); + afx_msg void OnClockFastForward(); + afx_msg void OnClockRate(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From 63ac5d3c955c4373fe87b0f8f44fbc344b0336c7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:34 +0000 Subject: Utilisateur : Fcolin Date : 27/03/02 Heure : 12:29 Archivé dans $/Bus/Test Commentaire: Add file load and save for message (vss 13) --- IvyProbe/IvyProbeDlg.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index fa90f09..bf59474 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -77,7 +77,8 @@ protected: void OnDirectMessage( IvyApplication *app, int id, const char *arg ); void FaderCallback( IvyApplication *app, int argc, const char **argv ); void IvyCallback( IvyApplication *app, int argc, const char **argv ); - Ivy *bus; HICON m_hIcon; + Ivy *bus; + HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CTestDlg) @@ -95,6 +96,8 @@ protected: afx_msg void OnClockForward(); afx_msg void OnClockFastForward(); afx_msg void OnClockRate(); + afx_msg void OnLoad(); + afx_msg void OnSave(); //}}AFX_MSG DECLARE_MESSAGE_MAP() -- cgit v1.1 From 01be0b37170026a6f07f25a4d734bf9f7a2984fd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:37 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 14) --- IvyProbe/IvyProbeDlg.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index bf59474..0823c38 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -9,6 +9,13 @@ #endif // _MSC_VER >= 1000 #include "Ivy.h" +#ifdef USE_ETS +#include "ETSLayout.h" +#define MyDialog ETSLayoutDialog +#else +#define MyDialog CDialog +#endif +#include "HistoryEdit.h" ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About @@ -44,8 +51,9 @@ class CTestDlg : public MyDialog, public IvyApplicationCallback public: CTestDlg(CWnd* pParent = NULL); // standard constructor +#ifdef USE_ETS DECLARE_LAYOUT(); - +#endif CHistoryEdit m_text; // Dialog Data //{{AFX_DATA(CTestDlg) -- cgit v1.1 From 72af581ca773279af49c7715d6df6a3c53d9943b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:38 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 15) --- IvyProbe/IvyProbeDlg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 0823c38..127a716 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -45,12 +45,12 @@ protected: ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CTestDlg : public MyDialog, public IvyApplicationCallback +class CIvyProbeDlg : public MyDialog, public IvyApplicationCallback { // Construction public: - CTestDlg(CWnd* pParent = NULL); // standard constructor + CIvyProbeDlg(CWnd* pParent = NULL); // standard constructor #ifdef USE_ETS DECLARE_LAYOUT(); #endif -- cgit v1.1 From 8f2e27496eaa11cf658f8055615c175bd247252b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:40 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:40 Archivé dans $/Bus/IvyProbe Commentaire: suppression bouton clock start (vss 16) --- IvyProbe/IvyProbeDlg.h | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 127a716..297c3af 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -60,14 +60,6 @@ public: enum { IDD = IDD_TEST_DIALOG }; CComboBox m_expr; CComboBox m_msg; - CSliderCtrl m_slider7; - CSliderCtrl m_slider6; - CSliderCtrl m_slider5; - CSliderCtrl m_slider4; - CSliderCtrl m_slider3; - CSliderCtrl m_slider2; - CSliderCtrl m_slider1; - CSliderCtrl m_slider0; CString m_busnumber; //}}AFX_DATA @@ -97,13 +89,6 @@ protected: afx_msg void OnClose(); afx_msg void OnSend(); afx_msg void OnBind(); - afx_msg void OnClockFastBackward(); - afx_msg void OnClockBackward(); - afx_msg void OnClockPause(); - afx_msg void OnClockStart(); - afx_msg void OnClockForward(); - afx_msg void OnClockFastForward(); - afx_msg void OnClockRate(); afx_msg void OnLoad(); afx_msg void OnSave(); //}}AFX_MSG -- cgit v1.1 From 378838d8274697057429fac2112b87e90452be09 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:42 +0000 Subject: Utilisateur : Fcolin Date : 6/06/06 Heure : 16:43 Archivé dans $/Bus/IvyProbe Commentaire: (vss 17) --- IvyProbe/IvyProbeDlg.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 297c3af..135a567 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -45,7 +45,7 @@ protected: ///////////////////////////////////////////////////////////////////////////// // CTestDlg dialog -class CIvyProbeDlg : public MyDialog, public IvyApplicationCallback +class CIvyProbeDlg : public MyDialog, public IvyApplicationCallback, public IvyBindingCallback, public IvyMessageCallback { // Construction public: @@ -75,8 +75,12 @@ protected: void OnApplicationConnected( IvyApplication *app ); void OnApplicationDisconnected( IvyApplication *app ); void OnDirectMessage( IvyApplication *app, int id, const char *arg ); - void FaderCallback( IvyApplication *app, int argc, const char **argv ); - void IvyCallback( IvyApplication *app, int argc, const char **argv ); + void OnAddBind (IvyApplication *app, int id, const char * regexp); + void OnRemoveBind (IvyApplication *app, int id, const char * regexp); + void OnFilterBind (IvyApplication *app, int id, const char * regexp); + + void FaderCallback ( IvyApplication *app, int argc, const char **argv ); + void OnMessage ( IvyApplication *app, int argc, const char **argv ); Ivy *bus; HICON m_hIcon; -- cgit v1.1 From 7a185594f1a0242f00d63e15a11f6f71b0dc1f4b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:44 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/IvyProbe Commentaire: (vss 18) --- IvyProbe/IvyProbeDlg.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IvyProbe/IvyProbeDlg.h b/IvyProbe/IvyProbeDlg.h index 135a567..eee40ef 100644 --- a/IvyProbe/IvyProbeDlg.h +++ b/IvyProbe/IvyProbeDlg.h @@ -98,6 +98,10 @@ protected: //}}AFX_MSG DECLARE_MESSAGE_MAP() +public: + afx_msg void OnFileSavebindings(); +public: + afx_msg void OnFileLoadbindings(); }; //{{AFX_INSERT_LOCATION}} -- cgit v1.1 From e8c3cbbf03690b01892e1bab7b6a0680800987cf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:47 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 12:54 Créé Commentaire: (vss 1) --- IvyProbe/ReadMe.txt | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 IvyProbe/ReadMe.txt diff --git a/IvyProbe/ReadMe.txt b/IvyProbe/ReadMe.txt new file mode 100644 index 0000000..333432d --- /dev/null +++ b/IvyProbe/ReadMe.txt @@ -0,0 +1,81 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : Test +======================================================================== + + +AppWizard has created this Test application for you. This application +not only demonstrates the basics of using the Microsoft Foundation classes +but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your Test application. + +Test.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CTestApp application class. + +Test.cpp + This is the main application source file that contains the application + class CTestApp. + +Test.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Developer Studio. + +res\Test.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file Test.rc. + +res\Test.rc2 + This file contains resources that are not edited by Microsoft + Developer Studio. You should place all resources not + editable by the resource editor in this file. + +Test.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + + +///////////////////////////////////////////////////////////////////////////// + +AppWizard creates one dialog class: + +TestDlg.h, TestDlg.cpp - the dialog + These files contain your CTestDlg class. This class defines + the behavior of your application's main dialog. The dialog's + template is in Test.rc, which can be edited in Microsoft + Developer Studio. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named Test.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Developer Studio reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, and your application is +in a language other than the operating system's current language, you +will need to copy the corresponding localized resources MFC40XXX.DLL +from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, +and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. +For example, MFC40DEU.DLL contains resources translated to German.) If you +don't do this, some of the UI elements of your application will remain in the +language of the operating system. + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From e2612aa597b27394991fbe8b000e3c15d93d9917 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:49 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/Resource.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 IvyProbe/Resource.h diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h new file mode 100644 index 0000000..e40669b --- /dev/null +++ b/IvyProbe/Resource.h @@ -0,0 +1,32 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by Test.rc +// +#define IDM_ABOUTBOX 0x0010 +#define IDD_ABOUTBOX 100 +#define IDS_ABOUTBOX 101 +#define IDD_TEST_DIALOG 102 +#define CG_IDS_SOCKETS_INIT_FAILED 103 +#define IDR_MAINFRAME 128 +#define IDC_BUSNUMBER 1000 +#define IDC_START 1001 +#define IDC_SLIDER0 1002 +#define IDC_SLIDER1 1003 +#define IDC_SLIDER3 1004 +#define IDC_SLIDER4 1005 +#define IDC_SLIDER5 1006 +#define IDC_SLIDER6 1007 +#define IDC_SLIDER7 1008 +#define IDC_SLIDER2 1010 +#define IDC_TEXT 1011 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1012 +#define _APS_NEXT_SYMED_VALUE 104 +#endif +#endif -- cgit v1.1 From 8adf140e0f39bfa3984d24439f51714800d52be3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:50 +0000 Subject: Utilisateur : Fcolin Date : 22/12/98 Heure : 16:54 Archivé dans $/Bus/Test Commentaire: modif ligne message a emettre (vss 2) --- IvyProbe/Resource.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index e40669b..6a80ecb 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -19,6 +19,7 @@ #define IDC_SLIDER7 1008 #define IDC_SLIDER2 1010 #define IDC_TEXT 1011 +#define IDC_MSG 1012 // Next default values for new objects // @@ -26,7 +27,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 129 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1012 +#define _APS_NEXT_CONTROL_VALUE 1013 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif -- cgit v1.1 From 1273733a5b24b8fb48c9c2d5374e1569b1d6aa0a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:53 +0000 Subject: Utilisateur : Fcolin Date : 6/01/00 Heure : 11:15 Archivé dans $/Bus/Test Commentaire: ajout bind to msg (vss 3) --- IvyProbe/Resource.h | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 6a80ecb..f8d5965 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -20,6 +20,7 @@ #define IDC_SLIDER2 1010 #define IDC_TEXT 1011 #define IDC_MSG 1012 +#define IDC_BIND 1013 // Next default values for new objects // -- cgit v1.1 From 697b1b4e9dea2db64d8f07a1a59bb5cbf8149dd2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:54 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 11:49 Archivé dans $/Bus/Test Commentaire: modif boite resize et combo box (vss 4) --- IvyProbe/Resource.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index f8d5965..70fe2c7 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -19,8 +19,12 @@ #define IDC_SLIDER7 1008 #define IDC_SLIDER2 1010 #define IDC_TEXT 1011 -#define IDC_MSG 1012 -#define IDC_BIND 1013 +#define IDC_MSG 1015 +#define IDC_SEND 1016 +#define IDC_BIND 1017 +#define IDC_STATIC_MSG 1018 +#define IDC_STATIC_BIND 1019 +#define IDC_REGEXP 1021 // Next default values for new objects // @@ -28,7 +32,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 129 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1013 +#define _APS_NEXT_CONTROL_VALUE 1022 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif -- cgit v1.1 From abc41ba285094480634a4d7e24dd773e82e3c721 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:56 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:49 Archivé dans $/Bus/Test Commentaire: modif Text Scroll (vss 5) --- IvyProbe/Resource.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 70fe2c7..97c8ba1 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -30,9 +30,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_RESOURCE_VALUE 132 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1022 +#define _APS_NEXT_CONTROL_VALUE 1024 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif -- cgit v1.1 From f0033f355c6dda53a7ed6ea8709fcbc9b9b9c9f3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:11:58 +0000 Subject: Utilisateur : Fcolin Date : 14/09/01 Heure : 15:21 Archivé dans $/Bus/Test (vss 6) --- IvyProbe/Resource.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 97c8ba1..972709c 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -25,6 +25,13 @@ #define IDC_STATIC_MSG 1018 #define IDC_STATIC_BIND 1019 #define IDC_REGEXP 1021 +#define IDC_CLOCK_FAST_BACKWARD 1026 +#define IDC_CLOCK_BACKWARD 1027 +#define IDC_CLOCK_START 1028 +#define IDC_CLOCK_PAUSE 1029 +#define IDC_CLOCK_FORWARD 1030 +#define IDC_CLOCK_FAST_FORWARD 1031 +#define IDC_CLOCK_RATE 1032 // Next default values for new objects // @@ -32,7 +39,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 132 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1024 +#define _APS_NEXT_CONTROL_VALUE 1027 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif -- cgit v1.1 From 236dd4d8a17f0e5a05246845a6eb5b1c80aacad1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:01 +0000 Subject: Utilisateur : Fcolin Date : 27/03/02 Heure : 12:29 Archivé dans $/Bus/Test Commentaire: Add file load and save for message (vss 7) --- IvyProbe/Resource.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 972709c..e7530a2 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -8,6 +8,7 @@ #define IDD_TEST_DIALOG 102 #define CG_IDS_SOCKETS_INIT_FAILED 103 #define IDR_MAINFRAME 128 +#define IDR_MENU1 132 #define IDC_BUSNUMBER 1000 #define IDC_START 1001 #define IDC_SLIDER0 1002 @@ -32,13 +33,15 @@ #define IDC_CLOCK_FORWARD 1030 #define IDC_CLOCK_FAST_FORWARD 1031 #define IDC_CLOCK_RATE 1032 +#define FILE_SAVE 32771 +#define FILE_LOAD 32772 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 132 -#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_RESOURCE_VALUE 133 +#define _APS_NEXT_COMMAND_VALUE 32773 #define _APS_NEXT_CONTROL_VALUE 1027 #define _APS_NEXT_SYMED_VALUE 104 #endif -- cgit v1.1 From 37b07f7de883c87bf1b687ac875e002408fc9b87 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:02 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:13 Archivé dans $/Bus/IvyProbe Commentaire: (vss 8) --- IvyProbe/Resource.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index e7530a2..c4cd154 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -1,11 +1,12 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by Test.rc // #define IDM_ABOUTBOX 0x0010 #define IDD_ABOUTBOX 100 #define IDS_ABOUTBOX 101 #define IDD_TEST_DIALOG 102 +#define IDD_IVYPROBE_DIALOG 102 #define CG_IDS_SOCKETS_INIT_FAILED 103 #define IDR_MAINFRAME 128 #define IDR_MENU1 132 -- cgit v1.1 From 7b6724fb751246ab5b240bc5a7e3e4d8b6d8bd93 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:04 +0000 Subject: Utilisateur : Fcolin Date : 21/02/03 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 9) --- IvyProbe/Resource.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index c4cd154..809c90f 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -1,6 +1,6 @@ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. -// Used by Test.rc +// Used by IvyProbe.rc // #define IDM_ABOUTBOX 0x0010 #define IDD_ABOUTBOX 100 -- cgit v1.1 From 0546692aec1f7cf3b1d4153122025a050d443578 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:06 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:40 Archivé dans $/Bus/IvyProbe Commentaire: suppression bouton clock start (vss 10) --- IvyProbe/Resource.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 809c90f..3c75223 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -2,6 +2,7 @@ // Microsoft Visual C++ generated include file. // Used by IvyProbe.rc // +#define IDR_MANIFEST 1 #define IDM_ABOUTBOX 0x0010 #define IDD_ABOUTBOX 100 #define IDS_ABOUTBOX 101 @@ -41,7 +42,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 133 +#define _APS_NEXT_RESOURCE_VALUE 134 #define _APS_NEXT_COMMAND_VALUE 32773 #define _APS_NEXT_CONTROL_VALUE 1027 #define _APS_NEXT_SYMED_VALUE 104 -- cgit v1.1 From ce2737168ce16effbe3d2c18b56ced6ff7bccedc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:08 +0000 Subject: Utilisateur : Fcolin Date : 9/08/06 Heure : 16:02 Archivé dans $/Bus/IvyProbe Commentaire: (vss 11) --- IvyProbe/Resource.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IvyProbe/Resource.h b/IvyProbe/Resource.h index 3c75223..afeece2 100644 --- a/IvyProbe/Resource.h +++ b/IvyProbe/Resource.h @@ -37,13 +37,15 @@ #define IDC_CLOCK_RATE 1032 #define FILE_SAVE 32771 #define FILE_LOAD 32772 +#define ID_FILE_SAVEBINDINGS 32773 +#define ID_FILE_LOADBINDINGS 32774 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 134 -#define _APS_NEXT_COMMAND_VALUE 32773 +#define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_CONTROL_VALUE 1027 #define _APS_NEXT_SYMED_VALUE 104 #endif -- cgit v1.1 From b50ba09468a05f69c81d4e818175ee5b0fa1d430 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:11 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/StdAfx.cpp | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 IvyProbe/StdAfx.cpp diff --git a/IvyProbe/StdAfx.cpp b/IvyProbe/StdAfx.cpp new file mode 100644 index 0000000..4b53d91 --- /dev/null +++ b/IvyProbe/StdAfx.cpp @@ -0,0 +1,6 @@ +// stdafx.cpp : source file that includes just the standard includes +// Test.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + -- cgit v1.1 From dd5237df04c19c5a507414b7e717081b09cf62c5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:13 +0000 Subject: Utilisateur : Fcolin Date : 18/12/98 Heure : 18:48 Créé (vss 1) --- IvyProbe/StdAfx.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 IvyProbe/StdAfx.h diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h new file mode 100644 index 0000000..703bc37 --- /dev/null +++ b/IvyProbe/StdAfx.h @@ -0,0 +1,28 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__F7F08FF2_E653_11D0_AE3E_080009F92591__INCLUDED_) +#define AFX_STDAFX_H__F7F08FF2_E653_11D0_AE3E_080009F92591__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC OLE automation classes +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT +#include // MFC collections +#include +#include // MFC socket extensions + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__F7F08FF2_E653_11D0_AE3E_080009F92591__INCLUDED_) -- cgit v1.1 From 68af3ae83380a5161430e706863b579cc60e5e45 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:14 +0000 Subject: Utilisateur : Fcolin Date : 29/07/99 Heure : 16:46 Archivé dans $/Bus/Test (vss 2) --- IvyProbe/StdAfx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index 703bc37..0d24d12 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -20,6 +20,7 @@ #endif // _AFX_NO_AFXCMN_SUPPORT #include // MFC collections #include +#include #include // MFC socket extensions //{{AFX_INSERT_LOCATION}} -- cgit v1.1 From 2cfe0a50bdc55ed20d35d6718d739891da74b464 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:16 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 11:49 Archivé dans $/Bus/Test Commentaire: modif boite resize et combo box (vss 3) --- IvyProbe/StdAfx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index 0d24d12..f44aeae 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -22,6 +22,7 @@ #include #include #include // MFC socket extensions +#include "ETSLayout.h" //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. -- cgit v1.1 From a810c638304f4f851e1d8faebf86467fc966b16f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:18 +0000 Subject: Utilisateur : Fcolin Date : 14/03/00 Heure : 14:49 Archivé dans $/Bus/Test Commentaire: modif Text Scroll (vss 4) --- IvyProbe/StdAfx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index f44aeae..799e157 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -23,6 +23,7 @@ #include #include // MFC socket extensions #include "ETSLayout.h" +#include "HistoryEdit.h" //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. -- cgit v1.1 From fac927b88bfd24832c3badede5e6c2d13a29970b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:20 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Bus/Test Commentaire: win CE compile not finished (vss 5) --- IvyProbe/StdAfx.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index 799e157..35c8d10 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -20,9 +20,14 @@ #endif // _AFX_NO_AFXCMN_SUPPORT #include // MFC collections #include -#include +#include #include // MFC socket extensions +#ifndef UNDER_CE #include "ETSLayout.h" +#define MyDialog ETSLayoutDialog +#else +#define MyDialog CDialog +#endif #include "HistoryEdit.h" //{{AFX_INSERT_LOCATION}} -- cgit v1.1 From 5cff648700e909256cefd4e0e0e1fb6f2c588c96 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:22 +0000 Subject: Utilisateur : Fcolin Date : 13/01/03 Heure : 15:28 Archivé dans $/Bus/IvyProbe Commentaire: (vss 6) --- IvyProbe/StdAfx.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index 35c8d10..6f604f2 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -22,13 +22,7 @@ #include #include #include // MFC socket extensions -#ifndef UNDER_CE -#include "ETSLayout.h" -#define MyDialog ETSLayoutDialog -#else -#define MyDialog CDialog -#endif -#include "HistoryEdit.h" + //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. -- cgit v1.1 From 67833fd79a7908d81d92e95c5de19884d5f3ab8c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:24 +0000 Subject: Utilisateur : Fcolin Date : 9/04/04 Heure : 16:31 Archivé dans $/Bus/IvyProbe Commentaire: (vss 7) --- IvyProbe/StdAfx.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/IvyProbe/StdAfx.h b/IvyProbe/StdAfx.h index 6f604f2..bb04b8d 100644 --- a/IvyProbe/StdAfx.h +++ b/IvyProbe/StdAfx.h @@ -14,15 +14,23 @@ #include // MFC core and standard components #include // MFC extensions -#include // MFC OLE automation classes +#include +//#include // MFC OLE automation classes #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT #include // MFC collections #include -#include +//#include #include // MFC socket extensions - +#ifdef USE_ETS +#include "ETSLayout.h" +using namespace ETSLayout; +#define MyDialog ETSLayoutDialog +#else +#define MyDialog CDialog +#endif +#include "HistoryEdit.h" //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. -- cgit v1.1 From 501bc7c837b0d6d77d7e5d073020ac20fbd1c02a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:27 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 15:50 Créé (vss 1) --- IvyProbe/TestParseCmdLine.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 IvyProbe/TestParseCmdLine.cpp diff --git a/IvyProbe/TestParseCmdLine.cpp b/IvyProbe/TestParseCmdLine.cpp new file mode 100644 index 0000000..6b9201e --- /dev/null +++ b/IvyProbe/TestParseCmdLine.cpp @@ -0,0 +1,75 @@ +// FxParseCmdLine.cpp: implementation of the FxParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "NewFxServer.h" +#include "FxParseCmdLine.h" + +#ifdef _DEBUG +#undef THIS_FILE +static char THIS_FILE[]=__FILE__; +#define new DEBUG_NEW +#endif + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +FxParseCmdLine::FxParseCmdLine() +{ + m_loop = FALSE; + m_start = FALSE; + m_busstart = FALSE; + m_speed = 10000; + m_exoFile = "D:\\users\\fcolin\\DATA\\SceTobago.toc"; + m_busNumber = ""; +} + +FxParseCmdLine::~FxParseCmdLine() +{ + +} + +void FxParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +{ + if (bFlag) + { + ParseParamFlag(lpszParam); + } + else + ParseParamNotFlag(lpszParam); + +} + +void FxParseCmdLine::ParseParamFlag(LPCTSTR pszParam) +{ + if (lstrcmpi(pszParam, "loop") == 0) + m_loop = TRUE; + else if (lstrcmpi(pszParam, "busstart") == 0) + m_busstart = TRUE; + else if (lstrcmpi(pszParam, "start") == 0) + m_start = TRUE; + else if (lstrcmpi(pszParam, "bus") == 0) + m_shellCommand = BusNumber; + else if (lstrcmpi(pszParam, "file") == 0) + m_shellCommand = ExoFile; + else if (lstrcmpi(pszParam, "speed") == 0) + m_shellCommand = Speed; +} + +void FxParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) +{ + switch ( m_shellCommand ) + { + case BusNumber: + m_busNumber = pszParam; + break; + case ExoFile: + m_exoFile = pszParam; + break; + case Speed: + m_speed = atoi(pszParam); + break; + } +} -- cgit v1.1 From 637e738039ec3f4a76d492516d767ef791e3758e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:28 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Bus/Test Commentaire: win CE compile not finished (vss 2) --- IvyProbe/TestParseCmdLine.cpp | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/IvyProbe/TestParseCmdLine.cpp b/IvyProbe/TestParseCmdLine.cpp index 6b9201e..62eff43 100644 --- a/IvyProbe/TestParseCmdLine.cpp +++ b/IvyProbe/TestParseCmdLine.cpp @@ -1,10 +1,10 @@ -// FxParseCmdLine.cpp: implementation of the FxParseCmdLine class. +// TestParseCmdLine.cpp: implementation of the TestParseCmdLine class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" -#include "NewFxServer.h" -#include "FxParseCmdLine.h" + +#include "TestParseCmdLine.h" #ifdef _DEBUG #undef THIS_FILE @@ -16,22 +16,18 @@ static char THIS_FILE[]=__FILE__; // Construction/Destruction ////////////////////////////////////////////////////////////////////// -FxParseCmdLine::FxParseCmdLine() +TestParseCmdLine::TestParseCmdLine() { - m_loop = FALSE; m_start = FALSE; - m_busstart = FALSE; - m_speed = 10000; - m_exoFile = "D:\\users\\fcolin\\DATA\\SceTobago.toc"; m_busNumber = ""; } -FxParseCmdLine::~FxParseCmdLine() +TestParseCmdLine::~TestParseCmdLine() { } -void FxParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +void TestParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) { if (bFlag) { @@ -42,34 +38,21 @@ void FxParseCmdLine::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) } -void FxParseCmdLine::ParseParamFlag(LPCTSTR pszParam) +void TestParseCmdLine::ParseParamFlag(LPCTSTR pszParam) { - if (lstrcmpi(pszParam, "loop") == 0) - m_loop = TRUE; - else if (lstrcmpi(pszParam, "busstart") == 0) - m_busstart = TRUE; - else if (lstrcmpi(pszParam, "start") == 0) + + if (lstrcmpi(pszParam, TEXT("start")) == 0) m_start = TRUE; - else if (lstrcmpi(pszParam, "bus") == 0) + else if (lstrcmpi(pszParam, TEXT("bus")) == 0) m_shellCommand = BusNumber; - else if (lstrcmpi(pszParam, "file") == 0) - m_shellCommand = ExoFile; - else if (lstrcmpi(pszParam, "speed") == 0) - m_shellCommand = Speed; } -void FxParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) +void TestParseCmdLine::ParseParamNotFlag(LPCTSTR pszParam) { switch ( m_shellCommand ) { case BusNumber: m_busNumber = pszParam; break; - case ExoFile: - m_exoFile = pszParam; - break; - case Speed: - m_speed = atoi(pszParam); - break; } } -- cgit v1.1 From a099aaf529db4a04fd82fa18ffd9b9ed82742238 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:31 +0000 Subject: Utilisateur : Fcolin Date : 31/01/01 Heure : 15:50 Créé (vss 1) --- IvyProbe/TestParseCmdLine.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 IvyProbe/TestParseCmdLine.h diff --git a/IvyProbe/TestParseCmdLine.h b/IvyProbe/TestParseCmdLine.h new file mode 100644 index 0000000..9a6ae6d --- /dev/null +++ b/IvyProbe/TestParseCmdLine.h @@ -0,0 +1,37 @@ +// FxParseCmdLine.h: interface for the FxParseCmdLine class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) +#define AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class FxParseCmdLine : public CCommandLineInfo +{ +public: + BOOL m_busstart; + BOOL m_start; + BOOL m_loop; + UINT m_speed; + CString m_exoFile; + CString m_busNumber; + virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); + FxParseCmdLine(); + virtual ~FxParseCmdLine(); + enum { + Loop, + BusNumber, + Start, + ExoFile, + Speed + }m_shellCommand; + +protected: + void ParseParamNotFlag(LPCTSTR pszParam); + void ParseParamFlag(LPCTSTR pszParam); +}; + +#endif // !defined(AFX_FXParseCMDLINE_H__20232B92_AB99_11D2_898F_00A0245B298A__INCLUDED_) -- cgit v1.1 From 8f632d62fda3265a0e1e9483055d249ac0d2731b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:32 +0000 Subject: Utilisateur : Fcolin Date : 2/02/01 Heure : 18:30 Archivé dans $/Bus/Test Commentaire: win CE compile not finished (vss 2) --- IvyProbe/TestParseCmdLine.h | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/IvyProbe/TestParseCmdLine.h b/IvyProbe/TestParseCmdLine.h index 9a6ae6d..ef8d3ac 100644 --- a/IvyProbe/TestParseCmdLine.h +++ b/IvyProbe/TestParseCmdLine.h @@ -1,4 +1,4 @@ -// FxParseCmdLine.h: interface for the FxParseCmdLine class. +// TestParseCmdLine.h: interface for the TestParseCmdLine class. // ////////////////////////////////////////////////////////////////////// @@ -9,24 +9,18 @@ #pragma once #endif // _MSC_VER > 1000 -class FxParseCmdLine : public CCommandLineInfo +class TestParseCmdLine : public CCommandLineInfo { public: - BOOL m_busstart; + BOOL m_start; - BOOL m_loop; - UINT m_speed; - CString m_exoFile; CString m_busNumber; virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); - FxParseCmdLine(); - virtual ~FxParseCmdLine(); + TestParseCmdLine(); + virtual ~TestParseCmdLine(); enum { - Loop, BusNumber, Start, - ExoFile, - Speed }m_shellCommand; protected: -- cgit v1.1 From 1b0ddf4d0fee7138985299db77e6b8d594cee535 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:35 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 15:52 Créé (vss 1) --- IvyProbe/res/IvyProbe.ico | Bin 0 -> 1078 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IvyProbe/res/IvyProbe.ico diff --git a/IvyProbe/res/IvyProbe.ico b/IvyProbe/res/IvyProbe.ico new file mode 100644 index 0000000..7eef0bc Binary files /dev/null and b/IvyProbe/res/IvyProbe.ico differ -- cgit v1.1 From 53eeaf8a273b2ae0e40f1dcdc4305d99290ea4b6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:37 +0000 Subject: Utilisateur : Fcolin Date : 26/02/03 Heure : 16:40 Créé Commentaire: suppression bouton clock start (vss 1) --- IvyProbe/res/IvyProbe.manifest | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 IvyProbe/res/IvyProbe.manifest diff --git a/IvyProbe/res/IvyProbe.manifest b/IvyProbe/res/IvyProbe.manifest new file mode 100644 index 0000000..752fcd2 --- /dev/null +++ b/IvyProbe/res/IvyProbe.manifest @@ -0,0 +1,22 @@ + + + + + + -- cgit v1.1 From b53d73664d7fa1024f93806e9ac17456d81ce5ff Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:39 +0000 Subject: Utilisateur : Fcolin Date : 16/03/99 Heure : 15:52 Créé (vss 1) --- IvyProbe/res/IvyProbe.rc2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 IvyProbe/res/IvyProbe.rc2 diff --git a/IvyProbe/res/IvyProbe.rc2 b/IvyProbe/res/IvyProbe.rc2 new file mode 100644 index 0000000..7bbf8c2 --- /dev/null +++ b/IvyProbe/res/IvyProbe.rc2 @@ -0,0 +1,13 @@ +// +// TEST.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 0541139e04ea8e64dc088793463b64566f932080 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:46 +0000 Subject: Utilisateur : Fcolin Date : 10/06/02 Heure : 13:14 Créé Commentaire: (vss 1) --- IvyTest/IvyTest.vcproj | 138 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 IvyTest/IvyTest.vcproj diff --git a/IvyTest/IvyTest.vcproj b/IvyTest/IvyTest.vcproj new file mode 100644 index 0000000..2a95bb0 --- /dev/null +++ b/IvyTest/IvyTest.vcproj @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 06cb0b424e1da4ab03292dd0e01d5b63f5448f0c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:47 +0000 Subject: Utilisateur : Fcolin Date : 2/07/02 Heure : 15:21 Archivé dans $/Bus/IvyTest Commentaire: (vss 2) --- IvyTest/IvyTest.vcproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IvyTest/IvyTest.vcproj b/IvyTest/IvyTest.vcproj index 2a95bb0..59becba 100644 --- a/IvyTest/IvyTest.vcproj +++ b/IvyTest/IvyTest.vcproj @@ -74,9 +74,10 @@ + +#include + +#include "ivy.h" +#include "IvyApplication.h" + +static bool TheGrassIsGreenAndTheWindBlows = true; + +class cIvyTranslater : public IvyApplicationCallback +{ +public: + cIvyTranslater(void); + ~cIvyTranslater(); +protected: + void OnApplicationConnected ( IvyApplication *app ); + void OnApplicationDisconnected( IvyApplication *app ); + void HelloCallback ( IvyApplication *app, int argc, const char **argv ); + void ByeCallback ( IvyApplication *app, int argc, const char **argv ); + Ivy *bus; +}; + + + +cIvyTranslater::cIvyTranslater(void) +{ + // initialization + bus = new Ivy( "cIvyTranslater","cIvyTranslater READY",this,FALSE); + + int count; + count = bus->BindMsg( "^Hello(.*)", BUS_CALLBACK_OF(cIvyTranslater, HelloCallback )); + count = bus->BindMsg( "^Bye$", BUS_CALLBACK_OF(cIvyTranslater, ByeCallback )); + + bus->start(NULL); +} +cIvyTranslater::~cIvyTranslater(void) +{ + bus->stop(); + delete bus; +} + +void cIvyTranslater::HelloCallback(IvyApplication *app, int argc, const char **argv) +{ + const char* arg = (argc < 1) ? "" : argv[0]; + cout << "cIvyTranslater received msg: Hello'" << arg << "'" << endl; + bus->SendMsg( "Bonjour%s!", arg ); +} + +void cIvyTranslater::ByeCallback(IvyApplication *app, int argc, const char **argv) +{ + cout << "cIvyTranslater stops bus" << endl; + if (bus) { + TheGrassIsGreenAndTheWindBlows = false; + // This is causing the fatal bug +// bus->stop(); +// delete bus; // This statement is never reached! Don't know why! + } + +} + +void cIvyTranslater::OnApplicationConnected(IvyApplication *app) +{ + cout << "cIvyTranslater is ready to accept messages from " << app->GetName() << endl; +} + +void cIvyTranslater::OnApplicationDisconnected(IvyApplication *app) +{ + cout << "cIvyTranslater good buy '" << app->GetName() << "'" << endl; +} + + +void main(int argc, char* argv[]) +{ + cIvyTranslater aIvyTL; + + while (TheGrassIsGreenAndTheWindBlows) { + Sleep(2000); + cout << "new cycle..." << endl; + } + cout << "Good buy, world\n"; +} \ No newline at end of file -- cgit v1.1 From b47607d2c5d06f78c1aac2d541da8e9a88484a4f Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:55 +0000 Subject: Utilisateur : Fcolin Date : 2/07/02 Heure : 15:21 Archivé dans $/Bus/IvyTest Commentaire: (vss 2) --- IvyTest/ivytest.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/IvyTest/ivytest.cpp b/IvyTest/ivytest.cpp index b9121ac..370901e 100644 --- a/IvyTest/ivytest.cpp +++ b/IvyTest/ivytest.cpp @@ -1,10 +1,11 @@ // ivytest.cpp : Defines the entry point for the console application. // -#include +#include #include +using namespace std; -#include "ivy.h" +#include "Ivy.h" #include "IvyApplication.h" static bool TheGrassIsGreenAndTheWindBlows = true; -- cgit v1.1 From 74232cf2e013b87a5c444552c027bd28e60de36a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:58 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 11:38 Créé Commentaire: (vss 1) --- SourcesIvy/SourcesIvy.vdproj | 123 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 SourcesIvy/SourcesIvy.vdproj diff --git a/SourcesIvy/SourcesIvy.vdproj b/SourcesIvy/SourcesIvy.vdproj new file mode 100644 index 0000000..aae73b7 --- /dev/null +++ b/SourcesIvy/SourcesIvy.vdproj @@ -0,0 +1,123 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{E36CE389-F511-4EF9-BC99-3240554E2D02}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:SourcesIvy" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\SourcesIvy.cab" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:..\\..\\..\\Install\\SourcesIvy.cab" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "OSD" + { + "FriendlyName" = "8:SourcesIvy" + "Version" = "8:1.0.0.0" + "Dependencies" + { + } + } + "SimpleFile" + { + } + "SimpleProjectOutput" + { + "{EE76FCFF-8608-4382-AE45-6C3DC5FD2264}:_2FD947776C714CD7BFB236D43294E1C0" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectCanonicalName" = "8:IvyProbe\\IvyProbe.vcproj" + "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}" + "ExcludeFilters" + { + } + } + "{EE76FCFF-8608-4382-AE45-6C3DC5FD2264}:_BCB24F3AA57A4596A1F189CD7000A3BB" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:SourceFiles" + "OutputProjectCanonicalName" = "8:Ivy\\Ivy.vcproj" + "OutputProjectGuid" = "8:{9BD87B7A-517E-4900-B3EA-A358885CD876}" + "ExcludeFilters" + { + } + } + } + } +} -- cgit v1.1 From c6318cb4bdf7edd5b507ac1c834f7a729a11affd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:12:59 +0000 Subject: Utilisateur : Fcolin Date : 8/03/05 Heure : 15:20 Archivé dans $/Bus/SourcesIvy Commentaire: Bug en cas d'expression vide de subexpression (vss 2) --- SourcesIvy/SourcesIvy.vdproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SourcesIvy/SourcesIvy.vdproj b/SourcesIvy/SourcesIvy.vdproj index aae73b7..38606b1 100644 --- a/SourcesIvy/SourcesIvy.vdproj +++ b/SourcesIvy/SourcesIvy.vdproj @@ -54,7 +54,7 @@ "OSD" { "FriendlyName" = "8:SourcesIvy" - "Version" = "8:1.0.0.0" + "Version" = "8:1.1.0.0" "Dependencies" { } -- cgit v1.1 From 1a7741ec460ebcf20a279a8f0df86f1747e93a37 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:01 +0000 Subject: Utilisateur : Fcolin Date : 2/12/05 Heure : 10:00 Archivé dans $/Bus/SourcesIvy Commentaire: (vss 3) --- SourcesIvy/SourcesIvy.vdproj | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/SourcesIvy/SourcesIvy.vdproj b/SourcesIvy/SourcesIvy.vdproj index 38606b1..8d23b7e 100644 --- a/SourcesIvy/SourcesIvy.vdproj +++ b/SourcesIvy/SourcesIvy.vdproj @@ -1,7 +1,7 @@ "DeployProject" { -"VSVersion" = "3:701" -"ProjectType" = "8:{E36CE389-F511-4EF9-BC99-3240554E2D02}" +"VSVersion" = "3:800" +"ProjectType" = "8:{3EA9E505-35AC-4774-B492-AD1749C4943A}" "IsWebType" = "8:FALSE" "ProjectName" = "8:SourcesIvy" "LanguageId" = "3:1036" @@ -31,6 +31,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } "Release" { @@ -47,6 +58,17 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:1" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:FALSE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + } + } } } "Deployable" @@ -55,6 +77,9 @@ { "FriendlyName" = "8:SourcesIvy" "Version" = "8:1.1.0.0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" "Dependencies" { } @@ -64,7 +89,7 @@ } "SimpleProjectOutput" { - "{EE76FCFF-8608-4382-AE45-6C3DC5FD2264}:_2FD947776C714CD7BFB236D43294E1C0" + "{3169EF16-0292-4576-A031-DDE5527F1848}:_2FD947776C714CD7BFB236D43294E1C0" { "SourcePath" = "8:" "TargetName" = "8:" @@ -91,7 +116,7 @@ { } } - "{EE76FCFF-8608-4382-AE45-6C3DC5FD2264}:_BCB24F3AA57A4596A1F189CD7000A3BB" + "{3169EF16-0292-4576-A031-DDE5527F1848}:_BCB24F3AA57A4596A1F189CD7000A3BB" { "SourcePath" = "8:" "TargetName" = "8:" -- cgit v1.1 From 3e3a791ac4b09e3596e66b6ad9ff7a85f4b98915 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:03 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Archivé dans $/Bus/SourcesIvy Commentaire: (vss 4) --- SourcesIvy/SourcesIvy.vdproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SourcesIvy/SourcesIvy.vdproj b/SourcesIvy/SourcesIvy.vdproj index 8d23b7e..ea2d48a 100644 --- a/SourcesIvy/SourcesIvy.vdproj +++ b/SourcesIvy/SourcesIvy.vdproj @@ -78,7 +78,7 @@ "FriendlyName" = "8:SourcesIvy" "Version" = "8:1.1.0.0" "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" + "PostBuildEvent" = "8:\"$(ProjectDir)..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\"" "RunPostBuildEvent" = "3:0" "Dependencies" { -- cgit v1.1 From e1a997530918e397c082f4d86ee2e9aedec3c2d3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:05 +0000 Subject: Utilisateur : Fcolin Date : 6/01/05 Heure : 11:38 Créé Commentaire: (vss 1) --- SourcesIvy/SourcesIvy.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 SourcesIvy/SourcesIvy.vdproj.vspscc diff --git a/SourcesIvy/SourcesIvy.vdproj.vspscc b/SourcesIvy/SourcesIvy.vdproj.vspscc new file mode 100644 index 0000000..8368ccb --- /dev/null +++ b/SourcesIvy/SourcesIvy.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:SourcesIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From 449663bd3662b5841a5e96c059630a31f26675b6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:07 +0000 Subject: Utilisateur : Fcolin Date : 1/08/06 Heure : 13:14 Créé Commentaire: (vss 1) --- UpdateIvyWeb.bat | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 UpdateIvyWeb.bat diff --git a/UpdateIvyWeb.bat b/UpdateIvyWeb.bat new file mode 100644 index 0000000..b7e1ca9 --- /dev/null +++ b/UpdateIvyWeb.bat @@ -0,0 +1,5 @@ +@echo On +echo Web Update %* +copy /b %1 "C:\Documents and Settings\fcolin\My Documents\IvyCVSWWW\WWW\download\packages" +cd "C:\Documents and Settings\fcolin\My Documents\IvyCVSWWW\WWW\download\packages" +"c:\Program Files (x86)\TortoiseCVS\cvs.exe" -d ":pserver:pii:/projet/ivy/cvsroot" ci -m "Automatic IDE rebuild " . -- cgit v1.1 From ca9ed29613974218347a1229458be9b19472eef9 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:10 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Bus.cpp | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 comIvy/Bus.cpp diff --git a/comIvy/Bus.cpp b/comIvy/Bus.cpp new file mode 100644 index 0000000..cad7a36 --- /dev/null +++ b/comIvy/Bus.cpp @@ -0,0 +1,115 @@ +// Bus.cpp : implémentation de CBus + +#include "stdafx.h" +#include "Bus.h" +#include "Ivy.h" +#include "IvyApplication.h" +#include "Expression.h" + + +char * ConvBSTR( BSTR str ) +{ + char* convstr; + int len = SysStringLen( str ); + convstr = new char[len+1] ; + int bytes = WideCharToMultiByte(CP_ACP, 0, str, len, convstr, len, NULL,NULL); + convstr[bytes] = '\0'; + if (!bytes) ATLTRACE( "ConvBSR error %d", GetLastError()); + return convstr; +} +BSTR ConvCSTR( const char *str ) +{ + BSTR convstr; + int len = (int)strlen( str )+1; + convstr = SysAllocStringLen( NULL, len); + int bytes = MultiByteToWideChar(CP_ACP, 0, str, len, convstr, len); + if (!bytes) ATLTRACE( "ConvCSTR error %d", GetLastError()); + return convstr; +} + +// CBus +CBus::CBus() +: bus(NULL) +{ + ATLTRACE("CBus created\n"); +} +CBus::~CBus() +{ + delete bus; + bus = NULL; + ATLTRACE("CBus destroyed\n"); +} + +STDMETHODIMP CBus::Start(BSTR domain) +{ + char *strdomain = NULL; + if ( !bus ) return E_FAIL; + if ( SysStringLen( domain ) ) + strdomain= ConvBSTR(domain); + if ( bus ) bus->start(strdomain); + delete strdomain; + return S_OK; +} + +STDMETHODIMP CBus::Stop(void) +{ + if ( !bus ) return E_FAIL; + bus->stop(); + return S_OK; +} + +STDMETHODIMP CBus::Create(BSTR appName, BSTR readyMsg) +{ + char *strname= ConvBSTR(appName); + char *strready= ConvBSTR(readyMsg); + bus = new Ivy(strname,strready,this); + delete strname; + delete strready; + return S_OK; +} + +STDMETHODIMP CBus::Delete(void) +{ + if ( !bus ) return E_FAIL; + bus->stop(); + delete bus; + bus = NULL; + return S_OK; +} + +STDMETHODIMP CBus::Send(BSTR message, SHORT* count) +{ + if ( !bus ) return E_FAIL; + char *strmessage= ConvBSTR(message); + *count = bus->SendMsg( strmessage ); + delete strmessage; + return S_OK; +} + +STDMETHODIMP CBus::Bind(BSTR regexp, IExpression** binding) +{ + if ( !bus ) return E_FAIL; + char* regexpstr = ConvBSTR(regexp); + *binding = NULL; + // Note that at this point the ref count for the object is 0. + HRESULT hRes = CExpression::CreateInstance(binding); + if ( hRes != S_OK ) return hRes; + CExpression* bind = (CExpression*)*binding; + this->AddRef(); + bind->bus = this; + bind->id = bus->BindMsg( regexpstr, bind ); + delete regexpstr; + return hRes; +} + +void CBus::OnApplicationConnected(IvyApplication * app) +{ + BSTR appname = ConvCSTR( app->GetName() ); + ApplicationConnected(appname); +} + +void CBus::OnApplicationDisconnected(IvyApplication * app) +{ + BSTR appname = ConvCSTR( app->GetName() ); + ApplicationDisconnected(appname); +} -- cgit v1.1 From 4e4c7697a33094f360e29ba203f116242b63896e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:11 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/Bus.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/comIvy/Bus.cpp b/comIvy/Bus.cpp index cad7a36..393406a 100644 --- a/comIvy/Bus.cpp +++ b/comIvy/Bus.cpp @@ -113,3 +113,10 @@ void CBus::OnApplicationDisconnected(IvyApplication * app) BSTR appname = ConvCSTR( app->GetName() ); ApplicationDisconnected(appname); } + +STDMETHODIMP CBus::GetDomain(BSTR* domain) +{ + *domain = ConvCSTR( bus->GetDomain(NULL) ); + + return S_OK; +} -- cgit v1.1 From ab15cfce0b453acf070c6c3715036017971dd524 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:13 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:56 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/Bus.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/comIvy/Bus.cpp b/comIvy/Bus.cpp index 393406a..66f2f2c 100644 --- a/comIvy/Bus.cpp +++ b/comIvy/Bus.cpp @@ -95,9 +95,7 @@ STDMETHODIMP CBus::Bind(BSTR regexp, IExpression** binding) HRESULT hRes = CExpression::CreateInstance(binding); if ( hRes != S_OK ) return hRes; CExpression* bind = (CExpression*)*binding; - this->AddRef(); - bind->bus = this; - bind->id = bus->BindMsg( regexpstr, bind ); + bind->Bind( regexpstr, this ); delete regexpstr; return hRes; } -- cgit v1.1 From 87713194748f6eb399f2ba2d6cb72db9ddb5e1a5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:15 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 14:48 Archivé dans $/Bus/comIvy Commentaire: (vss 4) --- comIvy/Bus.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/comIvy/Bus.cpp b/comIvy/Bus.cpp index 66f2f2c..355661f 100644 --- a/comIvy/Bus.cpp +++ b/comIvy/Bus.cpp @@ -35,7 +35,11 @@ CBus::CBus() } CBus::~CBus() { - delete bus; + if ( bus ) + { + bus->stop(); + delete bus; + } bus = NULL; ATLTRACE("CBus destroyed\n"); } @@ -46,7 +50,7 @@ STDMETHODIMP CBus::Start(BSTR domain) if ( !bus ) return E_FAIL; if ( SysStringLen( domain ) ) strdomain= ConvBSTR(domain); - if ( bus ) bus->start(strdomain); + bus->start(strdomain); delete strdomain; return S_OK; } -- cgit v1.1 From d561f6f0278d0bf9be491efa47ea681d55ed3ee1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:18 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Bus.h | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 comIvy/Bus.h diff --git a/comIvy/Bus.h b/comIvy/Bus.h new file mode 100644 index 0000000..cc5e096 --- /dev/null +++ b/comIvy/Bus.h @@ -0,0 +1,87 @@ +// Bus.h : déclaration de CBus + +#pragma once +#include "resource.h" // symboles principaux + +#include "Ivy.h" +#include "Expression.h" + +// IBus +[ + object, + uuid("D694594D-D119-443B-B3CB-58F6859CE990"), + dual, helpstring("Interface IBus"), + pointer_default(unique) +] +__interface IBus : IDispatch +{ + [id(1), helpstring("method Start")] HRESULT Start([in] BSTR domain); + [id(2), helpstring("method Stop")] HRESULT Stop(void); + [id(3), helpstring("method Create")] HRESULT Create([in] BSTR appName, [in] BSTR readyMsg); + [id(4), helpstring("method Delete")] HRESULT Delete(void); + [id(5), helpstring("method Send")] HRESULT Send([in] BSTR message, [out,retval] SHORT* count); + [id(6), helpstring("method Bind")] HRESULT Bind([in] BSTR regexp, [out,retval] IExpression** binding); +}; + + +// _IBusEvents +[ + dispinterface, + uuid("59377CC5-59FD-480F-B761-644C40190920"), + helpstring("Interface _IBusEvents") +] +__interface _IBusEvents +{ + [id(1), helpstring("method ApplicationConnected")] void ApplicationConnected([in] BSTR applicationName); + [id(2), helpstring("method ApplicationDisconnected")] void ApplicationDisconnected([in] BSTR applicationName); +}; + + +// CBus + +[ + coclass, + threading("apartment"), + event_source("com"), + vi_progid("comIvy.Bus"), + progid("comIvy.Bus.1"), + version(1.0), + uuid("537805F0-1950-40B6-9833-DD5F8E8A19B7"), + helpstring("Bus Class") +] +class ATL_NO_VTABLE CBus : + public IBus, + public IvyApplicationCallback +{ +public: + CBus(); + ~CBus(); + friend class CExpression; + + __event __interface _IBusEvents; + + DECLARE_PROTECT_FINAL_CONSTRUCT() + + HRESULT FinalConstruct() + { + return S_OK; + } + + void FinalRelease() + { + } + +public: + + STDMETHOD(Start)(BSTR domain); + STDMETHOD(Stop)(void); + STDMETHOD(Create)(BSTR appname, BSTR readyMsg); + STDMETHOD(Delete)(void); + STDMETHOD(Send)(BSTR message, SHORT* count); + STDMETHOD(Bind)(BSTR regexp, IExpression** binding); +protected: + Ivy* bus; + void OnApplicationConnected(IvyApplication * app); + void OnApplicationDisconnected(IvyApplication * app); +}; + -- cgit v1.1 From 8bb2578cce0bf473a91f33e661a17015758ca7f4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:20 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/Bus.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/comIvy/Bus.h b/comIvy/Bus.h index cc5e096..9494cb1 100644 --- a/comIvy/Bus.h +++ b/comIvy/Bus.h @@ -21,6 +21,7 @@ __interface IBus : IDispatch [id(4), helpstring("method Delete")] HRESULT Delete(void); [id(5), helpstring("method Send")] HRESULT Send([in] BSTR message, [out,retval] SHORT* count); [id(6), helpstring("method Bind")] HRESULT Bind([in] BSTR regexp, [out,retval] IExpression** binding); + [id(7), helpstring("method GetDomain")] HRESULT GetDomain([out,retval] BSTR* domain); }; @@ -44,8 +45,8 @@ __interface _IBusEvents threading("apartment"), event_source("com"), vi_progid("comIvy.Bus"), - progid("comIvy.Bus.1"), - version(1.0), + progid("comIvy.Bus"), + version(2.0), uuid("537805F0-1950-40B6-9833-DD5F8E8A19B7"), helpstring("Bus Class") ] @@ -83,5 +84,7 @@ protected: Ivy* bus; void OnApplicationConnected(IvyApplication * app); void OnApplicationDisconnected(IvyApplication * app); +public: + STDMETHOD(GetDomain)(BSTR* domain); }; -- cgit v1.1 From 7bf5378bec2ed162969b82f53b1cd6611842ef0a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:22 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Expression.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 comIvy/Expression.cpp diff --git a/comIvy/Expression.cpp b/comIvy/Expression.cpp new file mode 100644 index 0000000..468a431 --- /dev/null +++ b/comIvy/Expression.cpp @@ -0,0 +1,65 @@ +// Expression.cpp : implémentation de CExpression + +#include "stdafx.h" +#include "Bus.h" +#include "Ivy.h" +#include "IvyApplication.h" + +#include "Expression.h" + + +char * ConvBSTR( BSTR str ); +BSTR ConvCSTR( const char *str ); + +// CExpression + + +STDMETHODIMP CExpression::Unbind(void) +{ + if ( !bus ) return E_FAIL; + if ( bus->bus ) + bus->bus->UnbindMsg( id ); + bus->Release(); + return S_OK; +} + +void CExpression::OnMessage(IvyApplication * app, int argc, const char ** argv) +{ + BSTR appname = ConvCSTR( app->GetName() ); + SAFEARRAY *pArrayVal = NULL; + HRESULT hr = S_OK; + + //Create the safe array for the arguments string. + pArrayVal = SafeArrayCreateVector( VT_VARIANT, 0, argc ); + + if (!(pArrayVal == NULL) ) + { + // Set the values for each element of the array + for( long i = 0 ; i < argc && SUCCEEDED( hr );i++) + { + hr = SafeArrayPutElement(pArrayVal, &i, new CComVariant(ConvCSTR(argv[i]))); + } + + } + VARIANT args; + args.vt = VT_ARRAY | VT_VARIANT; + args.parray = pArrayVal; + + Received( appname, args ); + + SafeArrayDestroy(pArrayVal); +} +// CExpression +CExpression::CExpression() +{ + id = -1; + bus = 0; + ATLTRACE("CExpression created\n"); +} +CExpression::~CExpression() +{ + Unbind(); + id = -1; + bus = 0; + ATLTRACE("CExpression destroyed\n"); +} -- cgit v1.1 From ee1d4ac1c341aa9cdecbab89933c0658228d38c4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:23 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/Expression.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/comIvy/Expression.cpp b/comIvy/Expression.cpp index 468a431..9a856a7 100644 --- a/comIvy/Expression.cpp +++ b/comIvy/Expression.cpp @@ -28,7 +28,7 @@ void CExpression::OnMessage(IvyApplication * app, int argc, const char ** argv) BSTR appname = ConvCSTR( app->GetName() ); SAFEARRAY *pArrayVal = NULL; HRESULT hr = S_OK; - + // pour assurer la compatibilite avec VBSCript pouah horreur //Create the safe array for the arguments string. pArrayVal = SafeArrayCreateVector( VT_VARIANT, 0, argc ); @@ -43,12 +43,13 @@ void CExpression::OnMessage(IvyApplication * app, int argc, const char ** argv) } VARIANT args; args.vt = VT_ARRAY | VT_VARIANT; - args.parray = pArrayVal; + V_ARRAY(&args) = pArrayVal; Received( appname, args ); SafeArrayDestroy(pArrayVal); } + // CExpression CExpression::CExpression() { -- cgit v1.1 From ef9c20abbfe852cc90c7bbd17c04549f7de3dad3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:25 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:56 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/Expression.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/comIvy/Expression.cpp b/comIvy/Expression.cpp index 9a856a7..9287bae 100644 --- a/comIvy/Expression.cpp +++ b/comIvy/Expression.cpp @@ -12,13 +12,28 @@ char * ConvBSTR( BSTR str ); BSTR ConvCSTR( const char *str ); // CExpression - +STDMETHODIMP CExpression::Bind(char* regex, CBus* _bus) +{ + if ( !_bus ) return E_FAIL; + bus = _bus; + bus->AddRef(); + if ( id != -1 ) + return E_FAIL; + if ( bus->bus ) + id = bus->bus->BindMsg( regex, this ); + else return E_FAIL; + return S_OK; +} STDMETHODIMP CExpression::Unbind(void) { if ( !bus ) return E_FAIL; - if ( bus->bus ) + if ( bus->bus && id != -1 ) + { bus->bus->UnbindMsg( id ); + id = -1; + } + else return E_FAIL; bus->Release(); return S_OK; } @@ -59,7 +74,8 @@ CExpression::CExpression() } CExpression::~CExpression() { - Unbind(); + if ( id != -1 ) + Unbind(); id = -1; bus = 0; ATLTRACE("CExpression destroyed\n"); -- cgit v1.1 From 848b4765d50f5b8bd2cf950a99f2f191785597fd Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:28 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Expression.h | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 comIvy/Expression.h diff --git a/comIvy/Expression.h b/comIvy/Expression.h new file mode 100644 index 0000000..e60bbd2 --- /dev/null +++ b/comIvy/Expression.h @@ -0,0 +1,77 @@ +// Expression.h : déclaration de CExpression + +#pragma once +#include "resource.h" // symboles principaux + +#include "Ivy.h" +#include "IvyCallback.h" + +// IExpression +[ + object, + uuid("65B2CF08-0B15-4752-AEEA-655157A87367"), + dual, helpstring("Interface IExpression"), + pointer_default(unique) +] +__interface IExpression : IDispatch +{ + [id(1), helpstring("method Unbind")] HRESULT Unbind(void); +}; + + +// _IExpressionEvents +[ + dispinterface, + uuid("74C250EC-2393-452D-9CC4-042313AB7268"), + helpstring("Interface _IExpressionEvents") +] +__interface _IExpressionEvents +{ + [id(1), helpstring("method Received")] void Received([in] BSTR applicationName, [in] VARIANT arguments); +}; + + +// CExpression + +[ + coclass, + threading("apartment"), + event_source("com"), + vi_progid("comIvy.Expression"), + progid("comIvy.Expression.1"), + version(1.0), + uuid("FAD2AFA6-44F7-430A-9344-F20C804DA97B"), + helpstring("Expression Class") +] +class ATL_NO_VTABLE CExpression : + public IExpression, + public IvyMessageCallback +{ +public: + CExpression(); + ~CExpression(); + + __event __interface _IExpressionEvents; + + DECLARE_PROTECT_FINAL_CONSTRUCT() + + HRESULT FinalConstruct() + { + return S_OK; + } + + void FinalRelease() + { + } + +public: + + STDMETHOD(Unbind)(void); + friend class CBus; + +protected: + CBus* bus; + int id; + virtual void OnMessage(IvyApplication * app, int argc, const char ** argv); +}; + -- cgit v1.1 From b55995ae646cfe7bab91267ff3631a0cdafb2c26 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:29 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/Expression.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comIvy/Expression.h b/comIvy/Expression.h index e60bbd2..70a5857 100644 --- a/comIvy/Expression.h +++ b/comIvy/Expression.h @@ -39,7 +39,7 @@ __interface _IExpressionEvents event_source("com"), vi_progid("comIvy.Expression"), progid("comIvy.Expression.1"), - version(1.0), + version(2.0), uuid("FAD2AFA6-44F7-430A-9344-F20C804DA97B"), helpstring("Expression Class") ] -- cgit v1.1 From 513b5a4860d54f00937d950196b824c05d66cff6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:31 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:56 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/Expression.h | 1 + 1 file changed, 1 insertion(+) diff --git a/comIvy/Expression.h b/comIvy/Expression.h index 70a5857..454973f 100644 --- a/comIvy/Expression.h +++ b/comIvy/Expression.h @@ -73,5 +73,6 @@ protected: CBus* bus; int id; virtual void OnMessage(IvyApplication * app, int argc, const char ** argv); + STDMETHOD(Bind)(char* regex, CBus* bus ); }; -- cgit v1.1 From 5cc38f7f2fef2c690b4877da81959a21044e0f30 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:39 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 16:50 Créé Commentaire: (vss 1) --- comIvy/InstComIvy/InstComIvy.sln | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 comIvy/InstComIvy/InstComIvy.sln diff --git a/comIvy/InstComIvy/InstComIvy.sln b/comIvy/InstComIvy/InstComIvy.sln new file mode 100644 index 0000000..05139ff --- /dev/null +++ b/comIvy/InstComIvy/InstComIvy.sln @@ -0,0 +1,67 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "InstComIvy.vdproj", "{9BCEC8AD-653B-4EBE-B804-786C3C5E568F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "..\..\C++\Bus\comIvy\comIvy.vcproj", "{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 2 + SccProjectUniqueName0 = InstComIvy.vdproj + SccProjectName0 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA + SccLocalPath0 = . + SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SccProjectUniqueName1 = ..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj + SccProjectName1 = \u0022$/Bus\u0022,\u0020ZOBAAAAA + SccLocalPath1 = ..\\..\\C++\\Bus + SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection1 = comIvy\\ + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + ConfigName.2 = Release MinDependency + ConfigName.3 = Release MinSize + ConfigName.4 = Unicode Debug + ConfigName.5 = Unicode Release MinDependency + ConfigName.6 = Unicode Release MinSize + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.0 = {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA} + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Debug.ActiveCfg = Debug + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Debug.Build.0 = Debug + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release.ActiveCfg = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release.Build.0 = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinDependency.ActiveCfg = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinDependency.Build.0 = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinSize.ActiveCfg = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinSize.Build.0 = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Debug.ActiveCfg = Debug + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Debug.Build.0 = Debug + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinDependency.ActiveCfg = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinDependency.Build.0 = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinSize.ActiveCfg = Release + {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinSize.Build.0 = Release + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Debug.ActiveCfg = Debug|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Debug.Build.0 = Debug|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release.ActiveCfg = Release MinSize|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release.Build.0 = Release MinSize|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release MinDependency.ActiveCfg = Release MinDependency|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release MinDependency.Build.0 = Release MinDependency|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release MinSize.ActiveCfg = Release MinSize|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release MinSize.Build.0 = Release MinSize|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Debug.ActiveCfg = Unicode Debug|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Debug.Build.0 = Unicode Debug|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinDependency.ActiveCfg = Unicode Release MinDependency|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinDependency.Build.0 = Unicode Release MinDependency|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinSize.ActiveCfg = Unicode Release MinSize|Win32 + {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinSize.Build.0 = Unicode Release MinSize|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From 33aeb30f57a0b34b4faa40f39684488f41897ef6 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:40 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:32 Archivé dans $/Bus/Install/InstComIvy Commentaire: (vss 2) --- comIvy/InstComIvy/InstComIvy.sln | 41 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/comIvy/InstComIvy/InstComIvy.sln b/comIvy/InstComIvy/InstComIvy.sln index 05139ff..c87ea45 100644 --- a/comIvy/InstComIvy/InstComIvy.sln +++ b/comIvy/InstComIvy/InstComIvy.sln @@ -1,22 +1,24 @@ Microsoft Visual Studio Solution File, Format Version 7.00 -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "InstComIvy.vdproj", "{9BCEC8AD-653B-4EBE-B804-786C3C5E568F}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "..\..\C++\Bus\comIvy\comIvy.vcproj", "{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InstComIvy", "InstComIvy.vdproj", "{077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}" +EndProject Global GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = InstComIvy.vdproj + SccNumberOfProjects = 3 SccProjectName0 = \u0022$/Bus/Install/InstComIvy\u0022,\u0020BREAAAAA SccLocalPath0 = . SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false + SolutionUniqueID = {8C967BA3-FE3C-4272-948A-B6EA96628D5C} SccProjectUniqueName1 = ..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj SccProjectName1 = \u0022$/Bus\u0022,\u0020ZOBAAAAA SccLocalPath1 = ..\\..\\C++\\Bus - SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe CanCheckoutShared = false SccProjectFilePathRelativizedFromConnection1 = comIvy\\ + SccProjectUniqueName2 = InstComIvy.vdproj + SccLocalPath2 = . + CanCheckoutShared = false EndGlobalSection GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug @@ -28,23 +30,8 @@ Global ConfigName.6 = Unicode Release MinSize EndGlobalSection GlobalSection(ProjectDependencies) = postSolution - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.0 = {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Debug.ActiveCfg = Debug - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Debug.Build.0 = Debug - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release.ActiveCfg = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release.Build.0 = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinDependency.ActiveCfg = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinDependency.Build.0 = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinSize.ActiveCfg = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Release MinSize.Build.0 = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Debug.ActiveCfg = Debug - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Debug.Build.0 = Debug - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinDependency.ActiveCfg = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinDependency.Build.0 = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinSize.ActiveCfg = Release - {9BCEC8AD-653B-4EBE-B804-786C3C5E568F}.Unicode Release MinSize.Build.0 = Release {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Debug.ActiveCfg = Debug|Win32 {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Debug.Build.0 = Debug|Win32 {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Release.ActiveCfg = Release MinSize|Win32 @@ -59,6 +46,20 @@ Global {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinDependency.Build.0 = Unicode Release MinDependency|Win32 {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinSize.ActiveCfg = Unicode Release MinSize|Win32 {2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}.Unicode Release MinSize.Build.0 = Unicode Release MinSize|Win32 + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Debug.ActiveCfg = Debug + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Debug.Build.0 = Debug + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release.ActiveCfg = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release.Build.0 = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release MinDependency.ActiveCfg = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release MinDependency.Build.0 = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release MinSize.ActiveCfg = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Release MinSize.Build.0 = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Debug.ActiveCfg = Debug + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Debug.Build.0 = Debug + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Release MinDependency.ActiveCfg = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Release MinDependency.Build.0 = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Release MinSize.ActiveCfg = Release + {077763E1-0E7B-4F44-B0B4-EB0EC1504AFC}.Unicode Release MinSize.Build.0 = Release EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection -- cgit v1.1 From 6513e14b23b2ec09ee704c2c3802f7d64cb0a098 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:43 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:54 Créé Commentaire: (vss 1) --- comIvy/InstComIvy/InstComIvy.vdproj | 785 ++++++++++++++++++++++++++++++++++++ 1 file changed, 785 insertions(+) create mode 100644 comIvy/InstComIvy/InstComIvy.vdproj diff --git a/comIvy/InstComIvy/InstComIvy.vdproj b/comIvy/InstComIvy/InstComIvy.vdproj new file mode 100644 index 0000000..8adb62c --- /dev/null +++ b/comIvy/InstComIvy/InstComIvy.vdproj @@ -0,0 +1,785 @@ +"DeployProject" +{ +"VSVersion" = "3:700" +"ProjectType" = "8:{5443560c-dbb4-11d2-8724-00a0c9a8b90c}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:InstComIvy" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:\"$/fcolin\", SPEAAAAA" +"SccLocalPath" = "8:..\\.." +"SccAuxPath" = "8:" +"SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_496F71070518435CA55F8BD287A5DFB5" + "OwnerKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" + "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8" + } + "Entry" + { + "MsmKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + } + "Entry" + { + "MsmKey" = "8:_7D1B6F9A93714234B73B686AC36F6FFC" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\C++\\BUS\\COMIVY\\DEBUG\\COMIVY.DLL" + } + "Entry" + { + "MsmKey" = "8:_CAC737F2898946949D47338ACD32122F" + "OwnerKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" + "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\InstComIvy.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\InstComIvy.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "Feature" + { + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{EE62640D-12F2-11D3-8D6C-00A0C9CFCEE6}:_4A020A91D793427C9F8AC28A4383C66D" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_7D7E3CB3F86A42B3B3329BBD1CE04868" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_AC61AE0B941E4CD38DF1BACE585642DF" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "Shortcut" + { + } + "Sequences" + { + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_2FDB08C375C6438FAE11F0738723CB2E" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_13AAE11CAFAC4AB5A4C243704796602D" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_75218A37922A4FDC92FDE12416943003" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_AA4D0D6AAF5B43018DC02B4B152AB69C" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "ProjectOutput" + { + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_7D1B6F9A93714234B73B686AC36F6FFC" + { + "SourcePath" = "8:..\\..\\C++\\Bus\\comIvy\\Debug\\comIvy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:2" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj" + "OutputProjectGuid" = "8:{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_96502D96945844C4BFAA86A3F1CFAE88" + { + "SourcePath" = "8:" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:ContentFiles" + "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj" + "OutputProjectGuid" = "8:{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:ComIvy" + "ProductCode" = "8:{98F05275-9FE2-4613-81CD-EEF6C529F63E}" + "PackageCode" = "8:{405F0CC9-45E0-4B05-92F8-149241535681}" + "UpgradeCode" = "8:{1CC5F500-0E3C-401C-B711-3779A4175563}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:ComIvy" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA" + "Keywords" = "8:ivy" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "MergeModule" + { + "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_496F71070518435CA55F8BD287A5DFB5" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_stl.msm" + "ModuleSignature" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8" + "Properties" + { + "DIR_RETARGET_TARGETDIR" + { + "Name" = "8:DIR_RETARGET_TARGETDIR" + "DisplayName" = "8:Module Retargetable Folder" + "Description" = "8:" + "Type" = "3:10" + "ContextData" = "8:IsolationDir" + "Attributes" = "3:6" + "Setting" = "3:1" + "UsePlugInResources" = "11:FALSE" + } + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_4FAF64717A4842019B6A91459E7E6F2A" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" + "ModuleSignature" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + "Properties" + { + "_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" + { + "Name" = "8:_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" + "DisplayName" = "8:Dossier Remplacement pour les modules" + "Description" = "8:" + "Type" = "3:32769" + "ContextData" = "8:_RetargetableFolder" + "Attributes" = "3:6" + "Setting" = "3:1" + "UsePlugInResources" = "11:FALSE" + } + } + "LanguageId" = "3:1036" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_CAC737F2898946949D47338ACD32122F" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_crt.msm" + "ModuleSignature" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8" + "Properties" + { + "DIR_RETARGET_TARGETDIR" + { + "Name" = "8:DIR_RETARGET_TARGETDIR" + "DisplayName" = "8:Module Retargetable Folder" + "Description" = "8:" + "Type" = "3:10" + "ContextData" = "8:IsolationDir" + "Attributes" = "3:6" + "Setting" = "3:1" + "UsePlugInResources" = "11:FALSE" + } + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "UserInterface" + { + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_0AF82025022F4FE2A8F1E3A673758673" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_FD4410F630FA43FC8AA03D3D7594B41D" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "ModuleSignature" = "8:VsdDialogs.EE9A1AFA_41DD_4514_B727_DF0ACA1D7389" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_129E7AE713AC4C17BEECD56D1E198B66" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + "ModuleSignature" = "8:VsdDialogs.CE4B864F_F1C1_4B85_98D4_2A2BF5FFB12B" + } + "{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_24107971CF6D42708AA7AA90DFE10276" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + "ModuleSignature" = "8:VsdUserInterface.524F4245_5254_5341_4C45_534153783400" + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_6E6D9BBB04FE46EE874BDB0FF61E27CC" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_7C1DEC913F4B46DD96E3FAB2F4F579C3" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "ModuleSignature" = "8:VsdDialogs.6DBC9783_3677_4D68_8BF5_D749558A0AC1" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_9CD75890130542FAA362099A62112D09" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "ModuleSignature" = "8:VsdDialogs.68F69290_BB7C_474E_A153_6679845F3DDF" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_D9102667BB724BC69AF9472B42650AD2" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "ModuleSignature" = "8:VsdDialogs.C113BC36_2532_4D45_8099_4818B1133B2F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_71470E202AE748CD99FFF0D17C56201C" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_590850FBC5504ACA95B9E94E1D44BF4F" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "ModuleSignature" = "8:VsdDialogs.E35A0E2C_F131_4B57_B946_59A1A2A8F45F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_A61E972000094EEFBC09395782DA8464" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "ModuleSignature" = "8:VsdDialogs.2DED2424_5429_4616_A1AD_4D62837C2ADA" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_BE6B88D7DEE9408BB26C265CFD829904" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "ModuleSignature" = "8:VsdDialogs.FA58E60A_A1E8_4876_95FC_2AC3B5AAA5F8" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_C054A861FB4045FCB7E4ECF2F8A08FCF" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_3502006AE0EA4610A262A78C3B5A5E3F" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "ModuleSignature" = "8:VsdDialogs.4FB12620_0D15_42D0_8677_2766FFA6923F" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_C0CEC7F0A6664EC89F166F25CB58AC86" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_9901D05D1778445B8CD9C771104EE79F" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "ModuleSignature" = "8:VsdDialogs.83D22742_1B79_46f6_9A99_DF0F2BD4C077" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_F502D320A6784BF3B2C2652D56FC874E" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_D583508A58C243DE96769081E91585F7" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "ModuleSignature" = "8:VsdDialogs.1DB77F5A_BA5C_4470_89B6_0B0EC07E3A10" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + } +} -- cgit v1.1 From d695ae3ae439ef52572268068011d4e5dbd811e5 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:46 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/fcolin/Install/InstComIvy Commentaire: (vss 2) --- comIvy/InstComIvy/InstComIvy.vdproj | 215 +++++++++++++++--------------------- 1 file changed, 91 insertions(+), 124 deletions(-) diff --git a/comIvy/InstComIvy/InstComIvy.vdproj b/comIvy/InstComIvy/InstComIvy.vdproj index 8adb62c..0df641a 100644 --- a/comIvy/InstComIvy/InstComIvy.vdproj +++ b/comIvy/InstComIvy/InstComIvy.vdproj @@ -15,27 +15,27 @@ { "Entry" { - "MsmKey" = "8:_496F71070518435CA55F8BD287A5DFB5" - "OwnerKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" - "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8" + "MsmKey" = "8:_12835B5401EE632F407FC85D9BC4D0EC" + "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" } "Entry" { - "MsmKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" + "MsmKey" = "8:_185BDC35C9164447AA876CC588EA914A" "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\C++\\BUS\\COMIVY\\DEBUG\\COMIVY.DLL" } "Entry" { - "MsmKey" = "8:_7D1B6F9A93714234B73B686AC36F6FFC" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:C:\\USERS\\FCOLIN\\C++\\BUS\\COMIVY\\DEBUG\\COMIVY.DLL" + "MsmKey" = "8:_934A60A38A51557A21D7C7D911E7CEB1" + "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\IVY.DLL" } "Entry" { - "MsmKey" = "8:_CAC737F2898946949D47338ACD32122F" - "OwnerKey" = "8:_4FAF64717A4842019B6A91459E7E6F2A" - "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8" + "MsmKey" = "8:_FE202B4CAE9589180F3BC6586E6389B6" + "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" } } "Configurations" @@ -89,12 +89,86 @@ } "File" { + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_12835B5401EE632F407FC85D9BC4D0EC" + { + "Signature" = "8:20000000a04c53fed195c101c467e562b86ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCR70D.dll" + "TargetName" = "8:MSVCR70D.dll" + "Tag" = "8:" + "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_934A60A38A51557A21D7C7D911E7CEB1" + { + "Signature" = "8:2000000067a22599ad60c20155b7d462b86ac2018f5ce7609122c2010000000000d0020000000000000000004900760079002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:Ivy.dll" + "TargetName" = "8:Ivy.dll" + "Tag" = "8:" + "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_FE202B4CAE9589180F3BC6586E6389B6" + { + "Signature" = "8:2000000090c39d10d295c10160dedb62b86ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCP70D.dll" + "TargetName" = "8:MSVCP70D.dll" + "Tag" = "8:" + "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { } "Folder" { + "{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" + { + "Name" = "8:#1914" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:SystemFolder" + "Folders" + { + } + } "{EE62640D-12F2-11D3-8D6C-00A0C9CFCEE6}:_4A020A91D793427C9F8AC28A4383C66D" { "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" @@ -233,41 +307,12 @@ } "ProjectOutput" { - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_7D1B6F9A93714234B73B686AC36F6FFC" + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_185BDC35C9164447AA876CC588EA914A" { "SourcePath" = "8:..\\..\\C++\\Bus\\comIvy\\Debug\\comIvy.dll" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:2" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj" - "OutputProjectGuid" = "8:{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_96502D96945844C4BFAA86A3F1CFAE88" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -283,9 +328,9 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:ContentFiles" - "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj" - "OutputProjectGuid" = "8:{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectCanonicalName" = "8:comIvy\\comIvy.vcproj" + "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { @@ -297,7 +342,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:ComIvy" "ProductCode" = "8:{98F05275-9FE2-4613-81CD-EEF6C529F63E}" - "PackageCode" = "8:{405F0CC9-45E0-4B05-92F8-149241535681}" + "PackageCode" = "8:{A213362A-059D-4BA0-BC7A-5C2E268D2D53}" "UpgradeCode" = "8:{1CC5F500-0E3C-401C-B711-3779A4175563}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -323,84 +368,6 @@ } "MergeModule" { - "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_496F71070518435CA55F8BD287A5DFB5" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_stl.msm" - "ModuleSignature" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8" - "Properties" - { - "DIR_RETARGET_TARGETDIR" - { - "Name" = "8:DIR_RETARGET_TARGETDIR" - "DisplayName" = "8:Module Retargetable Folder" - "Description" = "8:" - "Type" = "3:10" - "ContextData" = "8:IsolationDir" - "Attributes" = "3:6" - "Setting" = "3:1" - "UsePlugInResources" = "11:FALSE" - } - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_4FAF64717A4842019B6A91459E7E6F2A" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:..\\InstIvy\\Debug\\InstIvy.msm" - "ModuleSignature" = "8:MergeModule.50212549D8E242BBB1C9246BFDAFADB2" - "Properties" - { - "_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" - { - "Name" = "8:_7BEBD1D67A934D228BFBAE7C11467C9A.50212549D8E242BBB1C9246BFDAFADB2" - "DisplayName" = "8:Dossier Remplacement pour les modules" - "Description" = "8:" - "Type" = "3:32769" - "ContextData" = "8:_RetargetableFolder" - "Attributes" = "3:6" - "Setting" = "3:1" - "UsePlugInResources" = "11:FALSE" - } - } - "LanguageId" = "3:1036" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_CAC737F2898946949D47338ACD32122F" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_crt.msm" - "ModuleSignature" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8" - "Properties" - { - "DIR_RETARGET_TARGETDIR" - { - "Name" = "8:DIR_RETARGET_TARGETDIR" - "DisplayName" = "8:Module Retargetable Folder" - "Description" = "8:" - "Type" = "3:10" - "ContextData" = "8:IsolationDir" - "Attributes" = "3:6" - "Setting" = "3:1" - "UsePlugInResources" = "11:FALSE" - } - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } } "UserInterface" { -- cgit v1.1 From ec71b0acd0b9d58bdd0d69392632464445198dc2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:48 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:32 Archivé dans $/Bus/Install/InstComIvy Commentaire: (vss 3) --- comIvy/InstComIvy/InstComIvy.vdproj | 85 +------------------------------------ 1 file changed, 2 insertions(+), 83 deletions(-) diff --git a/comIvy/InstComIvy/InstComIvy.vdproj b/comIvy/InstComIvy/InstComIvy.vdproj index 0df641a..8f8e940 100644 --- a/comIvy/InstComIvy/InstComIvy.vdproj +++ b/comIvy/InstComIvy/InstComIvy.vdproj @@ -7,36 +7,18 @@ "LanguageId" = "3:1036" "CodePage" = "3:1252" "UILanguageId" = "3:1036" -"SccProjectName" = "8:\"$/fcolin\", SPEAAAAA" -"SccLocalPath" = "8:..\\.." +"SccProjectName" = "8:\"$/Bus/Install/InstComIvy\", BREAAAAA" +"SccLocalPath" = "8:." "SccAuxPath" = "8:" "SccProvider" = "8:MSSCCI:Microsoft Visual SourceSafe" "Hierarchy" { "Entry" { - "MsmKey" = "8:_12835B5401EE632F407FC85D9BC4D0EC" - "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" - } - "Entry" - { "MsmKey" = "8:_185BDC35C9164447AA876CC588EA914A" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:C:\\USERS\\FCOLIN\\C++\\BUS\\COMIVY\\DEBUG\\COMIVY.DLL" } - "Entry" - { - "MsmKey" = "8:_934A60A38A51557A21D7C7D911E7CEB1" - "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\IVY.DLL" - } - "Entry" - { - "MsmKey" = "8:_FE202B4CAE9589180F3BC6586E6389B6" - "OwnerKey" = "8:_185BDC35C9164447AA876CC588EA914A" - "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" - } } "Configurations" { @@ -89,69 +71,6 @@ } "File" { - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_12835B5401EE632F407FC85D9BC4D0EC" - { - "Signature" = "8:20000000a04c53fed195c101c467e562b86ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:MSVCR70D.dll" - "TargetName" = "8:MSVCR70D.dll" - "Tag" = "8:" - "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_934A60A38A51557A21D7C7D911E7CEB1" - { - "Signature" = "8:2000000067a22599ad60c20155b7d462b86ac2018f5ce7609122c2010000000000d0020000000000000000004900760079002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:Ivy.dll" - "TargetName" = "8:Ivy.dll" - "Tag" = "8:" - "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_FE202B4CAE9589180F3BC6586E6389B6" - { - "Signature" = "8:2000000090c39d10d295c10160dedb62b86ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "SourcePath" = "8:MSVCP70D.dll" - "TargetName" = "8:MSVCP70D.dll" - "Tag" = "8:" - "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } } "FileType" { -- cgit v1.1 From 206c857d32fcd8278d01ab5c9b331658fc9f4de0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:49 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:33 Archivé dans $/Bus/Install/InstComIvy Commentaire: (vss 4) --- comIvy/InstComIvy/InstComIvy.vdproj | 95 ++++++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 7 deletions(-) diff --git a/comIvy/InstComIvy/InstComIvy.vdproj b/comIvy/InstComIvy/InstComIvy.vdproj index 8f8e940..c60e66b 100644 --- a/comIvy/InstComIvy/InstComIvy.vdproj +++ b/comIvy/InstComIvy/InstComIvy.vdproj @@ -15,9 +15,27 @@ { "Entry" { - "MsmKey" = "8:_185BDC35C9164447AA876CC588EA914A" + "MsmKey" = "8:_0AD2E46EB65340B1AB9CC25A71562F9C" "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:C:\\USERS\\FCOLIN\\C++\\BUS\\COMIVY\\DEBUG\\COMIVY.DLL" + "MsmSig" = "8:C:\\USERS\\FCOLIN\\PROGRAM FILES\\DEBUG\\COMIVY.DLL" + } + "Entry" + { + "MsmKey" = "8:_12835B5401EE632F407FC85D9BC4D0EC" + "OwnerKey" = "8:_0AD2E46EB65340B1AB9CC25A71562F9C" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL" + } + "Entry" + { + "MsmKey" = "8:_934A60A38A51557A21D7C7D911E7CEB1" + "OwnerKey" = "8:_0AD2E46EB65340B1AB9CC25A71562F9C" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\IVY.DLL" + } + "Entry" + { + "MsmKey" = "8:_FE202B4CAE9589180F3BC6586E6389B6" + "OwnerKey" = "8:_0AD2E46EB65340B1AB9CC25A71562F9C" + "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL" } } "Configurations" @@ -71,6 +89,69 @@ } "File" { + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_12835B5401EE632F407FC85D9BC4D0EC" + { + "Signature" = "8:20000000a04c53fed195c10125e51635ed6ac201a04c53fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCR70D.dll" + "TargetName" = "8:MSVCR70D.dll" + "Tag" = "8:" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_934A60A38A51557A21D7C7D911E7CEB1" + { + "Signature" = "8:2000000067a22599ad60c201cb821435ed6ac2018f5ce7609122c2010000000000d0020000000000000000004900760079002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:Ivy.dll" + "TargetName" = "8:Ivy.dll" + "Tag" = "8:" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_FE202B4CAE9589180F3BC6586E6389B6" + { + "Signature" = "8:2000000090c39d10d295c101cb821435ed6ac20190c39d10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "SourcePath" = "8:MSVCP70D.dll" + "TargetName" = "8:MSVCP70D.dll" + "Tag" = "8:" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { @@ -226,12 +307,12 @@ } "ProjectOutput" { - "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_185BDC35C9164447AA876CC588EA914A" + "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_0AD2E46EB65340B1AB9CC25A71562F9C" { - "SourcePath" = "8:..\\..\\C++\\Bus\\comIvy\\Debug\\comIvy.dll" + "SourcePath" = "8:..\\..\\Program Files\\Debug\\comIvy.dll" "TargetName" = "8:" "Tag" = "8:" - "Folder" = "8:_2B2C6B0DF8CC40A8A8E2DFA350230B5A" + "Folder" = "8:_4A020A91D793427C9F8AC28A4383C66D" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -248,8 +329,8 @@ "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectCanonicalName" = "8:comIvy\\comIvy.vcproj" - "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + "OutputProjectCanonicalName" = "8:..\\..\\C++\\Bus\\comIvy\\comIvy.vcproj" + "OutputProjectGuid" = "8:{2AF2B2E6-446C-4B06-B175-E221F6ABA5BA}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 857725b766543d66fe04a7427bcf2eb9f49bfab4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:52 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:54 Créé Commentaire: (vss 1) --- comIvy/InstComIvy/InstComIvy.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/InstComIvy/InstComIvy.vdproj.vspscc diff --git a/comIvy/InstComIvy/InstComIvy.vdproj.vspscc b/comIvy/InstComIvy/InstComIvy.vdproj.vspscc new file mode 100644 index 0000000..f692675 --- /dev/null +++ b/comIvy/InstComIvy/InstComIvy.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Install\\InstComIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From 7cd8733ab764c04256c6e21d4096e8f97490b42c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:54 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:28 Créé Commentaire: (vss 1) --- comIvy/InstComIvy/InstComIvy.vsscc | Bin 0 -> 46 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 comIvy/InstComIvy/InstComIvy.vsscc diff --git a/comIvy/InstComIvy/InstComIvy.vsscc b/comIvy/InstComIvy/InstComIvy.vsscc new file mode 100644 index 0000000..f4e2788 Binary files /dev/null and b/comIvy/InstComIvy/InstComIvy.vsscc differ -- cgit v1.1 From 6ea27fabe683f862f324ecf1f39809ffc2dc43e1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:55 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:32 Archivé dans $/Bus/Install/InstComIvy Commentaire: (vss 2) --- comIvy/InstComIvy/InstComIvy.vsscc | Bin 46 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/comIvy/InstComIvy/InstComIvy.vsscc b/comIvy/InstComIvy/InstComIvy.vsscc index f4e2788..e69de29 100644 Binary files a/comIvy/InstComIvy/InstComIvy.vsscc and b/comIvy/InstComIvy/InstComIvy.vsscc differ -- cgit v1.1 From f076e305041006e8e76774a3b8a08060482d3c47 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:58 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 17:28 Créé Commentaire: (vss 1) --- comIvy/InstComIvy/InstComIvy.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/InstComIvy/InstComIvy.vssscc diff --git a/comIvy/InstComIvy/InstComIvy.vssscc b/comIvy/InstComIvy/InstComIvy.vssscc new file mode 100644 index 0000000..150e7a6 --- /dev/null +++ b/comIvy/InstComIvy/InstComIvy.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:Install\\InstComIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From d24f45494abf0b15648530892a79a861597c3e1b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:05 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:44 Créé Commentaire: (vss 1) --- comIvy/Install/Install.vdproj | 709 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 709 insertions(+) create mode 100644 comIvy/Install/Install.vdproj diff --git a/comIvy/Install/Install.vdproj b/comIvy/Install/Install.vdproj new file mode 100644 index 0000000..a81e71f --- /dev/null +++ b/comIvy/Install/Install.vdproj @@ -0,0 +1,709 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:Install" +"LanguageId" = "3:1036" +"CodePage" = "3:1252" +"UILanguageId" = "3:1036" +"SccProjectName" = "8:SAK" +"SccLocalPath" = "8:SAK" +"SccAuxPath" = "8:SAK" +"SccProvider" = "8:SAK" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B0F1016B0B2C4892829C2DC114870F74" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CC18EEF87C2A40719F721B69D0749860" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\Install.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\Install.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + } + } + "Feature" + { + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_19810136D0DB43A685CAD4C802A4C6F2" + { + "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_38A31FB9AF9F412FA1B0013890A1409B" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_52F5EEA72A1B4C9C8AC0B6F81D1416CA" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1036" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:comIvy" + "ProductCode" = "8:{B0DAB23E-2ED4-43A8-9671-0D8D4CD0D244}" + "PackageCode" = "8:{54746A22-9D17-4BAC-9491-3D5E04F63048}" + "UpgradeCode" = "8:{38FA115C-CED5-491F-AF2D-C26B035D114D}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:CENA PII" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:Install" + "Subject" = "8:" + "ARPCONTACT" = "8:CENA PII" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_94E029251E7745D292C6F991E78944EC" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_48CC9D9713AB423A8FF43D456E0447A8" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_0CDA7D268F7D447388353BCAD2358159" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_1ABFED03E2A24757B1CAE8A241A5B014" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_1BA8C5FDBAFD4DB8BAA6ED42191DB909" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_054EA78743CF4633B1A590B0610DF4D5" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_90B1541F45A8487E8DB27D2B9742AD09" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C358D9E56AD443708F0925EA916C0641" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_1FCE16B262EA46AA8E2FDB8F2086DE2F" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_22B46AE500B84B259DF8A2BBB11CE72E" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_0F1D0B77257042B6B5782D9033DF747F" + { + "Sequence" = "3:200" + "DisplayName" = "8:Dossier d'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_11E69662A4174EB6B6241635312405BC" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirmer l'installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_A87D64CB1DC74CAC8B8061737E765F23" + { + "Sequence" = "3:100" + "DisplayName" = "8:Bienvenue" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_38290358274C4AD88B59BAAD647D2907" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_763FB10ACF6844EB825C0E4978A64536" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_276D2F8D972D49ADA8C0E9C065443139" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_C60BDA3F34144C85BDF151453191612D" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_8F8705761D294D4B8923ED848878D08A" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_E1DF3A2398E34A0D9AFA1E9297BC9634" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_62F1AE7FFD414ABEA6A8474C91623DE5" + { + "Sequence" = "3:100" + "DisplayName" = "8:Terminé" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_F0A3B0E4FFC2432B8563A348C36A8034" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_7705C265BD034CACAD7651043EDC7F82" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progression" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_B0F1016B0B2C4892829C2DC114870F74" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CC18EEF87C2A40719F721B69D0749860" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + } + "ProjectOutput" + { + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AA0E03B004294FB6A2A650251AC616A3" + { + "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\comIvy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + "VJSharpPlugin" + { + } + } +} -- cgit v1.1 From 371fafd37c32cff94aa97b8cf51b3536c5b9a1cb Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:07 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:03 Archivé dans $/Bus/comIvy/Install Commentaire: (vss 2) --- comIvy/Install/Install.vdproj | 130 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 115 insertions(+), 15 deletions(-) diff --git a/comIvy/Install/Install.vdproj b/comIvy/Install/Install.vdproj index a81e71f..27f03c0 100644 --- a/comIvy/Install/Install.vdproj +++ b/comIvy/Install/Install.vdproj @@ -15,22 +15,46 @@ { "Entry" { + "MsmKey" = "8:_23777764184941239876287C2822D1A4" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_23777764184941239876287C2822D1A4" + "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B0F1016B0B2C4892829C2DC114870F74" - "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmKey" = "8:_C8EF717B27B6D2E2D7204347C28D8409" + "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC18EEF87C2A40719F721B69D0749860" + "MsmKey" = "8:_EED9561BF2B84BB3B2096E0CDBAFD8E5" "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "MsmSig" = "8:_UNDEFINED" } + "Entry" + { + "MsmKey" = "8:_EED9561BF2B84BB3B2096E0CDBAFD8E5" + "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmSig" = "8:_UNDEFINED" + } } "Configurations" { @@ -55,7 +79,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\Install.msi" + "OutputFilename" = "8:..\\..\\..\\..\\Install\\comIvy.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -64,7 +88,7 @@ "CertificateFile" = "8:" "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" + "InstallerBootstrapper" = "3:1" } } "Deployable" @@ -89,6 +113,26 @@ } "File" { + "{A582A373-4685-4296-BEFE-614B80A702C3}:_C8EF717B27B6D2E2D7204347C28D8409" + { + "SourcePath" = "8:WSOCK32.dll" + "TargetName" = "8:WSOCK32.dll" + "Tag" = "8:" + "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { @@ -144,17 +188,17 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:comIvy" - "ProductCode" = "8:{B0DAB23E-2ED4-43A8-9671-0D8D4CD0D244}" - "PackageCode" = "8:{54746A22-9D17-4BAC-9491-3D5E04F63048}" + "ProductCode" = "8:{D72CC03B-1E81-446F-82EE-7B2C9DAFC76A}" + "PackageCode" = "8:{2B0FE4DE-1666-4200-A414-CE920797E733}" "UpgradeCode" = "8:{38FA115C-CED5-491F-AF2D-C26B035D114D}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.0.0" + "ProductVersion" = "8:1.1.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" - "Title" = "8:Install" + "Title" = "8:comIvy" "Subject" = "8:" "ARPCONTACT" = "8:CENA PII" "Keywords" = "8:" @@ -642,11 +686,11 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_B0F1016B0B2C4892829C2DC114870F74" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_23777764184941239876287C2822D1A4" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" "Properties" { } @@ -656,11 +700,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CC18EEF87C2A40719F721B69D0749860" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EED9561BF2B84BB3B2096E0CDBAFD8E5" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" "Properties" { } @@ -673,9 +717,9 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AA0E03B004294FB6A2A650251AC616A3" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_19FB70C8F6D64310B906EE12158D6D1A" { - "SourcePath" = "8:..\\..\\..\\..\\Program Files\\Release\\comIvy.dll" + "SourcePath" = "8:" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" @@ -694,6 +738,62 @@ "IsolateTo" = "8:" "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:ContentFiles" + "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_386AB9B453194B69A0AD764EF06258EE" + { + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AA0E03B004294FB6A2A650251AC616A3" + { + "SourcePath" = "8:..\\Release\\comIvy.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:4" + "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" "ShowKeyOutput" = "11:TRUE" -- cgit v1.1 From 7f94e13db3cca702e9c73cf3d024146a61eb69b2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:09 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:56 Archivé dans $/Bus/comIvy/Install Commentaire: (vss 3) --- comIvy/Install/Install.vdproj | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/comIvy/Install/Install.vdproj b/comIvy/Install/Install.vdproj index 27f03c0..73fc7a0 100644 --- a/comIvy/Install/Install.vdproj +++ b/comIvy/Install/Install.vdproj @@ -15,20 +15,20 @@ { "Entry" { - "MsmKey" = "8:_23777764184941239876287C2822D1A4" - "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_23777764184941239876287C2822D1A4" + "MsmKey" = "8:_72056A4E49A84B97947CFF77C76387EA" "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_386AB9B453194B69A0AD764EF06258EE" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_72056A4E49A84B97947CFF77C76387EA" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -45,14 +45,14 @@ } "Entry" { - "MsmKey" = "8:_EED9561BF2B84BB3B2096E0CDBAFD8E5" - "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmKey" = "8:_C9A40EECCFF7488B83A5E7F21420327B" + "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EED9561BF2B84BB3B2096E0CDBAFD8E5" - "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmKey" = "8:_C9A40EECCFF7488B83A5E7F21420327B" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "MsmSig" = "8:_UNDEFINED" } } @@ -188,13 +188,13 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:comIvy" - "ProductCode" = "8:{D72CC03B-1E81-446F-82EE-7B2C9DAFC76A}" - "PackageCode" = "8:{2B0FE4DE-1666-4200-A414-CE920797E733}" + "ProductCode" = "8:{3DED3C78-F4B2-4A00-943C-DF7D389E3DE3}" + "PackageCode" = "8:{31107A1B-F4D8-4B40-A876-3055F4B20FFE}" "UpgradeCode" = "8:{38FA115C-CED5-491F-AF2D-C26B035D114D}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.1.0" + "ProductVersion" = "8:1.2.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" @@ -686,11 +686,11 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_23777764184941239876287C2822D1A4" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_72056A4E49A84B97947CFF77C76387EA" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" "Properties" { } @@ -700,11 +700,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EED9561BF2B84BB3B2096E0CDBAFD8E5" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_C9A40EECCFF7488B83A5E7F21420327B" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" "Properties" { } -- cgit v1.1 From 55458b9bf3c8b50344e2f91c141216a6407d0541 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:10 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 17:42 Archivé dans $/Bus/comIvy/Install Commentaire: (vss 4) --- comIvy/Install/Install.vdproj | 58 +++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/comIvy/Install/Install.vdproj b/comIvy/Install/Install.vdproj index 73fc7a0..3e8e41d 100644 --- a/comIvy/Install/Install.vdproj +++ b/comIvy/Install/Install.vdproj @@ -15,44 +15,44 @@ { "Entry" { - "MsmKey" = "8:_386AB9B453194B69A0AD764EF06258EE" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_1447414B7EE3459CA5494709C46A8C05" + "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_72056A4E49A84B97947CFF77C76387EA" - "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmKey" = "8:_1447414B7EE3459CA5494709C46A8C05" + "OwnerKey" = "8:_EC70CEDC42CD4B468A8008C772D58DAC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_72056A4E49A84B97947CFF77C76387EA" + "MsmKey" = "8:_7E2EA4631FEA4004B5A496488E91D91B" "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_7E2EA4631FEA4004B5A496488E91D91B" + "OwnerKey" = "8:_EC70CEDC42CD4B468A8008C772D58DAC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C8EF717B27B6D2E2D7204347C28D8409" - "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C9A40EECCFF7488B83A5E7F21420327B" - "OwnerKey" = "8:_386AB9B453194B69A0AD764EF06258EE" + "MsmKey" = "8:_C8EF717B27B6D2E2D7204347C28D8409" + "OwnerKey" = "8:_EC70CEDC42CD4B468A8008C772D58DAC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C9A40EECCFF7488B83A5E7F21420327B" - "OwnerKey" = "8:_AA0E03B004294FB6A2A650251AC616A3" + "MsmKey" = "8:_EC70CEDC42CD4B468A8008C772D58DAC" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } } @@ -188,13 +188,13 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:comIvy" - "ProductCode" = "8:{3DED3C78-F4B2-4A00-943C-DF7D389E3DE3}" - "PackageCode" = "8:{31107A1B-F4D8-4B40-A876-3055F4B20FFE}" + "ProductCode" = "8:{C6AA7F33-7453-417E-ADDC-E7A0E16F6956}" + "PackageCode" = "8:{4122B08A-1DDF-42F0-9DFE-F26C2393CE24}" "UpgradeCode" = "8:{38FA115C-CED5-491F-AF2D-C26B035D114D}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:FALSE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.2.0" + "ProductVersion" = "8:1.3.0" "Manufacturer" = "8:CENA PII" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" @@ -686,11 +686,11 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_72056A4E49A84B97947CFF77C76387EA" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_1447414B7EE3459CA5494709C46A8C05" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" "Properties" { } @@ -700,11 +700,11 @@ "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_C9A40EECCFF7488B83A5E7F21420327B" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_7E2EA4631FEA4004B5A496488E91D91B" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" "Properties" { } @@ -717,7 +717,7 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_19FB70C8F6D64310B906EE12158D6D1A" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_4EF66E5AAAE140E89865D76773CCD4D6" { "SourcePath" = "8:" "TargetName" = "8:" @@ -745,9 +745,9 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_386AB9B453194B69A0AD764EF06258EE" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AA0E03B004294FB6A2A650251AC616A3" { - "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" + "SourcePath" = "8:..\\Release\\comIvy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" @@ -764,18 +764,18 @@ "Exclude" = "11:FALSE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" + "ProjectOutputGroupRegister" = "3:4" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}" + "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AA0E03B004294FB6A2A650251AC616A3" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_EC70CEDC42CD4B468A8008C772D58DAC" { - "SourcePath" = "8:..\\Release\\comIvy.dll" + "SourcePath" = "8:..\\..\\Ivy\\Release\\Ivy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_19810136D0DB43A685CAD4C802A4C6F2" @@ -792,10 +792,10 @@ "Exclude" = "11:FALSE" "IsDependency" = "11:FALSE" "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:4" + "ProjectOutputGroupRegister" = "3:1" "OutputConfiguration" = "8:" "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}" "ShowKeyOutput" = "11:TRUE" "ExcludeFilters" { -- cgit v1.1 From 689f976bc40d5907c65672ca86d58dcc913f6345 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:13 +0000 Subject: Utilisateur : Fcolin Date : 10/02/04 Heure : 17:44 Créé Commentaire: (vss 1) --- comIvy/Install/Install.vdproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/Install/Install.vdproj.vspscc diff --git a/comIvy/Install/Install.vdproj.vspscc b/comIvy/Install/Install.vdproj.vspscc new file mode 100644 index 0000000..ed6277a --- /dev/null +++ b/comIvy/Install/Install.vdproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:comIvy\\Install" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} -- cgit v1.1 From e06fa079d2c72f4a08bb11d9be7ec20058007cb4 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:15 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/ReadMe.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 comIvy/ReadMe.txt diff --git a/comIvy/ReadMe.txt b/comIvy/ReadMe.txt new file mode 100644 index 0000000..bb83e93 --- /dev/null +++ b/comIvy/ReadMe.txt @@ -0,0 +1,64 @@ +======================================================================== + BIBLIOTHÈQUE ATL : vue d'ensemble du projet comIvy +======================================================================== + +AppWizard a créé ce projet comIvy pour vous afin que vous l'utilisiez comme point de départ pour l'écriture +de votre DLL. +Ce projet est implémenté avec des attributs Visual C++. + +Ce fichier contient un résumé du contenu de chacun des fichiers qui +constituent votre projet. + +comIvy.vcproj + Il s'agit du fichier projet principal pour les projets VC++ générés à l'aide d'un Assistant Application. + Il contient les informations sur la version de Visual C++ qui a généré le fichier et + des informations sur les plates-formes, configurations et fonctionnalités du projet sélectionnées avec + l'Assistant Application. + +_comIvy.idl + Ce fichier sera généré par le compilateur lorsque le projet est généré. Il contiendra les définitions IDL + de la bibliothèque de types, les interfaces et les co-classes définies dans votre projet. + Ce fichier sera traité par le compilateur MIDL pour générer : + les définitions d'interface C++ et les déclarations GUID (_comIvy.h) + Définitions GUID (_comIvy_i.c) + Une bibliothèque de types (_comIvy.tlb) + Code de marshaling (_comIvy_p.c et dlldata.c) +comIvy.cpp + Ce fichier contient la table d'objets et l'implémentation des exportations de votre DLL. +comIvy.rc + Il s'agit de la liste de toutes les ressources Microsoft Windows que le + programme utilise. + +comIvy.def + Ce fichier de définition de module fournit à l'éditeur de liens des informations sur les exportations + requises par votre DLL. Il contient les exportations pour : + DllGetClassObject + DllCanUnloadNow + GetProxyDllInfo + DllRegisterServer + DllUnregisterServer + +///////////////////////////////////////////////////////////////////////////// +Autres fichiers standard : + +StdAfx.h, StdAfx.cpp + Ces fichiers sont utilisés pour générer un fichier d'en-tête précompilé (PCH) + nommé comIvy.pch et un fichier de type précompilé nommé StdAfx.obj. + +Resource.h + Il s'agit du fichier d'en-tête standard qui définit les ID de ressources. + +///////////////////////////////////////////////////////////////////////////// +Fichier de définition de module et projet de DLL proxy/stub : + +comIvyps.vcproj + Ce fichier est le fichier projet pour la génération d'une DLL proxy/stub DLL si nécessaire. + Le fichier IDL du projet principal doit contenir au moins une interface et vous devez + compiler en premier le fichier IDL avant de générer la DLL proxy/stub. Ce processus génère + dlldata.c, comIvy_i.c et comIvy_p.c qui sont requis + pour générer la DLL proxy/stub. + +comIvyps.def + Ce fichier de définition de module fournit à l'éditeur de liens les informations sur les exportations + requises par proxy/stub. +///////////////////////////////////////////////////////////////////////////// -- cgit v1.1 From 3006d508ed31f769ab7d39712d97f0dbaea0d47c Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:17 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Resource.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 comIvy/Resource.h diff --git a/comIvy/Resource.h b/comIvy/Resource.h new file mode 100644 index 0000000..4f1d1cb --- /dev/null +++ b/comIvy/Resource.h @@ -0,0 +1,18 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by comIvy.rc +// + +#define IDS_PROJNAME 100 +#define IDR_COMIVY 101 + +// Valeurs par défaut suivantes des nouveaux objets +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 201 +#define _APS_NEXT_COMMAND_VALUE 32768 +#define _APS_NEXT_CONTROL_VALUE 201 +#define _APS_NEXT_SYMED_VALUE 102 +#endif +#endif -- cgit v1.1 From afc20c1905f2c5075c5128a534bda408daf589d3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:19 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/TestIvy.doc | Bin 0 -> 47616 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 comIvy/TestIvy.doc diff --git a/comIvy/TestIvy.doc b/comIvy/TestIvy.doc new file mode 100644 index 0000000..a731e3a Binary files /dev/null and b/comIvy/TestIvy.doc differ -- cgit v1.1 From 3f17483ab3afe26616134ff5c7f577dd1637e712 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:21 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/TestIvy.doc | Bin 47616 -> 44544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/comIvy/TestIvy.doc b/comIvy/TestIvy.doc index a731e3a..4af5a12 100644 Binary files a/comIvy/TestIvy.doc and b/comIvy/TestIvy.doc differ -- cgit v1.1 From e2c203d741e07b3dab1660ded00d7b17b59ddd16 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:22 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 16:49 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/TestIvy.doc | Bin 44544 -> 47616 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/comIvy/TestIvy.doc b/comIvy/TestIvy.doc index 4af5a12..7bec85a 100644 Binary files a/comIvy/TestIvy.doc and b/comIvy/TestIvy.doc differ -- cgit v1.1 From a7f6fb235546ee24c8d2ebc76ad2f944f7ca065e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:25 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/comIvy.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/comIvy.cpp diff --git a/comIvy/comIvy.cpp b/comIvy/comIvy.cpp new file mode 100644 index 0000000..1c24f87 --- /dev/null +++ b/comIvy/comIvy.cpp @@ -0,0 +1,10 @@ +// comIvy.cpp : implémentation des exportations de DLL. + +#include "stdafx.h" +#include "resource.h" + +// L'attribut du module a provoqué l'implémentation automatique de DllMain, DllRegisterServer et DllUnregisterServer +[ module(dll, uuid = "{E1FEC2E8-66AC-494B-B69B-851D289BD931}", + name = "comIvy", + helpstring = "Bibliothèque de types comIvy 1.0", + resource_name = "IDR_COMIVY") ]; -- cgit v1.1 From 03869dbf5673b92b0140ebe69beb0bacba21506e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:26 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/comIvy.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comIvy/comIvy.cpp b/comIvy/comIvy.cpp index 1c24f87..e2b9c93 100644 --- a/comIvy/comIvy.cpp +++ b/comIvy/comIvy.cpp @@ -4,7 +4,7 @@ #include "resource.h" // L'attribut du module a provoqué l'implémentation automatique de DllMain, DllRegisterServer et DllUnregisterServer -[ module(dll, uuid = "{E1FEC2E8-66AC-494B-B69B-851D289BD931}", +[ module(dll, version=2.0, uuid = "{E1FEC2E8-66AC-494B-B69B-851D289BD931}", name = "comIvy", - helpstring = "Bibliothèque de types comIvy 1.0", + helpstring = "Bibliothèque de types comIvy", resource_name = "IDR_COMIVY") ]; -- cgit v1.1 From c61976ebf37e05f8001ae7d091a846e5f57200bf Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:28 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:46 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/comIvy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comIvy/comIvy.cpp b/comIvy/comIvy.cpp index e2b9c93..209693b 100644 --- a/comIvy/comIvy.cpp +++ b/comIvy/comIvy.cpp @@ -4,7 +4,7 @@ #include "resource.h" // L'attribut du module a provoqué l'implémentation automatique de DllMain, DllRegisterServer et DllUnregisterServer -[ module(dll, version=2.0, uuid = "{E1FEC2E8-66AC-494B-B69B-851D289BD931}", +[ module(dll, uuid = "{E1FEC2E8-66AC-494B-B69B-851D289BD931}", name = "comIvy", helpstring = "Bibliothèque de types comIvy", resource_name = "IDR_COMIVY") ]; -- cgit v1.1 From 2ca078982b324ea7f4a2129a9f1f42c85ca8b698 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:31 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/comIvy.rc | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 comIvy/comIvy.rc diff --git a/comIvy/comIvy.rc b/comIvy/comIvy.rc new file mode 100644 index 0000000..e33dae4 --- /dev/null +++ b/comIvy/comIvy.rc @@ -0,0 +1,120 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Français (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "CompanyName", "CENA" + VALUE "FileDescription", "Composant d'interface a Ivy" + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "comIvy.dll" + VALUE "LegalCopyright", "TODO : (c) . Tous droits réservés." + VALUE "OriginalFilename", "comIvy.dll" + VALUE "ProductName", "comIvy" + VALUE "ProductVersion", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// REGISTRY +// + +IDR_COMIVY REGISTRY "comIvy.rgs" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PROJNAME "comIvy" +END + +#endif // Français (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + -- cgit v1.1 From f36c2b29304fd2ec971af7e78a287b255504e389 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:32 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/comIvy.rc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/comIvy/comIvy.rc b/comIvy/comIvy.rc index e33dae4..0af388a 100644 --- a/comIvy/comIvy.rc +++ b/comIvy/comIvy.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 + FILEVERSION 1,0,0,2 + PRODUCTVERSION 1,0,0,2 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "CENA" VALUE "FileDescription", "Composant d'interface a Ivy" - VALUE "FileVersion", "1.0.0.1" + VALUE "FileVersion", "1.0.0.2" VALUE "InternalName", "comIvy.dll" - VALUE "LegalCopyright", "TODO : (c) . Tous droits réservés." + VALUE "LegalCopyright", "(c) . Tous droits réservés." VALUE "OriginalFilename", "comIvy.dll" VALUE "ProductName", "comIvy" - VALUE "ProductVersion", "1.0.0.1" + VALUE "ProductVersion", "1.0.0.2" END END BLOCK "VarFileInfo" -- cgit v1.1 From 5de018ce216959848c5beb99c2a703cb57a0b165 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:35 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/comIvy.rgs | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 comIvy/comIvy.rgs diff --git a/comIvy/comIvy.rgs b/comIvy/comIvy.rgs new file mode 100644 index 0000000..893f5b0 --- /dev/null +++ b/comIvy/comIvy.rgs @@ -0,0 +1,11 @@ +HKCR +{ + NoRemove AppID + { + '%APPID%' = s 'comIvy' + 'comIvy.DLL' + { + val AppID = s '%APPID%' + } + } +} -- cgit v1.1 From 5bed1e3707fa87bdbf682c0271f3ba288114f783 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:37 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 15:27 Créé Commentaire: (vss 1) --- comIvy/comIvy.sln | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 comIvy/comIvy.sln diff --git a/comIvy/comIvy.sln b/comIvy/comIvy.sln new file mode 100644 index 0000000..3862005 --- /dev/null +++ b/comIvy/comIvy.sln @@ -0,0 +1,54 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvy", "comIvy.vcproj", "{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "comIvyPS", "comIvyPS.vcproj", "{2518DFBB-6692-4F0C-8020-1DEEC95A5EC1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "..\Ivy\Ivy.vcproj", "{9818D652-CC05-463E-880D-AFCA2C7BFABE}" +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 4 + SccProjectUniqueName0 = ..\\Ivy\\Ivy.vcproj + SccProjectName0 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA + SccLocalPath0 = ..\\Ivy + CanCheckoutShared = false + SccProjectUniqueName1 = comIvy.vcproj + SccLocalPath1 = .. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection1 = comIvy\\ + SccProjectName2 = \u0022$/Bus\u0022,\u0020ZOBAAAAA + SccLocalPath2 = .. + SccProvider2 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection2 = comIvy\\ + SolutionUniqueID = {0D33DAE6-8F43-4549-9070-01A6DB7794D4} + SccProjectUniqueName3 = comIvyPS.vcproj + SccLocalPath3 = .. + CanCheckoutShared = false + SccProjectFilePathRelativizedFromConnection3 = comIvy\\ + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.0 = {9818D652-CC05-463E-880D-AFCA2C7BFABE} + {2518DFBB-6692-4F0C-8020-1DEEC95A5EC1}.0 = {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90} + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.ActiveCfg = Debug|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Debug.Build.0 = Debug|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.ActiveCfg = Release|Win32 + {561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}.Release.Build.0 = Release|Win32 + {2518DFBB-6692-4F0C-8020-1DEEC95A5EC1}.Debug.ActiveCfg = Debug|Win32 + {2518DFBB-6692-4F0C-8020-1DEEC95A5EC1}.Release.ActiveCfg = Release|Win32 + {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug.ActiveCfg = Debug|Win32 + {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug.Build.0 = Debug|Win32 + {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release.ActiveCfg = Release|Win32 + {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- cgit v1.1 From bd629d1392d3a55af10c5e4e10eb3aecfd5faa89 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:39 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:54 Créé Commentaire: (vss 1) --- comIvy/comIvy.vcproj | 210 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 comIvy/comIvy.vcproj diff --git a/comIvy/comIvy.vcproj b/comIvy/comIvy.vcproj new file mode 100644 index 0000000..b6c060e --- /dev/null +++ b/comIvy/comIvy.vcproj @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From 0effcd8ef0eba3533416a6507cbe381e64942c38 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:41 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 12:09 Archivé dans $/Bus/comIvy Commentaire: (vss 2) --- comIvy/comIvy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comIvy/comIvy.vcproj b/comIvy/comIvy.vcproj index b6c060e..e9d7467 100644 --- a/comIvy/comIvy.vcproj +++ b/comIvy/comIvy.vcproj @@ -16,7 +16,7 @@ + DebugInformationFormat="4" + AdditionalOptions=""/> + TargetMachine="1" + SuppressStartupBanner="1" + AdditionalOptions=""/> + DebugInformationFormat="3" + AdditionalOptions=""/> + TargetMachine="1" + SuppressStartupBanner="1" + AdditionalOptions=""/> - + RelativePath="Bus.cpp"/> - + RelativePath="Expression.cpp"/> - + RelativePath="comIvy.cpp"/> + UsePrecompiledHeader="1" + AdditionalOptions=""/> + UsePrecompiledHeader="1" + AdditionalOptions=""/> @@ -171,40 +177,30 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc"> - + RelativePath="Bus.h"/> - + RelativePath="Expression.h"/> - + RelativePath="Resource.h"/> - + RelativePath="stdafx.h"/> - + RelativePath="comIvy.rc"/> - + RelativePath="comIvy.rgs"/> - + RelativePath="ReadMe.txt"/> - + DeploymentContent="TRUE"/> - + DeploymentContent="TRUE"/> - - + -- cgit v1.1 From 3f0d7df8d680c53ec775fcac708104e7bf605a0b Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:44 +0000 Subject: Utilisateur : Fcolin Date : 23/01/04 Heure : 14:18 Archivé dans $/Bus/comIvy Commentaire: (vss 4) --- comIvy/comIvy.vcproj | 92 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 31 deletions(-) diff --git a/comIvy/comIvy.vcproj b/comIvy/comIvy.vcproj index 2144eb1..1d51170 100644 --- a/comIvy/comIvy.vcproj +++ b/comIvy/comIvy.vcproj @@ -1,7 +1,7 @@ - + + DebugInformationFormat="4"/> + TargetMachine="1"/> + + + + DebugInformationFormat="3"/> + TargetMachine="1"/> + + + + + + + RelativePath="Bus.cpp"> + + RelativePath="comIvy.cpp"> + + RelativePath="Expression.cpp"> + + AdditionalOptions="" + UsePrecompiledHeader="1"/> + AdditionalOptions="" + UsePrecompiledHeader="1"/> @@ -177,30 +197,40 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc"> + RelativePath="Bus.h"> + + RelativePath="Expression.h"> + + RelativePath="Resource.h"> + + RelativePath="stdafx.h"> + + RelativePath="comIvy.rc"> + + RelativePath="comIvy.rgs"> + + RelativePath="ivyscript.vbs" + DeploymentContent="TRUE"> + + RelativePath="ReadMe.txt"> + + RelativePath="TestIvy.doc" + DeploymentContent="TRUE"> + - + + -- cgit v1.1 From 434a8afa552f34d43004d8f4da6cac8d20d3e517 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:47 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:03 Archivé dans $/Bus/comIvy Commentaire: (vss 5) --- comIvy/comIvy.vcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comIvy/comIvy.vcproj b/comIvy/comIvy.vcproj index 1d51170..895efff 100644 --- a/comIvy/comIvy.vcproj +++ b/comIvy/comIvy.vcproj @@ -86,7 +86,7 @@ -- cgit v1.1 From 15cb508a2b736277db25baddf6b4426a0bb9b155 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:48 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 14:48 Archivé dans $/Bus/comIvy Commentaire: (vss 6) --- comIvy/comIvy.vcproj | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/comIvy/comIvy.vcproj b/comIvy/comIvy.vcproj index 895efff..809599d 100644 --- a/comIvy/comIvy.vcproj +++ b/comIvy/comIvy.vcproj @@ -4,6 +4,7 @@ Version="7.10" Name="comIvy" ProjectGUID="{561E32B8-AF2E-4BA4-8D1D-159CC71E2C90}" + RootNamespace="comIvy" SccProjectName=""$/Bus", ZOBAAAAA" SccAuxPath="" SccLocalPath=".." @@ -36,12 +37,14 @@ Detect64BitPortabilityProblems="TRUE" DebugInformationFormat="4"/> + Name="VCCustomBuildTool" + Description="Copying dll's" + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)"" + Outputs="C:\users\fcolin\Program Files\$(OutDir)\$(TargetName).dll"/> + CommandLine="regsvr32 /s /c "C:\users\fcolin\Program Files\$(OutDir)\$(TargetName).dll""/> + Name="VCCustomBuildTool" + Description="Copying dll's" + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)"" + Outputs="C:\users\fcolin\Program Files\$(OutDir)\$(TargetName).dll"/> + CommandLine="regsvr32 /s /c "C:\users\fcolin\Program Files\$(OutDir)\$(TargetName).dll""/> + CommandLine="copy "$(TargetPath)" "C:\users\fcolin\Program Files\$(OutDir)" +"/> +" + Outputs=""C:\users\fcolin\Program Files\$(OutDir)\$(TargetFileName)""/> 22 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 comIvy/comIvy.vsscc diff --git a/comIvy/comIvy.vsscc b/comIvy/comIvy.vsscc new file mode 100644 index 0000000..df0db91 Binary files /dev/null and b/comIvy/comIvy.vsscc differ -- cgit v1.1 From 8165b9594f93dc58b8aa81e3360b06c71708cefc Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:14:59 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 15:27 Créé Commentaire: (vss 1) --- comIvy/comIvy.vssscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/comIvy.vssscc diff --git a/comIvy/comIvy.vssscc b/comIvy/comIvy.vssscc new file mode 100644 index 0000000..fd837c3 --- /dev/null +++ b/comIvy/comIvy.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:comIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From ad7c062a79500bbd7d217c748804c4db22f87dd3 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:01 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 15:27 Créé Commentaire: (vss 1) --- comIvy/comIvyPS.vcproj | 121 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 comIvy/comIvyPS.vcproj diff --git a/comIvy/comIvyPS.vcproj b/comIvy/comIvyPS.vcproj new file mode 100644 index 0000000..e0695a6 --- /dev/null +++ b/comIvy/comIvyPS.vcproj @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1 From c363c7fd9ae17896086e2af0dfb6decaf2c281d0 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:03 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 15:27 Créé Commentaire: (vss 1) --- comIvy/comIvyPS.vcproj.vspscc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comIvy/comIvyPS.vcproj.vspscc diff --git a/comIvy/comIvyPS.vcproj.vspscc b/comIvy/comIvyPS.vcproj.vspscc new file mode 100644 index 0000000..fd837c3 --- /dev/null +++ b/comIvy/comIvyPS.vcproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "relative:comIvy" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} -- cgit v1.1 From e454d7cb2c6eac2c632ada8b494ef895a760e6b1 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:05 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 15:27 Créé Commentaire: (vss 1) --- comIvy/comIvyps.def | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 comIvy/comIvyps.def diff --git a/comIvy/comIvyps.def b/comIvy/comIvyps.def new file mode 100644 index 0000000..9d3932c --- /dev/null +++ b/comIvy/comIvyps.def @@ -0,0 +1,9 @@ + +LIBRARY "comIvyPS" + +EXPORTS + DllGetClassObject PRIVATE + DllCanUnloadNow PRIVATE + GetProxyDllInfo PRIVATE + DllRegisterServer PRIVATE + DllUnregisterServer PRIVATE -- cgit v1.1 From 56bcba056a8f7463f6fdd24a10b871ac23d72e5d Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:07 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/ivyscript.vbs | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 comIvy/ivyscript.vbs diff --git a/comIvy/ivyscript.vbs b/comIvy/ivyscript.vbs new file mode 100644 index 0000000..be16094 --- /dev/null +++ b/comIvy/ivyscript.vbs @@ -0,0 +1,73 @@ +'-------------------------------------------- +' IVYscript.vbs +'-------------------------------------------- +Option Explicit +'On Error Resume Next + +dim bus,all_message,pp,count + + +set bus = WScript.CreateObject("comIvy.Bus", "bus_") + +'WScript.Echo " bus type " & TypeName(bus) + +bus.Create "IvyScript", "IvyScript Ready" + +set all_message= bus.Bind( "(.*)") + + +WScript.ConnectObject all_message, "all_" + +set pp= bus.Bind( "^PPilot(.*)") + +'WScript.Echo " all type " & TypeName(all) + + +WScript.ConnectObject pp, "pp_" + +bus.Start "" + +WScript.Sleep 2000 +count= bus.Send( "ClockStart" ) +WScript.Echo "Sent " & count +WScript.Sleep 25000 + + +all_message.Unbind() +pp.Unbind() + +'-------------------------------------------- +sub bus_ApplicationConnected(name) + WScript.Echo "Application Connected " & name +end sub +'-------------------------------------------- +'-------------------------------------------- +sub bus_ApplicationDisconnected(name) + WScript.Echo "Application Disconnect " & name +end sub +'-------------------------------------------- +'-------------------------------------------- +sub all_Received(name,args) + dim i,argc,argv + argc = UBound(args) - LBound(args) + 1 + argv = " args: " + for i = LBound(args) to UBound(args) + argv = argv & args(i) & "," + next + WScript.Echo "Receive message argc=" & Cstr(argc ) & argv +end sub +'-------------------------------------------- +'-------------------------------------------- +sub pp_Received(name,args) + dim i,argc,argv + argc = UBound(args) - LBound(args) + 1 + argv = " args: " + for i = LBound(args) to UBound(args) + argv = argv & args(i) & "," + next + WScript.Echo "Receive PPilot message argc=" & Cstr(argc ) & argv +end sub +'-------------------------------------------- +sub Received(args) + WScript.Echo "Unknown Receive message argc=" & Cstr(args)& "->" & args(0) +end sub \ No newline at end of file -- cgit v1.1 From 558785ec45f86c748800e443741e513ffa3ca0ac Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:08 +0000 Subject: Utilisateur : Fcolin Date : 18/04/03 Heure : 15:43 Archivé dans $/Bus/comIvy Commentaire: ajout GetDomain (vss 2) --- comIvy/ivyscript.vbs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/comIvy/ivyscript.vbs b/comIvy/ivyscript.vbs index be16094..3d81256 100644 --- a/comIvy/ivyscript.vbs +++ b/comIvy/ivyscript.vbs @@ -9,9 +9,10 @@ dim bus,all_message,pp,count set bus = WScript.CreateObject("comIvy.Bus", "bus_") -'WScript.Echo " bus type " & TypeName(bus) +WScript.Echo " bus type " & TypeName(bus) bus.Create "IvyScript", "IvyScript Ready" +WScript.Echo " bus domain " & bus.GetDomain() set all_message= bus.Bind( "(.*)") @@ -49,6 +50,8 @@ end sub '-------------------------------------------- sub all_Received(name,args) dim i,argc,argv + WScript.Echo " args type " & TypeName(args) + argc = UBound(args) - LBound(args) + 1 argv = " args: " for i = LBound(args) to UBound(args) -- cgit v1.1 From e702a1b7036e0c25a93e9761f4538da6224b8f31 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:10 +0000 Subject: Utilisateur : Fcolin Date : 7/06/04 Heure : 10:56 Archivé dans $/Bus/comIvy Commentaire: (vss 3) --- comIvy/ivyscript.vbs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/comIvy/ivyscript.vbs b/comIvy/ivyscript.vbs index 3d81256..a8e6527 100644 --- a/comIvy/ivyscript.vbs +++ b/comIvy/ivyscript.vbs @@ -33,8 +33,11 @@ count= bus.Send( "ClockStart" ) WScript.Echo "Sent " & count WScript.Sleep 25000 +WScript.Echo " Unbind Message " & TypeName(all_message) all_message.Unbind() + +WScript.Echo " Unbind Message " & TypeName(all_message) pp.Unbind() '-------------------------------------------- -- cgit v1.1 From 1931a74f1e727d974a5a12d3ee6661cd9b6093b7 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:12 +0000 Subject: Utilisateur : Fcolin Date : 4/01/05 Heure : 14:48 Archivé dans $/Bus/comIvy Commentaire: (vss 4) --- comIvy/ivyscript.vbs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/comIvy/ivyscript.vbs b/comIvy/ivyscript.vbs index a8e6527..f8efd5a 100644 --- a/comIvy/ivyscript.vbs +++ b/comIvy/ivyscript.vbs @@ -40,6 +40,9 @@ all_message.Unbind() WScript.Echo " Unbind Message " & TypeName(all_message) pp.Unbind() +WScript.Echo " End Ivy Script Test " & TypeName(bus) + +'bus.Delete() '-------------------------------------------- sub bus_ApplicationConnected(name) WScript.Echo "Application Connected " & name -- cgit v1.1 From 4284d03f4a4a9e9e557a1a5c8e0a48666b1a7fb2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:15 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/stdafx.cpp | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 comIvy/stdafx.cpp diff --git a/comIvy/stdafx.cpp b/comIvy/stdafx.cpp new file mode 100644 index 0000000..9fae7b7 --- /dev/null +++ b/comIvy/stdafx.cpp @@ -0,0 +1,5 @@ +// stdafx.cpp : fichier source incluant simplement les fichiers Include standard +// comIvy.pch représente l'en-tête précompilé +// stdafx.obj contient les informations de type précompilées + +#include "stdafx.h" -- cgit v1.1 From 028864c404717b3c855b7cc0df8b63ffb05fccd2 Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:15:17 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/stdafx.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 comIvy/stdafx.h diff --git a/comIvy/stdafx.h b/comIvy/stdafx.h new file mode 100644 index 0000000..756ac91 --- /dev/null +++ b/comIvy/stdafx.h @@ -0,0 +1,45 @@ +// stdafx.h : Fichier Include pour les fichiers Include système standard, +// ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment, +// et sont rarement modifiés + +#pragma once + +#ifndef STRICT +#define STRICT +#endif + +// Modifiez les définitions suivantes si vous devez cibler une plate-forme avant celles spécifiées ci-dessous. +// Reportez-vous à MSDN pour obtenir les dernières informations sur les valeurs correspondantes pour les différentes plates-formes. +#ifndef WINVER // Autorise l'utilisation des fonctionnalités spécifiques à Windows 95 et Windows NT 4 ou version ultérieure. +#define WINVER 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler Windows 98 et Windows 2000 ou version ultérieure. +#endif + +#ifndef _WIN32_WINNT // Autorise l'utilisation des fonctionnalités spécifiques à Windows NT 4 ou version ultérieure. +#define _WIN32_WINNT 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler Windows 2000 ou version ultérieure. +#endif + +#ifndef _WIN32_WINDOWS // Autorise l'utilisation des fonctionnalités spécifiques à Windows 98 ou version ultérieure. +#define _WIN32_WINDOWS 0x0410 // Attribuez la valeur appropriée à cet élément pour cibler Windows Me ou version ultérieure. +#endif + +#ifndef _WIN32_IE // Autorise l'utilisation des fonctionnalités spécifiques à IE 4.0 ou version ultérieure. +#define _WIN32_IE 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler IE 5.0 ou version ultérieure. +#endif + +#define _ATL_APARTMENT_THREADED +#define _ATL_NO_AUTOMATIC_NAMESPACE + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // certains constructeurs CString seront explicites + +// désactive le masquage ATL de certains messages d'avertissement courants et souvent ignorés +#define _ATL_ALL_WARNINGS + +#include +#include +#include +#include +#include +#include + + +using namespace ATL; -- cgit v1.1 -- cgit v1.1