<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Contacts Forum Rss Feed</title><link>http://www.codeplex.com/Project/ListForums.aspx?ProjectName=Contacts</link><description>Contacts Forum Rss Description</description><item><title>New Post: Why set up this projects????</title><link>http://contacts.codeplex.com/Thread/View.aspx?ThreadId=52877</link><description>&lt;div style="line-height: normal;"&gt;yeah, but my requirement is so easy and your project is also so easy to use that I choose to use your project to implement my project. I'll pay more attention to your project. Thx&lt;/div&gt;</description><author>chinese_zmm</author><pubDate>Mon, 13 Apr 2009 06:59:50 GMT</pubDate><guid isPermaLink="false">New Post: Why set up this projects???? 20090413065950A</guid></item><item><title>New Post: Why set up this projects????</title><link>http://contacts.codeplex.com/Thread/View.aspx?ThreadId=52877</link><description>&lt;div style="line-height: normal;"&gt;Glad that worked.&lt;br&gt;
You might find this wiki page useful: &lt;a href="http://contacts.codeplex.com/Wiki/View.aspx?title=Gotchas"&gt;http://contacts.codeplex.com/Wiki/View.aspx?title=Gotchas&lt;/a&gt;&lt;br&gt;
It's random strange things I found where the native APIs may not behave as you would expect.
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Sat, 11 Apr 2009 20:36:34 GMT</pubDate><guid isPermaLink="false">New Post: Why set up this projects???? 20090411083634P</guid></item><item><title>New Post: Why set up this projects????</title><link>http://contacts.codeplex.com/Thread/View.aspx?ThreadId=52877</link><description>&lt;div style="line-height: normal;"&gt;Thx! JoeCastro, The failure is definitely not setting the Thread's affinity. Now it's working well in csharp, Thx again!&lt;/div&gt;</description><author>chinese_zmm</author><pubDate>Sat, 11 Apr 2009 10:33:55 GMT</pubDate><guid isPermaLink="false">New Post: Why set up this projects???? 20090411103355A</guid></item><item><title>New Post: Why set up this projects????</title><link>http://contacts.codeplex.com/Thread/View.aspx?ThreadId=52877</link><description>&lt;div style="line-height: normal;"&gt;I started the project because the way the methods in the IDL are structured make it very difficult to consume the APIs from managed code without a wrapper layer.  I ended up basically doing a rewrite because there are bugs in the native implementation that I was unable to get fixed, and by doing it all in C# I was able to make a version that works on XP.&lt;br&gt;
&lt;br&gt;
I haven't recently tried importing the IDL to a TLB/DLL.  Maybe you're creating the object on an MTA thread?  The native APIs require STA and all the objects have thread affinity.
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Fri, 10 Apr 2009 15:33:38 GMT</pubDate><guid isPermaLink="false">New Post: Why set up this projects???? 20090410033338P</guid></item><item><title>New Post: Why set up this projects????</title><link>http://contacts.codeplex.com/Thread/View.aspx?ThreadId=52877</link><description>&lt;div style="line-height: normal;"&gt;I use vista sdk's icontract.idl, and convert it icontract.dll, but it doesn't work. I get the error that the ContactManagerClass doesn't support the IContactManager interface, is the icontract.idl doesn't be supported in csharp? &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Is that the reason to create this project?&lt;/div&gt;&lt;/div&gt;</description><author>chinese_zmm</author><pubDate>Fri, 10 Apr 2009 08:47:16 GMT</pubDate><guid isPermaLink="false">New Post: Why set up this projects???? 20090410084716A</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
Thanks for the ContactsBridge.&lt;br /&gt;I switched my plugin implementation from Contacts.dll to ContactsBridge.dll without a problem. Everything works fine (and fast) so far.&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Sun, 19 Aug 2007 13:20:56 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070819012056P</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
I just released the ContactsBridge project.  Basically I just pasted back in parts of an older implementation of ContactManager and removed some of the stuff that the native version doesn't support (ContactTypes, alternate ContactManager roots, and alternate contact file extensions).  Unfortunately it's also very much untested because my existing tests rely a lot on that functionality and I haven't gone through and forked them to work with this.  If you get a chance can you try it and see if it works for you?  I'll support fixing bugs in it but primarily I want to focus on the primary version of the library unless there's a real need to invest in this one.&lt;br /&gt; &lt;br /&gt;namespaces were changed to Microsoft.ContactsBridge.  Other than that it's basically just a fork of the current .8 library so less the removed functionality everything should behave and be named the same.&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Sat, 21 Jul 2007 23:33:00 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070721113300P</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
Thanks for voting :)&lt;br /&gt; &lt;br /&gt;There are some other bugs in the underlying platform I'm working around.  I think I'll backburner the current work and undo the bug hiding and polish the interfaces.  I can release a minimal ContactsBridge (a la Jeff Chrisope's VistaBridge) library that thinly wraps the native IContact APIs but doesn't expose additional functionality like groups, and then continue working on a completely managed implementation.  I'll doc the known issues.  For some projects, like yours, the bridge implementation might be more appropriate.  Especially in the short term.&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Mon, 09 Jul 2007 19:21:02 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070709072102P</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
With the current version the synchronisation time in my application can be really long.&lt;br /&gt; &lt;br /&gt;The bug you mentioned doesn't affect my application at all. I'm opening the contact, doing some changes and write the changes back to system. So i'm not affected by the bug directly. &lt;br /&gt; &lt;br /&gt;The solution number 2 would be the better way for the future because it will be NOT affected by the things the microsoft library does. The solution 1 would be better because bugs fixed in the microsoft library are automaticly fixed without any work for you. I can go with both of your proposed solutions.&lt;br /&gt; &lt;br /&gt;My project isn't time critical at all, so i can wait for the next realese of your library. If you are going for the solution 2 in the next release anyway i'm fine, otherwise it yould be nice to have the option of solution 1 until the soultion 2 is done.&lt;br /&gt; &lt;br /&gt;Marsupi&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Mon, 09 Jul 2007 12:44:08 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070709124408P</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="quote"&gt;
 &lt;br /&gt;Marsupi wrote:&lt;br /&gt;I adapted my functions to the changed API (Load to GetContact). I seams to work, but it is remarkable slower than with the previous version. Why is that? What can i do to get the performance from 0.1 Version back.&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;Sorry for the belated response, for some reason I didn't see this thread.&lt;br /&gt;The reason it's slower is because I stopped using the native IContactManager.  There's a bug in Windows where if you load an IContact from the manager and keep it in memory for more than 4 minutes then attempting to save changes to the contact causes an access violation in WAB32.  I was hitting it all the time in my address book UI.  It's a known issue to Microsoft, but there haven't been any external complaints about it (it's a new library, not many people trying to use it yet) so it hasn't gotten enough traction to put the fix through Windows Update.*  I was able to work around it by reimplementing the funtionality in C#, but one thing the contact manager did that I haven't been able to copy is it compiles and caches the schema, whereas when I CoCreateInstance the IContacts the compilation happens every time :(&lt;br /&gt; &lt;br /&gt;So those are the technical reasons.&lt;br /&gt; &lt;br /&gt;If this is impacting you I can offer a short term workaround or a longer term solution that I think is better.&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;I can provide a temporary UnsafeContactManager that behaves the same as .1.  Contacts that come from it will have the 4 minute timeout issue, but depending on how you're using them you may not see it.  When I'm able to implement the longer term solution it would be removed.  The functionality you'd lose with this &amp;quot;Unsafe&amp;quot; ContactManager (because it will have the same limitations as the native IContactManager) are 1. the ability to root the Manager in folders other than the user's Contacts folder, and 2. group functionality, as the native IContactManager is limited to loading .contact files.&lt;/li&gt;&lt;li&gt;The better option I think is to implement Contact in C# and then I can compile and cache the XSD.  If I completely remove the dependency on Vista's Wab32 then this library can be available on XP.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Option 2 is what I've been working on. I can give you 1 if the current behavior is unbearable.  Unfortunately I don't have a good estimate how long 2 will take.&lt;br /&gt; &lt;br /&gt;Let me know what works best for you.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;There are actually a couple other bugs I know of that are impacting this project and internally I've been pushing to get fixed.  I can post them as issues in this project if people are willing to vote them up.  It would help to be able to quantify the customer impact of these bugs when trying to justify whether they should be fixed as a Windows patch.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Sat, 07 Jul 2007 05:28:10 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070707052810A</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
I adapted my functions to the changed API (Load to GetContact). I seams to work, but it is remarkable slower than with the previous version. Why is that? What can i do to get the performance from 0.1 Version back.&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Sat, 23 Jun 2007 04:25:05 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070623042505A</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
Oops.  Renamed Load to GetContact.&lt;br /&gt;There might have been a couple other changes to appease FxCop but I wasn't thoroughly documenting breaking changes for .8.  I'll start a wiki page with breaking changes or functionality additions and just rev it as I check in.&lt;br /&gt; &lt;br /&gt;Sorry about that.  Please let me know if you run into any more issues.&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Mon, 18 Jun 2007 15:37:22 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070618033722P</guid></item><item><title>NEW POST: API Changes from version .1 to .8 release</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=11408</link><description>&lt;div class="wikidoc"&gt;
Hi&lt;br /&gt; &lt;br /&gt;I just found your new release of your library. Sounds like a great effort.&lt;br /&gt; &lt;br /&gt;When i repalce the Contacts.dll in my project i get errors because the methode &amp;quot;Load&amp;quot; of the class &amp;quot;ContactManager&amp;quot;. What is the replacement for this methode? Are there other API changes?&lt;br /&gt; &lt;br /&gt;Regards, Marsupi&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Thu, 14 Jun 2007 18:23:09 GMT</pubDate><guid isPermaLink="false">NEW POST: API Changes from version .1 to .8 release 20070614062309P</guid></item><item><title>NEW POST: Some Questions:  Is this Vista only?  Any Outlook integration?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=10857</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="quote"&gt;
 &lt;br /&gt;bobchauvin wrote:&lt;br /&gt;Is this Vista only?  &lt;br /&gt;Any Outlook compatability?&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;Yes, right now this is Vista only.  The format is just XML so there's nothing fundamental that makes this incompatible with XP or 2K3, but this is really just a wrapper on top of COM APIs introduced in Vista.  Longer term it might be a goal to make this work downlevel.  The WAB APIs are useable on both XP and Vista, and on Vista work with the user's Contacts folder similar to this library.&lt;br /&gt; &lt;br /&gt;No Outlook integration yet, not directly.  The library supports serialization to and from vCard2.1 which Outlook understands, so if you can programmatically send them to Outlook using some API that should work.  I intended to expose this so anyone can write an adapter to convert to and from their other address book of choice.  Is there anything in particular you're trying to accomplish?  There was a previous thread that suggested someone might be writing an Outlook adapter using this library...&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Thu, 31 May 2007 22:31:52 GMT</pubDate><guid isPermaLink="false">NEW POST: Some Questions:  Is this Vista only?  Any Outlook integration? 20070531103152P</guid></item><item><title>NEW POST: Some Questions:  Is this Vista only?  Any Outlook integration?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=10857</link><description>&lt;div class="wikidoc"&gt;
Is this Vista only?  &lt;br /&gt;Any Outlook compatability?&lt;br /&gt;
&lt;/div&gt;</description><author>bobchauvin</author><pubDate>Thu, 31 May 2007 15:21:32 GMT</pubDate><guid isPermaLink="false">NEW POST: Some Questions:  Is this Vista only?  Any Outlook integration? 20070531032132P</guid></item><item><title>NEW POST: How to get the last modification of a contact?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=9174</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="quote"&gt;
 &lt;br /&gt;Marsupi wrote:&lt;br /&gt; &lt;br /&gt;Post2) The wrong date can be seen in the standard contact viewer.&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;I didn't realize DateTimeKind existed.  I use DateTime.ToFileTime before writing to the XML and it's assuming that if the kind was unspecified that it's local rather than UTC.  I should probably flip that assumption in this API, but I should also be explicit and careful when reading back the properties.  I'll open a bug about it.&lt;br /&gt; &lt;br /&gt;Thanks for reporting it!&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Fri, 18 May 2007 01:11:37 GMT</pubDate><guid isPermaLink="false">NEW POST: How to get the last modification of a contact? 20070518011137A</guid></item><item><title>NEW POST: How to get the last modification of a contact?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=9174</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="quote"&gt;
 &lt;br /&gt;Marsupi wrote:&lt;br /&gt;Post1 1) Yout guess was a 100Point shot. If i call the MessagePump manually the trigger works. I use the Contacts.NET dll from a STA thread which noramlly executes &amp;quot;Wait&amp;quot; and waits for trigger events. I thought &amp;quot;Wait&amp;quot; does some MeassagePump?&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;Not sure which Wait you're using or what native call it's wrapping.  In the native world CoWaitForMultipleHandles behaves differently if you're in MTA or STA.  When in STA it pumps at a really low priority.  I've seen many many messages get queued up when the expectation was that it would handle them in the background.  It may be reasonable to call DoEvents to clear the pump whenever your thread gets triggered, or add a timer to your trigger.&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Sat, 12 May 2007 23:33:34 GMT</pubDate><guid isPermaLink="false">NEW POST: How to get the last modification of a contact? 20070512113334P</guid></item><item><title>NEW POST: How to get the last modification of a contact?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=9174</link><description>&lt;div class="wikidoc"&gt;
Very fast respond, thanks.&lt;br /&gt; &lt;br /&gt;Post1 1) Yout guess was a 100Point shot. If i call the MessagePump manually the trigger works. I use the Contacts.NET dll from a STA thread which noramlly executes &amp;quot;Wait&amp;quot; and waits for trigger events. I thought &amp;quot;Wait&amp;quot; does some MeassagePump?&lt;br /&gt; &lt;br /&gt;Post1 2) I'l use the ContactIds.Default. It works quite good with it. Thank you for the hint with the /GUID notation. This make life much easier for me.&lt;br /&gt; &lt;br /&gt;Post2) The wrong date can be seen in the standard contact viewer.&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Sat, 12 May 2007 22:49:33 GMT</pubDate><guid isPermaLink="false">NEW POST: How to get the last modification of a contact? 20070512104933P</guid></item><item><title>NEW POST: How to get the last modification of a contact?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=9174</link><description>&lt;div class="wikidoc"&gt;
Thanks for the feedback.  Glad to hear that this is working for you :)  I'll try to address your points.&lt;br /&gt; &lt;br /&gt;post1 1) If the contact files under the ContactManager's root folder are changing then it should be working.  The one thing I can think of that might make a difference is maybe messages aren't being pumped?  Can you try calling System.Windows.Forms.Application.DoEvents() and see if the notifications get raised?&lt;br /&gt; &lt;br /&gt;post1 2) The Id property has to stay unique for any contact in the address book.  As you've noticed, it's a runtime Id that's composed basically of &amp;quot;/GUID:\&amp;quot;&amp;lt;contact.ContactIds.Default&amp;gt;\&amp;quot; /PATH:\&amp;quot;&amp;lt;contact.Path&amp;gt;\&amp;quot;&amp;quot;.  Since the ContactId collection is stored in the contact, this id needs to be resilient against users copy-pasting the contact files (e.g. using a contact as a template).  There are heuristics the ContactManager has for finding the contact if the ID doesn't match exactly.  This allows clients to merge contacts, and so long as the ContactIdCollection is also merged then references to the old contact will resolve to the new one.&lt;br /&gt;    So that's the background.  I think for your case using ContactIds.Default is probably the right thing (and it's always guaranteed to be present), but you'll need to be aware that the user might have duplicated the contact or another program may have merged it with something else so the Id you're expecting is no longer &amp;quot;Default&amp;quot;.  Something that might help if you run into it, you can turn the guid into the above string format (&amp;quot;/PATH&amp;quot; part isn't required) and ContactId will find the contact for you if it still exists.&lt;br /&gt; &lt;br /&gt;post1 3) The preview pane for Contacts in the Shell should respect labels on e-mail addresses.  Part of the hope of this project is that someone will write a better (fuller fidelity) UI than Windows Contacts and register it as the handler for the .Contacts; the store is a lot more flexible than the UI.  It doesn't really help for Outlook sync, but anything that's multi-valued you can label on the Windows Contacts side.&lt;br /&gt; &lt;br /&gt;post2) Sounds like a bug.  I'll look into it and get back to you.  The contact view you're seeing it in is Windows Contacts, yea?&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;-Joe&lt;br /&gt;
&lt;/div&gt;</description><author>JoeCastro</author><pubDate>Sat, 12 May 2007 17:09:38 GMT</pubDate><guid isPermaLink="false">NEW POST: How to get the last modification of a contact? 20070512050938P</guid></item><item><title>NEW POST: How to get the last modification of a contact?</title><link>http://www.codeplex.com/Contacts/Thread/View.aspx?ThreadId=9174</link><description>&lt;div class="wikidoc"&gt;
Hi again,&lt;br /&gt; &lt;br /&gt;While doing some more tests another thing came up. When i set a Birthday (i guess Anniversary as well) with a DateTime (e.g. 25.07.1972 00:00:00) the date showed in the contact view wil be the 24.07.1972. I assume that ther is some Time Calculation (TimeZones???) going on. If i fake in a Timeshift of 2hous (which is exctliy my current shift to UTC) it eams to work. Can you check this for me? I thought that the time component of DateTime should be ignored in this case because it's a Date (without any time component).&lt;br /&gt; &lt;br /&gt;Cheers, Marsupi&lt;br /&gt;
&lt;/div&gt;</description><author>Marsupi</author><pubDate>Sat, 12 May 2007 14:50:17 GMT</pubDate><guid isPermaLink="false">NEW POST: How to get the last modification of a contact? 20070512025017P</guid></item></channel></rss>