Yochay Kiriaty Senior Technical Evangelist Microsoft Corporation SESSION CODE: WCL312.

Slides:



Advertisements
Similar presentations
Lesson 10: Starting Windows Applications start an application program move between open application programs start an application using the Run command.
Advertisements

Steve Smith Senior Architect The Code Project SESSION CODE: DPR304.
Don Jones Senior Partner and Technologist Concentrated Technology, LLC SESSION CODE: WCL308.
Ron Jacobs Technical Evangelist Microsoft Corporation SESSION CODE: DEV207.
Jason Tolley Technical Director ROK Technology Pty Ltd SESSION CODE: WEM305.
Marc Shepard Principal Program Manager Lead Microsoft Corporation SESSION CODE: WCL203.
Jay Ferron- Global Knowledge Jeremy Chapman - Microsoft Corporation SESSION CODE: WCL201.
Raymond P.L. Comvalius IT Infrastructure Specialist Invendows BV – The Netherlands SESSION CODE: WCL310.
Tomislav Bronzin Microsoft Regional Director & MVP CITUS Ltd. Session Code: CLI308.
Sometimes it is the stuff you know that hinders true progress.
Anthony (A.J.) Smith Senior Product Manager Microsoft Corporation SESSION CODE: WCL307.
The Secrets of Effective Technical Talks: How to Explain Tech without Tucking Them In! Presented by Mark Minasi and Mark Russinovich SESSION CODE: SIA334.
Ashwin Sarin Program Manager Microsoft Corporation SESSION CODE: COS204.
Boris Jabes Senior Program Manager Microsoft Corporation SESSION CODE: DEV319 Scale & Productivity in Visual C
Peter Provost Sr. Program Manager Microsoft Corporation SESSION CODE: DEV403.
Kevin Cox – SQL CAT Microsoft Corporation What are the largest SQL projects in the world? SESSION CODE: DAT305 Srik Raghavan –
END USER TOOLS AND PERFORMANCE MANAGEMENT APPS Excel PerformancePoint Svcs/ProClarity BI PLATFORM SQL Server Reporting Services SQL Server Reporting Services.
Janssen Jones Virtual Machine MVP Indiana University SESSION CODE: VIR403.
Mark Russinovich Technical Fellow Microsoft Corporation *Portions derived from David Solomon’s Windows Internals Seminar SESSION CODE: WCL402.
Windows Listening Guide.  The software that manages the sharing of the resources of a computer. The overall function of the computer.  MASTER CONTROLLER.
Tim Crabb Sr. Program Manager Microsoft Corporation SESSION CODE: VIR302.
Suhail Dutta Program Manager Microsoft Corporation SESSION CODE: DEV402.
 Rob Jarrett Software Design Engineer Microsoft Corporation PC23.
Kevin Sullivan Principal Program Manager Lead Microsoft Corporation SESSION CODE: WCL323.
Jeff King Senior Program Manager, Visual Studio Microsoft Corporation SESSION CODE: WEB305.
Lori Dirks Expression Community Manager Microsoft Corporation SESSION CODE: WEB309.
Chris JacksonMatt Heller Principal ConsultantInternet Explorer “The App Compat Guy”Product ManagementMicrosoft Corporation
Chris Mayo Microsoft Corporation SESSION CODE: UNC207.
Michael Kleef Senior Technical Product Manager Microsoft Corporation SESSION CODE: VIR311.
Dave Franklyn, Microsoft Certified Trainer Senior Information Technology Instructor Auburn University WCL318.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM308.
Application ID Shortcut Jump List Windows Application ID can “fall back” to a larger scope if needed Default computation.
Richard Campbell Co-Founder Strangeloop Networks SESSION CODE: WEB315.
Younus Aftab Program Manager Microsoft Corporation SESSION CODE: WSV324.
Paul Foster Developer Evangelist Microsoft Windows 7 – Top Features for your Applications SESSION CODE: W00T!
SESSION CODE: MGT205 Chris Harris Program Manager Microsoft Corporation.
Reza Chitsaz Senior Program Manager Microsoft Corporation SESSION CODE: DEV302 Building a SharePoint Collaboration Application in Visual Studio 2010.
Jeffery Hicks Principal Consultant JDH Information Technology Solutions SESSION CODE: WCL313.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP305.
Konstantin Kosinsky Architect Microsoft Innovation Center Blog:
Developing with the Windows API Code Pack for.NET Framework.
Pat Altimore Sr. Consultant Microsoft Corporation SESSION CODE: WCL321.
David Ollason Lead Program Manager Microsoft Corporation SESSION CODE: UNC322 The New Communicator “14” Platform.
Windows 7 – A developer’s Guide to Building Killer Windows 7 Applications Bijoy Singhal │ Developer Evangelist, Microsoft India.
BIO202 | Building Effective Data Visualizations and Maps with Microsoft SQL Server 2008 Reporting Services BIU08-INT | Using.
Jeremy Moskowitz, Group Policy MVP Chief Propeller-Head: GPanswers.com Founder: PolicyPak Software (policypak.com) SESSION CODE: WCL303.
Martin Woodward Program Manager Microsoft Corporation SESSION CODE: DEV308.
SESSION CODE: COS301. So what do we do?
Mir Rosenberg & Refaat Issa Program Managers Microsoft Corporation SESSION CODE: WSV401.
David A. Carley Senior SDE Microsoft Corporation SESSION CODE: DEV318.
Aaron Margosis Principal Consultant Microsoft Corporation SESSION CODE: WCL301.
Dan Holme Director of Training & Consulting Intelliem SESSION CODE: WCL304.
By: Paul D. Sheriff or SESSION CODE: WCL206.
Cube Measure Group Measure Partition Cube Dimension Dimension Attribute Attribute Relationship Hierarchy Level Cube Attribute Cube Hierarchy.
Maarten Struys Windows Phone Evangelist Alten PTS SESSION CODE: WPH303.
Christophe Fiessinger & Jan Kalis Senior Technical Product Manager Microsoft Corporation SESSION CODE: OSP209.
Ken Getz Senior Consultant MCW Technologies, LLC SESSION CODE: WCL202.
Mark Russinovich Technical Fellow Microsoft Corporation SESSION CODE: WCL315.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP319.
Vinod Unny Enterprise InfoTech Microsoft Regional Director, North India.
Windows 7 Training.
Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation
Windows 7 Training.
Unleash the Power of Microsoft Deployment Toolkit 2010
Absolute Offline Servicing Windows OS
Tech Ed North America /1/2019 2:58 AM Required Slide
The Windows API Code Pack: Add Windows 7 Features to Your Application
Troubleshooting Microsoft Deployment Toolkit 2010 Lite Touch
A Lap Around Internet Explorer 9 For Developers
The Windows API Code Pack
Presentation transcript:

Yochay Kiriaty Senior Technical Evangelist Microsoft Corporation SESSION CODE: WCL312

Microsoft Confidential

@shell32.dll, imageres.dll,-1002 {7d49d726-3c21-4f05-99aa-fdc2c } imageres.dll,-1002 {7d49d726-3c21-4f05-99aa-fdc2c } …

Method Name SHAddFolderPathToLibraryAdds a folder to a library SHCreateLibraryCreates an IShellLibrary object SHLoadLibraryFromItem Creates and loads an IShellLibrary object from a specified library definition file SHLoadLibraryFromKnownFolder Creates and loads an IShellLibrary object for a specified KNOWNFOLDERID SHLoadLibraryFromParsingName Creates and loads an IShellLibrary object for a specified path SHRemoveFolderPathFromLibraryRemoves a folder from a library SHResolveFolderPathInLibrary Resolve the target location of a library folder that has been moved or renamed SHSaveLibraryInFolderPathSaves an IShellLibrary object to disk

IShellLibrary *pIShelLibrary; HRESULT hr = SHCreateLibrary(IID_PPV_ARGS(&pIShelLibrary)); if (SUCCEEDED(hr)) { IShellItem *pIShellItem; SHAddFolderPathToLibrary(pIShelLibrary, L"C:\\Users\\Public\\Documents"); hr = pIShelLibrary->SaveInKnownFolder(FOLDERID_Libraries, L"My New Library", LSF_MAKEUNIQUENAME, &pIShellItem); pIShellItem->Release(); pIShelLibrary->Release(); }

//Create new library and add a folder using (ShellLibrary library = new ShellLibrary(name, true)) { library.Add(folderPath); } //Load the document library, add new folder, pin to nav pan using (ShellLibrary lib = ShellLibrary.Load( "Documents", false)) { lib.IsPinnedToNavigationPane = true; lib.DefaultSaveFolder }

Document repository Enterprise data store Enterprise application

Help Button Contextual Tab Contextual Tab Group Tab Quick Access Toolbar Quick Access Toolbar Application Menu Group

Windows Ribbon void DoStuff() { … } MyHandler::Execute(…) { DoStuff(); }

Running Not running Multiple windows and hover Active

#include #pragma comment (lib, "shell32.lib") SetCurrentProcessExplicitAppUserModelId( L"Microsoft.Samples.AppId1"); #include #pragma comment (lib, "shell32.lib") SetCurrentProcessExplicitAppUserModelId( L"Microsoft.Samples.AppId1"); TaskbarManager. SetCurrentProcessAppId( "Microsoft.Samples.AppId1"); TaskbarManager. SetCurrentProcessAppId( "Microsoft.Samples.AppId1");

PROPVARIANT pv; InitPropVariantFromString( L"Microsoft.Samples.AppId2", &pv); IPropertyStore *pps; HRESULT hr = SHGetPropertyStoreForWindow( hWnd, IID_PPV_ARGS(&pps)); pps->SetValue(PKEY_AppUserModel_ID, pv); PROPVARIANT pv; InitPropVariantFromString( L"Microsoft.Samples.AppId2", &pv); IPropertyStore *pps; HRESULT hr = SHGetPropertyStoreForWindow( hWnd, IID_PPV_ARGS(&pps)); pps->SetValue(PKEY_AppUserModel_ID, pv); //WinForms: TaskbarManager.SetApplicationIdForSpecificWindow (IntPtr windowHandle, string appId) //WPF: TaskbarManager.SetApplicationIdForSpecificWindow (System.Windows.Window window, string appId) //WinForms: TaskbarManager.SetApplicationIdForSpecificWindow (IntPtr windowHandle, string appId) //WPF: TaskbarManager.SetApplicationIdForSpecificWindow (System.Windows.Window window, string appId)

Destinations (“nouns”) Tasks (“verbs”) Known categories Custom categories User tasks Taskbar tasks Pinned category

SHAddToRecentDocs(SHARDW_PATH, "file.ext"); RH.RegisterFileAssociations(...); OpenFileDialog ofd =...; ofd.ShowDialog(); JumpList jl =...; jl.AddToRecent("file.ext"); RH.RegisterFileAssociations(...); OpenFileDialog ofd =...; ofd.ShowDialog(); JumpList jl =...; jl.AddToRecent("file.ext");

IObjectCollection* poc =...; IShellLink* task =...; Poc->AddObject(task); ICustomDestinationList* pcdl =...; Pcdl->BeginList(...); IObjectArray* poa =... poc; Pcdl->AddUserTasks(poa); Pcdl->CommitList(); IObjectCollection* poc =...; IShellLink* task =...; Poc->AddObject(task); ICustomDestinationList* pcdl =...; Pcdl->BeginList(...); IObjectArray* poa =... poc; Pcdl->AddUserTasks(poa); Pcdl->CommitList(); JumpList jl =...; jl.AddUserTasks(params IJumpListTask[] tasks); JumpList jl =...; jl.AddUserTasks(params IJumpListTask[] tasks);

IObjectCollection* poc =...; IShellItem* item =...; Poc->AddObject(item); ICustomDestinationList* pcdl =...; Pcdl->BeginList(...); IObjectArray* poa =... poc; Pcdl->AppendCategory(L"Sales", poa); Pcdl->CommitList(); IObjectCollection* poc =...; IShellItem* item =...; Poc->AddObject(item); ICustomDestinationList* pcdl =...; Pcdl->BeginList(...); IObjectArray* poa =... poc; Pcdl->AppendCategory(L"Sales", poa); Pcdl->CommitList(); JumpList jl =...; jlm.AddCustomDestination(params JumpListCustomCategory[] customCategories); JumpList jl =...; jlm.AddCustomDestination(params JumpListCustomCategory[] customCategories);

ITaskbarList3* ptl =...; ptl->SetOverlayIcon( hwnd, hicon, L"Accessible Description"); ptl->SetProgressState(hwnd, TBPF_NORMAL); for (int i = 0; i < MAX; ++i) { ptl->SetProgressValue(hwnd, i, MAX); } ITaskbarList3* ptl =...; ptl->SetOverlayIcon( hwnd, hicon, L"Accessible Description"); ptl->SetProgressState(hwnd, TBPF_NORMAL); for (int i = 0; i < MAX; ++i) { ptl->SetProgressValue(hwnd, i, MAX); } myForm.SetTaskbarOverlayIcon(icon, "..."); ProgressBar pb =...; pb.SetTaskbarProgress(); myForm.SetTaskbarOverlayIcon(icon, "..."); ProgressBar pb =...; pb.SetTaskbarProgress();

//WinForms: TaskbarManager.SetOverlayIcon (IntPtr windowHandle, System.Drawing.Icon icon, string accessibilityText) //WPF: TaskbarManager.SetOverlayIcon (System.Windows.Window window, System.Drawing.Icon icon, string accessibilityText) //WinForms: TaskbarManager.SetOverlayIcon (IntPtr windowHandle, System.Drawing.Icon icon, string accessibilityText) //WPF: TaskbarManager.SetOverlayIcon (System.Windows.Window window, System.Drawing.Icon icon, string accessibilityText)

Overlay-Icons-and-Progress-Bars/

DwmSetWindowAttribute(...,DWMWA_HAS_ICONIC_BITMAP,...); DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...); /* in the WndProc */ case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm =...; DwmSetIconicThumbnail(hwnd, hbm,...); DwmSetWindowAttribute(...,DWMWA_HAS_ICONIC_BITMAP,...); DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...); /* in the WndProc */ case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm =...; DwmSetIconicThumbnail(hwnd, hbm,...); TabbedThumbnailManager ttm = new...; ttm.AddThumbnailPreview(TabbedThumbnail preview) TabbedThumbnailManager ttm = new...; ttm.AddThumbnailPreview(TabbedThumbnail preview)

Thumbnails/

What is the Springboard Series? To the IT pro, our goal is Be the definitive resource for Desktop IT pros Open, honest; show don’t tell Information at right time, right level across Adoption Lifecycle Inside of Microsoft we are A turnkey IT pro engagement platform for depth and breadth The program to mobilize MS marketing and field to focus on desktop OS IT pros DEPLOYPILOTMANAGEEXPLOREDISCOVER one-Windows TechCenter in 10 languages Virtual Roundtable Events Springboard Technical Experts Panel Event Support and Resources Straight-talk Monthly Feature Articles and Overview Guides TalkingAboutWindows Video Blogs

Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31 st You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year