다음을 통해 공유


COleObjectFactory 클래스

서버, 자동화 개체, 문서와 같은 OLE 개체를 만드는 OLE 클래스 팩터리를 구현합니다.

구문

class COleObjectFactory : public CCmdTarget

멤버

공용 생성자

속성 설명
COleObjectFactory::COleObjectFactory COleObjectFactory 개체를 생성합니다.

공용 메서드

이름 설명
COleObjectFactory::GetClassID 팩터리에서 만드는 개체의 OLE 클래스 ID를 반환합니다.
COleObjectFactory::IsLicenseValid 컨트롤의 라이선스가 유효한지 여부를 확인합니다.
COleObjectFactory::IsRegistered 개체 팩터리를 OLE 시스템 DLL에 등록할지 여부를 나타냅니다.
COleObjectFactory::Register 이 개체 팩터리를 OLE 시스템 DLL에 등록합니다.
COleObjectFactory::RegisterAll 애플리케이션의 모든 개체 팩터리를 OLE 시스템 DLL에 등록합니다.
COleObjectFactory::Revoke 이 개체 팩터리의 OLE 시스템 DLL 등록을 취소합니다.
COleObjectFactory::RevokeAll OLE 시스템 DLL을 사용하여 애플리케이션의 개체 팩터리 등록을 취소합니다.
COleObjectFactory::UnregisterAll 애플리케이션의 모든 개체 팩터리를 등록 취소합니다.
COleObjectFactory::UpdateRegistry 이 개체 팩터리를 OLE 시스템 레지스트리에 등록합니다.
COleObjectFactory::UpdateRegistryAll 애플리케이션의 모든 개체 팩터리를 OLE 시스템 레지스트리에 등록합니다.

보호된 메서드

속성 설명
COleObjectFactory::GetLicenseKey 컨트롤의 DLL에서 고유 키를 요청합니다.
COleObjectFactory::OnCreateObject 이 팩터리 형식의 새 개체를 만들기 위해 프레임워크에서 호출됩니다.
COleObjectFactory::VerifyLicenseKey 컨트롤에 포함된 키가 컨테이너에 포함된 키와 일치하는지 확인합니다.
COleObjectFactory::VerifyUserLicense 컨트롤에 디자인 타임 사용이 허가되어 있는지 확인합니다.

설명

클래스에는 COleObjectFactory 다음 함수를 수행하기 위한 멤버 함수가 있습니다.

  • 개체 등록 관리

  • OLE 시스템 레지스터를 업데이트하고 OLE에 개체가 실행 중이며 메시지를 받을 준비가 되었다는 것을 알리는 런타임 등록을 업데이트합니다.

  • 디자인 타임에 라이선스가 부여된 개발자와 런타임에 라이선스가 부여된 애플리케이션에 대한 컨트롤 사용을 제한하여 라이선스를 적용합니다.

  • OLE 시스템 레지스트리에 컨트롤 개체 팩터리 등록

개체 만들기에 대한 자세한 내용은 OLE(데이터 개체 및 데이터 원본) 및 데이터 개체 및 데이터 원본: 만들기 및 소멸 문서를 참조하세요. 등록에 대한 자세한 내용은 등록 문서를 참조하세요.

상속 계층 구조

CObject

CCmdTarget

COleObjectFactory

요구 사항

헤더: afxdisp.h

COleObjectFactory::COleObjectFactory

개체를 COleObjectFactory 생성하고 등록되지 않은 개체 팩터리로 초기화한 다음 팩터리 목록에 추가합니다.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

매개 변수

clsid
이 개체 팩터리에서 나타내는 OLE 클래스 ID에 대한 참조입니다.

pRuntimeClass
이 팩터리에서 만들 수 있는 C++ 개체의 런타임 클래스에 대한 포인터입니다.

bMultiInstance
애플리케이션의 단일 인스턴스가 여러 인스턴스를 지원할 수 있는지 여부를 나타냅니다. TRUE이면 개체를 만들기 위한 각 요청에 대해 애플리케이션의 여러 인스턴스가 시작됩니다.

nFlags
다음 플래그 중 하나 이상을 포함합니다.

  • afxRegDefault 스레딩 모델을 ThreadingModel=Apartment로 설정합니다.

  • afxRegInsertableOLE 개체에 대한 개체 삽입 대화 상자에 컨트롤을 표시할 수 있습니다.

  • afxRegApartmentThreading 레지스트리의 스레딩 모델을 ThreadingModel=Apartment로 설정합니다.

  • afxRegFreeThreading 레지스트리의 스레딩 모델을 ThreadingModel=Free로 설정합니다.

    두 플래그 afxRegApartmentThreading 를 결합하고 afxRegFreeThreading ThreadingModel=Both를 설정할 수 있습니다. 스레딩 모델 등록에 대한 자세한 내용은 Windows SDK의 InprocServer32를 참조하세요.

lpszProgID
"Microsoft Excel"과 같은 언어 프로그램 식별자를 포함하는 문자열에 대한 포인터입니다.

설명

그러나 개체를 사용하려면 개체를 등록해야 합니다.

자세한 내용은 Windows SDK의 CLSID 키를 참조하세요.

COleObjectFactory::GetClassID

이 팩터리에서 나타내는 OLE 클래스 ID에 대한 참조를 반환합니다.

REFCLSID GetClassID() const;

Return Value

이 팩터리에서 나타내는 OLE 클래스 ID에 대한 참조입니다.

설명

자세한 내용은 Windows SDK의 CLSID 키를 참조하세요.

COleObjectFactory::GetLicenseKey

컨트롤의 DLL에서 고유한 라이선스 키를 요청하고 pbstrKey가 가리키는 BSTR에 저장합니다.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

매개 변수

dwReserved
향후 사용을 위해 예약되어 있습니다.

pbstrKey
라이선스 키를 저장할 BSTR에 대한 포인터입니다.

Return Value

라이선스 키 문자열이 NULL이 아닌 경우 0이 아닙니다. 그렇지 않으면 0입니다.

설명

이 함수의 기본 구현은 0을 반환하고 BSTR에 아무것도 저장하지 않습니다. MFC ActiveX ControlWizard를 사용하여 프로젝트를 만드는 경우 ControlWizard는 컨트롤의 라이선스 키를 검색하는 재정의를 제공합니다.

COleObjectFactory::IsLicenseValid

컨트롤의 라이선스가 유효한지 여부를 확인합니다.

BOOL IsLicenseValid();

Return Value

성공하면 TRUE입니다. 그렇지 않으면 false입니다.

COleObjectFactory::IsRegistered

팩터리를 OLE 시스템 DLL에 등록한 경우 0이 아닌 값을 반환합니다.

virtual BOOL IsRegistered() const;

Return Value

팩터리를 등록하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

COleObjectFactory::OnCreateObject

프레임워크에서 새 개체를 만들기 위해 호출됩니다.

virtual CCmdTarget* OnCreateObject();

Return Value

만든 개체에 대한 포인터입니다. 실패할 경우 메모리 예외를 throw할 수 있습니다.

설명

생성자에 전달된 CRuntimeClass 이외의 다른 항목에서 개체를 만들려면 이 함수를 재정의합니다.

COleObjectFactory::Register

이 개체 팩터리를 OLE 시스템 DLL에 등록합니다.

virtual BOOL Register();

Return Value

팩터리를 성공적으로 등록한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 일반적으로 애플리케이션이 시작될 때 CWinApp::InitInstance에서 호출됩니다.

COleObjectFactory::RegisterAll

애플리케이션의 모든 개체 팩터리를 OLE 시스템 DLL에 등록합니다.

static BOOL PASCAL RegisterAll();

Return Value

공장이 성공적으로 등록되면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 일반적으로 애플리케이션이 시작될 때 CWinApp::InitInstance에서 호출됩니다.

COleObjectFactory::Revoke

이 개체 팩터리의 OLE 시스템 DLL 등록을 취소합니다.

void Revoke();

설명

프레임워크는 애플리케이션이 종료되기 전에 이 함수를 자동으로 호출합니다. 필요한 경우 CWinApp::ExitInstance 재정의 에서 호출합니다.

COleObjectFactory::RevokeAll

OLE 시스템 DLL을 사용하여 애플리케이션의 모든 개체 팩터리 등록을 취소합니다.

static void PASCAL RevokeAll();

설명

프레임워크는 애플리케이션이 종료되기 전에 이 함수를 자동으로 호출합니다. 필요한 경우 CWinApp::ExitInstance 재정의 에서 호출합니다.

COleObjectFactory::UnregisterAll

애플리케이션의 모든 개체 팩터리를 등록 취소합니다.

static BOOL PASCAL UnregisterAll();

Return Value

성공하면 TRUE이고, 실패하면 FALSE입니다.

COleObjectFactory::UpdateRegistry

애플리케이션의 모든 개체 팩터리를 OLE 시스템 레지스트리에 등록합니다.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

매개 변수

lpszProgID
"Excel.Document.5"와 같이 사람이 읽을 수 있는 프로그램 식별자를 포함하는 문자열에 대한 포인터입니다.

bRegister
컨트롤 클래스의 개체 팩터리를 등록할지 여부를 결정합니다.

설명

이 함수에 대한 두 가지 양식에 대한 간략한 토론은 다음과 같습니다.

  • UpdateRegistry( lpszProgID ) 이 개체 팩터리를 OLE 시스템 레지스트리에 등록합니다. 이 함수는 일반적으로 애플리케이션이 시작될 때 CWinApp::InitInstance에서 호출됩니다.

  • UpdateRegistry( bRegister ) 이 형식의 함수를 재정의할 수 있습니다. bRegister가 TRUE이면 이 함수는 시스템 레지스트리에 컨트롤 클래스를 등록합니다. 그렇지 않으면 클래스의 등록을 취소합니다.

    MFC ActiveX ControlWizard를 사용하여 프로젝트를 만드는 경우 ControlWizard는 이 순수 가상 함수에 대한 재정의를 제공합니다.

COleObjectFactory::UpdateRegistryAll

애플리케이션의 모든 개체 팩터리를 OLE 시스템 레지스트리에 등록합니다.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

매개 변수

bRegister
컨트롤 클래스의 개체 팩터리를 등록할지 여부를 결정합니다.

Return Value

공장이 성공적으로 업데이트되면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 일반적으로 애플리케이션이 시작될 때 CWinApp::InitInstance에서 호출됩니다.

COleObjectFactory::VerifyLicenseKey

컨테이너가 OLE 컨트롤을 사용하도록 허가되어 있는지 확인합니다.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

매개 변수

bstrKey
컨테이너의 라이선스 문자열 버전을 저장하는 BSTR입니다.

Return Value

런타임 라이선스가 유효한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

기본 버전은 GetLicenseKey를 호출하여 컨트롤의 라이선스 문자열 복사본을 가져와 bstrKey의 문자열과 비교합니다. 두 문자열이 일치하면 함수는 0이 아닌 값을 반환합니다. 그렇지 않으면 0을 반환합니다.

이 함수를 재정의하여 라이선스에 대한 사용자 지정 확인을 제공할 수 있습니다.

VerifyUserLicense 함수는 디자인 타임 라이선스를 확인합니다.

COleObjectFactory::VerifyUserLicense

OLE 컨트롤의 디자인 타임 라이선스를 확인합니다.

virtual BOOL VerifyUserLicense();

Return Value

디자인 타임 라이선스가 유효한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

참고 항목

CCmdTarget 클래스
계층 구조 차트
COleTemplateServer 클래스