{"id":24934,"date":"2022-12-06T21:01:58","date_gmt":"2022-12-06T15:31:58","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/"},"modified":"2022-12-06T21:01:58","modified_gmt":"2022-12-06T15:31:58","slug":"solved-correctly-receive-messages-from-button","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/","title":{"rendered":"[Solved] Correctly receive messages from button"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-20554537\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"20554537\" data-parentid=\"20552523\" data-score=\"3\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>To detect a button press in another process, you have to hook that process.  You have four choices for doing that:<\/p>\n<ol>\n<li>\n<p>use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644990%28v=vs.85%29.aspx\"><code>SetWindowsHookEx()<\/code><\/a> to install a <code>WH_CALLWNDPROC<\/code> or <code>WH_GETMESSAGE<\/code> hook into the target process to catch the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb761825%28v=vs.85%29.aspx\"><code>WM_COMMAND\/BN_CLICKED<\/code><\/a> message that is sent to the button&#8217;s parent window when the button is clicked.  The message identifies the <code>HWND<\/code> and ID of the button that was clicked.  The hook <strong>must<\/strong> be implemented in a DLL so it can be injected into another process.<\/p>\n<\/li>\n<li>\n<p>use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd373640%28v=vs.85%29.aspx\"><code>SetWinEventHook()<\/code><\/a> to catch the <code>EVENT_OBJECT_INVOKED<\/code> event when the button is clicked.  The hook callback identifies the <code>HWND<\/code> and ID of the button that was clicked.  The hook <strong>should<\/strong> be implemented in a DLL so it can be injected into the target process for better performance, but is not <strong>required<\/strong>.  If you do not use a DLL, the hooking thread <strong>must<\/strong> have a message loop to receive the events as they will have to be passed across process boundaries.<\/p>\n<\/li>\n<li>\n<p>use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644990%28v=vs.85%29.aspx\"><code>SetWindowsHookEx()<\/code><\/a> or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms682437%28v=vs.85%29.aspx\"><code>CreateRemoteThread()<\/code><\/a> to inject code into the target process and have that code then subclass the button&#8217;s parent window using <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644898%28v=vs.85%29.aspx\"><code>SetWindowsLongPtr(GWL_WNDPROC)<\/code><\/a> or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb762102%28v=vs.85%29.aspx\"><code>SetWindowSubclass()<\/code><\/a> in order to catch the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb761825%28v=vs.85%29.aspx\"><code>WM_COMMAND\/BN_CLICKED<\/code><\/a> message that is sent to that parent window.<\/p>\n<\/li>\n<li>\n<p>use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee684009.aspx\">UI Automation<\/a>.  Create an instance of the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee671406.aspx\"><code>IUIAutomation<\/code><\/a> interface using the <code>CoCreateInstance()<\/code> function, then use the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee671534.aspx\"><code>IUIAutomation::ElementFromHandle()<\/code><\/a> method to get an <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee671425.aspx%2a\"><code>IUIAutomationElement<\/code><\/a> interface from the button&#8217;s <code>HWND<\/code> (or obtain the button&#8217;s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee671425.aspx%2a\"><code>IUIAutomationElement<\/code><\/a> interface through other means), then use the  <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee671508.aspx\"><code>IUIAutomation::AddAutomationEventHandler()<\/code><\/a> method to subscribe to the <code>UIA_Invoke_InvokedEventId<\/code> event for that button.<\/p>\n<\/li>\n<\/ol>\n<p>If you have the <code>HWND<\/code> of the target button, you can use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms633522%28v=vs.85%29.aspx\"><code>GetWindowThreadProcessId()<\/code><\/a> to retrieve the button&#8217;s process ID and thread ID.  You will need the button&#8217;s parent window <code>HWND<\/code> (which you can get using <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms633510%28v=vs.85%29.aspx\"><code>GetParent()<\/code><\/a> if needed) in order to use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644898%28v=vs.85%29.aspx\"><code>SetWindowsLongPtr(GWL_WNDPROC)<\/code><\/a> or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb762102%28v=vs.85%29.aspx\"><code>SetWindowSubclass()<\/code><\/a>.<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644990%28v=vs.85%29.aspx\"><code>SetWindowsHookEx()<\/code><\/a> and <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd373640%28v=vs.85%29.aspx\"><code>SetWinEventHook()<\/code><\/a> allow you to specify the specific thread ID to hook (and in the case of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd373640%28v=vs.85%29.aspx\"><code>SetWinEventHook()<\/code><\/a>, the specific process ID as well) so you can minimize overhead used in hooking.  <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms682437%28v=vs.85%29.aspx\"><code>CreateRemoteThread()<\/code><\/a> requires the target process handle, which you can get with <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms684320%28v=vs.85%29.aspx\"><code>OpenProcess()<\/code><\/a> using the process ID.<\/p>\n<p>So, as you can see, what you are asking for is not going to be trivial to implement.  In my opinion (not definitive), the order of techniques from easiest to hardest, in terms of coding, would be:<\/p>\n<ol>\n<li>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd373640%28v=vs.85%29.aspx\"><code>SetWinEventHook()<\/code><\/a> without a DLL (but at the cost of affecting performance).<\/p>\n<\/li>\n<li>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee684009.aspx\">UI Automation<\/a>.<\/p>\n<\/li>\n<li>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644990%28v=vs.85%29.aspx\"><code>SetWindowsHookEx()<\/code><\/a>, or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd373640%28v=vs.85%29.aspx\"><code>SetWinEventHook()<\/code><\/a> with a DLL.<\/p>\n<\/li>\n<li>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms644990%28v=vs.85%29.aspx\"><code>SetWindowsHookEx()<\/code><\/a> because of the extra injection code and subclassing<\/p>\n<\/li>\n<\/ol><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Correctly receive messages from button <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] To detect a button press in another process, you have to hook that process. You have four choices for doing that: use SetWindowsHookEx() to install a WH_CALLWNDPROC or WH_GETMESSAGE hook into the target process to catch the WM_COMMAND\/BN_CLICKED message that is sent to the button&#8217;s parent window when the button is clicked. The message &#8230; <a title=\"[Solved] Correctly receive messages from button\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/\" aria-label=\"More on [Solved] Correctly receive messages from button\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,683],"class_list":["post-24934","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-winapi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] Correctly receive messages from button - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Correctly receive messages from button - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] To detect a button press in another process, you have to hook that process. You have four choices for doing that: use SetWindowsHookEx() to install a WH_CALLWNDPROC or WH_GETMESSAGE hook into the target process to catch the WM_COMMAND\/BN_CLICKED message that is sent to the button&#8217;s parent window when the button is clicked. The message ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-06T15:31:58+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Correctly receive messages from button\",\"datePublished\":\"2022-12-06T15:31:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/\"},\"wordCount\":393,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"c++\",\"winapi\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/\",\"name\":\"[Solved] Correctly receive messages from button - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2022-12-06T15:31:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-correctly-receive-messages-from-button\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Correctly receive messages from button\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Correctly receive messages from button - JassWeb","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:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Correctly receive messages from button - JassWeb","og_description":"[ad_1] To detect a button press in another process, you have to hook that process. You have four choices for doing that: use SetWindowsHookEx() to install a WH_CALLWNDPROC or WH_GETMESSAGE hook into the target process to catch the WM_COMMAND\/BN_CLICKED message that is sent to the button&#8217;s parent window when the button is clicked. The message ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/","og_site_name":"JassWeb","article_published_time":"2022-12-06T15:31:58+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Correctly receive messages from button","datePublished":"2022-12-06T15:31:58+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/"},"wordCount":393,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","winapi"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/","url":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/","name":"[Solved] Correctly receive messages from button - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-06T15:31:58+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-correctly-receive-messages-from-button\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Correctly receive messages from button"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/24934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=24934"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/24934\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=24934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=24934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=24934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}