아래 코드는 COM 클래스 팩터리를 상속받아 또다른 클래스 팩터리를 구현하는 것으로 보입니다.
제가 델파이는 잘 모르지만, 아래 코드를 델파이에서 DLL이나 라이브러리로 컴파일하여 C++Builder에서 사용하는 방법을 모색하는 것이 나을 듯합니다.
한편, IE의 Tool Band를 구현하는 것이라면, 아래의 MSDN에 가보시면 C++로 된 자세한 코드가 있습니다.
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/samples/bands/readme.asp?frame=true
장동훈 님이 쓰신 글 :
: unit ComFac;
:
: interface
:
: uses Windows, ActiveX, ComObj, Registry;
:
: type
: ComFacProc = procedure;
: //- 클래스 부분
:
: TComFac = class (TComObjectFactory)
: private
: FInstallProc, FUnInstallProc : ComFacProc;
: public
: constructor Create(ComServer: TComServerObject; ComClass: TComClass;
: const ClassID: TGUID; const ClassName, Description: string;
: const InstallProc, UnInstallProc : ComFacProc;
: Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);
: procedure UpdateRegistry(Register: Boolean); override;
: end;
:
: // - 구현부분
: constructor TComFac.Create(ComServer: TComServerObject; ComClass: TComClass;
: const ClassID: TGUID; const ClassName, Description: string;
: const InstallProc, UnInstallProc : ComFacProc;
: Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);
: begin
: inherited Create(ComServer, ComClass, ClassID, ClassName, Description, Instancing, ThreadingModel);
: FInstallProc := InstallProc;
: FUnInstallProc := UnInstallProc;
: end;
:
: procedure TComFac.UpdateRegistry(Register: Boolean);
: begin
: inherited;
: case Register of
: True : if Assigned(FInstallProc) then FInstallProc;
: else if Assigned(FUnInstallProc) then FUnInstallProc;
: end;
: end;
:
: 이게 델파이 코드인데 빌더로 어떻게 변환하져...
: 일단 일부했는데... TComFac = class (TComObjectFactory) <- 클래스 선언부터 에러가 주루룩 나더군여
: 일부라도 좋으니 어떻게 변환하는지 좀 가르쳐 주세요
: 델파이 책 봐가면서 해도 델파이에 무지하여 잘 모르겠습니다...