다음을 통해 공유


자동화 서버

자동화를 사용하면 애플리케이션이 다른 애플리케이션에서 구현된 개체를 조작하거나 개체를 조작할 수 있도록 개체를 노출할 수 있습니다. Automation 서버는 프로그래밍 가능한 개체(Automation 개체라고 함)를 다른 애플리케이션(Automation 클라이언트라고 함 )에 노출하는 애플리케이션입니다. 자동화 서버를 Automation 구성 요소라고도 합니다.

Automation 개체를 노출하면 클라이언트가 서버에서 사용할 수 있는 개체 및 기능에 직접 액세스하여 특정 절차를 자동화할 수 있습니다. 이러한 방식으로 개체를 노출하는 것은 애플리케이션이 다른 애플리케이션에 유용한 기능을 제공하는 경우에 유용합니다. 예를 들어 워드 프로세서는 다른 프로그램에서 사용할 수 있도록 맞춤법 검사 기능을 노출할 수 있습니다. 따라서 개체를 노출하면 공급업체는 다른 애플리케이션의 즉시 사용 가능한 기능을 사용하여 애플리케이션의 기능을 개선할 수 있습니다.

이러한 Automation 개체에는 외부 인터페이스로 속성과 메서드가 있습니다. 속성은 Automation 개체의 명명된 특성입니다. 속성은 C++ 클래스의 데이터 멤버와 같습니다. 메서드는 Automation 개체에서 작동하는 함수입니다. 메서드는 C++ 클래스의 공용 멤버 함수와 같습니다.

참고 항목

속성은 C++ 데이터 멤버와 비슷하지만 직접 액세스할 수 없습니다. 투명한 액세스를 제공하려면 Automation 개체에 액세스하기 위한 get/set 멤버 함수 쌍을 사용하여 내부 변수를 설정합니다.

자동화를 사용하면 일반적인 잘 정의된 인터페이스를 통해 애플리케이션 기능을 노출함으로써 다양한 애플리케이션별 매크로 언어 대신 Microsoft Visual Basic과 같은 단일 일반 프로그래밍 언어로 애플리케이션을 빌드할 수 있습니다.

Automation 서버 지원

Visual C++ 및 MFC 프레임워크는 Automation 서버에 대한 광범위한 지원을 제공합니다. 자동화 서버 만들기와 관련된 많은 오버헤드를 처리하므로 애플리케이션의 기능에 집중할 수 있습니다.

자동화를 지원하기 위한 프레임워크의 주요 메커니즘은 OLE에 대한 메서드 및 속성을 노출하는 데 필요한 선언 및 호출로 확장되는 매크로 집합인 디스패치 맵입니다. 일반적인 디스패치 맵은 다음과 같습니다.

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

클래스 마법사 및 클래스 뷰는 디스패치 맵을 기본 지원합니다. 클래스에 새 메서드 또는 속성을 추가하면 Visual Studio에서 클래스 이름, 메서드 또는 DISP_PROPERTY 속성의 외부 및 내부 이름 및 데이터 형식을 나타내는 매개 변수가 있는 해당 DISP_FUNCTION 또는 매크로를 추가합니다.

클래스 추가 대화 상자는 Automation 클래스 선언과 해당 속성 및 작업의 관리를 간소화합니다. 클래스 추가 대화 상자를 사용하여 프로젝트에 클래스를 추가하는 경우 기본 클래스를 지정합니다. 기본 클래스에서 Automation을 허용하는 경우 클래스 추가 대화 상자에는 새 클래스가 Automation을 지원해야 하는지 여부, "OLE creatable"(즉, COM 클라이언트의 요청에 따라 클래스 개체를 만들 수 있는지 여부) 및 사용할 COM 클라이언트의 외부 이름을 지정하는 데 사용하는 컨트롤이 표시됩니다.

그런 다음 클래스 추가 대화 상자는 지정한 OLE 기능에 적합한 매크로를 포함하여 클래스 선언을 만듭니다. 또한 클래스의 멤버 함수 구현을 위한 기본 코드도 추가합니다.

MFC 애플리케이션 마법사는 자동화 서버 애플리케이션을 처음부터 제거하는 데 관련된 단계를 간소화합니다. 고급 기능 페이지에서 Automation 검사 상자를 선택하면 MFC 애플리케이션 마법사가 Automation 개체를 등록하고 애플리케이션을 Automation 서버로 실행하는 데 필요한 호출을 애플리케이션의 InitInstance 함수에 추가합니다.

뭘 하고 싶으세요

참고 항목

자동화
MFC 애플리케이션 마법사