title: Importing Outlook contacts into a SharePoint application page
body: <h1>Background</h1>
  <p>I've written a feature to make it easier for users to e-mail a document, <a href="https://stackoverflow.com/questions/1139873/can-i-easily-add-a-send-to-friend-or-email-this-feature-to-a-sharepoint-list">like this SO question</a>. I've implemented the solution according to <a href="https://stackoverflow.com/questions/1139873/can-i-easily-add-a-send-to-friend-or-email-this-feature-to-a-sharepoint-list/1142301#1142301">this answer</a>.</p>
  <p>The feature's custom action adds a <strong>Send As Attachment</strong> option to the ECB menu of a document library:</p>
  <p><a href="http://alexangas.com/blog/wp-content/uploads/2009/07/senddocmenu.png" rel="nofollow noreferrer">ECB menu http://alexangas.com/blog/wp-content/uploads/2009/07/senddocmenu.png</a></p>
  <p>When a user chooses Send As Attachment, they are redirected to this <strong>Send Document</strong> application page:</p>
  <p><a href="http://alexangas.com/blog/wp-content/uploads/2009/07/senddocform.png" rel="nofollow noreferrer">Application page http://alexangas.com/blog/wp-content/uploads/2009/07/senddocform.png</a></p>
  <h1>Requirement</h1>
  <p>Add an icon to the right of the 'To' and 'CC' fields. When this is clicked, it needs to open the user's Outlook <strong>Global Address List</strong>:</p>
  <p><a href="http://alexangas.com/blog/wp-content/uploads/2009/07/senddocgal.png" rel="nofollow noreferrer">Global Address List http://alexangas.com/blog/wp-content/uploads/2009/07/senddocgal.png</a></p>
  <p>Once the user has chosen their recipients and clicked <strong>OK</strong>, the form should be populated with their choices. The form can then be submitted by clicking <strong>Send</strong>.</p>
  <h1>What I've Tried</h1>
  <h3>SpreadsheetLauncher Control</h3>
  <p>The best way of doing this seems to be <a href="http://blogs.msdn.com/jamescon/archive/2004/06/06/149709.aspx" rel="nofollow noreferrer">James Conard</a>'s solution of using the SpreadsheetLauncher Control from SharePoint's client-side API. Unfortuantely his code is no longer available for download (dead server) although I have tried e-mailing him. On the plus side, there is a reasonable example <a href="http://msdn.microsoft.com/en-us/library/ms479424.aspx" rel="nofollow noreferrer">in the SDK here</a>.</p>
  <p>Using the SDK example I have been able to make the GAL dialog display. However once OK is clicked, Internet Explorer hangs for up to 30 seconds with the screen partially redrawn. When it returns, nothing has changed on the page and the DOM hasn't been updated with the dialog's selections.</p>
  <p>I also have the problem of the given example being contained within an HTML form tag. Being an ASP.NET page, there is already a form tag on the page. I've tried using jQuery's AJAX functionality (which I've never tried before) to get around this and nothing seems to happen. I don't know how to pass through the form parameters correctly.</p>
  <h1>Ideas?</h1>
  <p>Has anyone else tried doing something like this solution and had success that they can share? Are there any other ideas on how this could be approached? (Note: purchasing a product isn't an option.)</p>
  <p>Thanks in advance.</p>
  <p><strong>Update:</strong> The people picker control isn't an option because some users do not exist in MOSS' Active Directory import. Hence the need for displaying the Outlook GAL.</p>
  <p><strong>Update 2:</strong> I've ruled out the SpreadsheetLauncher control entirely. It doesn't appear to work correctly in MOSS 2007 at all and is only referenced by one out-of-the-box file but not used by it. The other disadvantage is its requirement on ActiveX which isn't a big deal inside the company but something I would prefer to avoid. I'll probably go with Sam's suggestion.</p>