为什么在COM服务器的初始化时还必须调用TComObjectFactory.Create?(50分)

  • 主题发起人 主题发起人 ljwxl100
  • 开始时间 开始时间
L

ljwxl100

Unregistered / Unconfirmed
GUEST, unregistred user!
如果在客户应用程序中调用CreateComObject来创建COM对象,则CreateComObject内部创建
负责创建COM对象类厂的实例,然后使用类厂来创建对象,创建完COM对象后,类厂就被销
毁。那么为什么在COM服务器的初始化时还必须调用TComObjectFactory.Create?

 
请继续或结束
 
请继续或结束
 
类工厂是用来生成COM对象的实例的, 如果不调用,谁来提供服务呢, 看看类工厂方面的资料吧
 
老大,Com Server的dll要输出下面四个函数供程序调用,你看看这四个函数中都要调用
类工厂和comserv,它如果不在intialize部分创建类工厂的实例的话,这四个函数根本就
是摆设,屁用都没有啊!!!

function DllRegisterServer: HResult;
begin
Result := S_OK;
try
MyFactory.UpdateRegistry(True);
except
Result := E_FAIL;
end;
end;

function DllUnregisterServer: HResult;
begin
Result := S_OK;
try
MyFactory.UpdateRegistry(False);
except
Result := E_FAIL;
end;
end;

function DllGetClassObject(const CLSID, IID: TGUID; var Obj): HResult;
begin
Result := ComServ.DllGetClassObject(CLSID, IID, Obj);
end;

function DllCanUnloadNow: HResult;
begin
Result := ComServ.DllCanUnloadNow;
end;

initialization
MyFactory := TOLETestImpFactory.Create(ComServer,TOLETestImp,ClassGUID,'OLEInserter1','Delphi *.ols File Inserter',ciInternal);
end.
 
kao,才看到这个人又是临时申请的id来问问题的,白回答了,faint
 
接受答案了.
 
后退
顶部