Le Café Central de
Deva             


                 ... Deva blogs!!



  • Le Café Central de DeVa

    Debug : Workaround - Remote debugging monitor (msvsmon.exe) error on Windows 7

    • 0 Comments

    I was playing around debugging a custom app in one of my Windows 7 & Visual Studio 2010. When I tried running msvsmon.exe (Remote Debugging Monitor) and got the following error message when attempting to remote debug:

    Error while trying to run project: Unable to start debugging.

    This operation returned because the timeout period expired.

    During further investigation, I found that the issue is that the firewall is not setup properly on the Win7 machine for remote debugging. I noticed that when msvsmon first launches, it will prompt the user to configure the firewall.

    Per the debugger blogpost, this happens due to the firewall security API changes since Vista, the prompt may not come up. I tried the following workaround to move ahead:

    Control Panel->System and Security->Windows Firewall: Change notification settings -> enable Notify me when Windows Firewall blocks a new program ->Ok

    After implementing the above, I started remote debugging again and this time I can notice that msvsmon shows popup a windows security alert dialog box that prompt to grant access permission to msvsmon.

    Happy debugging!!

  • Le Café Central de DeVa

    Update: Windows Phone SDK 7.1.1 available for download

    • 0 Comments

    The Windows Phone SDK 7.1.1 Update is now available for your download.

    It enables Windows Phone developers to do two things:

    • Develop apps that work well on the new 256 MB devices
    • Use the WPSDK 7.1 to develop on machines running Windows 8

    The 7.1.1 Update is really just that – it’s an update to the existing WPSDK: it doesn’t add much in the way of new features to your WPSDK installation; it updates your existing install to do a few new tricks:

    • The Visual Studio IDE is patched to enable selection from a list of emulators, and launching it (note that the WPSDK can only support connecting to one at a time, though)
    • The Windows Phone [512 MB device] emulator image is updated to use build 8773
    • A second, new emulator device image is included, allowing you to emulate running your app on a 256 MB device
    • The Microsoft Advertising SDK is updated to the latest version (previously only available as a separate install)
    • IntelliSense now supports specifying the 512 MB device requirement in your manifest file, should you choose to opt your app out from running on the new 256 MB devices
    • Language support is again consistent both in the IDE (the 7.1.1 Update supports all 10 of the WPSDK 7.1 languages) and in the emulator OS (Malay and Indonesian been added)
  • Le Café Central de DeVa

    Developer Webcasts on Exchange Server 2010 programming

    • 0 Comments

    Please find the developer webcasts for Exchange Server 2010. If you're planning to create your own custom application using Exchange Server 2010, i would recommend you to start from this.


    I will try to add related info on the above shortly. Happy Coding!!
  • Le Café Central de DeVa

    Availability Web Service Protocol Specification References

    • 0 Comments

    Information for the availability service is provided via our open specifications document: [MS-OXWAVLS].
    Information for the security model used in the availability service, please reference the following document: [MS-OXCPERM].

    For more info, you can refer:

    Availability Web Services Protocol specification: http://msdn.microsoft.com/en-us/library/cc463891(v=exchg.80).aspx or http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/[MS-OXWAVLS].pdf or http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/Exchange_Protocols.zip.

  • Le Café Central de DeVa

    EWS : How to access user’s free/busy info programmatically using Exchange Web Services (EWS)?

    • 0 Comments

    In this post, we will see how to access user free/busy information programmatically using Exchange Web Services (EWS) – Proxy. Exchange provides such a service by storing what is referred to as free/busy data. This information will indicate what requested time range is free, busy, and tentative for a particular user. It will also provide any out of office (oof) status as well. Free/Busy data can be obtained using the Availability service provided by the Exchange Server. This is simply a web service which obtains the free/busy data directly from a user’s calendar.

    Specifically, the GetUserAvailability operation will provide the free/busy state at specific level of detail.Using GetUserAvailability operation, which provides current user availability information at a specified level of detail - about the availability of a set of users, rooms, and resources within a specified time period. Client applications such as Microsoft Office Outlook, Microsoft Outlook Web Access, Microsoft Outlook Mobile Access, and other applications use SMTP addresses to identify the requested user information.

    Let start now by creating the binding, set the credentials/URL and pass the binding (esb) to the following functionality ( which I haven’t added here).


    Identify the time to compare free/busy information:

    Duration duration = new Duration();

    duration.StartTime = DateTime.Now;

    duration.EndTime = DateTime.Now.AddHours(4);


    Identify the options for comparing free/busy information:

    FreeBusyViewOptionsType fbViews = new FreeBusyViewOptionsType();

    fbViews.TimeWindow = duration;

    fbViews.RequestedView = FreeBusyViewType.MergedOnly;

    fbViews.RequestedViewSpecified = true;

    fbViews.MergedFreeBusyIntervalInMinutes = 35;

    fbViews.MergedFreeBusyIntervalInMinutesSpecified = true;


    Identify the user mailbox to review for free/busy data:
    MailboxData[] mbx=
    newMailboxData[1];

    mbx[0] = new MailboxData();

    EmailAddress emailAddress = new EmailAddress();

    emailAddress.Address = "user1@domain.com";

    emailAddress.Name = String.Empty;

    mbx[0].Email = emailAddress;

    mbx[0].ExcludeConflicts = false;

    Make the request and set the time zone of the request:
    getusrRequest.TimeZone = newSerializableTimeZone();

    getusrRequest.TimeZone.Bias = 480;

    getusrRequest.TimeZone.StandardTime = newSerializableTimeZoneTime();

    getusrRequest.TimeZone.StandardTime.Bias = 0;

    getusrRequest.TimeZone.StandardTime.DayOfWeek = DayOfWeekType.Sunday.ToString();

    getusrRequest.TimeZone.StandardTime.DayOrder = 1;

    getusrRequest.TimeZone.StandardTime.Month = 11;

    getusrRequest.TimeZone.StandardTime.Time = "02:00:00";

    getusrRequest.TimeZone.DaylightTime = new SerializableTimeZoneTime();

    getusrRequest.TimeZone.DaylightTime.Bias = -60;

    getusrRequest.TimeZone.DaylightTime.DayOfWeek = DayOfWeekType.Sunday.ToString();

    getusrRequest.TimeZone.DaylightTime.DayOrder = 2;

    getusrRequest.TimeZone.DaylightTime.Month = 3;

    getusrRequest.TimeZone.DaylightTime.Time = "02:00:00";


    In addition to that, add the mailbox and the view options to the request
    getusrRequest.MailboxDataArray = mbx;

    getusrRequest.FreeBusyViewOptions = fbViews;


    Send the above request and get the response:
    GetUserAvailabilityResponseType getusrResponse = esb.GetUserAvailability(getusrRequest);


    Access the free/busy info:

    if(getusrResponse.FreeBusyResponseArray.Length < 1)

    {

    Console.WriteLine("No free/busy response data available.");

    }

    else

    {

    foreach(FreeBusyResponseType fbrt in getusrResponse.FreeBusyResponseArray)

    {

    if(fbrt.ResponseMessage.ResponseClass == ResponseClassType.Error)

    {

    Console.WriteLine("Error:" + fbrt.ResponseMessage.MessageText);

    }

    else

    {

    FreeBusyView fbv = fbrt.FreeBusyView;

    Console.WriteLine("Merged free/busy data: " + fbv.MergedFreeBusy);

    }

    }

    }


    If you run the above piece of code, then you will get the result:

    clip_image001[17]

    For more information, you can refer the following article: http://msdn.microsoft.com/en-us/library/aa564001(v=exchg.140).aspx

    Happy programming!!

  • Le Café Central de DeVa

    Migration: Exchange Public folders and its future

    • 0 Comments

    Public Folders are used in earlier versions of Microsoft Exchange Server to store free/busy data and files. From Microsoft Exchange Server 2007, free/busy data is no longer stored in public folders. It’s recommend that you do not store files in public folders in Exchange 2007. Instead, consider using Microsoft Office SharePoint, or Windows SharePoint Services. Public folders are included and supported in Exchange 2007 and 2010. However, future releases of Microsoft Exchange might not include public folders. You can visit http://blogs.technet.com/b/exchange/archive/2006/02/20/419994.aspx. Also, you can refer MS Exchange team blog have posted the updated public folder guidance for versions of Exchange past Exchange 2007.

    So, what are my options?

    If you're building something new, you should look at the requirements and building on the SharePoint Technologies platform:

    + Starting with Exchange 2007, we recommend that applications use the Availability service to provide free/busy data for Exchange mailbox users. Windows SharePoint Services replaces the file sharing functionality that public folders provide. You must redesign applications that use public folders to use Exchange Web Services.
    + Also consider redesigning custom applications as early as possible as future versions of Microsoft Exchange may not contain public folders.
    + In addition to that you can refer the wonderful blogpost by Joel.

  • Le Café Central de DeVa

    GoingNative 2012: Wonderful sessions on C++11

    • 0 Comments

    Are you a C++ developer? Then, its for you. Recently I was watching Channel9, “GoingNative 2012” - wonderful sessions on C++. Please find the related links for your reference:

    Happy programming!!

  • Le Café Central de DeVa

    Differences: Outlook Object Model vs Pocket Outlook Object Model

    • 0 Comments

    Recently one of my developer customer (developer of PC and mobile based applications) was asking is there any difference available between Outlook Object Model (OOM) API and Pocket Outlook Object Model (POOM) API? If yes, where it's documented? As you know, the Pocket Outlook Object Model (POOM) API is a COM-based library that provides programmatic access to Personal Information Manager (PIM) data on mobile devices. It provides functionality for manipulating PIM-item collections and folders.

    I pointed him to have a look at the MSDN document, which points at the principal differences between the Pocket Outlook Object Model and the Outlook object model.

  • Le Café Central de DeVa

    Windows Phone 7’s latest update: 7.10.8107.79

    • 0 Comments

    I got the latest Windows Phone update: 7.10.8107.79

    image

    It fixes the following:

    • On-screen keyboard. Fixes an issue to prevent the keyboard from disappearing during typing.
    • Email. Fixes a Google mail syncing issue.
    • Location. Fixes a location access issue. With this fix, the Me feature in the People Hub sends anonymous information about nearby Wi-Fi access points and cell towers to Microsoft only if you agree to allow the Check In function to access and use location information.
    • Security. Revokes digital certificates from DigiCert Sdn Bhd to address an encryption issue.
    • Email threads. Fixes an email issue related to Microsoft Exchange Server 2003. With this fix, when you reply to or forward a message, the original message is now included in your response.
    • Voicemail. Fixes a voicemail notification display issue that occurs on some European and Asian networks under certain conditions

    To learn how to install updates, check if there's an update available for you to download, and determine which version of Windows Phone you have now, see Phone updates FAQ.

  • Le Café Central de DeVa

    Here it comes…Kinect for Windows SDK

    • 0 Comments

    Here it comes… Kinect for Windows. You can use the power of Kinect to change the world. Kinect has changed the way people play games and experience entertainment. Now, Kinect for Windows offers the potential to transform how people interact with computers and Windows-embedded devices in multiple industries, including education, healthcare, retail, transportation, and beyond. The release of the Kinect for Windows sensor and software development kit (SDK) for commercial applications opens up the limitless possibilities offered by Kinect technology. Together, the hardware and software offer a superior development platform for Windows and a higher quality, better performing experience for end users



    Are you a developer and want to thrive to Develop what's next, then your journey starts here… The Kinect for Windows sensor and SDK give you the tools you need to develop innovative applications that harness speech and human tracking. Now, the power is in your hands to enable people to interact with technology in completely new and exciting ways. You can download the Kinect SDK @ Download SDK

    Getting Started: Use these programming guides to help you get started with the Kinect for Windows system.

    Got developer queries: Your development questions answered before you even asked them. Note: for all other questions, reference the General FAQ.

    In addition to that, if you want to see what can be done, then you can have a look at the gallery. Also you can view the following video clip:

    The Kinect Effect


    Community related info:

    The Blog clip_image001 Get our latest updates and read stories about the amazing applications companies are creating with Kinect for Windows.

    Facebook clip_image001[1] Take part in our Facebook community, where we'll be sharing ongoing news and information.

    Twitter clip_image001[2] Follow us on Twitter and be part of the movement. #kinectforwindows

    Forums clip_image001[3] Share advice and provide feedback about Kinect for Windows in our technical forums

    Create a new world around you with Kinect and unleash its power!!

  • Le Café Central de DeVa

    Office 15 begins Technical Preview

    • 0 Comments

    Are you ready for “Office 15”? Hough, CVP of Office Division announced in his blog that they reached an important milestone: the beginning of “Office 15” Technical Preview program. It also points that the Technical Preview program is already full, but everyone will have the opportunity to try the Office 15 public beta later this summer.

  • Le Café Central de DeVa

    Download: Exchange Server 2010 SP2

    • 0 Comments
    Now you can download Exchange Server 2010 SP2 (remember Bharat Suneja’s blogpost). Microsoft Exchange Server 2010 SP2 helps you achieve new levels of reliability and performance by delivering features that help to simplify your administration, protect your communications, and delight your customers by meeting their demands for greater business mobility.

    It contains the new features and capabilities like, Outlook Web App (OWA) Mini, Cross-Site Silent Redirection for Outlook Web App, Hybrid Configuration Wizard, Address Book Policies(GAL segmentation), Mailbox auto mapping, customer requested fixes etc.

    Related info:
    + What’s new in Exchange Server 2010 SP2? http://technet.microsoft.com/en-us/library/hh529924.aspx
    + Download Exchange Server 2010 SP2: http://www.microsoft.com/download/en/details.aspx?id=28190
    + Release notes for Exchange Server 2010 SP2: http://technet.microsoft.com/en-us/library/hh529928.aspx
    + Issues that are fixed in Exchange Server 2010 SP2: http://technet.microsoft.com/en-us/library/hh672189.aspx
    + Older Channel 9 Video: What's New in Microsoft Exchange Server 2010 SP2: Featuring GAL Segmentation

  • Le Café Central de DeVa

    Next Generation Windows file system: ReFS

    • 2 Comments
    Have you heard about “ReFS”? ReFS stands for Resilient File System. It’s the next generation Windows file system being introduced in Windows Server 8, replaces NTFS. For more info, you can read Steve’s related blog post @ http://blogs.msdn.com/b/b8/archive/2012/01/16/building-the-next-generation-file-system-for-windows-refs.aspx
  • Le Café Central de DeVa

    COM+/MTS custom application : CreateObject or CreateInstance?

    • 0 Comments

    Recently i was working with a developer customer, who created an Visual Basic/COM+ based solution (internally uses the Microsoft Messaging library). In general, he wants to know whether they should use CreateObject or CreateInstance? Whether both will have the same or different same effect in COM+?

    In Microsoft Transaction Server (MTS), you must use ObjectContext.CreateInstance in your root object to create secondary objects for the transaction to flow. In COM+ this still works, but it is no longer necessary to do it. In COM+, CreateObject subsumes the functionality of ObjectContext.CreateInstance. The object created participates in the caller's activity. In COM+, you can use the standard CreateObject function in Microsoft Visual Basic to flow a transaction to secondary objects as appropriate. So, CreateObject and CreateInstance have the same effect in COM+.

  • Le Café Central de DeVa

    Click to connect MSDN/TechNet forums from your desktop

    • 0 Comments

    Using MSDN Forum Assistant and TechNet Forum Assistant gadgets offer a convenient way for the forum users to read the forum recent threads and your own threads, it also make it easy to create new threads and search in the forum.

    How is simple is that…. I tried the gadgets at my Windows 7 machine in 3 simple steps Smile

    1. Double-click the gadget installation package.

    image

    2. On the popup window, click “Install” to finish the installation.

    image   image

    3. The gadget usually will be automatically located on the desktop. If not, look it up from the Gadget Gallery and add it to the desktop

  • Le Café Central de DeVa

    Video: Role of a Software Architect in today’s world

    • 2 Comments

    Recently viewed this interview - Brian Prince, Principal Developer Evangelist at Microsoft, and Juval Lowy, Software Architect & Principal at IDesign as they discuss the role of an architect in today's world. Juval breaks down how the role of an architect has evolved over the years from applying engineering principles and practices to software systems to now also taking an active leadership role in the process and in technology. Today's architect does less of showing developers "how-to" but instead showing more what to do in specific scenarios.

    I like the following excerpts which I liked from the interview: “you can copy and paste the code but are you know whether this is right to do in your context”, “architect should constant likely at the technical aspect of the project”. This is a great interview to catch if you're headed down this career path!

    Click here to view the video:

  • Le Café Central de DeVa

    Outlook 2010: Migrating CDO based application to Outlook Object Model(OOM) library

    • 5 Comments

    Recently one of my developer customer migrated from Outlook 2003 to 2010. He tried running the custom application (uses CDO & Outlook 2003) in Outlook 2010. It throws the error “ActiveX component can’t create object”. 

    Using the following test sample, I can reproduce the exact issue at my end:

    image

    As you know, Microsoft Outlook 2010 includes many architectural changes to the client-side MAPI subsystem. Of particular concern are scenarios in which Outlook is configured to use multiple Exchange accounts. Also, CDO 1.2.1 is a 32-bit client library and will not operate with 64-bit Outlook 2010. Given all these factors, CDO 1.2.1 is not supported for use with Outlook 2010 and we don’t recommend its usage with Outlook 2010. As updated earlier, in Outlook 2010 you need to re-write/migrate the code base referencing CDO to Outlook Object Model or MAPI, messaging libraries which ever suits you.  So the programs/custom applications that use CDO should be re-designed to use other Application Programming Interfaces (APIs) instead of CDO.

    Starting with Outlook 2007, the Outlook object model was greatly expanded to provide functionality that was previously available only by using CDO 1.2.1. The Outlook 2010 object model includes some new features to expand on this more. For example, the Outlook 2010 object model has new functionality to operate correctly with multiple Exchange accounts. The Outlook object model also works for both 32-bit and 64-bit versions of Outlook. Developers should use the Outlook 2010 object model instead of CDO 1.2.1. Also, developers can still use Extended MAPI (which requires unmanaged C++) in some scenarios where CDO was required. However, if it is possible, we generally recommend that the Outlook object model be used instead of Extended MAPI.

    In this post, we will take the above code sample and will show how you can migrate/re-write the CDO based application to Outlook Object Model library.

    CDO sample – created in Outlook 2003:
       1: Dim MapiSession As Object
       2: Dim MapiMessage As Object
       3: 
       4: 
       5:   
       6: Set MapiSession = CreateObject("Mapi.Session") ' Create the MAPI Session.
       7:  
       8: MapiSession.Logon , , , False                  ' Log on to the session.
       9:  
      10: Set MapiMessage = MapiSession.Outbox.Messages.Add
      11:  
      12: With MapiMessage
      13:     .To = "testuser@contoso.com"
      14:     .Subject = "Test"
      15:     .Text = "Test"
      16:     .send showdialog:=True
      17: End With
      18:  
      19: MapiSession.Logoff
      20:  
      21: Set MapiSession = Nothing  ' Clear the object variable.
    • In order to start with, we will do it from the declaration section – you can see the CDO/OOM migrated sample and notice the changes.
    • In CDO code, it’s specified as Set MapiSession = CreateObject(“Mapi.Session”). When it comes to Outlook Object Model, then it should be converted as, Set MapiSession = CreateObject("Outlook.Application")
    • Now, we will try the next line, which is doing logon() call. In CDO, it’s MapiSession.Logon , , ,False. In OOM, it’s you need to add GetNamespace, so MapiSession.GetNamespace("MAPI").Logon , , , False
    • Next line in CDO points that a new mail item will be created in Outbox folder. In OOM, it need to be simplified: MapiSession.CreateItem(olMailItem).
      • Please note I haven’t used outbox folder like, MapiSession.GetNamespace("MAPI").GetDefaultFolder(olFolderOutbox)
    • I don’t see much changes when you specify the values for MapiMessage, except for .Send (CDO) – just needs to be trimmed as .Send(in OOM)

    Once you done with migration, the OOM code (created in Outlook 2010) will look like the below:

       1: Dim MapiSession As Outlook.Application
       2: Dim MapiMessage As Outlook.MailItem
       3:           
       4: Set MapiSession = CreateObject("Outlook.Application") ' Create the MAPI Session.
       5: MapiSession.GetNamespace("MAPI").Logon , , , False
       6:                            
       7: Set MapiMessage = MapiSession.CreateItem(olMailItem)
       8: With MapiMessage
       9:     .To = "testuser@contoso.com"
      10:     .Subject = "Test"
      11:     .Body = "Test"
      12:     .Send
      13: End With
      14:  
      15: Set MapiSession = Nothing

    Please note: Microsoft product support can help developer customers migrate custom programs from using CDO 1.2.1 to using other APIs. However, Microsoft will not provide support for any scenarios in which CDO 1.2.1 is used with Outlook 2010.

    Happy programming!!

  • Le Café Central de DeVa

    Fix: Windows Phone 7.5 & Facebook Password update “0x83cf1202”

    • 15 Comments
    Recently one of my customer changed his Facebook password via laptop. Later when he tried connecting via my Windows Phone/Facebook chat, it requested him to update the password. Unfortunately, he opted to delete the Facebook account, but it failed. After this, he can’t update his password. Doing so (Settings > Email+accounts > Facebook), it throws “Attention required – can’t delete Facebook” and error code “0x83cf1202”. 

    Tried the following steps, which helped him to fix the issue:

    1. Disconnect all devices/desktop apps and login with browser
    2. Delete Facebook account (connected with Hotmail account) using the browser
    3. Boot the phone
    4. In Phone, Sync the Hotmail account. At end of this, delete the Facebook account
    5. Now you can connect the Facebook account using Settings > Email+accounts > Facebook in the phone.

    Note: Prior to that I learnt that he is connected with messenger desktop app browser, Windows Phone to the Hotmail account. Also the Facebook updates, notifications, still seem to work, but only chat doesn't Smile

  • Le Café Central de DeVa

    How to get the EWS endpoint URL from Outlook 2007/2010?

    • 6 Comments
    You can try the following steps to get the EWS endpoint URL from Outlook 2007 or 2010:

    • CTRL+Right click the Outlook icon in the notification area in the lower right-hand area of the screen. You can notice the following window:

    image

    • Select Test E-mail Auto configuration.
    • Enter your email address and password.
    • Select the Use AutoDiscover box (you can uncheck the other boxes).
    • Select the Test button.

    image

    • In the results window, you can see the Availability Service URL  Smile
  • Le Café Central de DeVa

    Outlook Object Model 2010: Programmatically check whether the search is synchronous or not?

    • 0 Comments
    In Outlook 2010, you have a way to check whether the search is synchronous or asynchronous or not. Just created a small code snippet (below) for the reference – you can notice that I just call the application.IsSearchSynchronous() and pass the look in folder which want to try. The path name of the folders that the search will search through. Code snippet:
       1: Sub TestSearch()
       2:  
       3:  Dim fpath As String
       4:  Dim oStre As Outlook.Store
       5:  
       6:  For Each oStre In Outlook.Session.Stores
       7:  fpath = "'" & oStre.GetRootFolder.folderPath & "'"
       8:  Debug.Print fpath & " IsSearchSynchronous = " & Application.IsSearchSynchronous(fpath)
       9:  Next
      10:  
      11: End Sub

    Output:

    image

    Note:

    + You must enclose the folder path (fpath) with single quotes – refer the above example
    + If the search is synchronous, the AdvancedSearch method will not return until the search has completed.
    + On the contrary, if the search is asynchronous, the AdvancedSearch method will immediately return.
    + In order to get meaningful results from an asynchronous search, use the AdvancedSearchComplete event to notify you when the search has finished.

    Happy programming!!

  • Le Café Central de DeVa

    ESE, SQL

    • 2 Comments

    Recently I was talking to one of my customer. He was suggesting why MS should consider SQL instead of ESE(Extensible Storage Engine) db. It just remembered the famous old blog post at Exchange team blog – just referenced him the same Smile

  • Le Café Central de DeVa

    Client Shutdown in MAPI (Outlook 2010 fast shutdown)

    • 0 Comments

    I am sharing this as couple of my customers were enquiring is there any changes or effects of Client Shutdown in MAPI (Outlook 2010 fast shutdown). 

    MAPI clients can shut down the same way as before, or if needed, they can use fast shutdown. In Outlook 2010, MAPI subsystem provides the IMAPIClientShutdown : IUnknown interface. If a MAPI client needs to adopt fast shutdown, then they can make use of it. In order to implement the shutdown, MAPI client to initiate a quick shutdown of the client process, notifying all providers with which the client has an active MAPI session to save data and settings before the client process exits.

    For more info, you can refer the related articles:

    Fast Shutdown Overview: Basic mechanism of fast shutdown
    Fast Shutdown User Options: Choices available for administrators to adopt fast shutdown at the user level for the user’s MAPI Clients
    Best Practices for Fast Shutdown: best practices to use the fast shutdown interfaces to help prevent data loss during a MAPI client shutdown.

    You can refer Ryan’s post, along with couple of related articles by Steve @ Fastest Shutdown In The West and When I Say Shutdown, I Mean Shut. Down.

    Happy programming!!

  • Le Café Central de DeVa

    EWS GetItem() call fail to return recurrence-id for meetings created/modified using Outlook 2003 & Exchange 2010

    • 1 Comments

    One of my customers reported an issue while they were reading a recurrence calendar with exceptions using Exchange Web Service (EWS) API. Their EWS application uses EWS WSDL to generate stub and uses that to access the server to read the calendar items from Exchange Server 2010.  As part of the business logic, they read exception instance of a recurring meeting to access the recurrence-id using GetItem() call, but the Recurrence-ID was not returned under this scenario:

    <t:CalendarItem>
    
      <t:ItemId Id="AAMkAGJmODU0Y2RkLTMzNWQtNDU0Zi04ZTRmLWZkYmY3NjMzMmY5NwBGAAAAAAAYgD84Mql7RaeCH1aLb3byBwBsPRpqddOASYFOcLJOFXFtAAAABxwqAABsPRpqddOASYFOcLJOFXFtAAABQSkXAAA=" ChangeKey="DwAAABYAAABsPRpqddOASYFOcLJOFXFtAAABQgc0"/>
    
      <t:ItemClass>IPM.Appointment</t:ItemClass>
    
      <t:Subject>Test Meeting</t:Subject>
    
      <t:UID>040000008200E00074C5B7101A82E0080000000020F44873F666CB010000000000000000100000004912C9B37286374CBFC74B4EC1030D74</t:UID>
    
      <t:Start>2011-02-07T15:30:00Z</t:Start>
    
      <t:End>2011-02-07T16:00:00Z</t:End>
    
      <t:IsCancelled>false</t:IsCancelled>
    
      <t:IsRecurring>true</t:IsRecurring>
    
      <t:CalendarItemType>Single</t:CalendarItemType>
    
      <t:MyResponseType>Accept</t:MyResponseType>
    
      <t:Organizer>
    
      <t:Mailbox>
    
      <t:Name>Contoso, Small</t:Name>
    
      <t:EmailAddress> small@contoso.com </t:EmailAddress> 
    
      <t:RoutingType>SMTP</t:RoutingType>
    
      </t:Mailbox>
    
      </t:Organizer>
    
      <t:TimeZone>GMT -0600 (Standard) / GMT -0500 (Daylight)</t:TimeZone>
    
    </t:CalendarItem>
    

    When we analyzed the issue happens only with meetings created/modified using Outlook 2003 SP3 clients. The same issue doesn’t occur not with Outlook 2007 & 2010 clients. Due to this issue, their application logic was broken. We tried using FindItem() call, instead of GetItem() but it didn’t make any difference. As part of troubleshooting we noticed that the recurrence-id doesn’t available in the GetItem() response XML; but using the MimeContent, we can parse it manually, look for recurrence-id and can overcome this issue.

    foreach (Item it in fiResults.Items)
    
    {
    
    it.Load(new PropertySet(BasePropertySet.FirstClassProperties){ItemSchema.MimeContent});          
    
    MimeContent mc = it.MimeContent;
    
    //Your application logic goes here: Parse the above MimeContent & look for recurrence-id
    
    }
    

    But this turned out not a feasible solution for them as it might be much dependent on Mime encoding type being used as well as the format of recurrence-id is different from what they get as part of GetItem() response. Apart from this, I don’t see any fix/design change/new feature request for Outlook 2003, which is already in extended support.

  • Le Café Central de DeVa

    Outlook 2007: How to ‘quickly’ disable add-ins?

    • 3 Comments

    Try the following steps to disable add-ins in Outlook 2007 (it also applies to InfoPath 2007, Project 2007 and Visio 2007)

    1. On the Tools menu, click Trust Center.

    2. In the categories pane, click Macro Security.

    3. In the details pane, select No Warnings and Disable All Macros or Warnings for signed macros; all unsigned macros are disabled.

    4. In the categories pane, click Add-ins.

    5. In the details pane, select Apply macro security settings to installed add-ins

    Enjoy Smile

  • Le Café Central de DeVa

    Download: Microsoft Online Services Migration Tools

    • 0 Comments

    The Microsoft Online Services Migration Tools is used to support migration of Microsoft Exchange to Microsoft Online Services. You can use the Microsoft Online Services Migration Tools to forward copies of your Exchange Server mail to your Exchange Online mailboxes. You can also use the Migration Tools to copy content from your Exchange Server, POP3, or IMAP4 e-mail server mailboxes to your Exchange Online mailboxes. This product intended for use with Microsoft Online Services only.

    You can download Microsoft Online Services Migration tools (32-bit | 64-bit).

Page 7 of 29 (714 items) «56789»