다음을 통해 공유


클래스 팩터리 및 라이선스

OLE 컨트롤의 인스턴스를 만들기 위해 컨테이너 애플리케이션은 컨트롤의 클래스 팩터리의 멤버 함수를 호출합니다. 컨트롤은 실제 OLE 개체이므로 클래스 팩터리는 컨트롤의 인스턴스를 만드는 작업을 담당합니다. 모든 OLE 컨트롤 클래스에는 클래스 팩터리여야 합니다.

OLE 컨트롤의 또 다른 중요한 기능은 라이선스를 적용하는 기능입니다. ControlWizard를 사용하면 컨트롤 프로젝트를 만드는 동안 라이선스를 통합할 수 있습니다. 컨트롤 라이선스에 대한 자세한 내용은 ActiveX 컨트롤: ActiveX 컨트롤 라이선스 문서를 참조하세요.

다음 표에서는 컨트롤의 클래스 팩터리를 선언 및 구현하고 컨트롤의 라이선스를 부여하기 위해 사용되는 여러 매크로 및 함수를 나열합니다.

클래스 팩터리 및 라이선스

매크로 또는 함수 설명
DECLARE_OLECREATE_EX OLE 컨트롤 또는 속성 페이지에 대한 클래스 팩터리를 선언합니다.
IMPLEMENT_OLECREATE_EX 컨트롤의 GetClassID 함수를 구현하고 클래스 팩터리의 인스턴스를 선언합니다.
BEGIN_OLEFACTORY 라이선스 함수 선언을 시작합니다.
END_OLEFACTORY 모든 라이선스 함수의 선언을 종료합니다.
AfxVerifyLicFile 컨트롤이 특정 컴퓨터에서 사용하도록 허가되었는지 여부를 확인합니다.

DECLARE_OLECREATE_EX

클래스 팩터리와 컨트롤 클래스의 GetClassID 멤버 함수를 선언합니다.

DECLARE_OLECREATE_EX(class_name)

매개 변수

class_name
컨트롤 클래스의 이름입니다.

설명

라이선스를 지원하지 않는 컨트롤의 컨트롤 클래스 헤더 파일에서 이 매크로를 사용합니다.

이 매크로는 다음 코드 샘플과 동일한 용도로 사용됩니다.

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

요구 사항

헤더 afxctl.h

IMPLEMENT_OLECREATE_EX

컨트롤의 클래스 팩터리와 컨트롤 클래스의 멤버 함수를 GetClassID 구현합니다.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

매개 변수

class_name
컨트롤 속성 페이지 클래스의 이름입니다.

external_name
애플리케이션에 노출되는 개체 이름입니다.

l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
클래스의 구성 요소입니다 CLSID. 이러한 매개 변수에 대한 자세한 내용은 에 대한 IMPLEMENT_OLECREATE비고를 참조하세요.

설명

이 매크로는 매크로 또는 BEGIN_OLEFACTORYEND_OLEFACTORY 매크로를 사용하는 컨트롤 클래스에 DECLARE_OLECREATE_EX 대한 구현 파일에 표시되어야 합니다. 외부 이름은 다른 애플리케이션에 노출되는 OLE 컨트롤의 식별자입니다. 컨테이너는 이 이름을 사용하여 이 컨트롤 클래스의 개체를 요청합니다.

요구 사항

헤더 afxctl.h

BEGIN_OLEFACTORY

컨트롤 클래스의 헤더 파일에서 클래스 팩터리의 선언을 시작합니다.

BEGIN_OLEFACTORY(class_name)

매개 변수

class_name
클래스 팩터리를 포함하는 컨트롤 클래스의 이름을 지정합니다.

설명

클래스 팩터리 라이선싱 함수의 선언은 즉시 BEGIN_OLEFACTORY시작되어야 합니다.

요구 사항

헤더 afxctl.h

END_OLEFACTORY

컨트롤의 클래스 팩터리 선언을 종료합니다.

END_OLEFACTORY(class_name)

매개 변수

class_name
클래스 팩터리를 포함하는 컨트롤 클래스의 이름입니다.

요구 사항

헤더 afxctl.h

AfxVerifyLicFile

이 함수를 호출하여 명명된 pszLicFileName 라이선스 파일이 OLE 컨트롤에 유효한지 확인합니다.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

매개 변수

hInstance
사용이 허가된 컨트롤과 연결된 DLL의 인스턴스 핸들입니다.

pszLicFileName
라이선스 파일 이름을 포함하는 null로 끝나는 문자열을 가리킵니다.

pszLicFileContents
라이선스 파일의 시작 부분에 있는 시퀀스와 일치해야 하는 바이트 시퀀스를 가리킵니다.

cch
pszLicFileContents의 문자 수입니다.

Return Value

라이선스 파일이 존재하고 pszLicFileContents의 문자 시퀀스로 시작하는 경우 0이 아니고, 그렇지 않으면 0입니다.

설명

-1인 경우 cch 이 함수는 다음을 사용합니다.

_tcslen(pszLicFileContents);

요구 사항

헤더 afxctl.h

참고 항목

매크로 및 전역