function TDataBlockInterpreter.InternalCreateObject(const ClassID: TGUID): OleVariant; var Unk: IUnknown; begin OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVER, IUnknown, Unk)); Result := Unk as IDispatch; end;function TDataBlockInterpreter.CreateObject(const Name: string): OleVariant; var ClassID: TGUID; begin if (Name[1] = '{') and (Name[Length(Name)] = '}') then ClassID := StringToGUID(Name) else ClassID := ProgIDToClassID(Name); if CanCreateObject(ClassID) then Result := InternalCreateObject(ClassID) else raise Exception.CreateResFmt(@SObjectNotAvailable, [GuidToString(ClassID)]); end; ----------------------------------- 使用CreateObject(ProgID)即可。
var
Unk: IUnknown;
begin
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVER, IUnknown, Unk));
Result := Unk as IDispatch;
end;function TDataBlockInterpreter.CreateObject(const Name: string): OleVariant;
var
ClassID: TGUID;
begin
if (Name[1] = '{') and (Name[Length(Name)] = '}') then
ClassID := StringToGUID(Name) else
ClassID := ProgIDToClassID(Name);
if CanCreateObject(ClassID) then
Result := InternalCreateObject(ClassID) else
raise Exception.CreateResFmt(@SObjectNotAvailable, [GuidToString(ClassID)]);
end;
-----------------------------------
使用CreateObject(ProgID)即可。