{"id":220,"date":"2009-09-26T21:58:09","date_gmt":"2009-09-26T16:28:09","guid":{"rendered":"http:\/\/live-42gears-site.pantheonsite.io\/blog\/?p=220"},"modified":"2023-01-13T05:49:06","modified_gmt":"2023-01-13T05:49:06","slug":"programmatically-display-system-tray-icon-on-windows-mobile","status":"publish","type":"post","link":"https:\/\/www.42gears.com\/pt-br\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/","title":{"rendered":"Programmatically display system tray icon on Windows Mobile"},"content":{"rendered":"<p>As a Windows Mobile user you would have seen some icons near to the bottom right corner of the Today screen. These icons give users ability to easily launch the application or show an menu with more choices.<\/p>\n<div id=\"attachment_221\" style=\"width: 614px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-221\" src=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\" alt=\"Tray icons on Today screen (Dell Axim)\" title=\"Tray icons on Today screen (Dell Axim)\" width=\"604\" height=\"320\" class=\"size-full wp-image-221\"><p id=\"caption-attachment-221\" class=\"wp-caption-text\">Tray icons on Today screen (Dell Axim)<\/p><\/div>\n<p>This post discusses the steps and code to put your own icon in the system tray.  I will also provide a solution to a common issue with Windows Mobile whereby its not easy to know the coordinates of the icon or the coordinates where the user might have tapped within the tray area.<\/p>\n<p>okay\u2026I will take an example of a Win32 native application. The concepts will hold good even if you are programming with some other framework.<br \/>\n1. Declare some variables and function prototypes<\/p>\n<p>\/\/ some required defines<br \/>\n#define WM_SYSTRAY_MSG    WM_USER+1<br \/>\n#define ID_TRAY            1<\/p>\n<p>\/\/ some variables<br \/>\nstatic NOTIFYICONDATA    g_structNotifyIconData = {0};<br \/>\nstatic HWND                g_hWndMain = NULL;<br \/>\nstatic HWND                g_hWnd = NULL;<br \/>\nstatic WNDPROC            g_fnProc = NULL;<br \/>\nstatic DWORD            g_dwTapPos = 0;<\/p>\n<p>LRESULT DesktopExplorerWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);<br \/>\n2. Implement a wrapper function to show and hide tray icon.<\/p>\n<p>BOOL ShowTrayIcon(HWND hWnd, BOOL bShowIcon)<br \/>\n{<br \/>\nBOOL bRet = FALSE;<\/p>\n<p>g_structNotifyIconData.cbSize = sizeof(NOTIFYICONDATA);<br \/>\ng_structNotifyIconData.hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_SHOWTRAYICON));<br \/>\ng_structNotifyIconData.hWnd = hWnd;<br \/>\ng_structNotifyIconData.uCallbackMessage = WM_SYSTRAY_MSG;<br \/>\ng_structNotifyIconData.uFlags = NIF_MESSAGE | NIF_ICON;<br \/>\ng_structNotifyIconData.szTip[0] = \u201d;<br \/>\ng_structNotifyIconData.uID = ID_TRAY;<\/p>\n<p>if (bShowIcon)<br \/>\nbRet = Shell_NotifyIcon(NIM_ADD, &amp;g_structNotifyIconData);<br \/>\nelse<br \/>\nbRet = Shell_NotifyIcon(NIM_DELETE, &amp;g_structNotifyIconData);<\/p>\n<p>return bRet;<br \/>\n}<\/p>\n<p>Above function fills up fields in NOTIFYICONDATA structure, setting the icon resource handle, parent window handle, callback message identifier, flags specifying that uCallbackMessage and icon information is being set and an user defined ID value.<br \/>\n3. Call ShowTrayIcon function in WM_CREATE handler<\/p>\n<p>In the WM_CREATE  handler portion of the main WndProc function, call ShowTrayIcon(hWnd, TRUE).<\/p>\n<p>case WM_CREATE:<\/p>\n<p>ShowTrayIcon(hWnd, TRUE);<\/p>\n<p>\u2026<\/p>\n<p>\u2026<br \/>\n4. Add handler for WM_SYSTRAY_MSG<\/p>\n<p>WM_SYSTRAY_MSG will be sent to the main window procedure (WndProc) when the user taps or clicks on the icon. We must add the following code to make some good use of the icon.<\/p>\n<p>switch (message)<br \/>\n{<br \/>\ncase WM_SYSTRAY_MSG:<br \/>\n{<br \/>\nswitch (lParam)<br \/>\n{<br \/>\ncase WM_LBUTTONDOWN:<br \/>\nif (ID_TRAY == wParam)<br \/>\n{<br \/>\nBOOL bRet = FALSE;<br \/>\nPOINT pt = {0};<br \/>\nHMENU hTrayMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_TRAY_MENU));<br \/>\nif (hTrayMenu)<br \/>\n{<br \/>\nHMENU hSubMenu = GetSubMenu(hTrayMenu, 0);<br \/>\npt.x = LOWORD(g_dwTapPos);<br \/>\npt.y = HIWORD(g_dwTapPos);<br \/>\nbRet = TrackPopupMenu(hSubMenu, TPM_CENTERALIGN | TPM_BOTTOMALIGN, pt.x, pt.y, 0, hWnd, NULL);<br \/>\ndwError = GetLastError();<br \/>\nDestroyMenu(hSubMenu);<br \/>\nDestroyMenu(hTrayMenu);<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\nbreak;<\/p>\n<p>Here we know that user has tapped on the icon area. As a result we can do anything that we might want. Here I an showing up a popup menu using TrackPopupMenu API. g_dwTapPos variable contains the x &amp; y position where the user tapped on the system tray area. We will see later how we get the information in g_dwTapPos. Note that GetCursorPos() does not get us this position value on Windows Mobile whereas it works on Windows desktop.<br \/>\n5. Getting the tap coordinates on system tray icon<\/p>\n<p>One way I found to know the coordinates where the user tapped or clicked on the taskbar is to subclass the DesktopExplorerWindow and trap WM_CANCELMODE message. In the handler for WM_CANCELMODE, calling GetMessagePos() will return the position into a g_dwTapPos variable.<\/p>\n<p>\/\/<br \/>\n\/\/ DesktopExplorerWindow<br \/>\n\/\/<br \/>\nLRESULT DesktopExplorerWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)<br \/>\n{<br \/>\nswitch (msg)<br \/>\n{<br \/>\n\/\/ Trap WM_CANCELMODE message<br \/>\n\/\/ This will get us the point at which tap occurred<br \/>\ncase WM_CANCELMODE:<br \/>\ng_dwTapPos = GetMessagePos();<br \/>\nbreak;<br \/>\n}<\/p>\n<p>return ::CallWindowProc(g_fnProc, hWnd, msg, wParam, lParam);<br \/>\n}<\/p>\n<p>BOOL HookDesktopExplorerWindow()<br \/>\n{<br \/>\nif(g_fnProc)<br \/>\nreturn FALSE;<\/p>\n<p>g_hWnd = ::FindWindow(_T(\u201dDesktopExplorerWindow\u201d), NULL);<br \/>\nif(g_hWnd)<br \/>\n{<br \/>\ng_fnProc = (WNDPROC)::SetWindowLong(g_hWnd, GWL_WNDPROC, (LONG)DesktopExplorerWindowProc);<br \/>\n}<\/p>\n<p>return g_hWnd != NULL;<br \/>\n}<\/p>\n<p>BOOL FreeDesktopExplorerWindow()<br \/>\n{<br \/>\nif(!g_fnProc)<br \/>\nreturn FALSE;<\/p>\n<p>::SetWindowLong(g_hWnd, GWL_WNDPROC, (LONG)g_fnProc);<br \/>\ng_fnProc = NULL;<\/p>\n<p>return TRUE;<br \/>\n}<\/p>\n<p>HookDesktopExplorerWindow can be called from WM_CREATE handler in main Window procedure before calling ShowTrayIcon. FreeDesktopExplorerWindow can be called from WM_DESTROY handler in main Window procedure.<\/p>\n<div id=\"attachment_222\" style=\"width: 563px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-222\" src=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon2.png\" alt=\"Tray Icon\" title=\"Tray Icon\" width=\"553\" height=\"320\" class=\"size-full wp-image-222\"><p id=\"caption-attachment-222\" class=\"wp-caption-text\">Tray Icon<\/p><\/div>\n<p>See below how the icon and popup menu shows up in my sample application.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a Windows Mobile user you would have seen some icons near to the bottom right corner of the Today screen. These icons give users ability to easily launch the application or show an menu with more choices. This post discusses the steps and code to put your own icon in the system tray. I&hellip;<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[39,8],"tags":[],"class_list":["post-220","post","type-post","status-publish","format-standard","hentry","category-development","category-general"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Programmatically Display System Tray Icon On Windows Mobile | 42Gears<\/title>\n<meta name=\"description\" content=\"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programmatically display system tray icon on Windows Mobile\" \/>\n<meta property=\"og:description\" content=\"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"42Gears Mobility Systems\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/42gears\" \/>\n<meta property=\"article:published_time\" content=\"2009-09-26T16:28:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T05:49:06+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\" \/>\n<meta name=\"author\" content=\"42Gears Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@42Gears\" \/>\n<meta name=\"twitter:site\" content=\"@42Gears\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"42Gears Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\"},\"author\":{\"name\":\"42Gears Team\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\"},\"headline\":\"Programmatically display system tray icon on Windows Mobile\",\"datePublished\":\"2009-09-26T16:28:09+00:00\",\"dateModified\":\"2023-01-13T05:49:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\"},\"wordCount\":717,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\",\"articleSection\":[\"Development\",\"General\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\",\"url\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\",\"name\":\"Programmatically Display System Tray Icon On Windows Mobile | 42Gears\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\",\"datePublished\":\"2009-09-26T16:28:09+00:00\",\"dateModified\":\"2023-01-13T05:49:06+00:00\",\"description\":\"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage\",\"url\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\",\"contentUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.42gears.com\/pt-br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmatically display system tray icon on Windows Mobile\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.42gears.com\/#website\",\"url\":\"https:\/\/www.42gears.com\/\",\"name\":\"42Gears Mobility Systems\",\"description\":\"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown\",\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.42gears.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.42gears.com\/#organization\",\"name\":\"MDM - 42Gears\",\"url\":\"https:\/\/www.42gears.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"contentUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"width\":499,\"height\":330,\"caption\":\"MDM - 42Gears\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/42gears\",\"https:\/\/x.com\/42Gears\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\",\"name\":\"42Gears Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"caption\":\"42Gears Team\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Programmatically Display System Tray Icon On Windows Mobile | 42Gears","description":"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/","og_locale":"pt_BR","og_type":"article","og_title":"Programmatically display system tray icon on Windows Mobile","og_description":"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.","og_url":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/","og_site_name":"42Gears Mobility Systems","article_publisher":"https:\/\/www.facebook.com\/42gears","article_published_time":"2009-09-26T16:28:09+00:00","article_modified_time":"2023-01-13T05:49:06+00:00","og_image":[{"url":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png","type":"","width":"","height":""}],"author":"42Gears Team","twitter_card":"summary_large_image","twitter_creator":"@42Gears","twitter_site":"@42Gears","twitter_misc":{"Written by":"42Gears Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#article","isPartOf":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/"},"author":{"name":"42Gears Team","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d"},"headline":"Programmatically display system tray icon on Windows Mobile","datePublished":"2009-09-26T16:28:09+00:00","dateModified":"2023-01-13T05:49:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/"},"wordCount":717,"commentCount":0,"publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"image":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage"},"thumbnailUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png","articleSection":["Development","General"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/","url":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/","name":"Programmatically Display System Tray Icon On Windows Mobile | 42Gears","isPartOf":{"@id":"https:\/\/www.42gears.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage"},"thumbnailUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png","datePublished":"2009-09-26T16:28:09+00:00","dateModified":"2023-01-13T05:49:06+00:00","description":"42Gears\u2019 blog has everything you need to future-proof your business. Know the steps and code to put your own icon in the system tray on mobile Windows devices.","breadcrumb":{"@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#primaryimage","url":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png","contentUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/trayicon1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.42gears.com\/blog\/programmatically-display-system-tray-icon-on-windows-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.42gears.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Programmatically display system tray icon on Windows Mobile"}]},{"@type":"WebSite","@id":"https:\/\/www.42gears.com\/#website","url":"https:\/\/www.42gears.com\/","name":"42Gears Mobility Systems","description":"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown","publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.42gears.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.42gears.com\/#organization","name":"MDM - 42Gears","url":"https:\/\/www.42gears.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","contentUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","width":499,"height":330,"caption":"MDM - 42Gears"},"image":{"@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/42gears","https:\/\/x.com\/42Gears"]},{"@type":"Person","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d","name":"42Gears Team","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","caption":"42Gears Team"}}]}},"author_meta":{"ID":"7","user_nicename":"42gears","user_email":"42gears@gmail.com","user_registered":"2015-07-15 04:55:37","display_name":"42Gears Team","first_name":"42Gears","last_name":"Team"},"_links":{"self":[{"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/posts\/220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/comments?post=220"}],"version-history":[{"count":2,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/posts\/220\/revisions"}],"predecessor-version":[{"id":85152,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/posts\/220\/revisions\/85152"}],"wp:attachment":[{"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/media?parent=220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/categories?post=220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.42gears.com\/pt-br\/wp-json\/wp\/v2\/tags?post=220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}