CINXE.COM
Component Object Model - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Component Object Model - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"35344d0b-14f8-4e07-b89c-94a4d8d613dd","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Component_Object_Model","wgTitle":"Component Object Model","wgCurRevisionId":1258606858,"wgRevisionId":1258606858,"wgArticleId":17058007,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Use mdy dates from January 2019","Use American English from January 2019","All Wikipedia articles written in American English","Articles needing additional references from January 2024","All articles needing additional references","Pages displaying wikidata descriptions as a fallback via Module:Annotated link","Component-based software engineering", "Inter-process communication","Microsoft application programming interfaces","Object models","Object request broker","Object-oriented programming"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Component_Object_Model","wgRelevantArticleId":17058007,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":40000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true, "wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q662200","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready", "ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Component Object Model - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Component_Object_Model"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Component_Object_Model&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Component_Object_Model"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Component_Object_Model rootpage-Component_Object_Model skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Component+Object+Model" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Component+Object+Model" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Component+Object+Model" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Component+Object+Model" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Related_technologies" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Related_technologies"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Related technologies</span> </div> </a> <button aria-controls="toc-Related_technologies-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Related technologies subsection</span> </button> <ul id="toc-Related_technologies-sublist" class="vector-toc-list"> <li id="toc-MSRPC" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MSRPC"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>MSRPC</span> </div> </a> <ul id="toc-MSRPC-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DCOM" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DCOM"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>DCOM</span> </div> </a> <ul id="toc-DCOM-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-COM+" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#COM+"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>COM+</span> </div> </a> <ul id="toc-COM+-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-.NET" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#.NET"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>.NET</span> </div> </a> <ul id="toc-.NET-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Windows_Runtime" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Windows_Runtime"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Windows Runtime</span> </div> </a> <ul id="toc-Windows_Runtime-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Nano-COM" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Nano-COM"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>Nano-COM</span> </div> </a> <ul id="toc-Nano-COM-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Security" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Security"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Security</span> </div> </a> <button aria-controls="toc-Security-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Security subsection</span> </button> <ul id="toc-Security-sublist" class="vector-toc-list"> <li id="toc-In_Internet_Explorer" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#In_Internet_Explorer"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>In Internet Explorer</span> </div> </a> <ul id="toc-In_Internet_Explorer-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Process_corruption" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Process_corruption"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Process corruption</span> </div> </a> <ul id="toc-Process_corruption-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Binding" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Binding"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Binding</span> </div> </a> <ul id="toc-Binding-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Type_system" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Type_system"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Type system</span> </div> </a> <button aria-controls="toc-Type_system-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Type system subsection</span> </button> <ul id="toc-Type_system-sublist" class="vector-toc-list"> <li id="toc-Coclass" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Coclass"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Coclass</span> </div> </a> <ul id="toc-Coclass-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Interface" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Interface"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Interface</span> </div> </a> <ul id="toc-Interface-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Type_library" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Type_library"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.3</span> <span>Type library</span> </div> </a> <ul id="toc-Type_library-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Examples" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.4</span> <span>Examples</span> </div> </a> <ul id="toc-Examples-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Reference_counting" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Reference_counting"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Reference counting</span> </div> </a> <ul id="toc-Reference_counting-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Programming_context" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Programming_context"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Programming context</span> </div> </a> <ul id="toc-Programming_context-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Type_metadata_storage" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Type_metadata_storage"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Type metadata storage</span> </div> </a> <ul id="toc-Type_metadata_storage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Marshalling" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Marshalling"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Marshalling</span> </div> </a> <ul id="toc-Marshalling-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Threading" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Threading"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Threading</span> </div> </a> <ul id="toc-Threading-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Criticisms" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Criticisms"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>Criticisms</span> </div> </a> <button aria-controls="toc-Criticisms-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Criticisms subsection</span> </button> <ul id="toc-Criticisms-sublist" class="vector-toc-list"> <li id="toc-Complexity" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Complexity"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.1</span> <span>Complexity</span> </div> </a> <ul id="toc-Complexity-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Message_pumping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Message_pumping"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.2</span> <span>Message pumping</span> </div> </a> <ul id="toc-Message_pumping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Reference_counting_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Reference_counting_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.3</span> <span>Reference counting</span> </div> </a> <ul id="toc-Reference_counting_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DLL_Hell" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DLL_Hell"> <div class="vector-toc-text"> <span class="vector-toc-numb">11.4</span> <span>DLL Hell</span> </div> </a> <ul id="toc-DLL_Hell-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Notes" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Notes"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>Notes</span> </div> </a> <ul id="toc-Notes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">14</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">15</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Component Object Model</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 24 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-24" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">24 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%86%D9%85%D9%88%D8%B0%D8%AC_%D9%83%D8%A7%D8%A6%D9%86_%D8%A7%D9%84%D9%85%D9%83%D9%88%D9%86" title="نموذج كائن المكون – Arabic" lang="ar" hreflang="ar" data-title="نموذج كائن المكون" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Komponentl%C9%99rin_obyekt_modeli" title="Komponentlərin obyekt modeli – Azerbaijani" lang="az" hreflang="az" data-title="Komponentlərin obyekt modeli" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Catalan" lang="ca" hreflang="ca" data-title="Component Object Model" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Czech" lang="cs" hreflang="cs" data-title="Component Object Model" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/COM_(software)" title="COM (software) – Danish" lang="da" hreflang="da" data-title="COM (software)" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – German" lang="de" hreflang="de" data-title="Component Object Model" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Spanish" lang="es" hreflang="es" data-title="Component Object Model" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%85%D8%AF%D9%84_%D8%B4%DB%8C%D8%A1_%D9%85%D8%A4%D9%84%D9%81%D9%87" title="مدل شیء مؤلفه – Persian" lang="fa" hreflang="fa" data-title="مدل شیء مؤلفه" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – French" lang="fr" hreflang="fr" data-title="Component Object Model" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8_%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8_%EB%AA%A8%EB%8D%B8" title="컴포넌트 오브젝트 모델 – Korean" lang="ko" hreflang="ko" data-title="컴포넌트 오브젝트 모델" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Italian" lang="it" hreflang="it" data-title="Component Object Model" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/COM" title="COM – Hebrew" lang="he" hreflang="he" data-title="COM" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Hungarian" lang="hu" hreflang="hu" data-title="Component Object Model" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Mongolian" lang="mn" hreflang="mn" data-title="Component Object Model" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Dutch" lang="nl" hreflang="nl" data-title="Component Object Model" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Japanese" lang="ja" hreflang="ja" data-title="Component Object Model" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Polish" lang="pl" hreflang="pl" data-title="Component Object Model" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Portuguese" lang="pt" hreflang="pt" data-title="Component Object Model" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Russian" lang="ru" hreflang="ru" data-title="Component Object Model" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Slovak" lang="sk" hreflang="sk" data-title="Component Object Model" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Finnish" lang="fi" hreflang="fi" data-title="Component Object Model" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Swedish" lang="sv" hreflang="sv" data-title="Component Object Model" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Component_Object_Model" title="Component Object Model – Ukrainian" lang="uk" hreflang="uk" data-title="Component Object Model" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E7%BB%84%E4%BB%B6%E5%AF%B9%E8%B1%A1%E6%A8%A1%E5%9E%8B" title="组件对象模型 – Chinese" lang="zh" hreflang="zh" data-title="组件对象模型" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q662200#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Component_Object_Model" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Component_Object_Model" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Component_Object_Model"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Component_Object_Model&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Component_Object_Model&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Component_Object_Model"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Component_Object_Model&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Component_Object_Model&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Component_Object_Model" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Component_Object_Model" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Component_Object_Model&oldid=1258606858" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Component_Object_Model&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Component_Object_Model&id=1258606858&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComponent_Object_Model"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComponent_Object_Model"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Component_Object_Model&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Component_Object_Model&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q662200" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Software component technology from Microsoft</div> <p class="mw-empty-elt"> </p> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox hproduct"><caption class="infobox-title fn">COM</caption><tbody><tr><td colspan="2" class="infobox-subheader">Component Object Model</td></tr><tr><th scope="row" class="infobox-label">Abbreviation</th><td class="infobox-data">COM</td></tr><tr><th scope="row" class="infobox-label">Status</th><td class="infobox-data">In force</td></tr><tr><th scope="row" class="infobox-label">First published</th><td class="infobox-data">1993<span class="noprint">; 31 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1993</span>)</span></td></tr><tr><th scope="row" class="infobox-label">Latest version</th><td class="infobox-data">Living standard<br />2021</td></tr><tr><th scope="row" class="infobox-label">Organization</th><td class="infobox-data"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label">Series</th><td class="infobox-data"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/windows/win32/system-services">System Services</a></td></tr><tr><th scope="row" class="infobox-label">Base standards</th><td class="infobox-data"><a href="/wiki/Microsoft_Interface_Definition_Language" title="Microsoft Interface Definition Language">MIDL</a>, <a href="/wiki/Universally_unique_identifier" title="Universally unique identifier">UUID</a></td></tr><tr><th scope="row" class="infobox-label">Related standards</th><td class="infobox-data"><div><ul><li>replaced: <a href="/wiki/Dynamic_Data_Exchange" title="Dynamic Data Exchange">DDE</a></li><li>built upon COM: <a href="/wiki/Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a>, <a href="/wiki/OLE_Automation" title="OLE Automation">OLE Automation</a>, <a href="/wiki/Browser_Helper_Object" title="Browser Helper Object">Browser Helper Object</a>, <a href="/wiki/ActiveX" title="ActiveX">ActiveX</a>, <a href="#COM+">COM+</a>, <a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a>, <a href="/wiki/Windows_shell" title="Windows shell">Windows shell</a>, <a href="/wiki/DirectX" title="DirectX">DirectX</a>, <a href="/wiki/UMDF" class="mw-redirect" title="UMDF">UMDF</a>, <a href="/wiki/Windows_Runtime" title="Windows Runtime">Windows Runtime</a></li></ul></div></td></tr><tr><th scope="row" class="infobox-label">Domain</th><td class="infobox-data">Component Interfacing</td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/windows/win32/com/the-component-object-model">learn<wbr />.microsoft<wbr />.com<wbr />/en-us<wbr />/windows<wbr />/win32<wbr />/com<wbr />/the-component-object-model</a></span></td></tr></tbody></table> <p><b>Component Object Model</b> (<b>COM</b>) is a <a href="/wiki/Application_Binary_Interface" class="mw-redirect" title="Application Binary Interface">binary-interface</a> technology for <a href="/wiki/Software_component" title="Software component">software components</a> from <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> that enables using <a href="/wiki/Object_(computer_science)" title="Object (computer science)">objects</a> in a <a href="/wiki/Language-neutral" class="mw-redirect" title="Language-neutral">language-neutral</a> way between different <a href="/wiki/Programming_languages" class="mw-redirect" title="Programming languages">programming languages</a>, programming contexts, <a href="/wiki/Process_(computing)" title="Process (computing)">processes</a> and <a href="/wiki/Computer" title="Computer">machines</a>. </p><p>COM is the basis for other Microsoft domain specific component technologies including <a href="/wiki/Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a>, <a href="/wiki/OLE_Automation" title="OLE Automation">OLE Automation</a>, <a href="/wiki/ActiveX" title="ActiveX">ActiveX</a>, <a href="#COM+">COM+</a>, and <a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a> as well as <a href="/wiki/Implementation" title="Implementation">implementations</a> such as <a href="/wiki/DirectX" title="DirectX">DirectX</a>, <a href="/wiki/Windows_shell" title="Windows shell">Windows shell</a>, <a href="/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a>, <a href="/wiki/Windows_Runtime" title="Windows Runtime">Windows Runtime</a>, and <a href="/wiki/Browser_Helper_Object" title="Browser Helper Object">Browser Helper Object</a>. </p><p>COM enables object use with only knowing its interface; not its internal implementation. The component implementer defines <a href="/wiki/Interface_(object-oriented_programming)" title="Interface (object-oriented programming)">interfaces</a> that are separate from the implementation. </p><p>Support for multiple programming contexts is handled by relying on the object for aspects that would be challenging to implement as a facility. Supporting multiple uses of an object is handled by requiring each object to destroy itself via <a href="/wiki/Reference_counting" title="Reference counting">reference-counting</a>. Access to an object's interfaces (similar to <a href="/wiki/Type_conversion" title="Type conversion">Type conversion</a>) is provided by each object as well. </p><p>COM is available only in <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> and Apple's <a href="/wiki/Core_Foundation" title="Core Foundation">Core Foundation</a> 1.3 and later plug-in <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interface</a> (API).<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The latter only implements a subset of the whole COM interface.<sup id="cite_ref-COM_on_MacOS_2-0" class="reference"><a href="#cite_note-COM_on_MacOS-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p>Over time, COM is being replaced with other technologies such as <a href="/wiki/.NET_Framework" title=".NET Framework">Microsoft .NET</a> and <a href="/wiki/Web_services" class="mw-redirect" title="Web services">web services</a> (i.e. via <a href="/wiki/Windows_communication_foundation" class="mw-redirect" title="Windows communication foundation">WCF</a>). However, COM objects can be used in a .NET language via <a href="/wiki/COM_Interop" title="COM Interop">COM Interop</a>. </p><p>COM is similar to other component technologies such as <a href="/wiki/IBM_System_Object_Model" title="IBM System Object Model">SOM</a>, <a href="/wiki/CORBA" class="mw-redirect" title="CORBA">CORBA</a> and <a href="/wiki/Enterprise_JavaBeans" class="mw-redirect" title="Enterprise JavaBeans">Enterprise JavaBeans</a>, although each has its strengths and weaknesses. </p><p>Unlike <a href="/wiki/C%2B%2B" title="C++">C++</a>, COM provides a stable <a href="/wiki/Application_binary_interface" title="Application binary interface">application binary interface</a> (ABI) that is unaffected by compiler differences.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> This makes using COM advantageous for object-oriented C++ libraries that are to be used by clients compiled via different compilers. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Introduced in 1987, <a href="/wiki/Dynamic_Data_Exchange" title="Dynamic Data Exchange">Dynamic Data Exchange</a> (DDE) was one of the first <a href="/wiki/Interprocess_communication" class="mw-redirect" title="Interprocess communication">interprocess communication</a> technologies in <a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> It allowed sending and receiving messages in so-called <i>conversations</i> between applications. </p><p>Antony Williams, involved in architecting COM, distributed two papers within Microsoft that embraced the concept of software components: <i>Object Architecture: Dealing With the Unknown – or – Type Safety in a Dynamically Extensible Class Library</i> in 1988 and <i>On Inheritance: What It Means and How To Use It</i> in 1990. These provided the foundation of many of the ideas behind COM. </p><p><a href="/wiki/Object_Linking_and_Embedding" title="Object Linking and Embedding">Object Linking and Embedding</a> (OLE), Microsoft's first object-based framework, was built on DDE and designed specifically for <a href="/wiki/Compound_document" title="Compound document">compound documents</a>. It was introduced with <a href="/wiki/Microsoft_Word" title="Microsoft Word">Word</a> and <a href="/wiki/Microsoft_Excel" title="Microsoft Excel">Excel</a> in 1991, and was later included with Windows, starting with version 3.1 in 1992. An example of a compound document is a <a href="/wiki/Spreadsheet" title="Spreadsheet">spreadsheet</a> embedded in a Word document. As changes are made to the spreadsheet in Excel, they appear automatically in the Word document. </p><p>In 1991, Microsoft introduced the <a href="/wiki/Visual_Basic_Extension" title="Visual Basic Extension">Visual Basic Extension</a> (VBX) technology with <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a> 1.0. A VBX is a packaged extension in the form of a <a href="/wiki/Dynamic-link_library" title="Dynamic-link library">dynamic-link library</a> (DLL) that allows objects to be graphically placed in a form and manipulated by <a href="/wiki/Property_(programming)" title="Property (programming)">properties</a> and <a href="/wiki/Method_(computer_science)" class="mw-redirect" title="Method (computer science)">methods</a>. These were later adapted for use by other languages such as <a href="/wiki/Visual_C%2B%2B" class="mw-redirect" title="Visual C++">Visual C++</a>. </p><p>In 1992, with <a href="/wiki/Windows_3.1x" class="mw-redirect" title="Windows 3.1x">Windows 3.1</a>, Microsoft released OLE 2 with its new underlying <a href="/wiki/Object_model" title="Object model">object model</a>, COM. The COM <a href="/wiki/Application_binary_interface" title="Application binary interface">application binary interface</a> (ABI) was the same as the MAPI ABI (released in 1992), and like it was based on <a href="/wiki/MSRPC" class="mw-redirect" title="MSRPC">MSRPC</a> and ultimately on the <a href="/wiki/Open_Group" class="mw-redirect" title="Open Group">Open Group</a>'s <a href="/wiki/DCE/RPC" title="DCE/RPC">DCE/RPC</a>. COM was created to replace DDE since its text-based conversation and Windows messaging design was not flexible enough to allow sharing application features in a robust and extensible way. </p><p>In 1994, the <a href="/wiki/OLE_custom_control" class="mw-redirect" title="OLE custom control">OLE custom control</a> (OCX) technology, based on COM, was introduced as the successor to VBX. At the same time, Microsoft stated that OLE 2 would be known simply as "OLE". </p><p>In early 1996, Microsoft found a new use for OCX – extending their web browser's capability. Microsoft renamed some parts of OLE relating to the <a href="/wiki/Internet" title="Internet">Internet</a> as <a href="/wiki/ActiveX" title="ActiveX">ActiveX</a>, and gradually renamed all OLE technologies to ActiveX, except the compound document technology that was used in <a href="/wiki/Microsoft_Office" title="Microsoft Office">Microsoft Office</a>. </p><p>Later in 1996, Microsoft extended COM to work across the network with <a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Related_technologies">Related technologies</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=2" title="Edit section: Related technologies"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="MSRPC">MSRPC</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=3" title="Edit section: MSRPC"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The COM IDL is based on the feature-rich DCE/RPC IDL, with object-oriented extensions. Microsoft's implementation of DCE/RPC, <b>MSRPC</b>, is used as the primary inter-process communication mechanism for Windows NT services and internal components, making it an obvious choice of foundation. </p> <div class="mw-heading mw-heading3"><h3 id="DCOM">DCOM</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=4" title="Edit section: DCOM"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">Distributed Component Object Model</a></div> <p>DCOM extends COM from merely supporting a single user with separate applications communicating on the Windows desktop, to activating objects running under different security contexts, and on different machines across the network. With this were added necessary features for configuring which users have authority to create, activate and call objects, for identifying the calling user, as well as specifying required encryption for security of calls. </p> <div class="mw-heading mw-heading3"><h3 id="COM+"><span id="COM.2B"></span>COM+</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=5" title="Edit section: COM+"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Microsoft introduced <a href="/wiki/Microsoft_Transaction_Server" title="Microsoft Transaction Server">Microsoft Transaction Server</a> (MTS) in Windows NT 4 in order to provide developers with support for <a href="/wiki/Distributed_transaction" title="Distributed transaction">distributed transactions</a>, resource pooling, disconnected applications, event publication and subscription, better memory and processor (thread) management, as well as to position Windows as an alternative to other enterprise-level operating systems. </p><p>Renamed to <b>COM+</b> in Windows 2000, the feature set was incorporated into the operating system as opposed to the series of external tools provided by MTS. At the same time, Microsoft de-emphasized <a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a> as a separate entity. Components that used COM+ were handled more directly by the added layer of COM+; in particular by operating system support for interception. In the first release of MTS, interception was tacked on – installing an MTS component would modify the <a href="/wiki/Windows_Registry" title="Windows Registry">Windows Registry</a> to call the MTS software, and not the component directly. </p><p>Windows 2000 included Component Services control panel updates for configuring COM+ components. </p><p>An advantage of COM+ was that it could be run in "component farms". Instances of a component, if coded properly, could be pooled and reused by new calls to its initializing routine without unloading it from memory. Components could also be distributed (called from another machine). COM+ and <a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Microsoft Visual Studio</a> provided tools to make it easy to generate client-side proxies, so although DCOM was used to make the remote call, it was easy to do for developers. COM+ also introduced a subscriber/publisher event mechanism called <b>COM+ Events</b>, and provided a new way of leveraging <a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">MSMQ</a> (a technology that provides inter-application asynchronous messaging) with components called <b>Queued Components</b>. COM+ events extend the COM+ programming model to support late-bound (see <a href="/wiki/Late_binding" title="Late binding">Late binding</a>) events or method calls between the publisher or subscriber and the event system. </p> <div class="mw-heading mw-heading3"><h3 id=".NET">.NET</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=6" title="Edit section: .NET"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></div> <p><b>.NET</b> is Microsoft's component technology that supersedes COM. .NET hides many details of component creation and therefore eases development. </p><p>.NET provides wrappers to commonly used COM controls. </p><p>.NET can leverage COM+ via the <code>System.EnterpriseServices</code> namespace, and several of the services that COM+ provides have been duplicated in .NET. For example, the <code>System.Transactions</code> namespace provides the <code>TransactionScope</code> class, which provides transaction management without resorting to COM+. Similarly, <a href="/wiki/Queue_(data_structure)" class="mw-redirect" title="Queue (data structure)">queued components</a> can be replaced by <a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF) with an <a href="/wiki/MSMQ" class="mw-redirect" title="MSMQ">MSMQ</a> transport. </p><p>There is limited support for backward compatibility. A COM object may be used in .NET by implementing a <a href="/wiki/Runtime_Callable_Wrapper" title="Runtime Callable Wrapper">Runtime Callable Wrapper</a> (RCW).<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> NET objects that conform to certain interface restrictions may be used in COM objects by calling a <i>COM callable wrapper</i> (CCW).<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> From both the COM and .NET sides, objects using the other technology appear as native objects. See <a href="/wiki/COM_Interop" title="COM Interop">COM Interop</a>. </p><p>WCF eases a number of COM's remote execution challenges. For instance, it allows objects to be transparently <a href="/wiki/Marshalling_(computer_science)" title="Marshalling (computer science)">marshalled</a> by value across process or machine boundaries more easily. </p> <div class="mw-heading mw-heading3"><h3 id="Windows_Runtime">Windows Runtime</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=7" title="Edit section: Windows Runtime"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Windows_Runtime" title="Windows Runtime">Windows Runtime</a></div> <p><b>Windows Runtime</b> (<b>WinRT</b>) is a COM-based API, albeit an enhanced COM variant. Because of its COM-like basis, WinRT supports interfacing from multiple programming contexts, but it is an unmanaged, native API. The API definitions are stored in ".winmd" files, which are encoded in ECMA 335 metadata format; the same <a href="/wiki/Metadata_(CLI)" title="Metadata (CLI)">CLI metadata</a> format that .NET uses with a few modifications. This metadata format allows for significantly lower overhead than P/Invoke when WinRT is invoked from .NET applications. </p> <div class="mw-heading mw-heading3"><h3 id="Nano-COM">Nano-COM</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=8" title="Edit section: Nano-COM"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Nano-COM</b> is a subset of COM focused on the <a href="/wiki/Application_binary_interface" title="Application binary interface">application binary interface</a> (ABI) aspects of COM that enable function and method calls across independently compiled modules/components. Nano-COM can be expressed in a portable C++ header file. Nano-COM extends the native ABI of the underlying instruction architecture and OS to support typed object references – whereas a typical ABI focuses on atomic types, structures, arrays and function calling conventions. </p><p>A Nano-COM header file defines or names at least three types: </p> <ul><li>GUID – identifies an interface type</li></ul> <ul><li>HRESULT – method result codes such as S_OK, E_FAIL, E_OUTOFMEMORY</li></ul> <ul><li>IUnknown – base type for object references; abstract virtual functions to support <code>dynamic_cast<T></code>-style acquisition of new interface types and ref counting a la <code>shared_ptr<T></code></li></ul> <p>Many uses of Nano-COM define two functions to address callee-allocated memory buffers as results: </p> <ul><li><NanoCom>Alloc – called by method implementations to allocate raw buffers (not objects) that are returned to the caller</li></ul> <ul><li><NanoCom>Free – called by method callers to free callee-allocated buffers when no longer in use</li></ul> <p>Some implementations of Nano-COM such as Direct3D eschew the allocator functions and restrict themselves to only use caller-allocated buffers. </p><p>Nano-COM has no notion of classes, apartments, marshaling, registration, etc. Rather, object references are simply passed across function boundaries and allocated via standard language constructs (e.g., C++ <code>new</code> operator). </p><p>The basis of Nano-COM was used by Mozilla to bootstrap Firefox (called <a href="/wiki/XPCOM" title="XPCOM">XPCOM</a>), and is currently in use as the base ABI technology for <a href="/wiki/DirectX" title="DirectX">DirectX</a>/<a href="/wiki/Direct3D" title="Direct3D">Direct3D</a>/<a href="/wiki/DirectML" class="mw-redirect" title="DirectML">DirectML</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Security">Security</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=9" title="Edit section: Security"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="In_Internet_Explorer">In Internet Explorer</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=10" title="Edit section: In Internet Explorer"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Since an ActiveX control (any COM component) runs as native code, with no <a href="/wiki/Sandbox_(computer_security)" title="Sandbox (computer security)">sandboxing</a> protection, there are few restrictions on what it can do. Using ActiveX components, as <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> supported, in a web page lead to problems with <a href="/wiki/Malware" title="Malware">malware</a> infections. Microsoft recognized the problem as far back as 1996 when Charles Fitzgerald said, "We never made the claim up front that ActiveX is intrinsically secure".<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Later versions of Internet Explorer prompt the user before installing an ActiveX control, allowing them to block installation. </p><p>As a level of protection, an ActiveX control is <a href="/wiki/Code_signing" title="Code signing">signed</a> with a <a href="/wiki/Digital_signature" title="Digital signature">digital signature</a> to guarantee authenticity. </p><p>It is also possible to disable ActiveX controls altogether, or to allow only a selected few. </p> <div class="mw-heading mw-heading3"><h3 id="Process_corruption">Process corruption</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=11" title="Edit section: Process corruption"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The transparent support for out-of-process COM servers promotes software safety in terms of <a href="/wiki/Process_isolation" title="Process isolation">process isolation</a>. This can be useful for decoupling subsystems of large application into separate processes. Process isolation limits state corruption in one process from negatively affecting the integrity of the other processes, since they only communicate through strictly defined interfaces. Thus, only the affected subsystem needs to be restarted in order to regain valid state. This is not the case for subsystems within the same process, where a <i>rogue <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointer</a></i> in one subsystem can randomly corrupt other subsystems. </p> <div class="mw-heading mw-heading2"><h2 id="Binding">Binding</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=12" title="Edit section: Binding"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>COM is supported via <a href="/wiki/Language_binding" title="Language binding">bindings</a> in several languages, such as <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, <a href="/wiki/C%2B%2B" title="C++">C++</a>, <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a>, <a href="/wiki/Delphi_(programming_language)" class="mw-redirect" title="Delphi (programming language)">Delphi</a>, <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> and several of the Windows scripting contexts. Component access is via interface <a href="/wiki/Method_(computer_science)" class="mw-redirect" title="Method (computer science)">methods</a>. This allows for direct calling in-process and via the COM/DCOM sub-system access between processes and computers. </p> <div class="mw-heading mw-heading2"><h2 id="Type_system">Type system</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=13" title="Edit section: Type system"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Coclass">Coclass</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=14" title="Edit section: Coclass"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <b>coclass</b>, a COM class, implements one or more interfaces. It is identified by a class ID, called <a href="/wiki/CLSID" class="mw-redirect" title="CLSID">CLSID</a> which is <a href="/wiki/Globally_unique_identifier" class="mw-redirect" title="Globally unique identifier">GUID</a>, and by a <a href="/wiki/Human-readable" class="mw-redirect" title="Human-readable">human-readable</a> programmatic identifier, called <a href="/wiki/ProgID" title="ProgID">ProgID</a>. A coclass is created via one of these identifiers. </p> <div class="mw-heading mw-heading3"><h3 id="Interface">Interface</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=15" title="Edit section: Interface"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Each COM <b>interface</b> extends the <code><a href="/wiki/IUnknown" title="IUnknown">IUnknown</a></code> interface, which exposes methods for <a href="/wiki/Reference_counting" title="Reference counting">reference counting</a> and for accessing the other interfaces of the object – similar to <a href="/wiki/Type_conversion" title="Type conversion">type conversion</a>, a.k.a. type casting. </p><p>An interface is identified by an interface ID (IID), a GUID. </p><p>A <b>custom interface</b>, anything derived from <code><a href="/wiki/IUnknown" title="IUnknown">IUnknown</a></code>, provides early bound access via a <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointer</a> to a <a href="/wiki/Virtual_method_table" title="Virtual method table">virtual method table</a> that contains a list of pointers to the functions that implement the functions declared in the interface, in the order they are declared. An in-process invocation overhead is, therefore, comparable to a C++ virtual method call. </p><p>Dispatching, a.k.a. <a href="/wiki/Late_bound" class="mw-redirect" title="Late bound">late bound</a> access, is provided by implementing <code><a href="/wiki/IDispatch" title="IDispatch">IDispatch</a></code>. Dispatching allows access from a wider range of programming contexts than a custom interface. </p><p>Like many object-oriented languages, COM provides a separation of interface from implementation. This distinction is especially strong in COM where an object has no default interface. A client must request an interface to have any access. COM supports multiple implementations of the same interface, so that clients can choose which implementation of an interface to use. </p> <div class="mw-heading mw-heading3"><h3 id="Type_library">Type library</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=16" title="Edit section: Type library"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A COM <b>type library</b> defines COM metadata, such as coclasses and interfaces. A library can be defined as <a href="/wiki/Microsoft_Interface_Definition_Language" title="Microsoft Interface Definition Language">Interface definition language</a> (IDL); a programming language independent syntax. IDL is similar to C++ with additional syntax for defining interfaces and coclasses. IDL also supports bracketed attributes before declarations to define metadata such as identifiers and relationships between parameters. </p><p>An IDL file is compiled via the MIDL compiler. For use with C/C++, the MIDL compiler generates a header file with <code>struct</code> definitions to match the <a href="/wiki/Virtual_method_table" title="Virtual method table">vtbls</a> of the declared interfaces and a C file containing declarations of the interface <a href="/wiki/Globally_Unique_Identifier" class="mw-redirect" title="Globally Unique Identifier">GUIDs</a>. C++ source code for a proxy module can also be generated by the MIDL compiler. This proxy contains method stubs for converting COM calls into <a href="/wiki/Remote_procedure_call" title="Remote procedure call">remote procedure calls</a> to enable DCOM for out-of-process communication. </p><p>MIDL can generate a binary type library (TLB) that can be used by other tools to support access from other context. </p> <div class="mw-heading mw-heading3"><h3 id="Examples">Examples</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=17" title="Edit section: Examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The following IDL code declares a coclass named <code>SomeClass</code> which implements an interface named <code>ISomeInterface</code>. </p> <div class="mw-highlight mw-highlight-lang-idl mw-content-ltr" dir="ltr"><pre><span></span>coclass<span class="w"> </span>SomeClass<span class="w"> </span>{ <span class="w"> </span>[default]<span class="w"> </span>interface<span class="w"> </span>ISomeInterface; }; </pre></div> <p>This is conceptually equivalent to the following C++ code where ISomeInterface is a <a href="/wiki/Pure_virtual_class" class="mw-redirect" title="Pure virtual class">pure virtual class</a>, a.k.a. abstract base class. </p> <div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">ISomeInterface</span><span class="w"> </span><span class="p">{};</span> <span class="k">class</span><span class="w"> </span><span class="nc">SomeClass</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">ISomeInterface</span><span class="w"> </span><span class="p">{</span> <span class="p">};</span> </pre></div> <p>In C++, COM objects are instantiated via the COM subsystem <code>CoCreateInstance</code> function that takes the CLSID and IID. <code>SomeClass</code> can be created as follows: </p> <div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="n">ISomeInterface</span><span class="o">*</span><span class="w"> </span><span class="n">interface_ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span> <span class="n">HRESULT</span><span class="w"> </span><span class="n">hr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CoCreateInstance</span><span class="p">(</span><span class="n">CLSID_SomeClass</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">CLSCTX_ALL</span><span class="p">,</span><span class="w"> </span><span class="n">IID_ISomeInterface</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="o">**</span><span class="p">)</span><span class="o">&</span><span class="n">interface_ptr</span><span class="p">);</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Reference_counting">Reference counting</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=18" title="Edit section: Reference counting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A COM object uses <a href="/wiki/Reference_counting" title="Reference counting">reference counting</a> to manage object lifetime. An object's reference count is controlled by the clients through the <code>IUnknown</code> <code>AddRef</code> and <code>Release</code> methods. COM objects are responsible for freeing their own memory when the reference count drops to zero. Some programming contexts (e.g. <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a>) provide automatic reference counting to simplify object use. In C++, a <a href="/wiki/Smart_pointer" title="Smart pointer">smart pointer</a> can be used to automate reference count management. </p><p>The following are guidelines for when to <i>AddRef</i> and <i>Release</i> should called: </p> <ul><li>A functions that returns an interface reference (via return value or via "out" parameter) increments the count of the returned object</li></ul> <ul><li><i>Release</i> is called before the interface pointer is overwritten or goes out of scope</li></ul> <ul><li>If a copy is made on an interface reference pointer, <i>AddRef</i> is called</li></ul> <ul><li><i>AddRef</i> and <i>Release</i> are called on the interface which is being referenced (not a different interface of the same object) since an object may implement per-interface reference counts in order to allocate internal resources only for the interfaces which are being referenced</li></ul> <p>For remote objects, not all reference count calls are sent over the wire. A a proxy keeps only one reference on the remote object and maintains its own local reference count. </p><p>To simplify COM development for C++ developers, Microsoft introduced <a href="/wiki/Active_Template_Library" title="Active Template Library">ATL (Active Template Library)</a>. ATL provides a relatively high-level COM development paradigm. It also shields COM client application developers from the need to directly maintain reference counting, by providing <a href="/wiki/Smart_pointer" title="Smart pointer">smart pointer</a> types. Other libraries and languages that are COM-aware include the <a href="/wiki/Microsoft_Foundation_Classes" class="mw-redirect" title="Microsoft Foundation Classes">Microsoft Foundation Classes</a>, the <a href="/wiki/Visual_C%2B%2B" class="mw-redirect" title="Visual C++">VC</a> Compiler COM Support,<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <a href="/wiki/VBScript" title="VBScript">VBScript</a>, <a href="/wiki/Visual_Basic_2005_Express_Edition" class="mw-redirect" title="Visual Basic 2005 Express Edition">Visual Basic</a>, <a href="/wiki/ECMAScript" title="ECMAScript">ECMAScript</a> (<a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>) and <a href="/wiki/Borland_Delphi" class="mw-redirect" title="Borland Delphi">Borland Delphi</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Programming_context">Programming context</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=19" title="Edit section: Programming context"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>COM is a <a href="/wiki/Language-independent_specification" title="Language-independent specification">language agnostic</a> binary standard that allows objects to be used in any programming context able to access its binary interfaces. </p><p>COM client software is responsible for enabling the COM sub-system, instantiating and reference-counting COM objects and querying objects for supported interfaces. </p><p>The Microsoft Visual C++ compiler supports extensions to the C++ language, referred to as <i>C++ Attributes</i>, <sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> that are designed to simplify COM development and minimize <a href="/wiki/Boilerplate_code" title="Boilerplate code">boilerplate code</a> required to implement COM servers in C++.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Type_metadata_storage">Type metadata storage</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=20" title="Edit section: Type metadata storage"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Originally, type library metadata was required to be stored in the system registry. A COM client would use the registry information for object creation. </p><p>Registration-free (RegFree) COM was introduced with <a href="/wiki/Windows_XP" title="Windows XP">Windows XP</a> to allow storing type library metadata as an <a href="/wiki/Manifest_(CLI)" title="Manifest (CLI)">assembly manifest</a> either as a resource in the executable file or in a separate file installed with the component.<sup id="cite_ref-msdndocs_15-0" class="reference"><a href="#cite_note-msdndocs-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> This allows multiple versions of the same component to be installed on the same computer, in different directories. And it allows for <a href="/wiki/XCOPY_deployment" class="mw-redirect" title="XCOPY deployment">XCOPY deployment</a>.<sup id="cite_ref-msdnmag_16-0" class="reference"><a href="#cite_note-msdnmag-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> This technology has limited support for EXE COM servers<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> and cannot be used for system-wide components such as <a href="/wiki/Microsoft_Data_Access_Components" title="Microsoft Data Access Components">MDAC</a>, <a href="/wiki/MSXML" title="MSXML">MSXML</a>, <a href="/wiki/DirectX" title="DirectX">DirectX</a> or <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a>. </p><p>During application loading, the Windows loader searches for the manifest.<sup id="cite_ref-isoconcept_18-0" class="reference"><a href="#cite_note-isoconcept-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> If it is present, the loader adds information from it to the activation context.<sup id="cite_ref-msdnmag_16-1" class="reference"><a href="#cite_note-msdnmag-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> When the COM class factory tries to instantiate a class, the activation context is first checked to see if an implementation for the CLSID can be found. Only if the lookup fails, the <a href="/wiki/Windows_Registry" title="Windows Registry">registry</a> is scanned.<sup id="cite_ref-msdnmag_16-2" class="reference"><a href="#cite_note-msdnmag-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p><p>A COM object can be created without type library information; with only a path to the <a href="/wiki/Dynamic-link_library" title="Dynamic-link library">DLL</a> file and CLSID. A client can use the COM DLL function <code>DllGetClassObject</code> with the CLSID and IID_IClassFactory to create an instance of a <a href="/wiki/Factory_(object-oriented_programming)" title="Factory (object-oriented programming)">factory object</a>. The client can then use the factory object's <code>CreateInstance</code> to create an instance.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> This is the same process the COM sub-system uses.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> If an object created this way creates another object, it will do so in the usual way (using the registry or manifest). But it can create internal objects (which may not be registered at all), and hand out references to interfaces to them, using its own private knowledge. </p> <div class="mw-heading mw-heading2"><h2 id="Marshalling">Marshalling</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=21" title="Edit section: Marshalling"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A COM object can be transparently created and used from within the same process (in-process), across process boundaries (out-of-process), or remotely over the network (DCOM). Out-of-process and remote objects use <a href="/wiki/Serialization" title="Serialization">marshalling</a> to serialize method calls and return values over process or network boundaries. This marshalling is invisible to the client, which accesses the object as if it were a local in-process object. </p> <div class="mw-heading mw-heading2"><h2 id="Threading">Threading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=22" title="Edit section: Threading"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In COM, threading is addressed through a concept known as <i>apartments</i>.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> An individual COM object lives in exactly one apartment, which might either be single-threaded or multi-threaded. There are three types of apartments in COM: <i><a href="/wiki/Single_threading" class="mw-redirect" title="Single threading">Single-Threaded</a> Apartment (STA)</i>, <i>Multi-Threaded Apartment (MTA)</i>, and <i>Thread Neutral Apartment</i> (NA). Each apartment represents one mechanism whereby an object's internal state may be synchronized across multiple threads. A process can consist of multiple COM objects, some of which may use STA and others of which may use MTA. All threads accessing COM objects similarly live in one apartment. The choice of apartment for COM objects and threads are determined at run-time, and cannot be changed. </p> <table class="wikitable"> <tbody><tr> <th>Apartment type</th> <th>Threading model</th> <th>Description </th></tr> <tr> <td>Single-Threaded Apartment<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> (STA) </td> <td> <p>Apartment </p> </td> <td> <p>A single thread is dedicated to execute the methods of the object. Method calls from threads outside of the apartment are <a href="/wiki/Marshalling_(computer_science)" title="Marshalling (computer science)">marshalled</a> and automatically queued by the system (via Windows messaging). Thus, the COM run-time provides synchronization to ensure that each method call to the object is executed to completion before another is invoked. </p> </td></tr> <tr> <td>Multi-Threaded Apartment<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> (MTA) </td> <td> <p>Free </p> </td> <td> <p>The COM run-time provides no synchronization, and multiple threads are allowed to call object methods simultaneously. The object need to handle synchronization to prevent simultaneous access from multiple threads from problems. Calls to an MTA object from a thread in an STA are also marshalled. </p> </td></tr> <tr> <td>Dynamically determined apartment </td> <td> <p>Both </p> </td> <td> <p>The server auto-selects STA or MTA at object creation to match the apartment type of the calling thread.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> This can be useful to avoid marshalling overhead when MTA servers are accessed by a STA thread. </p> </td></tr> <tr> <td>Thread Neutral Apartment (NA) </td> <td> <p>Neutral </p> </td> <td> <p>A special apartment without any assigned threads. When an STA or MTA thread calls an NA object in the same process, then the calling thread temporarily leaves its apartment and executes code directly in the NA without any thread switching.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Therefore, one can think of NA as an optimization for efficient interapartment method calls. </p> </td></tr></tbody></table> <p>Threads and objects which belong to the same apartment follow the same thread access rules. Method calls which are made inside the same apartment are therefore performed directly without any assistance from COM. Method calls made across apartments are achieved via marshalling. This requires the use of proxies and stubs. </p> <div class="mw-heading mw-heading2"><h2 id="Criticisms">Criticisms</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=23" title="Edit section: Criticisms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-Unreferenced_section plainlinks metadata ambox ambox-content ambox-Unreferenced" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>does not <a href="/wiki/Wikipedia:Citing_sources" title="Wikipedia:Citing sources">cite</a> any <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">sources</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Component_Object_Model" title="Special:EditPage/Component Object Model">improve this section</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and <a href="/wiki/Wikipedia:Verifiability#Burden_of_evidence" title="Wikipedia:Verifiability">removed</a>.</span> <span class="date-container"><i>(<span class="date">January 2024</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Complexity">Complexity</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=24" title="Edit section: Complexity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>COM is relatively complex especially compared to more modern component technologies such as .NET. </p> <div class="mw-heading mw-heading3"><h3 id="Message_pumping">Message pumping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=25" title="Edit section: Message pumping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>When an STA is initialized it creates a hidden window that is used for inter-apartment and inter-process message routing. This window must have its message queue regularly "pumped". This construct is known as a "<a href="/wiki/Message_pump" class="mw-redirect" title="Message pump">message pump</a>". On earlier versions of Windows, failure to do so could cause system-wide deadlocks. This problem is complicated by some Windows APIs that initialize COM as part of their implementation, which causes a "leak" of implementation details. </p> <div class="mw-heading mw-heading3"><h3 id="Reference_counting_2">Reference counting</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=26" title="Edit section: Reference counting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Reference counting within COM may cause problems if two or more objects are <a href="/wiki/Circular_reference" title="Circular reference">circularly referenced</a>. The design of an application must take this into account so that objects are not left orphaned. Objects may also be left with active reference counts if the COM "event sink" model is used. Since the object that fires the event needs a reference to the object reacting to the event, the latter's reference count will never reach zero. Reference cycles are typically broken using either out-of-band termination or split identities. In the out-of-band termination technique, an object exposes a method which, when called, forces it to drop its references to other objects, thereby breaking the cycle. In the split identity technique, a single implementation exposes two separate COM objects (also known as identities). This creates a <a href="/wiki/Weak_reference" title="Weak reference">weak reference</a> between the COM objects, preventing a reference cycle. </p> <div class="mw-heading mw-heading3"><h3 id="DLL_Hell">DLL Hell</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=27" title="Edit section: DLL Hell"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Because in-process COM components are implemented in DLL files and registration only allows for a single version per CLSID, they might in some situations be subject to the "<a href="/wiki/DLL_Hell" class="mw-redirect" title="DLL Hell">DLL Hell</a>" effect. Registration-free COM capability eliminates this problem for in-process components; registration-free COM is not available for out-of-process servers. </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=28" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Calling_convention" title="Calling convention">Calling convention</a> – Ways subroutines get called in computers</li> <li><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> – Technical standard</li> <li><a href="/wiki/D-Bus" title="D-Bus">D-Bus</a> – Linux middleware</li> <li><a href="/wiki/Foreign_function_interface" title="Foreign function interface">Foreign function interface</a> – Interface to call functions from other programming languages</li> <li><a href="/wiki/Internet_Communications_Engine" title="Internet Communications Engine">Internet Communications Engine</a> – Open-source software</li> <li><a href="/wiki/Java_remote_method_invocation" title="Java remote method invocation">Java remote method invocation</a> – Programming interface</li> <li><a href="/wiki/KDE_Frameworks" title="KDE Frameworks">KDE Frameworks</a> – Collection of libraries and software frameworks for the Qt framework</li> <li><a href="/wiki/Name_mangling" title="Name mangling">Name mangling</a> – Technique in compiler construction</li> <li><a href="/wiki/Portable_object_(computing)" title="Portable object (computing)">Portable object (computing)</a> – Object in distributed programming</li> <li><a href="/wiki/SWIG" title="SWIG">SWIG</a> – open-source tool for generating programming language bindings<span style="display:none" class="category-wikidata-fallback-annotation">Pages displaying wikidata descriptions as a fallback</span></li></ul> <div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=29" title="Edit section: Notes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width reflist-columns-2"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFPlugIns/Concepts/conceptual.html#//apple_ref/doc/uid/20001160-102910-BAJFDFFC">"Documentation Archive"</a>. <i>developer.apple.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=developer.apple.com&rft.atitle=Documentation+Archive&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fmac%2F%23documentation%2FCoreFoundation%2FConceptual%2FCFPlugIns%2FConcepts%2Fconceptual.html%23%2F%2Fapple_ref%2Fdoc%2Fuid%2F20001160-102910-BAJFDFFC&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-COM_on_MacOS-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-COM_on_MacOS_2-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFPlugIns/Concepts/com.html#//apple_ref/doc/uid/20001158-CJBEJBHH">"Plug-ins and Microsoft's COM"</a>. <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Inc.</a><span class="reference-accessdate"> Retrieved <span class="nowrap">October 5,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Plug-ins+and+Microsoft%27s+COM&rft.pub=Apple+Inc.&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fmac%2F%23documentation%2FCoreFoundation%2FConceptual%2FCFPlugIns%2FConcepts%2Fcom.html%23%2F%2Fapple_ref%2Fdoc%2Fuid%2F20001158-CJBEJBHH&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Microsoft forum: <a rel="nofollow" class="external text" href="https://archive.today/20130216110824/http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/86eda6a7-4d90-4e19-a9d4-6cbe22b661f4">Binary compatibility across Visual C++ versions</a></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/desktop/ipc/about-network-dde">"About Network DDE - Windows applications"</a>. <i><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>.com</i>. May 30, 2018.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft.com&rft.atitle=About+Network+DDE+-+Windows+applications&rft.date=2018-05-30&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fdesktop%2Fipc%2Fabout-network-dde&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/code-execution-technique-takes-advantage-of-dynamic-data-exchange">"Code Execution Technique Takes Advantage of Dynamic Data Exchange"</a>. <i><a href="/wiki/McAfee" title="McAfee">McAfee</a>.com</i>. October 27, 2017.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=McAfee.com&rft.atitle=Code+Execution+Technique+Takes+Advantage+of+Dynamic+Data+Exchange&rft.date=2017-10-27&rft_id=https%3A%2F%2Fsecuringtomorrow.mcafee.com%2Fother-blogs%2Fmcafee-labs%2Fcode-execution-technique-takes-advantage-of-dynamic-data-exchange&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrownKindel1998" class="citation journal cs1">Brown, Nina; Kindel, Charlie (March 11, 1998). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/draft-brown-dcom-v1-spec/">"draft-brown-dcom-v1-spec-03 - Distributed Component Object Model Protocol -- DCOM/1.0"</a>. <i>Ietf Datatracker</i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 29,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Ietf+Datatracker&rft.atitle=draft-brown-dcom-v1-spec-03+-+Distributed+Component+Object+Model+Protocol+--+DCOM%2F1.0&rft.date=1998-03-11&rft.aulast=Brown&rft.aufirst=Nina&rft.au=Kindel%2C+Charlie&rft_id=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-brown-dcom-v1-spec%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFrpetrusha2023" class="citation web cs1">rpetrusha (April 19, 2023). <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/8bwh56xe.aspx">"Runtime Callable Wrapper"</a>. <i>msdn.microsoft.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=msdn.microsoft.com&rft.atitle=Runtime+Callable+Wrapper&rft.date=2023-04-19&rft.au=rpetrusha&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2F8bwh56xe.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFrpetrusha2021" class="citation web cs1">rpetrusha (September 15, 2021). <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/f07c8z1c.aspx">"COM Callable Wrapper"</a>. <i>msdn.microsoft.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=msdn.microsoft.com&rft.atitle=COM+Callable+Wrapper&rft.date=2021-09-15&rft.au=rpetrusha&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Ff07c8z1c.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteinberg1997" class="citation web cs1">Steinberg, Jill (March 1, 1997). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/2077623/competing-components-make-for-prickly-panelists.html">"Competing components make for prickly panelists"</a>. <i><a href="/wiki/JavaWorld" class="mw-redirect" title="JavaWorld">JavaWorld</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-07-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=JavaWorld&rft.atitle=Competing+components+make+for+prickly+panelists&rft.date=1997-03-01&rft.aulast=Steinberg&rft.aufirst=Jill&rft_id=https%3A%2F%2Fwww.infoworld.com%2Farticle%2F2077623%2Fcompeting-components-make-for-prickly-panelists.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://docs.activestate.com/activepython/2.4/pywin32/html/com/win32com/HTML/docindex.html">"win32com Documentation Index"</a>. <i>docs.activestate.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.activestate.com&rft.atitle=win32com+Documentation+Index&rft_id=http%3A%2F%2Fdocs.activestate.com%2Factivepython%2F2.4%2Fpywin32%2Fhtml%2Fcom%2Fwin32com%2FHTML%2Fdocindex.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.boddie.org.uk/python/COM.html">"Python and COM"</a>. <i>www.boddie.org.uk</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.boddie.org.uk&rft.atitle=Python+and+COM&rft_id=http%3A%2F%2Fwww.boddie.org.uk%2Fpython%2FCOM.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/h31ekh7e.aspx">"Compiler COM Support"</a>. <i>MSDN</i>. Microsoft. August 3, 2021.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MSDN&rft.atitle=Compiler+COM+Support&rft.date=2021-08-03&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fh31ekh7e.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">Microsoft MSDN: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-US/library/f520z3b3.aspx">C++ Attributes Reference</a></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">MSDN Magazine: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/magazine/cc301337.aspx">C++ Attributes: Make COM Programming a Breeze with New Feature in Visual Studio .NET</a></span> </li> <li id="cite_note-msdndocs-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-msdndocs_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/aa374219(VS.85).aspx">"Assembly Manifests"</a>. <a href="/wiki/MSDN" class="mw-redirect" title="MSDN">MSDN</a><span class="reference-accessdate">. Retrieved <span class="nowrap">November 5,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Assembly+Manifests&rft.pub=MSDN&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Faa374219%28VS.85%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-msdnmag-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-msdnmag_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-msdnmag_16-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-msdnmag_16-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDave_Templin" class="citation web cs1">Dave Templin. <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/magazine/cc188708.aspx">"Simplify App Deployment with ClickOnce and Registration-Free COM"</a>. <a href="/wiki/MSDN" class="mw-redirect" title="MSDN">MSDN</a> Magazine<span class="reference-accessdate">. Retrieved <span class="nowrap">April 22,</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Simplify+App+Deployment+with+ClickOnce+and+Registration-Free+COM&rft.pub=MSDN+Magazine&rft.au=Dave+Templin&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Fmagazine%2Fcc188708.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/2369181/how-to-use-an-out-of-process-com-server-without-its-tlb-file">"How to use an out-of-process COM server without its tlb file"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">April 16,</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=How+to+use+an+out-of-process+COM+server+without+its+tlb+file&rft_id=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F2369181%2Fhow-to-use-an-out-of-process-com-server-without-its-tlb-file&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-isoconcept-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-isoconcept_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/ms235531(v=vs.140).aspx">"Concepts of Isolated Applications and Side-by-side Assemblies"</a>. <a href="/wiki/MSDN" class="mw-redirect" title="MSDN">MSDN</a><span class="reference-accessdate">. Retrieved <span class="nowrap">February 5,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Concepts+of+Isolated+Applications+and+Side-by-side+Assemblies&rft.pub=MSDN&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms235531%28v%3Dvs.140%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFArkhipov2005" class="citation web cs1">Arkhipov, Mikhail (April 1, 2005). <a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/mikhailarkhipov/2005/04/01/registration-free-com/">"Registration-free COM"</a>. <i>MSDN Blogs</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 29,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MSDN+Blogs&rft.atitle=Registration-free+COM&rft.date=2005-04-01&rft.aulast=Arkhipov&rft.aufirst=Mikhail&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fmikhailarkhipov%2F2005%2F04%2F01%2Fregistration-free-com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms680760%28v=vs.85%29.aspx">"DllGetClassObject entry point (COM)"</a>. <i>MSDN</i>. <q>If a call to the CoGetClassObject function finds the class object that is to be loaded in a DLL, CoGetClassObject uses the DLL's exported DllGetClassObject function.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MSDN&rft.atitle=DllGetClassObject+entry+point+%28COM%29&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fwindows%2Fdesktop%2Fms680760%2528v%3Dvs.85%2529.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text">Microsoft MSDN: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms693344.aspx">Processes, Threads, and Apartments</a></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text">Microsoft MSDN: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms680112.aspx">Single-Threaded Apartments</a></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text">Microsoft MSDN: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms693421.aspx">Multithreaded Apartments</a></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text">Microsoft MSDN: <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/ms809971.aspx">Understanding and Using COM Threading Models</a></span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text">Codeguru: <a rel="nofollow" class="external text" href="http://www.codeguru.com/cpp/com-tech/activex/apts/article.php/c5529/Understanding-COM-Apartments-Part-I.htm">Understanding COM Apartments</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210524175051/https://www.codeguru.com/cpp/com-tech/activex/apts/article.php/c5529/Understanding-COM-Apartments-Part-I.htm">Archived</a> May 24, 2021, at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=30" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://alumni.cs.ucr.edu/~dberger/Documents/Presentations/com-intro.ppt">"COM: A Brief Introduction (powerpoint)"</a> (Direct link to PowerPoint (PPT) file)<span class="reference-accessdate">. Retrieved <span class="nowrap">March 7,</span> 2006</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=COM%3A+A+Brief+Introduction+%28powerpoint%29&rft_id=http%3A%2F%2Falumni.cs.ucr.edu%2F~dberger%2FDocuments%2FPresentations%2Fcom-intro.ppt&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBox1998" class="citation book cs1"><a href="/wiki/Don_Box" title="Don Box">Box, Don</a> (1998). <a rel="nofollow" class="external text" href="https://archive.org/details/essentialcom00boxd"><i>Essential COM</i></a>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-201-63446-4" title="Special:BookSources/978-0-201-63446-4"><bdi>978-0-201-63446-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Essential+COM&rft.pub=Addison-Wesley&rft.date=1998&rft.isbn=978-0-201-63446-4&rft.aulast=Box&rft.aufirst=Don&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fessentialcom00boxd&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChappell1996" class="citation book cs1">Chappell, David (1996). <a rel="nofollow" class="external text" href="https://archive.org/details/understandingact00chap"><i>Understanding ActiveX and OLE</i></a>. Microsoft Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-57231-216-6" title="Special:BookSources/978-1-57231-216-6"><bdi>978-1-57231-216-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Understanding+ActiveX+and+OLE&rft.pub=Microsoft+Press&rft.date=1996&rft.isbn=978-1-57231-216-6&rft.aulast=Chappell&rft.aufirst=David&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Funderstandingact00chap&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/bb978523.aspx">"Integration and Migration of COM+ services to WCF"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">April 15,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Integration+and+Migration+of+COM%2B+services+to+WCF&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb978523.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComponent+Object+Model" class="Z3988"></span></li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Component_Object_Model&action=edit&section=31" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms680573(v=vs.85).aspx">Component Object Model on MSDN</a></li> <li><a rel="nofollow" class="external text" href="http://channel9.msdn.com/ShowPost.aspx?PostID=224935">Interview with Tony Williams, Co-Inventor of COM</a> (Video Webcast, August 2006)</li> <li><a rel="nofollow" class="external text" href="http://support.microsoft.com/kb/159621/en-us">Info: Difference Between OLE Controls and ActiveX Controls</a> from Microsoft</li> <li><a rel="nofollow" class="external text" href="http://theircorp.byethost11.com/index.php?vw=TypeLib">TypeLib Data Format Specification (unofficial)</a> with open source dumper utility.</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090215185257/http://innovatia.com/software/papers/com.htm">The COM / DCOM Glossary</a> (archive.org)</li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Microsoft_APIs_and_frameworks" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microsoft_APIs" title="Template:Microsoft APIs"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microsoft_APIs" title="Template talk:Microsoft APIs"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microsoft_APIs" title="Special:EditPage/Template:Microsoft APIs"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microsoft_APIs_and_frameworks" style="font-size:114%;margin:0 4em"><a href="/wiki/List_of_Microsoft_Windows_application_programming_interfaces_and_frameworks" title="List of Microsoft Windows application programming interfaces and frameworks">Microsoft APIs and frameworks</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Graphics and UI</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Desktop_Window_Manager" title="Desktop Window Manager">Desktop Window Manager</a></li> <li><a href="/wiki/Direct2D" title="Direct2D">Direct2D</a></li> <li><a href="/wiki/Direct3D" title="Direct3D">Direct3D</a></li> <li><a href="/wiki/D3DX" title="D3DX">D3D (extensions)</a></li> <li><a href="/wiki/Graphics_Device_Interface" title="Graphics Device Interface">GDI / GDI+</a></li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">WPF</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li> <li><a href="/wiki/Windows_UI_Library" title="Windows UI Library">WinUI</a></li> <li><a href="/wiki/Windows_Color_System" title="Windows Color System">Windows Color System</a></li> <li><a href="/wiki/Windows_Image_Acquisition" title="Windows Image Acquisition">Windows Image Acquisition</a></li> <li><a href="/wiki/Windows_Imaging_Component" title="Windows Imaging Component">Windows Imaging Component</a></li> <li><a href="/wiki/DirectX_Graphics_Infrastructure" title="DirectX Graphics Infrastructure">DirectX Graphics Infrastructure (DXGI)</a></li> <li><a href="/wiki/Windows_Advanced_Rasterization_Platform" title="Windows Advanced Rasterization Platform">Windows Advanced Rasterization Platform</a></li> <li><a href="/wiki/WinG" title="WinG">WinG</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Audio</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/DirectMusic" title="DirectMusic">DirectMusic</a></li> <li><a href="/wiki/DirectSound" title="DirectSound">DirectSound</a></li> <li><a href="/wiki/DirectX_plugin" title="DirectX plugin">DirectX plugin</a></li> <li><a href="/wiki/Cross-platform_Audio_Creation_Tool" title="Cross-platform Audio Creation Tool">XACT</a></li> <li><a href="/wiki/Microsoft_Speech_API" title="Microsoft Speech API">Speech API</a></li> <li><a href="/wiki/XAudio2" title="XAudio2">XAudio2</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Multimedia</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/DirectX" title="DirectX">DirectX</a> <ul><li><a href="/wiki/DirectX_Media_Objects" class="mw-redirect" title="DirectX Media Objects">Media Objects</a></li> <li><a href="/wiki/DirectX_Video_Acceleration" title="DirectX Video Acceleration">Video Acceleration</a></li></ul></li> <li><a href="/wiki/Xinput" class="mw-redirect" title="Xinput">Xinput</a></li> <li><a href="/wiki/DirectInput" title="DirectInput">DirectInput</a></li> <li><a href="/wiki/DirectShow" title="DirectShow">DirectShow</a></li> <li><a href="/wiki/Image_Mastering_API" title="Image Mastering API">Image Mastering API</a></li> <li><a href="/wiki/Managed_DirectX" title="Managed DirectX">Managed DirectX</a></li> <li><a href="/wiki/Media_Foundation" title="Media Foundation">Media Foundation</a></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">XNA</a></li> <li><a href="/wiki/Windows_Media" title="Windows Media">Windows Media</a></li> <li><a href="/wiki/Video_for_Windows" title="Video for Windows">Video for Windows</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Web</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Trident_(software)" title="Trident (software)">MSHTML</a></li> <li><a href="/wiki/Windows_RSS_Platform" title="Windows RSS Platform">RSS Platform</a></li> <li><a href="/wiki/JScript" title="JScript">JScript</a></li> <li><a href="/wiki/VBScript" title="VBScript">VBScript</a></li> <li><a href="/wiki/Browser_Helper_Object" title="Browser Helper Object">BHO</a></li> <li><a href="/wiki/XMLHttpRequest" title="XMLHttpRequest">XDR</a></li> <li><a href="/wiki/Microsoft_Gadgets" title="Microsoft Gadgets">SideBar Gadgets</a></li> <li><a href="/wiki/TypeScript" title="TypeScript">TypeScript</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Data access</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Data_Access_Components" title="Microsoft Data Access Components">Data Access Components (MDAC)</a> <ul><li><a href="/wiki/ActiveX_Data_Objects" title="ActiveX Data Objects">ADO</a></li> <li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a></li> <li><a href="/wiki/ODBC" class="mw-redirect" title="ODBC">ODBC</a></li> <li><a href="/wiki/OLE_DB" title="OLE DB">OLE DB</a></li></ul></li> <li><a href="/wiki/Extensible_Storage_Engine" title="Extensible Storage Engine">Extensible Storage Engine</a></li> <li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li> <li><a href="/wiki/Microsoft_Sync_Framework" title="Microsoft Sync Framework">Sync Framework</a></li> <li><a href="/wiki/Access_Database_Engine" title="Access Database Engine">Access Database Engine</a></li> <li><a href="/wiki/MSXML" title="MSXML">MSXML</a></li> <li><a href="/wiki/Open_Packaging_Conventions" title="Open Packaging Conventions">OPC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Networking</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Winsock" title="Winsock">Winsock</a> <ul><li><a href="/wiki/Layered_Service_Provider" title="Layered Service Provider">LSP</a></li></ul></li> <li><a href="/wiki/Windows_Vista_networking_technologies#Winsock_Kernel" title="Windows Vista networking technologies">Winsock Kernel</a></li> <li><a href="/wiki/Windows_Filtering_Platform" title="Windows Filtering Platform">Filtering Platform</a></li> <li><a href="/wiki/Network_Driver_Interface_Specification" title="Network Driver Interface Specification">NDIS</a></li> <li><a href="/wiki/Windows_Rally" title="Windows Rally">Windows Rally</a></li> <li><a href="/wiki/Background_Intelligent_Transfer_Service" title="Background Intelligent Transfer Service">BITS</a></li> <li><a href="/wiki/Windows_Vista_networking_technologies#Peer-to-peer_communication" title="Windows Vista networking technologies">P2P API</a></li> <li><a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">MSMQ</a></li> <li><a href="/wiki/Microsoft_Messaging_Passing_Interface" class="mw-redirect" title="Microsoft Messaging Passing Interface">MS MPI</a></li> <li><a href="/wiki/DirectPlay" title="DirectPlay">DirectPlay</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Communication</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MAPI" title="MAPI">Messaging API</a></li> <li><a href="/wiki/Telephony_Application_Programming_Interface" title="Telephony Application Programming Interface">Telephony API</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Administration and<br />management</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Win32_console" class="mw-redirect" title="Win32 console">Win32 console</a></li> <li><a href="/wiki/Windows_Script_Host" title="Windows Script Host">Windows Script Host</a></li> <li><a href="/wiki/Windows_Management_Instrumentation" title="Windows Management Instrumentation">WMI (extensions)</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li> <li><a href="/wiki/Windows_Task_Scheduler" title="Windows Task Scheduler">Task Scheduler</a></li> <li><a href="/wiki/Windows_Vista_I/O_technologies#Offline_Files" title="Windows Vista I/O technologies">Offline Files</a></li> <li><a href="/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li> <li><a href="/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a></li> <li><a href="/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Error Reporting</a></li> <li><a href="/wiki/Event_Viewer#Windows_Event_Log" title="Event Viewer">Event Log</a></li> <li><a href="/wiki/Common_Log_File_System" title="Common Log File System">Common Log File System</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/Component-based_software_engineering" title="Component-based software engineering">Component model</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a class="mw-selflink selflink">COM</a></li> <li><a class="mw-selflink-fragment" href="#COM+">COM+</a></li> <li><a href="/wiki/ActiveX" title="ActiveX">ActiveX</a></li> <li><a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">Distributed Component Object Model</a></li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/Library_(computing)" title="Library (computing)">Libraries</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a></li> <li><a href="/wiki/Microsoft_Foundation_Class_Library" title="Microsoft Foundation Class Library">Microsoft Foundation Classes (MFC)</a></li> <li><a href="/wiki/Active_Template_Library" title="Active Template Library">Active Template Library (ATL)</a></li> <li><a href="/wiki/Windows_Template_Library" title="Windows Template Library">Windows Template Library (WTL)</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/Device_driver" title="Device driver">Device drivers</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_Driver_Model" title="Windows Driver Model">WDM</a></li> <li><a href="/wiki/Windows_Driver_Frameworks" title="Windows Driver Frameworks">WDF</a> <ul><li><a href="/wiki/Kernel-Mode_Driver_Framework" title="Kernel-Mode Driver Framework">KMDF</a></li> <li><a href="/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a></li></ul></li> <li><a href="/wiki/Windows_Display_Driver_Model" title="Windows Display Driver Model">WDDM</a></li> <li><a href="/wiki/Network_Driver_Interface_Specification" title="Network Driver Interface Specification">NDIS</a></li> <li><a href="/wiki/Universal_Audio_Architecture" title="Universal Audio Architecture">UAA</a></li> <li><a href="/wiki/Broadcast_Driver_Architecture" title="Broadcast Driver Architecture">BDA</a></li> <li><a href="/wiki/VxD" title="VxD">VxD</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Security</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_CryptoAPI" title="Microsoft CryptoAPI">Crypto API</a> <ul><li><a href="/wiki/CAPICOM" title="CAPICOM">CAPICOM</a></li></ul></li> <li><a href="/wiki/Windows_CardSpace" title="Windows CardSpace">Windows CardSpace</a></li> <li><a href="/wiki/Data_Protection_API" title="Data Protection API">Data Protection API</a></li> <li><a href="/wiki/Security_Support_Provider_Interface" title="Security Support Provider Interface">Security Support Provider Interface (SSPI)</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a></li> <li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a></li> <li><a href="/wiki/.NET_Remoting" title=".NET Remoting">Remoting</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li> <li><a href="/wiki/Task_Parallel_Library" class="mw-redirect" title="Task Parallel Library">TPL</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li> <li><a href="/wiki/Windows_CardSpace" title="Windows CardSpace">WCS</a></li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">WPF</a></li> <li><a href="/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">WF</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/Software_Factory_(Microsoft_.NET)" class="mw-redirect" title="Software Factory (Microsoft .NET)">Software factories</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Enterprise_Library" title="Microsoft Enterprise Library">Enterprise Library</a></li> <li><a href="/wiki/Composite_UI_Application_Block" title="Composite UI Application Block">Composite UI</a></li> <li><a href="/wiki/Microsoft_Customer_Care_Framework" title="Microsoft Customer Care Framework">CCF</a></li> <li><a href="/wiki/Microsoft_Connected_Services_Framework" title="Microsoft Connected Services Framework">CSF</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em"><a href="/wiki/Inter-process_communication" title="Inter-process communication">IPC</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_RPC" title="Microsoft RPC">MSRPC</a></li> <li><a href="/wiki/Dynamic_Data_Exchange" title="Dynamic Data Exchange">Dynamic Data Exchange (DDE)</a></li> <li><a href="/wiki/.NET_Remoting" title=".NET Remoting">Remoting</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">WCF</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Accessibility</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Active_Accessibility" title="Microsoft Active Accessibility">Active Accessibility</a></li> <li><a href="/wiki/Microsoft_UI_Automation" title="Microsoft UI Automation">UI Automation</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;line-height:1.2em">Text and multilingual<br />support</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/DirectWrite" title="DirectWrite">DirectWrite</a></li> <li><a href="/wiki/Text_Services_Framework" title="Text Services Framework">Text Services Framework</a></li> <li><a href="/wiki/Text_Object_Model" title="Text Object Model">Text Object Model</a></li> <li><a href="/wiki/Input_method" title="Input method">Input method editor</a></li> <li><a href="/wiki/Language_Interface_Pack" title="Language Interface Pack">Language Interface Pack</a></li> <li><a href="/wiki/Multilingual_User_Interface" title="Multilingual User Interface">Multilingual User Interface</a></li> <li><a href="/wiki/Uniscribe" title="Uniscribe">Uniscribe</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Microsoft_Windows_components" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microsoft_Windows_components" title="Template:Microsoft Windows components"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microsoft_Windows_components" title="Template talk:Microsoft Windows components"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microsoft_Windows_components" title="Special:EditPage/Template:Microsoft Windows components"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microsoft_Windows_components" style="font-size:114%;margin:0 4em"><a href="/wiki/List_of_Microsoft_Windows_components" title="List of Microsoft Windows components">Microsoft Windows components</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/List_of_Microsoft_Windows_application_programming_interfaces_and_frameworks" title="List of Microsoft Windows application programming interfaces and frameworks">APIs</a></li> <li>Architecture <ul><li><a href="/wiki/Architecture_of_Windows_9x" title="Architecture of Windows 9x">9x</a></li> <li><a href="/wiki/Architecture_of_Windows_NT" title="Architecture of Windows NT">NT</a></li></ul></li> <li><a href="/wiki/Booting_process_of_Windows" title="Booting process of Windows">Booting process</a></li> <li><a href="/wiki/List_of_games_included_with_Windows" title="List of games included with Windows">Games</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Management<br />tools</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/App_Installer" title="App Installer">App Installer</a></li> <li><a href="/wiki/Cmd.exe" title="Cmd.exe">Command Prompt</a></li> <li><a href="/wiki/Control_Panel_(Windows)" title="Control Panel (Windows)">Control Panel</a></li> <li><a href="/wiki/Device_Manager" title="Device Manager">Device Manager</a></li> <li><a href="/wiki/DirectX_Diagnostic_Tool" title="DirectX Diagnostic Tool">DirectX Diagnostic Tool</a></li> <li><a href="/wiki/Disk_Cleanup" title="Disk Cleanup">Disk Cleanup</a></li> <li><a href="/wiki/Microsoft_Drive_Optimizer" title="Microsoft Drive Optimizer">Drive Optimizer</a></li> <li><a href="/wiki/Driver_Verifier" title="Driver Verifier">Driver Verifier</a></li> <li><a href="/wiki/Event_Viewer" title="Event Viewer">Event Viewer</a></li> <li><a href="/wiki/IExpress" title="IExpress">IExpress</a></li> <li><a href="/wiki/Microsoft_Management_Console" title="Microsoft Management Console">Management Console</a></li> <li><a href="/wiki/Netsh" title="Netsh">Netsh</a></li> <li><a href="/wiki/Performance_Monitor" title="Performance Monitor">Performance Monitor</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li> <li><a href="/wiki/Recovery_Console" title="Recovery Console">Recovery Console</a></li> <li><a href="/wiki/Resource_Monitor" title="Resource Monitor">Resource Monitor</a></li> <li><a href="/wiki/Settings_(Windows)" title="Settings (Windows)">Settings</a></li> <li><a href="/wiki/Sysprep" title="Sysprep">Sysprep</a></li> <li><a href="/wiki/MSConfig" title="MSConfig">System Configuration</a></li> <li><a href="/wiki/System_File_Checker" title="System File Checker">System File Checker</a></li> <li><a href="/wiki/System_Information_(Windows)" title="System Information (Windows)">System Information</a></li> <li><a href="/wiki/System_Policy_Editor" title="System Policy Editor">System Policy Editor</a></li> <li><a href="/wiki/System_Restore" title="System Restore">System Restore</a></li> <li><a href="/wiki/Task_Manager_(Windows)" title="Task Manager (Windows)">Task Manager</a></li> <li><a href="/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Windows Error Reporting</a></li> <li><a href="/wiki/Windows_Ink" title="Windows Ink">Windows Ink</a></li> <li><a href="/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a></li> <li><a href="/wiki/Windows_Update" title="Windows Update">Windows Update</a> <ul><li><a href="/wiki/Windows_Insider" title="Windows Insider">Windows Insider</a></li></ul></li> <li><a href="/wiki/Windows_Preinstallation_Environment#Windows_Recovery_Environment" title="Windows Preinstallation Environment">WinRE</a></li> <li><a href="/wiki/Windows_Management_Instrumentation" title="Windows Management Instrumentation">WMI</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Application_software" title="Application software">Apps</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_3D_Viewer" title="Microsoft 3D Viewer">3D Viewer</a></li> <li><a href="/wiki/Windows_Calculator" title="Windows Calculator">Calculator</a></li> <li><a href="/wiki/Calendar_(Windows)" title="Calendar (Windows)">Calendar</a></li> <li><a href="/wiki/Windows_Camera" title="Windows Camera">Camera</a></li> <li><a href="/wiki/Character_Map_(Windows)" title="Character Map (Windows)">Character Map</a></li> <li><a href="/wiki/Clipchamp" title="Clipchamp">Clipchamp</a></li> <li><a href="/wiki/Windows_Clock" title="Windows Clock">Clock</a></li> <li><a href="/wiki/Microsoft_Copilot" title="Microsoft Copilot">Copilot</a></li> <li><a href="/wiki/Microsoft_Edge" title="Microsoft Edge">Edge</a></li> <li><a href="/wiki/Windows_Fax_and_Scan" title="Windows Fax and Scan">Fax and Scan</a></li> <li><a href="/wiki/Feedback_Hub" title="Feedback Hub">Feedback Hub</a></li> <li><a href="/wiki/Get_Help" title="Get Help">Get Help</a></li> <li><a href="/wiki/Magnifier_(Windows)" title="Magnifier (Windows)">Magnifier</a></li> <li><a href="/wiki/Mail_(Windows)" title="Mail (Windows)">Mail</a></li> <li><a href="/wiki/Windows_Maps" title="Windows Maps">Maps</a></li> <li><a href="/wiki/Windows_Media_Player" title="Windows Media Player">Media Player</a> <ul><li><a href="/wiki/Windows_Media_Player_(2022)" title="Windows Media Player (2022)">2022</a></li></ul></li> <li><a href="/wiki/Microsoft_Mesh" title="Microsoft Mesh">Mesh</a></li> <li><a href="/wiki/Microsoft_Messaging" title="Microsoft Messaging">Messaging</a></li> <li><a href="/wiki/Windows_Mobility_Center" title="Windows Mobility Center">Mobility Center</a></li> <li><a href="/wiki/MSN#Money" title="MSN">Money</a></li> <li><a href="/wiki/Microsoft_Movies_%26_TV" title="Microsoft Movies & TV">Movies & TV</a></li> <li><a href="/wiki/Narrator_(Windows)" title="Narrator (Windows)">Narrator</a></li> <li><a href="/wiki/Windows_Notepad" title="Windows Notepad">Notepad</a></li> <li><a href="/wiki/OneDrive" title="OneDrive">OneDrive</a></li> <li><a href="/wiki/Microsoft_OneNote" title="Microsoft OneNote">OneNote</a></li> <li><a href="/wiki/Microsoft_Paint" title="Microsoft Paint">Paint</a></li> <li><a href="/wiki/People_(Windows)" title="People (Windows)">People</a></li> <li><a href="/wiki/Phone_Link" title="Phone Link">Phone Link</a></li> <li><a href="/wiki/Photos_(Windows)" title="Photos (Windows)">Photos</a></li> <li><a href="/wiki/Quick_Assist" title="Quick Assist">Quick Assist</a></li> <li><a href="/wiki/Remote_Desktop_Connection" class="mw-redirect" title="Remote Desktop Connection">Remote Desktop Connection</a></li> <li><a href="/wiki/Skype" title="Skype">Skype</a></li> <li><a href="/wiki/Snipping_Tool" title="Snipping Tool">Snipping Tool</a></li> <li><a href="/wiki/Windows_Speech_Recognition" title="Windows Speech Recognition">Speech Recognition</a></li> <li><a href="/wiki/MSN#Sports" title="MSN">Sports</a></li> <li><a href="/wiki/Microsoft_Start" title="Microsoft Start">Start</a></li> <li><a href="/wiki/Sticky_Notes" title="Sticky Notes">Sticky Notes</a></li> <li><a href="/wiki/Microsoft_Store" title="Microsoft Store">Store</a></li> <li><a href="/wiki/Microsoft_Tips" title="Microsoft Tips">Tips</a></li> <li><a href="/wiki/Sound_Recorder_(Windows)" title="Sound Recorder (Windows)">Voice Recorder</a></li> <li><a href="/wiki/MSN#Weather" title="MSN">Weather</a></li> <li><a href="/wiki/Xbox_(app)" title="Xbox (app)">Xbox</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Windows_shell" title="Windows shell">Shell</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Action_Center" title="Action Center">Action Center</a></li> <li><a href="/wiki/Windows_Aero" title="Windows Aero">Aero</a></li> <li><a href="/wiki/AutoPlay" title="AutoPlay">AutoPlay</a></li> <li><a href="/wiki/AutoRun" title="AutoRun">AutoRun</a></li> <li><a href="/wiki/ClearType" title="ClearType">ClearType</a></li> <li><a href="/wiki/File_Explorer" title="File Explorer">Explorer</a></li> <li><a href="/wiki/Windows_Search" title="Windows Search">Search</a> <ul><li><a href="/wiki/IFilter" title="IFilter">IFilter</a></li> <li><a href="/wiki/Indexing_Service" title="Indexing Service">Indexing Service</a></li> <li><a href="/wiki/Windows_Shell_namespace" title="Windows Shell namespace">Namespace</a></li> <li><a href="/wiki/Virtual_folder#Windows" title="Virtual folder">Saved search</a></li> <li><a href="/wiki/Special_folder" title="Special folder">Special folder</a></li></ul></li> <li><a href="/wiki/Start_menu" title="Start menu">Start menu</a></li> <li><a href="/wiki/Task_View" title="Task View">Task View</a></li> <li><a href="/wiki/Taskbar" title="Taskbar">Taskbar</a></li> <li><a href="/wiki/Windows_Spotlight" title="Windows Spotlight">Windows Spotlight</a></li> <li><a href="/wiki/Windows_XP_visual_styles" title="Windows XP visual styles">Windows XP visual styles</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Windows_service" title="Windows service">Services</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Background_Intelligent_Transfer_Service" title="Background Intelligent Transfer Service">BITS</a></li> <li><a href="/wiki/Common_Log_File_System" title="Common Log File System">CLFS</a></li> <li><a href="/wiki/Windows_Error_Reporting" title="Windows Error Reporting">Error Reporting</a></li> <li><a href="/wiki/Multimedia_Class_Scheduler_Service" title="Multimedia Class Scheduler Service">Multimedia Class Scheduler</a></li> <li><a href="/wiki/Service_Control_Manager" title="Service Control Manager">Service Control Manager</a></li> <li><a href="/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li> <li><a href="/wiki/Windows_Task_Scheduler" title="Windows Task Scheduler">Task Scheduler</a></li> <li><a href="/wiki/Wireless_Zero_Configuration" title="Wireless Zero Configuration">Wireless Zero Configuration</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/File_system" title="File system">File systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ISO_9660" title="ISO 9660">CDFS</a></li> <li><a href="/wiki/Distributed_File_System_(Microsoft)" title="Distributed File System (Microsoft)">DFS</a></li> <li><a href="/wiki/ExFAT" title="ExFAT">exFAT</a></li> <li><a href="/wiki/File_Allocation_Table" title="File Allocation Table">FAT</a></li> <li><a href="/wiki/Installable_File_System" title="Installable File System">IFS</a></li> <li><a href="/wiki/NTFS" title="NTFS">NTFS</a> <ul><li><a href="/wiki/Encrypting_File_System" title="Encrypting File System">EFS</a></li> <li><a href="/wiki/Hard_link" title="Hard link">Hard link</a></li> <li><a href="/wiki/NTFS_links" title="NTFS links">links</a></li> <li><a href="/wiki/NTFS_volume_mount_point" title="NTFS volume mount point">Mount Point</a></li> <li><a href="/wiki/NTFS_reparse_point" title="NTFS reparse point">Reparse point</a></li> <li><a href="/wiki/Transactional_NTFS" title="Transactional NTFS">TxF</a></li></ul></li> <li><a href="/wiki/ReFS" title="ReFS">ReFS</a></li> <li><a href="/wiki/Universal_Disk_Format" title="Universal Disk Format">UDF</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Server_(computing)" title="Server (computing)">Server</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Active_Directory" title="Active Directory">Active Directory</a></li> <li><a href="/wiki/Active_Directory_Rights_Management_Services" title="Active Directory Rights Management Services">Active DRM Services</a></li> <li><a href="/wiki/File_Replication_Service" title="File Replication Service">DFS Replication</a></li> <li><a href="/wiki/Microsoft_Distributed_Transaction_Coordinator" title="Microsoft Distributed Transaction Coordinator">Distributed Transaction Coordinator</a></li> <li><a href="/wiki/Microsoft_DNS" title="Microsoft DNS">DNS</a></li> <li><a href="/wiki/Windows_domain" title="Windows domain">Domains</a></li> <li><a href="/wiki/Folder_redirection" title="Folder redirection">Folder redirection</a></li> <li><a href="/wiki/Group_Policy" title="Group Policy">Group Policy</a></li> <li><a href="/wiki/Hyper-V" title="Hyper-V">Hyper-V</a></li> <li><a href="/wiki/Internet_Information_Services" title="Internet Information Services">IIS</a></li> <li><a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">MSMQ</a></li> <li><a href="/wiki/Network_Access_Protection" title="Network Access Protection">Network Access Protection</a></li> <li><a href="/wiki/Print_Services_for_UNIX" title="Print Services for UNIX">Print Services for UNIX</a></li> <li><a href="/wiki/Microsoft_Personal_Web_Server" title="Microsoft Personal Web Server">PWS</a></li> <li><a href="/wiki/Remote_Desktop_Services" title="Remote Desktop Services">Remote Desktop Services</a></li> <li><a href="/wiki/Remote_Differential_Compression" title="Remote Differential Compression">Remote Differential Compression</a></li> <li><a href="/wiki/Remote_Installation_Services" title="Remote Installation Services">Remote Installation Services</a></li> <li><a href="/wiki/Roaming_user_profile" title="Roaming user profile">Roaming user profiles</a></li> <li><a href="/wiki/Server_Core" title="Server Core">Server Core</a></li> <li><a href="/wiki/SharePoint" title="SharePoint">SharePoint</a></li> <li><a href="/wiki/Windows_System_Resource_Manager" title="Windows System Resource Manager">System Resource Manager</a></li> <li><a href="/wiki/Windows_Deployment_Services" title="Windows Deployment Services">Windows Deployment Services</a></li> <li><a href="/wiki/Windows_Media_Services" title="Windows Media Services">Windows Media Services</a></li> <li><a href="/wiki/Windows_Server_Update_Services" title="Windows Server Update Services">WSUS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_architecture" title="Software architecture">Architecture</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_Boot_Manager" title="Windows Boot Manager">Boot Manager</a></li> <li><a href="/wiki/Windows_Console" title="Windows Console">Console</a></li> <li><a href="/wiki/Client/Server_Runtime_Subsystem" title="Client/Server Runtime Subsystem">CSRSS</a></li> <li><a href="/wiki/Desktop_Window_Manager" title="Desktop Window Manager">Desktop Window Manager</a></li> <li><a href="/wiki/Enhanced_Write_Filter" title="Enhanced Write Filter">Enhanced Write Filter</a></li> <li><a href="/wiki/Graphics_Device_Interface" title="Graphics Device Interface">Graphics Device Interface</a></li> <li><a href="/wiki/Microsoft_Windows_library_files#Hardware_Abstraction_Layer" title="Microsoft Windows library files">Hardware Abstraction Layer</a></li> <li><a href="/wiki/I/O_request_packet" title="I/O request packet">I/O request packet</a></li> <li><a href="/wiki/Windows_Imaging_Format" title="Windows Imaging Format">Imaging Format</a></li> <li><a href="/wiki/Kernel_Transaction_Manager" title="Kernel Transaction Manager">Kernel Transaction Manager</a></li> <li><a href="/wiki/Microsoft_Windows_library_files" title="Microsoft Windows library files">Library files</a></li> <li><a href="/wiki/Logical_Disk_Manager" title="Logical Disk Manager">Logical Disk Manager</a></li> <li><a href="/wiki/Local_Security_Authority_Subsystem_Service" title="Local Security Authority Subsystem Service">LSASS</a></li> <li><a href="/wiki/MinWin" title="MinWin">MinWin</a></li> <li><a href="/wiki/NTLDR" title="NTLDR">NTLDR</a></li> <li><a href="/wiki/Ntoskrnl.exe" title="Ntoskrnl.exe">Ntoskrnl.exe</a></li> <li><a href="/wiki/Object_Manager" title="Object Manager">Object Manager</a></li> <li><a href="/wiki/Open_XML_Paper_Specification" title="Open XML Paper Specification">Open XML Paper Specification</a></li> <li><a href="/wiki/Portable_Executable" title="Portable Executable">Portable Executable</a> <ul><li><a href="/wiki/Dynamic-link_library" title="Dynamic-link library">DLL</a></li> <li><a href="/wiki/.exe" title=".exe">EXE</a></li></ul></li> <li><a href="/wiki/Windows_Registry" title="Windows Registry">Registry</a></li> <li><a href="/wiki/Windows_Resource_Protection" title="Windows Resource Protection">Resource Protection</a></li> <li><a href="/wiki/Security_Account_Manager" title="Security Account Manager">Security Account Manager</a></li> <li><a href="/wiki/Server_Message_Block" title="Server Message Block">Server Message Block</a></li> <li><a href="/wiki/Shadow_Copy" title="Shadow Copy">Shadow Copy</a></li> <li><a href="/wiki/Session_Manager_Subsystem" title="Session Manager Subsystem">SMSS</a></li> <li><a href="/wiki/System_Idle_Process" title="System Idle Process">System Idle Process</a></li> <li><a href="/wiki/Windows_USER" title="Windows USER">USER</a></li> <li><a href="/wiki/Windows_Hardware_Error_Architecture" title="Windows Hardware Error Architecture">WHEA</a></li> <li><a href="/wiki/Winlogon" title="Winlogon">Winlogon</a></li> <li><a href="/wiki/WinUSB" title="WinUSB">WinUSB</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Security</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Security_and_Maintenance" title="Security and Maintenance">Security and Maintenance</a></li> <li><a href="/wiki/AppLocker" title="AppLocker">AppLocker</a></li> <li><a href="/wiki/BitLocker" title="BitLocker">BitLocker</a></li> <li><a href="/wiki/Credential_Guard" title="Credential Guard">Credential Guard</a></li> <li><a href="/wiki/Data_Execution_Prevention" class="mw-redirect" title="Data Execution Prevention">Data Execution Prevention</a></li> <li><a href="/wiki/Microsoft_Defender_Antivirus" title="Microsoft Defender Antivirus">Defender</a></li> <li><a href="/wiki/Microsoft_family_features" title="Microsoft family features">Family features</a></li> <li><a href="/wiki/Kernel_Patch_Protection" title="Kernel Patch Protection">Kernel Patch Protection</a></li> <li><a href="/wiki/Mandatory_Integrity_Control" title="Mandatory Integrity Control">Mandatory Integrity Control</a></li> <li><a href="/wiki/Protected_Media_Path" title="Protected Media Path">Protected Media Path</a></li> <li><a href="/wiki/User_Account_Control" title="User Account Control">User Account Control</a></li> <li><a href="/wiki/User_Interface_Privilege_Isolation" title="User Interface Privilege Isolation">User Interface Privilege Isolation</a></li> <li><a href="/wiki/Windows_Firewall" title="Windows Firewall">Windows Firewall</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Compatibility</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/COMMAND.COM" title="COMMAND.COM">COMMAND.COM</a></li> <li><a href="/wiki/Windows_Subsystem_for_Linux" title="Windows Subsystem for Linux">Windows Subsystem for Linux</a></li> <li><a href="/wiki/WoW64" title="WoW64">WoW64</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/API" title="API">API</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Active_Scripting" title="Active Scripting">Active Scripting</a> <ul><li><a href="/wiki/JScript" title="JScript">JScript</a></li> <li><a href="/wiki/VBScript" title="VBScript">VBScript</a></li> <li><a href="/wiki/Windows_Script_Host" title="Windows Script Host">WSH</a></li></ul></li> <li><a class="mw-selflink selflink">COM</a> <ul><li><a href="/wiki/ActiveX" title="ActiveX">ActiveX</a></li> <li><a href="/wiki/ActiveX_Document" title="ActiveX Document">ActiveX Document</a></li> <li><a href="/wiki/COM_Structured_Storage" title="COM Structured Storage">COM Structured storage</a></li> <li><a href="/wiki/Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a></li> <li><a href="/wiki/Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a></li> <li><a href="/wiki/OLE_Automation" title="OLE Automation">OLE Automation</a></li> <li><a href="/wiki/Microsoft_Transaction_Server" title="Microsoft Transaction Server">Transaction Server</a></li></ul></li> <li><a href="/wiki/DirectX" title="DirectX">DirectX</a></li> <li><a href="/wiki/Windows_Native_API" title="Windows Native API">Native</a></li> <li><a href="/wiki/.NET" title=".NET">.NET</a></li> <li><a href="/wiki/Universal_Windows_Platform" title="Universal Windows Platform">Universal Windows Platform</a></li> <li><a href="/wiki/Windows_API" title="Windows API">WinAPI</a></li> <li><a href="/wiki/Windows_Mixed_Reality" title="Windows Mixed Reality">Windows Mixed Reality</a></li> <li><a href="/wiki/Windows_Runtime" title="Windows Runtime">Windows Runtime</a></li> <li><a href="/wiki/WinUSB" title="WinUSB">WinUSB</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Video_game" title="Video game">Games</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Microsoft_Solitaire_Collection" title="Microsoft Solitaire Collection">Solitaire Collection</a></i></li> <li><i><a href="/wiki/Surf_(video_game)" title="Surf (video game)">Surf</a></i></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Games</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Full_Tilt!_Pinball#3D_Pinball_for_Windows_–_Space_Cadet" title="Full Tilt! Pinball">3D Pinball</a></i></li> <li><i><a href="/wiki/Chess_Titans" title="Chess Titans">Chess Titans</a></i></li> <li><i><a href="/wiki/Microsoft_FreeCell" title="Microsoft FreeCell">FreeCell</a></i></li> <li><i><a href="/wiki/Microsoft_Hearts" title="Microsoft Hearts">Hearts</a></i></li> <li><i><a href="/wiki/Windows_Ultimate_Extras" title="Windows Ultimate Extras">Hold 'Em</a></i></li> <li><i><a href="/wiki/InkBall" title="InkBall">InkBall</a></i></li> <li><i><a href="/wiki/Purble_Place" title="Purble Place">Purble Place</a></i></li> <li><i><a href="/wiki/Microsoft_Solitaire" title="Microsoft Solitaire">Solitaire</a></i></li> <li><i><a href="/wiki/Microsoft_Spider_Solitaire" title="Microsoft Spider Solitaire">Spider Solitaire</a></i></li> <li><i><a href="/wiki/Microsoft_Tinker" title="Microsoft Tinker">Tinker</a></i></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Apps</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ActiveMovie" title="ActiveMovie">ActiveMovie</a></li> <li><a href="/wiki/Windows_Address_Book" title="Windows Address Book">Address Book</a></li> <li><a href="/wiki/Windows_Anytime_Upgrade" title="Windows Anytime Upgrade">Anytime Upgrade</a></li> <li><a href="/wiki/Backup_and_Restore" title="Backup and Restore">Backup and Restore</a></li> <li><a href="/wiki/Cardfile" title="Cardfile">Cardfile</a></li> <li><a href="/wiki/Windows_CardSpace" title="Windows CardSpace">CardSpace</a></li> <li><a href="/wiki/CD_Player_(Windows)" title="CD Player (Windows)">CD Player</a></li> <li><a href="/wiki/Windows_Chat" title="Windows Chat">Chat</a></li> <li><a href="/wiki/Windows_Contacts" title="Windows Contacts">Contacts</a></li> <li><a href="/wiki/Cortana_(virtual_assistant)" title="Cortana (virtual assistant)">Cortana</a></li> <li><a href="/wiki/Windows_Desktop_Gadgets" title="Windows Desktop Gadgets">Desktop Gadgets</a></li> <li><a href="/wiki/Microsoft_Diagnostics" title="Microsoft Diagnostics">Diagnostics</a></li> <li><a href="/wiki/DriveSpace" title="DriveSpace">DriveSpace</a></li> <li><a href="/wiki/Windows_DVD_Maker" title="Windows DVD Maker">DVD Maker</a></li> <li><a href="/wiki/Windows_Easy_Transfer" title="Windows Easy Transfer">Easy Transfer</a></li> <li><a href="/wiki/Microsoft_Fax" class="mw-redirect" title="Microsoft Fax">Fax</a></li> <li><a href="/wiki/MSN_Food_%26_Drink" class="mw-redirect" title="MSN Food & Drink">Food & Drink</a></li> <li><a href="/wiki/Groove_Music" title="Groove Music">Groove Music</a></li> <li><a href="/wiki/MSN_Health_%26_Fitness" class="mw-redirect" title="MSN Health & Fitness">Health & Fitness</a></li> <li><a href="/wiki/Help_and_Support_Center" class="mw-redirect" title="Help and Support Center">Help and Support Center</a></li> <li><a href="/wiki/HyperACCESS" title="HyperACCESS">HyperTerminal</a></li> <li><a href="/wiki/Imaging_for_Windows" title="Imaging for Windows">Imaging</a></li> <li><a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a></li> <li><a href="/wiki/Windows_Journal" title="Windows Journal">Journal</a></li> <li><a href="/wiki/Make_Compatible" title="Make Compatible">Make Compatible</a></li> <li><a href="/wiki/Windows_Media_Center" title="Windows Media Center">Media Center</a></li> <li><a href="/wiki/Windows_Meeting_Space" title="Windows Meeting Space">Meeting Space</a></li> <li><a href="/wiki/Windows_Messaging" title="Windows Messaging">Messaging</a></li> <li><a href="/wiki/Windows_Messenger" title="Windows Messenger">Messenger</a></li> <li><a href="/wiki/Windows_Mobile_Device_Center" title="Windows Mobile Device Center">Mobile Device Center</a></li> <li><a href="/wiki/Windows_Movie_Maker" title="Windows Movie Maker">Movie Maker</a></li> <li><a href="/wiki/MSN_Dial-up" title="MSN Dial-up">MSN Dial-up</a></li> <li><a href="/wiki/Microsoft_NetMeeting" title="Microsoft NetMeeting">NetMeeting</a></li> <li><a href="/wiki/NTBackup" title="NTBackup">NTBackup</a></li> <li><a href="/wiki/Outlook_Express" title="Outlook Express">Outlook Express</a></li> <li><a href="/wiki/Paint_3D" title="Paint 3D">Paint 3D</a></li> <li><a href="/wiki/Microsoft_Pay" title="Microsoft Pay">Pay</a></li> <li><a href="/wiki/Phone_Companion" title="Phone Companion">Phone Companion</a></li> <li><a href="/wiki/Windows_Photo_Gallery" title="Windows Photo Gallery">Photo Gallery</a></li> <li><a href="/wiki/Windows_Photo_Viewer" title="Windows Photo Viewer">Photo Viewer</a></li> <li><a href="/wiki/Program_Manager" title="Program Manager">Program Manager</a></li> <li><a href="/wiki/Problem_Steps_Recorder" class="mw-redirect" title="Problem Steps Recorder">Steps Recorder</a></li> <li><a href="/wiki/Syskey" title="Syskey">Syskey</a></li> <li><a href="/wiki/Travel_(Windows)" class="mw-redirect" title="Travel (Windows)">Travel</a></li> <li><a href="/wiki/WinHelp" title="WinHelp">WinHelp</a></li> <li><a href="/wiki/WordPad" title="WordPad">WordPad</a></li> <li><a href="/wiki/Microsoft_Write" title="Microsoft Write">Write</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Others</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Desktop_Cleanup_Wizard" title="Desktop Cleanup Wizard">Desktop Cleanup Wizard</a></li> <li><a href="/wiki/Windows_File_Protection" title="Windows File Protection">File Protection</a></li> <li><a href="/wiki/Games_for_Windows" title="Games for Windows">Games for Windows</a></li> <li><a href="/wiki/High_Performance_File_System" title="High Performance File System">HPFS</a></li> <li><a href="/wiki/Interix" title="Interix">Interix</a></li> <li><a href="/wiki/Media_Control_Interface" title="Media Control Interface">Media Control Interface</a></li> <li><a href="/wiki/MS-DOS_7" title="MS-DOS 7">MS-DOS 7</a></li> <li><a href="/wiki/Next-Generation_Secure_Computing_Base" title="Next-Generation Secure Computing Base">Next-Generation Secure Computing Base</a></li> <li><a href="/wiki/Microsoft_POSIX_subsystem" title="Microsoft POSIX subsystem">POSIX subsystem</a></li> <li><a href="/wiki/Microsoft_ScanDisk" title="Microsoft ScanDisk">ScanDisk</a></li> <li><a href="/wiki/Video_for_Windows" title="Video for Windows">Video for Windows</a></li> <li><a href="/wiki/Virtual_DOS_machine" title="Virtual DOS machine">Virtual DOS machine</a></li> <li><a href="/wiki/Windows_on_Windows" title="Windows on Windows">Windows on Windows</a></li> <li><a href="/wiki/Windows_Services_for_UNIX" title="Windows Services for UNIX">Windows Services for UNIX</a></li> <li><a href="/wiki/Windows_SideShow" title="Windows SideShow">Windows SideShow</a></li> <li><a href="/wiki/Windows_System_Assessment_Tool" title="Windows System Assessment Tool">Windows System Assessment Tool</a></li> <li><a href="/wiki/Windows_To_Go" title="Windows To Go">Windows To Go</a></li> <li><a href="/wiki/WinFS" title="WinFS">WinFS</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Spun off to<br /><a href="/wiki/Microsoft_Store" title="Microsoft Store">Microsoft Store</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/DVD_Player_(Windows)" title="DVD Player (Windows)">DVD Player</a></li> <li><a href="/wiki/Windows_File_Manager" title="Windows File Manager">File Manager</a></li> <li><a href="/wiki/Hover!" title="Hover!">Hover!</a></li> <li><a href="/wiki/Microsoft_Mahjong" title="Microsoft Mahjong">Mahjong</a></li> <li><a href="/wiki/Microsoft_Minesweeper" title="Microsoft Minesweeper">Minesweeper</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Windows_components" title="Category:Windows components">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/List_of_Microsoft_Windows_components" title="List of Microsoft Windows components">List</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"><style data-mw-deduplicate="TemplateStyles:r1038841319">.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}</style></div><div role="navigation" class="navbox authority-control" aria-label="Navbox" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a>: National <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q662200#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh98001683">United States</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="COM (komponentní technologie)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph116961&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007561229605171">Israel</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐2hwd8 Cached time: 20241123050810 Cache expiry: 672721 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.631 seconds Real time usage: 0.946 seconds Preprocessor visited node count: 4112/1000000 Post‐expand include size: 129135/2097152 bytes Template argument size: 2726/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 10/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 97357/5000000 bytes Lua time usage: 0.392/10.000 seconds Lua memory usage: 17571727/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 792.386 1 -total 19.72% 156.273 10 Template:Annotated_link 19.60% 155.300 1 Template:Reflist 16.55% 131.117 1 Template:Short_description 16.21% 128.463 18 Template:Cite_web 10.86% 86.030 3 Template:Navbox 10.30% 81.654 7 Template:Main_other 9.98% 79.113 1 Template:SDcat 9.10% 72.117 1 Template:Microsoft_APIs 6.77% 53.656 1 Template:Unreferenced_section --> <!-- Saved in parser cache with key enwiki:pcache:idhash:17058007-0!canonical and timestamp 20241123050810 and revision id 1258606858. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Component_Object_Model&oldid=1258606858">https://en.wikipedia.org/w/index.php?title=Component_Object_Model&oldid=1258606858</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Component-based_software_engineering" title="Category:Component-based software engineering">Component-based software engineering</a></li><li><a href="/wiki/Category:Inter-process_communication" title="Category:Inter-process communication">Inter-process communication</a></li><li><a href="/wiki/Category:Microsoft_application_programming_interfaces" title="Category:Microsoft application programming interfaces">Microsoft application programming interfaces</a></li><li><a href="/wiki/Category:Object_models" title="Category:Object models">Object models</a></li><li><a href="/wiki/Category:Object_request_broker" title="Category:Object request broker">Object request broker</a></li><li><a href="/wiki/Category:Object-oriented_programming" title="Category:Object-oriented programming">Object-oriented programming</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Use_mdy_dates_from_January_2019" title="Category:Use mdy dates from January 2019">Use mdy dates from January 2019</a></li><li><a href="/wiki/Category:Use_American_English_from_January_2019" title="Category:Use American English from January 2019">Use American English from January 2019</a></li><li><a href="/wiki/Category:All_Wikipedia_articles_written_in_American_English" title="Category:All Wikipedia articles written in American English">All Wikipedia articles written in American English</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_January_2024" title="Category:Articles needing additional references from January 2024">Articles needing additional references from January 2024</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:Pages_displaying_wikidata_descriptions_as_a_fallback_via_Module:Annotated_link" title="Category:Pages displaying wikidata descriptions as a fallback via Module:Annotated link">Pages displaying wikidata descriptions as a fallback via Module:Annotated link</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 20 November 2024, at 17:02<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Component_Object_Model&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-fs4hk","wgBackendResponseTime":211,"wgPageParseReport":{"limitreport":{"cputime":"0.631","walltime":"0.946","ppvisitednodes":{"value":4112,"limit":1000000},"postexpandincludesize":{"value":129135,"limit":2097152},"templateargumentsize":{"value":2726,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":10,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":97357,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 792.386 1 -total"," 19.72% 156.273 10 Template:Annotated_link"," 19.60% 155.300 1 Template:Reflist"," 16.55% 131.117 1 Template:Short_description"," 16.21% 128.463 18 Template:Cite_web"," 10.86% 86.030 3 Template:Navbox"," 10.30% 81.654 7 Template:Main_other"," 9.98% 79.113 1 Template:SDcat"," 9.10% 72.117 1 Template:Microsoft_APIs"," 6.77% 53.656 1 Template:Unreferenced_section"]},"scribunto":{"limitreport-timeusage":{"value":"0.392","limit":"10.000"},"limitreport-memusage":{"value":17571727,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-2hwd8","timestamp":"20241123050810","ttl":672721,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Component Object Model","url":"https:\/\/en.wikipedia.org\/wiki\/Component_Object_Model","sameAs":"http:\/\/www.wikidata.org\/entity\/Q662200","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q662200","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-09-27T23:48:37Z","dateModified":"2024-11-20T17:02:12Z","headline":"Application Binary Interface by Microsoft"}</script> </body> </html>