Thanks Alireza. That was a huge help. You saved me a day or two at least.<br><br>Adding the additional dependencies in step 4 below was the key to getting the code to compile. I still need to write the GUI wrapper (we will probably opt for a C# windows forms) but I think I have it figured out now and will post back if there are some additional problems with steps 7 and 9 from below which I haven't tested yet.<br><br>Thanks again,<br>Mike<br><br><b><i>alireza akhundi asl <a_akhundi@yahoo.com></i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> <div>Hi Mike</div> <div>I had this problem for a long time. to solve this problem you can use these steps:</div> <div>1-in your new solution add new class library project ( C#,C++, ...).</div> <div> </div> <div>2-in property page of your class lib in c/c++ ->general->additional include directories, add this header
files (D:\program files\itk is folder of your built itk):</div> <div>"D:\Program Files\itk\Utilities\vxl\core";"D:\Program Files\itk\Utilities\vxl\vcl";"D:\Program Files\InsightToolkit-2.4.1\Utilities\vxl\core";"D:\Program Files\InsightToolkit-2.4.1\Utilities\vxl\vcl";"D:\Program Files\InsightToolkit-2.4.1\Utilities";"D:\Program Files\itk\Utilities";"D:\Program Files\itk\Utilities\gdcm";"D:\Program Files\InsightToolkit-2.4.1\Utilities\nifti\znzlib";"D:\Program Files\InsightToolkit-2.4.1\Utilities\nifti\niftilib";"D:\Program Files\InsightToolkit-2.4.1\Utilities\expat";"D:\Program Files\itk\Utilities\expat";"D:\Program Files\itk\Utilities\DICOMParser";"D:\Program Files\InsightToolkit-2.4.1\Utilities\DICOMParser";"D:\Program Files\InsightToolkit-2.4.1\Utilities\NrrdIO";"D:\Program Files\InsightToolkit-2.4.1\Utilities\MetaIO";"D:\Program Files\InsightToolkit-2.4.1\Code\SpatialObject";"D:\Program Files\InsightToolkit-2.4.1\Code\Numerics\NeuralNetworks";"D:\Program
Files\InsightToolkit-2.4.1\Code\Numerics\Statistics";"D:\Program Files\InsightToolkit-2.4.1\Code\Numerics\FEM";"D:\Program Files\InsightToolkit-2.4.1\Code\IO";"D:\Program Files\InsightToolkit-2.4.1\Code\Numerics";"D:\Program Files\InsightToolkit-2.4.1\Code\Common";"D:\Program Files\InsightToolkit-2.4.1\Code\BasicFilters";"D:\Program Files\InsightToolkit-2.4.1\Code\Algorithms";"D:\Program Files\itk";</div> <div> </div> <div>3-in linker->general->additional library Directories add path of your itk lib files (again D:\program files\itk is folder of your built itk):</div> <div>D:\Program Files\itk\bin\debug</div> <div> </div> <div>4-in linker->input->Additional dependencies add this lib files:</div> <div>msvcrtd.lib mscoree.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ITKBasicFilters.lib ITKCommon.lib ITKIO.lib ITKNrrdIO.lib itkgdcm.lib itkjpeg12.lib itkjpeg16.lib wsock32.lib snmpapi.lib itkpng.lib itktiff.lib itkjpeg8.lib ITKSpatialObject.lib ITKNumerics.lib ITKCommon.lib itkvnl_inst.lib itkvnl_algo.lib itkvnl.lib itkvcl.lib itknetlib.lib itksys.lib ITKMetaIO.lib ITKDICOMParser.lib ITKEXPAT.lib ITKniftiio.lib ITKznz.lib itkzlib.lib </div> <div> </div> <div>5-write your function: (my class name is itkclass and the function is iterator and namespace is itk_base)</div> <div> </div> <div> </div><font color="#008000" size="2"> <div>// itk_base.h</div></font><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#pragma</font><font size="2"> </font><font color="#0000ff" size="2">once</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#include</font><font size="2"> </font><font color="#800000"
size="2">"itkImage.h"</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#include</font><font size="2"> </font><font color="#800000" size="2">"itkRGBPixel.h"</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#include</font><font size="2"> </font><font color="#800000" size="2">"itkImageRegionIteratorWithIndex.h"</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#include</font><font size="2"> </font><font color="#800000" size="2">"itkImageFileReader.h"</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#include</font><font size="2"> </font><font color="#800000" size="2">"itkImageFileWriter.h"</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System;</font></div><font color="#0000ff" size="2">
</font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System::Collections;</font></div><font size="2"> </font><div><font size="2"> </font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">namespace</font><font size="2"> itk_base {</font></div><font size="2"> </font><div><font color="#0000ff" size="2">typedef</font><font size="2"> itk::RGBPixel<</font><font color="#0000ff" size="2">unsigned</font><font size="2"> </font><font color="#0000ff" size="2">char</font><font size="2">> RGBPixelType;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">typedef</font><font size="2"> itk::Image<RGBPixelType,2> ImageType;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">typedef</font><font size="2"> itk::ImageRegionIteratorWithIndex<ImageType> IteratorType;</font></div><font size="2"> </font><div><font
color="#0000ff" size="2">typedef</font><font size="2"> itk::ImageFileReader<ImageType> ReaderType;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">typedef</font><font size="2"> itk::ImageFileWriter<ImageType> WriterType;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">public</font><font size="2"> </font><font color="#0000ff" size="2">ref</font><font size="2"> </font><font color="#0000ff" size="2">class</font><font size="2"> itkclass</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font color="#008000" size="2">// TODO: Add your methods for this class here.</font></div><font size="2"> </font><div><font color="#0000ff" size="2">public</font><font size="2">:</font></div><font size="2"> </font><div><font color="#0000ff" size="2">static</font><font size="2"> </font><font color="#0000ff" size="2">void</font><font size="2"> iterator()</font></div><font size="2">
</font><div><font size="2">{</font></div><font size="2"> </font><div><font size="2">ImageType::ConstPointer inputImage;</font></div><font size="2"> </font><div><font size="2">ReaderType::Pointer reader=ReaderType::New();</font></div><font size="2"> </font><div><font size="2">reader->SetFileName(</font><font color="#800000" size="2">"D:\\Program Files\\InsightToolkit-2.4.1\\Examples\\Data\\BrainProtonDensitySliceShifted13x17y.png"</font><font size="2">);</font></div><font size="2"> </font><div><font size="2">reader->Update();</font></div><font size="2"> </font><div><font size="2">inputImage=reader->GetOutput();</font></div><font size="2"> </font><div><font size="2">ImageType::Pointer outputImage = ImageType::New();</font></div><font size="2"> </font><div><font size="2">outputImage->SetRegions( inputImage->GetRequestedRegion() );</font></div><font size="2"> </font><div><font size="2">outputImage->CopyInformation(inputImage);</font></div><font
size="2"> </font><div><font size="2">outputImage->Allocate();</font></div><font size="2"> </font><div><font size="2">ImageType::IndexType requestedIndex =outputImage->GetRequestedRegion().GetIndex();</font></div><font size="2"> </font><div><font size="2">ImageType::SizeType requestedSize =outputImage->GetRequestedRegion().GetSize();</font></div><font size="2"> </font><div><font size="2">IteratorType outputIt( outputImage, outputImage->GetRequestedRegion() );</font></div><font size="2"> </font><div><font color="#0000ff" size="2">for</font><font size="2"> ( outputIt.GoToBegin(); !outputIt.IsAtEnd(); ++outputIt)</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font size="2">ImageType::IndexType idx = outputIt.GetIndex();</font></div><font size="2"> </font><div><font size="2">idx[0] = requestedIndex[0] + requestedSize[0] - 1 - idx[0];</font></div><font size="2"> </font><div><font size="2">outputIt.Set(
inputImage->GetPixel(idx) );</font></div><font size="2"> </font><div><font size="2">}</font></div><font size="2"> </font><div><font size="2">}</font></div><font size="2"> </font><div><font size="2">};</font></div><font size="2"> </font><div><font size="2">}</font></div><font size="2"> </font><div><font size="2"> </font></div><font size="2"> </font><div><font size="2">6-add new windows form application project to your solution:</font></div><font size="2"> </font><div><font size="2"> </font></div><font size="2"> </font><div><font size="2">7-in property page of your windows form application in c/c++ ->general->Resolve #using References add the path of the dll that is built in your class lib for example in my case : F:\myexamples\debug ( isupposed that you are using C++ )</font></div><font size="2"> </font><div><font size="2"> </font></div><font size="2"> </font><div><font size="2">8-for example add a button and use function in this
form:</font></div><font size="2"> </font><div><font size="2"> </font></div><font size="2"><font color="#0000ff" size="2"> </font></font><div><font size="2"><font color="#0000ff" size="2">private</font><font size="2">: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {</font></font></div><font size="2"><font size="2"> </font></font><div><font size="2"><font size="2">itkclass::iterator();</font></font></div><font size="2"><font size="2"> </font></font><div><font size="2"><font size="2">}</font></font></div><font size="2"><font size="2"> </font></font><div><font size="2"><font size="2"> </font></font></div><font size="2"><font size="2"> </font></font><div><font size="2"><font size="2">9- dont forget to add <font color="#0000ff" size="2">#using</font><font size="2"> </font><font color="#800000" size="2"><itk_base.dll> </font></font></font>in your windows form's header file.</div> <div>for example:</div> <div> </div><font
color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#pragma</font><font size="2"> </font><font color="#0000ff" size="2">once</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#using</font><font size="2"> </font><font color="#800000" size="2"><itk_base.dll></font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">namespace</font><font size="2"> test {</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System::ComponentModel;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2">
System::Collections;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System::Windows::Forms;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System::Data;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> System::Drawing;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">using</font><font size="2"> </font><font color="#0000ff" size="2">namespace</font><font size="2"> itk_base;</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"><summary></font></div><font size="2"> </font><div><font color="#008000" size="2">/// Summary for
Form1</font></div><font size="2"> </font><div><font color="#008000" size="2">///</font></div><font size="2"> </font><div><font color="#008000" size="2">/// WARNING: If you change the name of this class, you will need to change the</font></div><font size="2"> </font><div><font color="#008000" size="2">/// 'Resource File Name' property for the managed resource compiler tool</font></div><font size="2"> </font><div><font color="#008000" size="2">/// associated with all .resx files this class depends on. Otherwise,</font></div><font size="2"> </font><div><font color="#008000" size="2">/// the designers will not be able to interact properly with localized</font></div><font size="2"> </font><div><font color="#008000" size="2">/// resources associated with this form.</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"></summary></font></div><font size="2"> </font><div><font color="#0000ff"
size="2">public</font><font size="2"> </font><font color="#0000ff" size="2">ref</font><font size="2"> </font><font color="#0000ff" size="2">class</font><font size="2"> Form1 : </font><font color="#0000ff" size="2">public</font><font size="2"> System::Windows::Forms::Form</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font color="#0000ff" size="2">public</font><font size="2">:</font></div><font size="2"> </font><div><font size="2">Form1(</font><font color="#0000ff" size="2">void</font><font size="2">)</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font size="2">InitializeComponent();</font></div><font size="2"> </font><div><font color="#008000" size="2">//</font></div><font size="2"> </font><div><font color="#008000" size="2">//TODO: Add the constructor code here</font></div><font size="2"> </font><div><font color="#008000" size="2">//</font></div><font size="2">
</font><div><font size="2">}</font></div><font size="2"> </font><div><font color="#0000ff" size="2">protected</font><font size="2">:</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"><summary></font></div><font size="2"> </font><div><font color="#008000" size="2">/// Clean up any resources being used.</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"></summary></font></div><font size="2"> </font><div><font size="2">~Form1()</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font color="#0000ff" size="2">if</font><font size="2"> (components)</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font color="#0000ff" size="2">delete</font><font size="2"> components;</font></div><font size="2"> </font><div><font size="2">}</font></div><font
size="2"> </font><div><font size="2">}</font></div><font size="2"> </font><div><font color="#0000ff" size="2">private</font><font size="2">: System::Windows::Forms::Button^ button1;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">protected</font><font size="2">: </font></div><font size="2"> </font><div><font color="#0000ff" size="2">private</font><font size="2">:</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"><summary></font></div><font size="2"> </font><div><font color="#008000" size="2">/// Required designer variable.</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"></summary></font></div><font size="2"> <div>System::ComponentModel::Container ^components;</div></font><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#pragma</font><font size="2"> </font><font color="#0000ff"
size="2">region</font><font size="2"> Windows Form Designer generated code</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"><summary></font></div><font size="2"> </font><div><font color="#008000" size="2">/// Required method for Designer support - do not modify</font></div><font size="2"> </font><div><font color="#008000" size="2">/// the contents of this method with the code editor.</font></div><font size="2"> </font><div><font color="#008000" size="2">/// </font><font color="#808080" size="2"></summary></font></div><font size="2"> </font><div><font color="#0000ff" size="2">void</font><font size="2"> InitializeComponent(</font><font color="#0000ff" size="2">void</font><font size="2">)</font></div><font size="2"> </font><div><font size="2">{</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1 = (</font><font color="#0000ff"
size="2">gcnew</font><font size="2"> System::Windows::Forms::Button());</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->SuspendLayout();</font></div><font size="2"> </font><div><font color="#008000" size="2">// </font></div><font size="2"> </font><div><font color="#008000" size="2">// button1</font></div><font size="2"> </font><div><font color="#008000" size="2">// </font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->Location = System::Drawing::Point(191, 67);</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->Name = L</font><font color="#800000" size="2">"button1"</font><font size="2">;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->Size = System::Drawing::Size(49, 27);</font></div><font size="2"> </font><div><font
color="#0000ff" size="2">this</font><font size="2">->button1->TabIndex = 0;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->Text = L</font><font color="#800000" size="2">"button1"</font><font size="2">;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->UseVisualStyleBackColor = </font><font color="#0000ff" size="2">true</font><font size="2">;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->button1->Click += </font><font color="#0000ff" size="2">gcnew</font><font size="2"> System::EventHandler(</font><font color="#0000ff" size="2">this</font><font size="2">, &Form1::button1_Click);</font></div><font size="2"> </font><div><font color="#008000" size="2">// </font></div><font size="2"> </font><div><font color="#008000" size="2">// Form1</font></div><font size="2">
</font><div><font color="#008000" size="2">// </font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->AutoScaleDimensions = System::Drawing::SizeF(6, 13);</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->ClientSize = System::Drawing::Size(292, 266);</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->Controls->Add(</font><font color="#0000ff" size="2">this</font><font size="2">->button1);</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->Name = L</font><font color="#800000" size="2">"Form1"</font><font size="2">;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font
size="2">->Text = L</font><font color="#800000" size="2">"Form1"</font><font size="2">;</font></div><font size="2"> </font><div><font color="#0000ff" size="2">this</font><font size="2">->ResumeLayout(</font><font color="#0000ff" size="2">false</font><font size="2">);</font></div><font size="2"> </font><div><font size="2">}</font></div><font color="#0000ff" size="2"> </font><div><font color="#0000ff" size="2">#pragma</font><font size="2"> </font><font color="#0000ff" size="2">endregion</font></div><font size="2"> </font><div><font color="#0000ff" size="2">private</font><font size="2">: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {</font></div><font size="2"> </font><div><font size="2">itkclass::iterator();</font></div><font size="2"> </font><div><font size="2">}</font></div><font size="2"> </font><div><font size="2">};</font></div><font size="2"> </font><div><font size="2">}</font></div> <div><br><br><b><i>Mike Feur
<mikefeur_02@yahoo.com></i></b> wrote:</div> <blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); padding-left: 5px; margin-left: 5px;">Hi Tom,<br><br>Thanks for the reply. My plan is to write simple reference classes to wrap the unmanaged (itk) code. This should work just fine for incorporating unmanaged C++ code. For instance:<br><br>//****Managed wrapper class*****<br>public ref class MikeWrapper<br> {<br> public:<br> MikeWrapper(Int32 initial);<br> void PrintValue();<br> private:<br> MikeClass<int> *pMike;<br> <br>//**Unmanaged C++ class****<br>template<typename T> <br> class MikeClass<br> {<br> public:<br> MikeClass(T value)
{<br> myvec.push_back(value);<br> }<br> void PrintValue(){<br> std::cout<< myvec[0] << std::endl;<br> }<br><br> private:<br> std::vector<T> myvec;<br> };<br><br>//********************<br><br> At this point, the GUI can be written in a CLR language ( (C++/CLI, C#) and just access the wrapper class.<br><br>My tripping point is the compiler settings. The header for the unmanaged class calls itkImage.h and thus needs to have the correct ITK compiler settings, include directories and libraries. I can't use CMake unfortunately because it only sets up normal unmanaged C++ projects. John Biddiscombe posted some tips back in 2004 on how to do this in this
list, but I can't seem to make it work.<br><br>Thanks for reading again.<br><br><br><br><br><b><i>Thomas Lambertz <thomas@hexerei-software.de></i></b> wrote: <blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); padding-left: 5px; margin-left: 5px;">Hello Mike,<br><br>the difference between C++/CLI and conventional unmanaged C++ is much <br>more than only a compilerstep. For example there are no raw-pointer in <br>CLI and there are many other types that have changed. So it doesnt work <br>to set up a project for CLI by only changing some parameters in CMake. <br>From my point of view there´s no way to compile ITK as CLI without <br>rewriting nearly the complete code (but i am prepared to learn). <br>Resulting performance may be another contraindication.<br><br>Have you considered a mixedmode application ? I have approached it that <br>way. My GUI runs as a CLI-app while access to ITK is encapsulated in an <br>unmanaged DLL (you have to spent
some attention on memory-management). <br>Needs some work on a wrapper but the benefits of the new gui-handling <br>may pay of for you.<br><br>Statically linking the (conventional) ITK library against a mixedmode <br>application by using "#pragma (un)managed" and some marshalling may also <br>work.I am sure there are more suitable solutions...<br><br>Regards,<br>Tom<br><br><br>Mike Feur wrote:<br>> Hello,<br>><br>> I am trying to create a Common Language Runtime C++/CLI project that<br>> includes ITK code in Visual Studio 2005.<br>><br>> There is no Cmake file for me to use. I have tried manually copying<br>> over all the include directories from a Cmake created ITK project. I<br>> am getting linker errors such as<br>><br>> "error LNK2001: unresolved external symbol "public: virtual void<br>> __thiscall itk::EventObject::Print(class std::basic_ostream< ....."<br>><br>> I tried including the appropriate lib files by adding
the<br>> "...\InsightBin\bin\debug" directory to the "Configuration<br>> Properties\Linker\General\Additional Library Directories" dialog box<br>> in the Property Pages for the Solution, but still no luck.<br>><br>><br>> Any suggestions or instructions of how to integrate ITK into a CLR<br>> solution?<br>><br>> Best of all would be a Cmake file to use, similar to the one<br>> available for MFC.<br>><br>><br>> Thanks for taking the time to read this.<br>><br>t<br>_______________________________________________<br>Insight-users mailing list<br>Insight-users@itk.org<br>http://www.itk.org/mailman/listinfo/insight-users<br></blockquote><br> <div> <hr size="1"> Yahoo! Messenger with Voice. <a href="http://us.rd.yahoo.com/mail_us/taglines/postman1/*http://us.rd.yahoo.com/evt=39663/*http://voice.yahoo.com">Make PC-to-Phone Calls</a> to the US (and 30+ countries) for 2¢/min or
less._______________________________________________<br>Insight-users mailing list<br>Insight-users@itk.org<br>http://www.itk.org/mailman/listinfo/insight-users<br></div></blockquote><br><div> </div><hr size="1">New Yahoo! Messenger with Voice. <a href="http://us.rd.yahoo.com/mail_us/taglines/postman5/*http://us.rd.yahoo.com/evt=39666/*http://beta.messenger.yahoo.com">Call regular phones from your PC</a> and save big.</blockquote><br><p>__________________________________________________<br>Do You Yahoo!?<br>Tired of spam? Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com