What is In-Proc and Out-Proc (COM) ?

Introduction to COM Servers and COM Clients

The terms ‘In-Proc’ and ‘Out-Proc’ are to describe the kind of implementation of COM Servers. Before we begin, for those who are not quite ‘COM’ savvy, here is a brief preface.

COM : The acronym COM stands for ‘Component Object Model‘ and it is the technology which provides a way for applications (.exe) and libraries (.dll) to make their functionality available to COM compliant applications or scripts. It helps developers to create re-usable software components as well as to link the components together to build applications.

Over a period the COM family has grown to include COM+ (MTS), Distributed COM (DCOM) and ActiveX. If you are interested in further reading refer to this official COM Page.

COM Servers and COM Clients :

Objects that make their functionality available through ‘COM’ are known as ‘COM Servers’ while the scripts or application which make use of this functionality are called ‘COM Clients’. As simple as that! As stated in the beginning of this post, ‘In-Proc’ and ‘Out-Proc’ terms describe the kind of implementation of COM Servers. Here is what they mean …

Out-Proc Servers :

These kinds of servers are generally implemented in executable files (.exe) and are characterized by being responsible for running in a different process than the script or application which called them.

This is to say that for example – if you are running a script which in the middle invokes a Microsoft Excel or Word as an object then this later object would run in a different process of its own then the script which called or invoked it. So if you observe your ‘Task Manager’ you would notice a ‘WScript.exe’ process (for the script) and another process as ‘winword.exe’ (for MSWord) object.

In-Proc Servers :

These type of servers are typically implemented in Libraries (.dll). and unlike the Out-Proc servers, they run in the same process as the script or application which called or invoked them. They do not create a separate process for themselves.

A good example would be the ‘Scrun.dll’ (Scripting Runtime Library). So if you try creating an instance of say ‘FileSystem’ Object (which exists in scrun.dll) you would not notice any separate process coming up then the already running process of the active script itself (WScript.exe).

On the last note, the worth mentioning point would be that ‘In-Proc’ servers are generally faster than the ‘Out-Proc’ servers since the operating system does not have to cross the process boundaries to interact with the object and its methods/properties.

Tushar Sharma
Tushar Sharmahttps://www.automationdojos.com
Hi! This is Tushar, the author of 'Automation Dojos'. A passionate IT professional with a big appetite for learning, I enjoy technical content creation and curation. Hope you are having a good time! Don't forget to subscribe and stay in touch. Wishing you happy learning!

6 COMMENTS

  1. I enjoyed your blog. It’s easy to read,The post is quite neat and every word is so simple that is easy to understand. That’s one actually nice post.

  2. I would like to thank you for the articles you are writing.the content is good, and you’re an educated writer unlike most of the blogs I come across when searching on this topic.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

RELATED POSTS

Early Bound Vs Late Bound (Binding)

What is Binding Before we dive into 'Early' and 'Late' stuff, let us discover, what the 'Binding' itself means? In simple terms, the 'Binding' refers to...

VBS Part 2 – Fundamentals and Concepts

Having gone through the Introductory part, it is time to look at some crucial fundamentals and concepts. This article is to refresh some of...

Does VBScript Supports all COM Objects ?

Well the answer in one line is - No VBScript does not supports all COM Objects or Servers! VBScript works with only a subset of ‘Objects’...

Â

RECENT 'HOW-TO'

How To Install Oh-My-Posh On Windows PowerShell

Oh-My-Posh is a powerful custom prompt engine for any shell that has the ability to adjust the prompt string with a function or variable. It does not...

SIMILAR ON CODEX

FEATURED PROJECTS

Windows JDK Manager (win-jdk-Manager)

ADjo LABS PROJECT : Simple and lightweight desktop utility with Interactive cmd Interface for easy view, re-point and switching between JAVA versions on windows. Demonstrating the capability...

MORE IN THIS CATEGORY

Remove Duplicates from List Using LinkedHashSet

Another implementation of the Set interface is LinkedHashSet. LinkedHashSet maintains the order of elements and helps to overcome the HashSet limitation. The following code...

Concatenate Strings Using StringBuilder.append()

In addition to String, Java has the java.lang.StringBuffer and java.lang.StringBuilder classes. These can also be used to concatenate Strings. The advantage of these...

Java Tutorial #2 – Operators in Java

Table of Contents Introduction 1. Assignment Operator 2. Arithmetic Operators 3. Compound Operators 4. Increment & Decrement Operators 5. Relational Operators 6. Logical Operators Introduction Operators are an essential...

CHECKOUT TUTORIALS

Java Tutorial #1 – Variables and Data Types

Table of Contents Introduction 1. Variables 2. Data Types Primitive Data Types Integer Data Types Decimal Data Types Character Data Types Boolean Data Types Reference...
- Advertisement -spot_img