다음을 통해 공유


자동화

자동화(이전의 OLE Automation)를 사용하면 한 애플리케이션이 다른 애플리케이션에서 구현된 개체를 조작하거나 개체를 노출하여 조작할 수 있습니다.

Automation 서버는 COM 인터페이스를 통해 Automation 클라이언트라는 다른 애플리케이션에 해당 기능을 노출하는 애플리케이션(COM 서버의 형식)입니다. 이 노출을 통해 Automation 클라이언트는 개체에 직접 액세스하고 제공하는 서비스를 사용하여 특정 함수를 자동화할 수 있습니다.

자동화 서버 및 클라이언트는 항상 IDispatch에서 파생된 COM 인터페이스를 사용하며, 이러한 인터페이스는 자동화 형식이라고 불리는 특정한 데이터 형식 집합을 사용하고 반환합니다. Automation 인터페이스를 노출하는 모든 개체를 자동화하여 다른 애플리케이션에서 액세스할 수 있는 메서드와 속성을 제공할 수 있습니다. 자동화는 OLE 및 COM 개체 모두에 사용할 수 있습니다. 자동화된 개체는 로컬 또는 원격(네트워크를 통해 액세스할 수 있는 다른 컴퓨터)일 수 있습니다. 따라서 자동화에는 두 가지 범주가 있습니다.

  • 자동화(로컬)

  • 원격 자동화(네트워크를 통해 분산 COM 또는 DCOM 사용).

개체 노출은 애플리케이션이 다른 애플리케이션에 유용한 기능을 제공하는 경우에 유용합니다. 예를 들어 ActiveX 컨트롤은 Automation 서버의 유형입니다. ActiveX 컨트롤을 호스팅하는 애플리케이션은 해당 컨트롤의 자동화 클라이언트입니다.

또 다른 예로, 워드 프로세서는 맞춤법 검사 기능을 다른 프로그램에 노출할 수 있습니다. 개체 노출을 통해 공급업체는 다른 애플리케이션의 즉시 사용 가능한 기능을 사용하여 애플리케이션을 개선할 수 있습니다. 이러한 방식으로 Automation은 재사용 가능성 및 캡슐화와 같은 개체 지향 프로그래밍의 몇 가지 원칙을 애플리케이션 자체 수준에서 적용합니다.

더 중요한 것은 Automation이 사용자 및 솔루션 공급자에게 제공하는 지원입니다. 자동화를 사용하면 일반적인 잘 정의된 인터페이스를 통해 애플리케이션 기능을 노출함으로써 다양한 애플리케이션별 매크로 언어 대신 Microsoft Visual Basic과 같은 단일 일반 프로그래밍 언어로 포괄적인 솔루션을 빌드할 수 있습니다.

Microsoft Excel 및 Microsoft Visual C++와 같은 많은 상용 애플리케이션을 사용하면 대부분의 기능을 자동화할 수 있습니다. 예를 들어 Visual C++에서 VBScript 매크로를 작성하여 빌드, 코드 편집 또는 디버깅 작업을 자동화할 수 있습니다.

자동화에서 매개 변수 전달

Automation 메서드를 만드는 한 가지 어려움은 자동화 서버와 클라이언트 간에 데이터를 전달하는 균일한 "안전한" 메커니즘을 제공하는 데 도움이 됩니다. Automation은 VARIANT 형식을 사용하여 데이터를 전달합니다. VARIANT 형식은 태그가 지정된 공용 구조체입니다. 값에 대한 데이터 멤버(익명 C++ 공용 구조체)와 공용 구조체에 저장된 정보의 형식을 나타내는 데이터 멤버가 있습니다. VARIANT 형식은 2 바이트 및 4 바이트 정수, 4 바이트 및 8 바이트 부동 소수점 숫자, 문자열 및 부울 값과 같은 다양한 표준 데이터 형식을 지원합니다. 또한 HRESULT(OLE 오류 코드), CURRENCY(고정 소수점 숫자 형식), DATE(절대 날짜 및 시간) 형식 및 포인터 및 IUnknown 인터페이스를 IDispatch 지원합니다.

VARIANT 형식은 COleVariant 클래스에 캡슐화됩니다. 지원 CURRENCYDATE 클래스는 COleCurrencyCOleDateTime 클래스에 캡슐화됩니다.

자동화 샘플

  • AUTOCLIK 이 샘플을 사용하여 자동화 기술을 알아보고 원격 자동화를 학습하기 위한 기초로 사용합니다.

  • ACDUAL Automation 서버 애플리케이션에 이중 인터페이스를 추가합니다.

  • CALCDRIV MFCCALC를 구동하는 자동화 클라이언트 애플리케이션.

  • INPROC In-Process Automation 서버 애플리케이션을 보여 줍니다.

  • IPDRIVE INPROC를 구동하는 자동화 클라이언트 애플리케이션.

  • MFCCALC 자동화 클라이언트 애플리케이션을 시연합니다.

무엇을 더 알고 싶으세요?

뭘 하고 싶으세요

참고하십시오

MFC COM