{"id":220004,"date":"2017-06-16T03:20:18","date_gmt":"2017-06-16T07:20:18","guid":{"rendered":"http:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/uncategorized\/automation-msdn-microsoft-com.php"},"modified":"2017-06-16T03:20:18","modified_gmt":"2017-06-16T07:20:18","slug":"automation-msdn-microsoft-com","status":"publish","type":"post","link":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/automation\/automation-msdn-microsoft-com.php","title":{"rendered":"Automation &#8211; msdn.microsoft.com"},"content":{"rendered":"<p><p>    The new home for Visual Studio documentation is Visual Studio 2017    Documentation on docs.microsoft.com.  <\/p>\n<p>    The latest version of this topic can be found at Automation.  <\/p>\n<p>    Automation (formerly known as OLE Automation) makes it possible    for one application to manipulate objects implemented in    another application, or to expose objects so they can be    manipulated.  <\/p>\n<p>    An Automation    server is an application (a type of COM server) that    exposes its functionality through COM interfaces to other    applications, called Automation    clients. The exposure enables Automation clients to    automate certain functions by directly accessing objects and    using the services they provide.  <\/p>\n<p>    Automation servers and clients use COM interfaces that are    always derived from IDispatch and take and return    a specific set of data types called Automation types. You can    automate any object that exposes an Automation interface,    providing methods and properties that you can access from other    applications. Automation is available for both OLE and COM    objects. The automated object might be local or remote (on    another machine accessible across a network); therefore there    are two categories of automation:  <\/p>\n<p>        Automation (local).      <\/p>\n<p>        Remote        Automation (over a network, using Distributed COM, or        DCOM).      <\/p>\n<p>    Exposing objects is beneficial when applications provide    functionality useful to other applications. For example, an    ActiveX control is a type of Automation server; the application    hosting the ActiveX control is the automation client of that    control.  <\/p>\n<p>    As another example, a word processor might expose its    spell-checking functionality to other programs. Exposure of    objects enables vendors to improve their applications by using    the ready-made functionality of other applications. In this    way, Automation applies some of the principles of    object-oriented programming, such as reusability and    encapsulation, at the level of applications themselves.  <\/p>\n<p>    More important is the support Automation provides to users and    solution providers. By exposing application functionality    through a common, well-defined interface, Automation makes it    possible to build comprehensive solutions in a single general    programming language, such as Microsoft Visual Basic, instead    of in diverse application-specific macro languages.  <\/p>\n<p>    Many commercial applications, such as Microsoft Excel and    Microsoft Visual C++, allow you to automate much of their    functionality. For example, in Visual C++, you can write    VBScript macros to automate builds, aspects of code editing, or    debugging tasks.  <\/p>\n<p>    One difficulty in creating Automation methods is helping to    provide a uniform \"safe\" mechanism to pass data between    automation servers and clients. Automation uses the    VARIANT type to pass data. The    VARIANT type is a tagged union. It has a data    member for the value (this is an anonymous C++ union) and a    data member indicating the type of information stored in the    union. The VARIANT type supports a number of    standard data types: 2- and 4-byte integers, 4- and 8-byte    floating-point numbers, strings, and Boolean values. In    addition, it supports the HRESULT (OLE error    codes), CURRENCY (a fixed-point numeric type),    and DATE (absolute date and time) types, as    well as pointers to IUnknown and    IDispatch interfaces.  <\/p>\n<p>    The VARIANT type is encapsulated in the    COleVariant    class. The supporting CURRENCY and    DATE classes are encapsulated in the COleCurrency    and COleDateTime    classes.  <\/p>\n<p>        AUTOCLIK        Use this sample to learn Automation techniques and as a        foundation for learning Remote Automation.      <\/p>\n<p>        ACDUAL        Adds dual interfaces to an Automation server application.      <\/p>\n<p>        CALCDRIV        Automation client application driving MFCCALC.      <\/p>\n<p>        INPROC        Demonstrates an In-Process Automation server application.      <\/p>\n<p>        IPDRIVE        Automation client application driving INPROC.      <\/p>\n<p>        MFCCALC        Demonstrates an Automation client application.      <\/p>\n<p>    MFC    COM  <\/p>\n<p><!-- Auto Generated --><\/p>\n<p>The rest is here: <\/p>\n<p><a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dt80be78.aspx\" title=\"Automation - msdn.microsoft.com\">Automation - msdn.microsoft.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com. The latest version of this topic can be found at Automation.  <a href=\"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/automation\/automation-msdn-microsoft-com.php\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"limit_modified_date":"","last_modified_date":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[431581],"tags":[],"class_list":["post-220004","post","type-post","status-publish","format-standard","hentry","category-automation"],"modified_by":null,"_links":{"self":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts\/220004"}],"collection":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/comments?post=220004"}],"version-history":[{"count":0,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/posts\/220004\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/media?parent=220004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/categories?post=220004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.euvolution.com\/futurist-transhuman-news-blog\/wp-json\/wp\/v2\/tags?post=220004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}