//在Richedit的鼠标事件中调用这个函数做检测,看当前是否有激活的ole图片对象,主要通过检测REO_SELECTED标志判断,有说明是点击的图片,做相应的处理
function TRdCustomRichEdit.GetActiveObjectsMask(var ImageItem:TListImage):Boolean;
var
I,j: Integer;
ReObject: TReObject;
strMask :string;
begin
Result := False;
if Assigned(FRichEditOle) then begin
with IRichEditOle(FRichEditOle) do begin
for I := GetObjectCount - 1 downto 0 do
begin
FillChar(ReObject, SizeOf(ReObject), 0);
ReObject.cbStruct := SizeOf(ReObject);
if Succeeded(GetObject(I, ReObject, REO_GETOBJ_POLEOBJ)) then begin
if (ReObject.dwFlags and REO_SELECTED)>0 then
begin
if ReObject.dwUser >0 then
begin
Result := True;
try
ImageItem := TListImage(Pointer(ReObject.dwUser));//这里是在用ole插入图片时传入的和图片关联的对象
except
Result := False;
end;
Break;
end;
end;
end;
end;
end;
end;
end;