On Thursday 29 September 2016 01:14:44 David Emerson wrote:
> On 09/28/2016 03:31 PM, Graeme Geldenhuys wrote:
> > On 2016-09-28 22:59, David Emerson wrote:
> >> Alternately, if I give a GUID does an interface not automatically become
> >> COM + managed?
> >
> > No definitely not! The GUID just helps the compiler or RTL identify an
> > Interface.
>
> Oh fabulous! Thanks much. I definitely got a wrong impression on that one.
>
>  > Ctrl+Shift+G in Lazarus IDE should generate a GUID for you.
>
> thanks, very handy :)
>
Corba-style interfaces can use any string as ID so for local interfaces it is 
possible to use shorter ID-strings for better performance.
MSEide constructs such ID's by RightClick-'Insert UID'. Example: "['jA']{49}".
If the interface is listed in header of the queried class it is also possible 
to get the interface by compile time type conversion:
"
type
{$interfaces corba}

 iabc = interface
  procedure a();
  procedure b();
  procedure c();
 end;
 
 tabc = class(tobject,iabc)
  protected
   procedure a();
   procedure b();
   procedure c();
 end;

var
 abc: tabc;
 abcintf: iabc;

[...] 
 abcintf:= iabc(abc);
"
which has the best performace.

Martin
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to