Le Café Central de Deva
... Deva blogs!!
I changed the way of blogging, developing, designing and assisting my customers. Re-designed the site and started using the latest Windows Live Writer!! Additionally added Microsoft Translator gadget available @ top of page, so that you can change the page in your preferred language!!
This wonderful eBook is written by Kraig. He provides comprehensive coverage of the platform for Windows Store apps, and devoted chapters on live tiles, notifications, background tasks, background transfers, networking, devices, printing, WinRT components, accessibility, localization, and the Windows Store itself. The final eBook contains 17 chapters. And of course all of the earlier chapters have also been reviewed and refined—over 800 pages in total, along with new and updated companion content!
So you can download the eBook in PDF format here: http://go.microsoft.com/FWLink/?Linkid=270056 (17.9 MB)
EPUB format is here: http://go.microsoft.com/FWLink/?Linkid=272592 (37.3 MB)
MOBI format is here: http://go.microsoft.com/FWLink/?Linkid=272591 (69.5 MB)
The eBook's companion content is here: http://go.microsoft.com/FWLink/?Linkid=270057 (59.9 MB) Just make use of it and develop new Windows 8 apps. Happy programming!!
Recently one of my developer customer pointed out that he used Extra.exe as part of troubleshoot performance issues at his Exchange Server 2010 environment. But he noticed that Extra.exe doesn’t work or collect the data as expected. During investigation I noticed that they were running it under the scheduled task. Based on investigation, they updated to Exchange Server 2010 SP2 Update Rollup 5 version 2 which resolved the issue.
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. Adding few screenshots for your view:
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" )
After the above changes, I can successfully compile it without any errors. It helped them to move ahead.
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”:
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'"
& 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. 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:
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
Set myNameSpace = Application.GetNamespace("MAPI")
Set myItems = myNameSpace.PickFolder.Items
Set currentItem = myItems.Restrict(Filter)
For i = currentItem.Count To 1 Step -1
When you execute the code, you can retrieve the filtered item’s “subject” property values(PR_SUBJECT)….
You can give a try and let me know how it goes…. Happy programming!!
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.
Recently I tried joining my Windows Server 2008 R2 with the targeted domain controller (as part of new Exchange install), but it thrown the following error:
In order to move ahead, I tried the following step to move ahead… Try temporarily setting the IP address of domain controller as your first DNS server or Preferred DNS Server, join the domain (later you can change the DNS Server setting back). Here it goes: Step 1: In Windows Server 2008 R2 > View Network Connections > Network Connection > Active Connection > Properties > Internet Protocol Version (TCP/IPv4) > Preferred DNS Server > Update the IP address of primary domain controller > OK Step 2: Now try join your domain. (In addition, after successful joining domain, I change DNS servers back to earlier). It made the trick. Enjoy!!
Wow, it’s birthday time. Visual C++ turned 20 this month, which certainly has come a long way. To get more info, refer the related post: http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-15-VC-turns-20-Ale-turns-40-C9-turns-9. Also it’s no coincident that as VC++ turned 20 and Channel 9 turned 9 too. Enjoy!!
I got the above update couple of days earlier to my HTC Mozart device. At this, check its build number - 7.10.8862.144 (You'll see same on your phone in Settings > About > More info). It contains the following update:
Start. Provides resizable small, medium, and large Live Tiles so you can customize your Start experience in new ways.
Accent colors. Expands the number of available accent colors to 20.
Lock screen. Improves the lock screen experience with accidental wipe protection features and the Bing image of the day wallpaper.
Marketplace and Xbox. Expands Windows Phone Marketplace and Xbox support to new countries and regions.
Fonts. Enhances the Chinese font and improves the appearance of Arabic and other languages.
Live Tiles. Fixes performance issues from a previous update.
Other improvements. Includes many other improvements to Windows Phone. For more information, you can refer: http://www.windowsphone.com/en-us/how-to/wp7/basics/update-history…. Enjoy!!
One of my customer reported that they created a ATL Project/MFC CDHtmlDialog based C++ application and they notice the following errors in afxdhtml.h (they created it using VS 2003).
afxdhtml.h(272) : error C2238: unexpected token(s) preceding ';' afxdhtml.h(289) : error C2061: syntax error : identifier '_ATL_FUNC_INFO' afxdhtml.h(290) : error C2061: syntax error : identifier '_ATL_FUNC_INFO'
I tried the code piece at my end locally and tested with latest visual studio – I failed to see the issue and it just works for me. Later I done further research on this and found the following:
The #include <afxdhtml.h> directive is placed in the stdafx.h pre-compiled header file before the "using namespace ATL;" directive, and the #define _ATL_NO_AUTOMATIC_NAMESPACE was given previously. Thus, the symbols in the header file which belong to the ATL namespace are not properly resolved. When adding a class from the MFC dialog class wizard, you are given the choice of several dialog base classes, most of which do not require the ATL namespace "using" directive. Thus, the wizard script in default.htm doesn’t make any attempt to ensure that the header file corresponding to the class name come after a using directive.
In Visual Studio 2005 and later versions, the problem doesn’t occur because all references to CComPtr are now prefixed with ::ATL::, alleviating the need to either direct “using namespace ATL;” or to define the macro to eliminate the automatic use of the ATL namespace. So I recommended them to try one of the following to move ahead: • Remove the #define _ATL_NO_AUTOMATIC_NAMESPACE directive from the stdafx.h header, or • Move the using namespace ATL; directive before the #include <afxdhtml.h> • Upgrade to Visual Studio 2005 and above. Also make sure they're fully patched with latest service pack/fixes.
Here is a developer article published “how to build/write an Exchange Server 2013 based transport agent?” in a detailed fashion about a sample transport Agent to illustrate various Exchange 2013 transport agent functionality as well as stripping all the hyperlinks from the message body. The article also talks starting from what’s a transport agent, changes to Exchange Server 2013 environment – transport agent management, setting up the environment etc . They too published the code base here. You can try this out and make use of the same. Enjoy!!
You can join this Jump Start session provided by Microsoft Virtual Academy – it’s tailored for experienced application developers interested in leveraging ASP.NET and Visual Studio 2012 to offer modern apps that target modern browsers. Two of Microsoft’s most seasoned ASP.NET speakers, Scott Hanselman and Jon Galloway, will provide an accelerated introduction to building modern web applications with ASP.NET 4.5 and ASP.NET MVC 4. In this course, they will target key scenarios like building mobile ready websites, social web applications as well as modern HTML5 browser features.
• New and advanced features in ASP.NET Web Forms • ASP.NET MVC 4 and ASP.NET Web API • jQuery • SignalR • Entity Framework • Visual Studio 2012 • Internet Explorer 10 and HTML5 • Building apps for Office with HTML5 • Windows Azure Web Sites for ASP.NET developers
February 19, 2013 8:00am-5:00pm PST
Register: In order to participate you need to register first. Where : Live online What : Engaging, demo virtual class Cost : Free Target Audience: Intended for developers who have at least six months of professional experience.
Hope this helps.
Recently one of my customer reported that Outlook is not showing latest free/busy information for selected users. Initially they tried the following steps for the affected users: Exit Outlook Open Command prompt > Open Outlook with cleanfreebusy switch (outlook.exe /cleanfreebusy) It failed to resolve the issue. During troubleshooting we noticed that these issue may occur because a mailbox property does not correctly reference a hidden message in the mailbox, which is related to free/busy publishing. We tried the below steps for the affected user to re-generate free/busy information: Exit Outlook. Make sure that the profile is in online mode. You can change this or create new one using Mail item in Control Panel. Download latest MFC MAPI editor (http://mfcmapi.codeplex.com) Start the MFCMAPI.exe > click OK. On the Session menu, click Logon. In the Profile Name list, select the profile for the mailbox, and then click OK. Double-click the Mailbox Store. In the navigation pane, click Root Container. In the details pane, right-click PR_FREEBUSY_ENTRYIDS, click Delete Property, and then click OK. In the navigation pane, expand Root Container, expand Top of Information Store, and then click Inbox. In the details pane, right-click PR_FREEBUSY_ENTRYIDS, click Delete Property, and then click OK. In the Information Store: Inbox dialog box, click Exit on the File menu. Exit MFC MAPI. Finally at Windows, you should click Start, click Run, type outlook.exe /cleanfreebusy, and then press ENTER – this will regenerate the free/busy information for that specific user mailbox. Hope this helps.
Exchange Online Sign up now for a 30-day free trial of Office 365, which includes Exchange Online. Try Now
You can also try the new Exchange Online with Office 365 Enterprise Preview. Try now | Learn more
Exchange Server 2013 Try a free 180-day evaluation of Exchange Server 2013.
There are a range of licensing options for Exchange Server. Learn more Office Professional Plus 2013 Download Now
Now you can download the 101 Exchange Web Service samples to download them all, or select the samples that you want and download them individually. This pack includes 101 code samples that show you how to develop Exchange 2013 solutions. The code samples in the Exchange 2013: 101 code samples package show you how to use the Exchange Web Services (EWS) Managed API to send email messages, search mail folders, get contact information, check user availability, and more.
These samples require the following:
Note: These samples assume that the assembly is in the default download directory. You will need to verify the path before you run the solution for an individual sample.
Each sample will typically contain the following files:
Follow these steps to configure the Exchange 2013: 101 code samples.
You need to press F5 to build and deploy the samples.
You need to press F5 to run the samples. Note: The above samples applies to the following exchange version/technologies: Exchange Server 2007 SP1, Exchange Server 2010, Exchange Server 2013 and EWS Managed API
Recent study released by Microsoft and the International Data Corporation (IDC) shows that millions of cloud-related IT jobs are sitting open and millions more will open up in the next two years due to a shortage in cloud-certified IT workers. The information technology forecast for the next two years calls for increasing cloudiness – cloud computing job opportunities, that is.
Type of Change
Reason for Change
Outlook Meeting Workspaces
The Meeting workspaces feature is removed from Outlook. The entry point commands to create Meeting Workspaces is removed from both the Quick Access Toolbar and the Ribbon.
The feature was not widely used.
Allows for a simpler Ribbon experience.
For the feature description, see Use Meeting Workspaces to organize meetings
Outlook Exchange Classic offline
Offline mode is being removed from Outlook.
Offline mode is a legacy data access method for online mode connections to Exchange Server.
Remove /Cleanfreebusy switch and code
Users can no longer start Outlook by using the /cleanfreebusy switch. If they try this, they will receive the following message: "Cannot start Microsoft Outlook. The command line argument is not valid. Verify the switch you are using."
Because of the removal of the Public Folder Free/Busy feature, this switch is no longer needed.
Command Bars object model (OM)
The Command Bars OM is being changed so that built-in Command Bar objects cannot be accessed through programming.
Command bars are not used in Outlook 2013. Therefore, add-ins that use the Command Bars OM are not required.
Use the IRibbonExtensibility interface in an Outlook 2013 add-in instead of command bars. You can’t customize Inspector ribbons by using VBScript code behind forms.
Updating Earlier Code for CommandBars
For more information about how to use IRibbonExtensibility to customize the Outlook 2013 user interface programmatically, see Extending the User Interface in Outlook 2010.
Outlook Direct Booking
Direct booking of resources in the calendar no longer exists.
This functionality is outdated and is superseded by the Exchange Availability service and free/busy for resources.
More reliable service.
Mailboxes that are currently configured to use Outlook direct booking should be migrated to Exchange 2007 or Exchange Server 2010 resource mailboxes.
Exchange 2007 and Exchange Server 2010 resource mailboxes provide a better range of features. These mailboxes also provide server-side administration by using the Exchange Management Shell or the Exchange Management Console to simplify resource mailbox management.
Import/Export to Applications
Removing specific file-format support from the Import/Export wizard in Outlook
The ability to import/export Outlook data to legacy file formats.
The following legacy formats were removed from the Import/Export Wizard: Internet Mail Account Settings, Internet Mail and Addresses, Comma Separated Values (DOS), Access 97-2003, Excel 97-2003, Tab Separated Values (DOS), Tab Separated Values (Windows), ACT!, Contact Manager, Lotus Organizer, Outlook Express/Windows Mail, Personal Address Book.
Import/Export to the PST and CSV formats is still a supported option.
Export Outlook items to an Outlook Data File (.pst)
Journal Module and Journaling
The Journal Module is being removed as a top-level module, and auto-journaling is also being removed.
Replacement is unnecessary.
Outlook Links Collection
Links Collection object model is removed.
Functionality is removed in the UI.
Notes and Journal customization
Notes are now only yellow and medium size.
Keeping the Notes module simple.
Simplifying how Notes are used.
Legacy Contact Linking
The capability to link arbitrary Outlook items to Outlook contacts. This contact linking existed only for displaying information in the Activities tab of the contact, which is a feature that is also removed for Outlook 2013.
Contact linking is replaced by the Outlook Social Connector and the New Person Card.
Outlook Activities tab
The Activities tab on contact forms is not available for Outlook 2013. The Activities tab used to aggregate all Outlook items (e-mail, meetings, tasks, and so on) associated with a contact.
The Activities tab is replaced by the Outlook Social Connector and displays in the People pane.
Outlook Mobile Service (OMS)
Support for the Outlook Mobile Service protocol, which is used for sending and receiving text messages from Outlook, is being removed.
Feature has low usage.
No user benefit.
Suggested Contacts was used to automatically keep track of everyone the user sends a message to, but who isn’t in Outlook contacts.
In a clean Outlook 2013 installation, Suggested Contacts is no longer available, the folder never is created, and no suggested contact items are created. In an upgrade to Outlook 2013, this folder is visible, and participates in linking, aggregation and search. However, no new suggested contact items are added to the folder. The folder displays in an upgrade scenario. However, it can now be deleted.
Outlook Pubcal: Calendar Publishing
Removing the ability to publish one's calendar to Office.com.
Users in Exchange Server environments can use Exchange Calendar Publishing.
Non-Exchange users can use a service such as Hotmail to share calendars.
Enable Internet Calendar Publishing
How to keep your family in sync with Hotmail Calendar
Outlook/Exchange Deliver to PST
Removing the ability for users to have Exchange accounts delivering into PST files.
Removing application level dial-up options and VPN options.
Available as part of the operating system.
Follow operating system instructions for configuring VPN or dial-up networking connections,
For Windows Vista and Windows 7, see Set up an incoming VPN or dial-up connection.
For Windows 8, see Configure a Dial-Up Networking Connection Item.
Public Folder Free/Busy
Public Folder Free/Busy feature is replaced.
Replaced by the Exchange availability service
Free/Busy functionality is more reliable
Free busy information can be obtained through the Exchange Availability service
Understanding the Availability Service
A new functionality is implemented.
A new feature known as Pinned Peeks is implemented to achieve similar functionality.
Pinned Peeks feature
User Datagram Protocol (UDP)
UDP is removed. In earlier versions of Outlook the feature was used for new mail alert results and for folder updates.
The UDP functionality that was provided by UDP is replaced with an asynchronous notification method.
Preview unread messages
The Auto Preview feature to preview unread items is removed. It remains possible to configure Message Preview for one, two, and three lines.
Outlook categories quick click
Categories quick click from the message list is removed. Categories are displayed when they are applied in Office 2013 by right-clicking or using Ribbon buttons.
Low usage. This feature was used by around 1% of users.
Apply categories by choosing from the short-cut menus (right clicking) or by choosing Ribbon buttons.
Outlook Search through Windows Shell
Office and Windows
In Office 2013, Outlook items do not display in Windows Shell searches (for example, searches from the Start Menu or by using Win+F). Perform Office searches within Office 2013.
Search Office items within the Office application.
When Outlook 2007 or Outlook 2010 is running and installed side-by-side with Outlook 2013, Outlook shows the following message when you click Send To > Mail Recipient in Windows Explorer or click File > Send As Attachment in another program: This action is not supported while an older version of Outlook is running
In order to move ahead, you can try the following workaround: First, close the earlier version of Outlook, and repeat your steps. Or create a new email message in Outlook and click Insert > Attach File to attach the file. Viola, it just works!!
Are you an MAPI developer? Then, this article is targetted for you. The API elements (like, IXPLogon::RegisterOptions, OPTIONDATA, OPTIONCALLBACK, IMAPISession::MessageOptions, IMAPISession::QueryDefaultMessageOpt, IAddrBook::RecipOptions, IAddrBook::QueryDefaultRecipOpt) are deprecated in Microsoft Outlook 2013. They are no longer supported and you should not use them in new projects. These API elements are deprecated in this release because of obsolete message and recipient options. For more information, you can refer the related article.
In addition to previous article, I would suggest you to have a look at the related articles for reference/samples etc:
By using Visual Basic for Applications (VBA), a simple but powerful programming language that you can use to extend Office 2010 applications with new capabilities and automate repeated tasks. I remember VBA is used for a long time in Microsoft Office based applications. I thought to combine the list the related articles that are pretty much helpful for you to move ahead:
Microsoft Office Developer Center
Writing VBA code for Microsoft Outlook
VBOffice Outlook VBA Samples
Using Visual Basic for Applications in Outlook
Using Outlook Visual Basic for Applications to Respond to Outlook Events
How-To-Outlook: Signing Your Own Macros with SelfCert.exe
2007 Office System Reference Library on MSDN
Getting Started with Office Development
Microsoft Office Interactive Developer Map
Webcast: Using VBA Every Day Is Easier Than You Think
Webcast: Breaking into Your Open XML Format Documents
Managing Macros with the Visual Basic Editor
Microsoft Most Valuable Professional (MVPs) Site
Getting Started with VBA in Outlook 2010
Watch the Video: Using VBA to Control Built-In Commands in the 2007 Office System
One of my developer customer updated that he created an EWS Managed API based application which is getting crashed when they call the GetStreamingEvents operation to request notifications from a server that is running Exchange Server 2010; also the Client Access server (CAS) role installed. In general, the GetStreamingEvents response returns an array of items and events that have occurred in a mailbox since the last the notification. During investigation, we noticed that the EWS managed API sends back a compressed stream to the EWS application when the request of the GetStreamingEvents operation times out. As the EWS application cannot handle the compressed stream and crashes when it tries to parse the stream. In order to resolve the issue, make sure you have Exchange Server 2010 Service Pack 2 Rollup 2 installed & refer Knowledgebase article 2661854. It’s documented in http://support.microsoft.com/kb/2681464.
An EWS application that runs on behalf of a user quickly consumes resources on the Microsoft Exchange server 2010. When we investigated, we noticed that the EWS operations the application performs exceed the limit that is set in the client throttling policies. As we know that the client throttling policies for Exchange Web Service are enabled in a Microsoft Exchange Server 2010 environment – all client throttling policies are enabled in Microsoft Exchange Server 2010 Service Pack 1 (SP1) or in Microsoft Exchange Server 2010 Service Pack 2 (SP2), by default. In this scenario, all the EWS applications that run on behalf of the user are throttled unexpectedly. The expected behavior is that only the EWS application whose operations exceed the limit that is set in the client throttling policies is restricted.
This issue occurs because all the EWS applications that run on behalf of the user consume the same client throttling policy budget. To resolve the problem, first make sure you installed the latest service pack & rollup for Exchange Server 2010 or install the Update Rollup 4 for Exchange Server 2010 Service Pack 2. You can refer: http://support.microsoft.com/kb/2706690