Do ActiveX objects run in their own process?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Brett

    Do ActiveX objects run in their own process?

    Do ActiveX objects run in their own process or app domain? Referecing this
    article http://www.codeproject.com/buglist/iefix.asp, he gets events from
    ActiveX object to his IE object via marshalling. I thought marshalling was
    use for communication between processes. General comments to clarify are
    welcome.

    If something is running in another app domain (within the same process), do
    I need to use marshalling to communicate with it or is Reflection used
    instead?

    Thanks,
    Brett


  • Mattias Sjögren

    #2
    Re: Do ActiveX objects run in their own process?

    [color=blue]
    >Do ActiveX objects run in their own process or app domain?[/color]

    In general no (though it is possible to create out-of process ActiveX
    servers).

    [color=blue]
    >I thought marshalling was
    >use for communication between processes. General comments to clarify are
    >welcome.[/color]

    Marshaling is needed whenever you need to transform data from one
    representation or context to another. In this case it refers to the
    work of translating between COM automation types and .NET types or
    vice versa.

    [color=blue]
    >If something is running in another app domain (within the same process), do
    >I need to use marshalling to communicate with it or is Reflection used
    >instead?[/color]

    Yes there will be some marshaling work taking place, but it's pretty
    well hidden by Remoting.



    Mattias

    --
    Mattias Sjögren [MVP] mattias @ mvps.org
    http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
    Please reply only to the newsgroup.

    Comment

    • Brett

      #3
      Re: Do ActiveX objects run in their own process?


      "Mattias Sjögren" <mattias.dont.w ant.spam@mvps.o rg> wrote in message
      news:%23E0Q9HLX FHA.3988@TK2MSF TNGP10.phx.gbl. ..[color=blue]
      >[color=green]
      >>Do ActiveX objects run in their own process or app domain?[/color]
      >
      > In general no (though it is possible to create out-of process ActiveX
      > servers).
      >
      >[color=green]
      >>I thought marshalling was
      >>use for communication between processes. General comments to clarify are
      >>welcome.[/color]
      >
      > Marshaling is needed whenever you need to transform data from one
      > representation or context to another. In this case it refers to the
      > work of translating between COM automation types and .NET types or
      > vice versa.
      >
      >[color=green]
      >>If something is running in another app domain (within the same process),
      >>do
      >>I need to use marshalling to communicate with it or is Reflection used
      >>instead?[/color]
      >
      > Yes there will be some marshaling work taking place, but it's pretty
      > well hidden by Remoting.
      >
      >
      >
      > Mattias
      >
      > --
      > Mattias Sjögren [MVP] mattias @ mvps.org
      > http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
      > Please reply only to the newsgroup.[/color]

      Thanks. Perhaps you have a suggestion for a particular problem I'm having
      with IE, related to the above. I get the DocumentComplet e event but as
      mentioned on the link I provided, its timing is off. So the event fires
      before the page has completely loaded. This is an issue with how .NET
      handles the events. I did try the IE ActiveX object on a form and
      marshalled the events into .NET (example in link). That worked fine.
      However, my app doesn't have forms so I can't use the ActiveX object.

      When the IE DocumentComplet e() event fires, it goes from COM to .NET and
      this throws off the timing. Do you know of any possible way to detect that
      a (non ActiveX) IE page has completely rendered? I'm open to any ideas.

      Thanks,
      Brett


      Comment

      • Brett

        #4
        Re: Do ActiveX objects run in their own process?


        "Mattias Sjögren" <mattias.dont.w ant.spam@mvps.o rg> wrote in message
        news:%23E0Q9HLX FHA.3988@TK2MSF TNGP10.phx.gbl. ..[color=blue]
        >[color=green]
        >>Do ActiveX objects run in their own process or app domain?[/color]
        >
        > In general no (though it is possible to create out-of process ActiveX
        > servers).
        >
        >[color=green]
        >>I thought marshalling was
        >>use for communication between processes. General comments to clarify are
        >>welcome.[/color]
        >
        > Marshaling is needed whenever you need to transform data from one
        > representation or context to another. In this case it refers to the
        > work of translating between COM automation types and .NET types or
        > vice versa.
        >
        >[color=green]
        >>If something is running in another app domain (within the same process),
        >>do
        >>I need to use marshalling to communicate with it or is Reflection used
        >>instead?[/color]
        >
        > Yes there will be some marshaling work taking place, but it's pretty
        > well hidden by Remoting.
        >
        >
        >
        > Mattias
        >
        > --
        > Mattias Sjögren [MVP] mattias @ mvps.org
        > http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
        > Please reply only to the newsgroup.[/color]

        Thanks. Perhaps you have a suggestion for a particular problem I'm having
        with IE, related to the above. I get the DocumentComplet e event but as
        mentioned on the link I provided, its timing is off. So the event fires
        before the page has completely loaded. This is an issue with how .NET
        handles the events. I did try the IE ActiveX object on a form and
        marshalled the events into .NET (example in link). That worked fine.
        However, my app doesn't have forms so I can't use the ActiveX object.

        When the IE DocumentComplet e() event fires, it goes from COM to .NET and
        this throws off the timing. Do you know of any possible way to detect that
        a (non ActiveX) IE page has completely rendered? I'm open to any ideas.

        Thanks,
        Brett


        Comment

        Working...