Ver Mensaje Individual
  #13  
Antiguo 24-11-2015
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola de nuevo,

Más sorpresas... me encuentro en la unidad "SHDocVw_EWB" del componente "EmbeddedWB" con lo siguiente:

Código Delphi [-]
uses
  EwbAcc, Windows, ActiveX, Classes 
  {$IFDEF USE_OleCtrlsFix}, OleCtrlsFix{$ENDIF}, OleCtrls, 
   OleServer, StdVCL{$IFDEF DELPHI6_UP}, Variants{$ENDIF};

Y aquí la unidad en cuestión:

Código Delphi [-]
unit OleCtrlsFix;

interface

uses
  OleCtrls, Windows, Messages;

type
  TOleControlFix = class(TOleControl)
  protected
  //  procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
    function GetIDispatchProp(Index: Integer): IDispatch;
    function GetIUnknownProp(Index: Integer): IUnknown;
  end;

implementation

{ TOleControlFix }

{procedure TOleControlFix.WMPaint(var Message: TWMPaint);
var
  PS: TPaintStruct;
begin
  if Message.DC = 0 then
  begin
    BeginPaint(Handle, PS);
    EndPaint(Handle, PS);
  end;
end; }

function TOleControlFix.GetIDispatchProp(Index: Integer): IDispatch;
var
  Temp: TVarData;
begin
  GetProperty(Index, Temp);
// Result := IDispatch(Temp.VDispatch); ***** Change to:
  Pointer(Result) := Temp.VDispatch; //this avoids the extra AddRef
end;

function TOleControlFix.GetIUnknownProp(Index: Integer): IUnknown;
var
  Temp: TVarData;
begin
  GetProperty(Index, Temp);
// Result := IDispatch(Temp.VUnknown); ***** Change to:
  Pointer(Result) := Temp.VUnknown; //this avoids the extra AddRef
end;
end.

Voy a ver qué pasa con "USE_OleCtrlsFix"... pero, ¿no es esto algo parecido a lo que pretendemos hacer? Ay madre...

Actualizo: No; definitivamente no es lo que se pretende hacer, empero, tal vez sea suficiente y una forma de no tocar la VCL... desde luego acabo de encontrar dicha opción desactivada en el archivo "EWB.inc": voy a probar a activarla a ver qué ocurre...
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 24-11-2015 a las 19:45:30.
Responder Con Cita