{{위키데이터 속성 추적}}
[[마이크로소프트 윈도우]] 애플리케이션 프로그래밍에서 '''OLE 자동화'''(OLE Automation, 나중에는 간단히 '''자동화'''로 이름이 변경됨<ref name="msdn-mfc">{{웹 인용|url=http://msdn2.microsoft.com/en-us/library/dt80be78.aspx|title=Automation (MFC)|author=Microsoft Corporation|work=[[마이크로소프트 개발자 네트워크]]}}</ref><ref>{{서적 인용|author=KruJ.|authorlink=|author2=Wingo, Scott |author3=Shepherd, George |year=1998|title=Programming Microsoft Visual C++ 6.0|url=https://archive.org/details/programmingmicro00krug|edition=5th|chapter=Chapter 25: Automation|publisher=[[:en:Microsoft Press]]|location=Redmond, WA|isbn=978-1-57231-857-1}}</ref>)는
[[마이크로소프트]]가 개발한 [[프로세스 간 통신]](IPC) 매커니즘이다. [[컴포넌트 오브젝트 모델]](COM)의 하위 집합에 기반을 두며, [[스크립트 언어]](원래는 비주얼 베이직)를 통해 사용되도록 고안되었으나 지금은 윈도우에서 여러 언어를 통해 사용할 수 있다. 모든 자동화 오브젝트들은 [[IDispatch]] 인터페이스의 구현이 요구된다.
"자동화 컨트롤러"라는 이름의 응용 프로그램들이 다른 응용 프로그램들이 내보낸 공유 "자동화 오브젝트"를 접근하고 조작(예: 속성 설정 또는 메소드 호출)할 수 있는 인프라스트럭처를 제공한다. 애플리케이션이 다른 애플리케이션을 통제하는 더 오래된 매커니즘인 [[동적 데이터 교환]](DDE)를 대체한다.<ref>{{웹 인용|url=http://gmccomb.com/vault/edge/ole.html|title=Using OLE Automation to Control WordPerfect|year=1997|author=Gordon McComb|확인날짜=2019-02-27|보존url=https://web.archive.org/web/20170815034739/http://www.gmccomb.com/vault/edge/ole.html|보존날짜=2017-08-15|url-status=dead}} &mdash; McComb describes how to use OLE Automation instead of DDE to control [[워드퍼펙트]]</ref> DDE처럼 OLE 자동화에서 자동화 컨트롤러는 "클라이언트"이며 자동화 오브젝트를 내보내는 애플리케이션은 "서버"이다.

이름과 대조적으로 자동화 오브젝트는 반드시 마이크로소프트 [[객체 연결 삽입|OLE]]를 사용할 필요는 없으나 자동화 오브젝트들 가운데 일부는 OLE 환경에서 사용이 가능하다. 이러한 혼동은 마이크로소프트의 초기 OLE 정의에 그 뿌리를 두고 있으며 이전에는 다소 COM과 동의어로 사용되기도 했다.

== 사용 ==

=== 지원 언어 ===
자동화는 다음을 포함한 다양한 언어를 지원한다:

* [[ABAP|ABAP]]
* [[C (프로그래밍 언어)|C]]
* [[C++]] (컴파일러 COM 지원,<ref>{{웹 인용|url=http://msdn.microsoft.com/en-us/library/h31ekh7e.aspx|title=Compiler COM Support|publisher=Microsoft|work=MSDN}}</ref>
[[마이크로소프트 파운데이션 클래스 라이브러리|MFC]] 또는 [[액티브 탬플릿 라이브러리|ATL]] 등의 라이브러리와 함께)
* [[C 샤프|C#]]
* [[비주얼 베이직]], [[비주얼 베이직 포 애플리케이션]]
* [[오브젝트 파스칼|델파이]]<ref>{{웹 인용|url=http://delphi.about.com/od/kbcontrolole/|title=OLE Automation using Delphi|work=[[닷대시]]|확인날짜=2019-02-27|archive-date=2005-11-09|archive-url=https://web.archive.org/web/20051109212711/http://delphi.about.com/od/kbcontrolole/|url-status=}}</ref>
* [[마이크로소프트 닷넷]] 언어<ref name="interop">{{서적 인용|author=Appleman, Dan|year=2001|title=Moving to VB.NET: Strategies, Concepts, and Code|url=https://archive.org/details/movingtovbnetstr00appl|chapter=Chapter 15: COM Interop and Accessing the Win32 API|publisher=[[Apress]]|isbn=978-1-893115-97-2}}</ref>
* [[APL (프로그래밍 언어)|APL]] (대부분 윈도우 버전)
* [[자바 (프로그래밍 언어)|자바]] (서드파티 도구를 통해서만)
* [[J스크립트]]<ref name="WR">{{웹 인용|url=http://webreference.com./js/column55/|title=OLE Automation in JavaScript|work=WebReference|author=Yehuda Shiran and Tomer Shiran|확인날짜=2019-02-27|보존url=https://web.archive.org/web/20111102132703/http://www.webreference.com/js/column55/|보존날짜=2011-11-02|url-status=dead}} &mdash; despite the title, the article discusses [[JScript]] rather than [[JavaScript]]</ref> and [[VB스크립트]]
* [[오픈 오브젝트 Rexx]]<ref>{{웹 인용|url=http://www.oorexx.org/products.html |title=Open Object Rexx}}</ref>
* [[펄]]<ref name="perl">{{저널 인용|url=http://www.foo.be/docs/tpj/issues/vol3_2/tpj0302-0008.html|title=Win32::OLE|author=Jan Dubois|journal=The Perl Journal|volume=3|issue=2|date=Summer 1998}}</ref>
* [[PHP]]<ref>{{웹 인용|url=http://www.php.net/manual/en/ref.com.php|title=PHP: COM and .Net (Windows)|author=The PHP Group|date=2006-07-25}}</ref>
* [[파워빌더]]
* [[파이썬]]<ref>{{웹 인용|url=http://sourceforge.net/projects/pywin32/|title=Python for Windows Extensions|author=Mark Hammond}}</ref><ref>{{웹 인용|url=http://sourceforge.net/projects/comtypes/|title=Comtypes Python package|author=Sourceforge}}</ref>
* [[루비 (프로그래밍 언어)|루비]] (표준 루비 1.8.x 이상 배포판에 포함된 'win32ole'라이브러리를 통해)
* [[Tcl]]<ref>{{웹 인용|url=http://wiki.tcl.tk/ole|title=OLE from a Tcl perspective|author=Tcl programmers}}</ref>
* [[비주얼 데이터플렉스]]
* [[WinBatch]]<ref>{{웹 인용|url=http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/tsleft.web+Tutorials/OLE~TUTORIAL+WINBATCH~OLE~PROGRAMMING~-~Part~2.txt|title=OLE TUTORIAL WINBATCH OLE PROGRAMMING|author=Stan Littlefield }}</ref>

== 같이 보기 ==
* [[액티브X]]
* [[액티브 스크립팅]]
* [[객체 연결 삽입]] (OLE)
* [[컴포넌트 오브젝트 모델]] (COM)

== 각주 ==
{{각주}}

== 외부 링크 ==
* [https://web.archive.org/web/20120208104440/http://www.skolob.co.uk/skolob/index.php?op=ViewArticle&articleId=5&blogId=1 OLE Automation] General paper on the introduction and problems implementing OLE.
*"[http://vole.sourceforge.net/ VOLE - A Neat C++ COM/Automation Driver]" — an open-source, compiler-independent C++ COM Automation driver library, for use when having to drive IDispatch directly. VOLE is highly robust, fully encapsulates all "low-level" aspects of IDispatch, and is very flexible, taking and returning normal C++ types.
* {{서적 인용|
title=OLE 2 Programmer's Reference: Creating Programmable Applications with OLE Automation v. 2|
series=Programmer's Reference Library|
author=Microsoft Corporation|
publisher=Microsoft Press|date=December 1993|
isbn=978-1-55615-629-8}}
* {{서적 인용|
title=Inside OLE| url=https://archive.org/details/insideole00broc|
author=Kraig Brockschmidt|
publisher=Microsoft Press|
year=1995|
id=}}
* {{서적 인용|
title=OLE Automation Programmer's Reference| url=https://archive.org/details/oleautomationpro0000unse|
series=Programmer's Reference Library|
author=Microsoft Corporation|
publisher=Microsoft Press|
year=1996|
isbn=978-1-55615-851-3}}
* {{서적 인용|
title=Microsoft Office 2000 Visual Basic for Applications Language Reference|
author=Microsoft Corporation|
publisher=Microsoft Press|
isbn=978-1-57231-955-4|
year=1999}} &mdash; full printed documentation of the object model of Microsoft Office

{{윈도우 구성 요소}}

[[분류:객체 지향 프로그래밍]]
[[분류:마이크로소프트 API]]