报错提示:
Project Project1.exe  raise exception class EOleSysError with message '没有注册类别'
报错行:  Animator := IUnknown(CreateComObject(CLASS_GifAnimator)) as IGifAnimator;
全代码如下:
(在线等)
uses Windows, Messages, Graphics, ActiveX, ComObj;const
  IID_IGifAnimator: TGUID = '{0C1CF2DF-05A3-4FEF-8CD4-F5CFC4355A16}';
  CLASS_GifAnimator: TGUID = '{06ADA938-0FB0-4BC0-B19B-0A38AB17F182}';
  IRichEditOle = interface(IUnknown)
    ['{00020d00-0000-0000-c000-000000000046}']
function InsertGif(hRichEdit: THandle; const FileName: string): Boolean;
var
  ReOle: IRichEditOle;
  OleSite: IOleClientSite;
  Storage: IStorage;
  LockBytes: ILockBytes;
  OleObject: IOleObject;
  ReObj: TReObject;
  Animator: IGifAnimator;
begin
  ReOle := GetRichEditOle(hRichEdit);
  Assert(ReOle <> nil, 'RichEditOle is null!');
  Assert(FileName <> '', 'FileName is null!');  ReOle.GetClientSite(OleSite);  OleCheck(CreateILockBytesOnHGlobal(0, True, LockBytes));
  Assert(LockBytes <> nil, 'LockBytes is null!');  OleCheck(StgCreateDocfileOnILockBytes(LockBytes,
    STGM_SHARE_EXCLUSIVE or STGM_CREATE or STGM_READWRITE, 0, Storage));
  Assert(Storage <> nil, 'Storage is null!');  Animator := IUnknown(CreateComObject(CLASS_GifAnimator)) as IGifAnimator;  Animator.LoadFromFile(PWideChar(WideString(FileName)));
  OleCheck(Animator.QueryInterface(IID_IOleObject, OleObject));  OleCheck(OleSetContainedObject(OleObject, True));
  FillChar(ReObj, Sizeof(ReObj), 0);
  ReObj.cbStruct := Sizeof(ReObj);
  OleCheck(OleObject.GetUserClassID(ReObj.clsid));
  ReObj.cp := REO_CP_SELECTION;
  ReObj.dvaspect := DVASPECT_CONTENT;
  ReObj.dwFlags := REO_STATIC or REO_BELOWBASELINE;
  ReObj.dwUser := 0;
  ReObj.poleobj := OleObject;
  ReObj.polesite := OleSite;
  ReObj.pstg := Storage;
  ReObj.sizel.cx := 0;
  ReObj.sizel.cy := 0;  ReOle.InsertObject(ReObj);
  Result := True;
end;