Le Café Central de

                 ... Deva blogs!!

  • Le Café Central de DeVa

    Developers Must: Download MSDN Samples library browser


    Developers love code samples, but they have been sitting in front of desktop for too long. A Sample Browser app can give them some time to sit relaxingly in a sofa and continue to learn the beloved code samples. The Sample Browser gives developers a new experience to search, download, learn, and share thousands of code samples. The large sample repository includes Microsoft official code samples for Windows Store apps, over 1200 Microsoft All-In-One Code Framework samples driven by developers' real-world pains and needs, and various product samples and community samples.

    So now you can download them as wish, either to your Windows 8/RT device or Windows Traditional desktop:

    Windows 8 app: Download the Windows 8 app for your Windows 8 or Windows RT device it gives developers a new experience to search, download, learn, share and request code samples. Swipe and search and share - It's that easy! The app also supports the offline mode, so you can learn code samples anytime, anywhere.
    Traditional desktop: Download Sample browser for traditional desktop, this will be very useful when you are using Visual Studio Express.

    Sample Browser for Windows 8/RT device  Sample Browser for Traditional Desktop

    Adding few screenshots for your view:

    Sample Browser for Windows 8  Sample Browser for Windows 8

      Sample Browser for Windows 8  Sample Browser

  • Le Café Central de DeVa

    Migrated custom C++/CDOSYS app throws compiler errors


    Recently I was working with one of the developer who earlier designed an CDOSYS based mail component in his C++ application built using earlier Visual Studio (2005) version . After migration to VS 2008 environment, they noticed compile errors with the same code/no changes made. When I debugged further and noticed that the msado15.tlh and cdosys.tlh are not generated correctly for some reasons. When I compared the .tlh file generated by previous VS version, i noticed differences in it – as couple of keywords are missing in method definitions in the .tlh file generated by VS previous versions. That’s the reason, they noticed the compile time/linker errors.

    The generation of .tlh files is affected by some codes in this project, which is compiled earlier than the import sentences. So i moved the import sentences to the very beginning of stdafx.h and used #import attribute “rename” to avoid any name collusion problems. 

    #import "c:/program files/common files/system/ado/msado15.dll" rename("ADODB","CDO") rename( "EOF", "adoEOF" ) 
    #import  <cdosys.dll>

    + Then i tried the changes in the code where they use msado15.dll and cdosys.dll:

    Visual Studio - Code

    After the above changes, I can successfully compile it without any errors. It helped them to move ahead.

    Visual Studio Output

    Happy debugging!!

  • Le Café Central de DeVa

    Office Developer: How to programmatically restrict or filter “To” property using Outlook Object Model?


    In this post, we will see how to programmatically filter/restrict items “To” property. Let we take this scenario. In Outlook, we notice it contains 6 items “To” property containing “Deva G”:  

    Outlook UI

    Note:In specifying a filter in a Jet or DASL query, if you use a pair of single quotes to delimit a string that is part of the filter, and the string contains another single quote or apostrophe, then add a single quote as an escape character before the single quote or apostrophe. Use a similar approach if you use a pair of double quotes to delimit a string. If the string contains a double quote, then add a double quote as an escape character before the double quote. For example, in the DASL filter string that filters for the Subject property being equal to the word can't, the entire filter string is delimited by a pair of double quotes, and the embedded string can't is delimited by a pair of single quotes. There are three characters that you need to escape in this filter string: the starting double quote and the ending double quote for the property reference of http://schemas.microsoft.com/mapi/proptag/0x0037001f, and the apostrophe in the value condition for the word can't. Applying the appropriate escape characters, you can express the filter string as follows:

    filter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = 'can''t'"

    Alternatively, you can use the chr(34) function to represent the double quote (whose ASCII character value is 34) that is used as an escape character. Using the chr(34) substitution for a double-quote escape character, you can express the last example as follows:

    filter = "@SQL= " & Chr(34) & "http://schemas.microsoft.com/mapi/proptag/0x0037001f" & Chr(34) & " = " & "'can''t'"

    For this above test, first we need to get the property reference for “to” so that we can create DASL Filter for it. For this, you can make use of latest MFC MAPI and get the same using its Property Editor.

    MFC MAPI - Property Editor

    I am making use of Outlook Object Model (OOM) API to filter/restrict “To” field items containing “Deva G”. In order to do that, you can make use of Items.Restrict method provided in OOM along with the Filter that you want to apply. The Restrict method is significantly faster if there is a large number of items in the collection, especially if only a few items in a large collection are expected to be found.

    Filter = "@SQL= " & Chr(34) & "http://schemas.microsoft.com/mapi/proptag/0x0E04001E" & Chr(34) & " = " & "'Deva G'"

    Using the above filter, we can build the code using Items.Restrict method – enclosing the Outlook VBA sample for your reference:

    'Using Items.Restrict
    Public Sub RestrictFilter()
    Dim myNameSpace As Outlook.NameSpace
    Dim myItems As Outlook.Items
    Dim currentItem As Outlook.Items
    Dim Filter As String
    Dim i As Integer
    Filter = "@SQL= " & Chr(34) & "http://schemas.microsoft.com/mapi/proptag/0x0E04001E" & Chr(34) & " = " & "'Deva G'"
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set myItems = myNameSpace.PickFolder.Items
    Set currentItem = myItems.Restrict(Filter)
    For i = currentItem.Count To 1 Step -1
        Debug.Print currentItem(i).Subject
    End Sub

    When you execute the code, you can retrieve the filtered item’s “subject” property values(PR_SUBJECT)….

    Outlook VBA - Source code & Output

    You can give a try and let me know how it goes…. Happy programming!!

  • Le Café Central de DeVa

    Office 2010 SP2 beta now available for download


    Now you can download the beta for Office 2010 and SharePoint 2010 SP2. For more info, you can refer the Microsoft Office Sustained Engineering post.

Page 1 of 1 (4 items)