VcCom

Home of the VcCom API

VcCom API Introduction

VcCom API provides easy use of Virtual Channels (Citrix Virtual Channels or Terminal Server Virtual Channels) via a COM interface.  Using this API will dramatically reduce your development time and effort required to add Virtual Channel communications into your own applications.

VcCom API does not tie your applications into Virtual Channels, hence you can change the deployment of your applications between Server and Client (some on the Server and Client, all on the Server or all on the Client) without code change or configuration.

Any language that supports COM (VC++, C++, C#, VB, .Net, VB Script etc) will be able to use VcCom API. 

The API costs £399 GBP (note that it is free to charaties).

Command Channel

The API has three channels, the first two can be used to send messages between applications. The third channel is a command channel, allowing commands to be sent from the server to the client that will be executed by the client's OS in the same was as if the Start...Run option was used on the client (e.g. send www.vccom.net and the default browser will start and go to that address on the client PC). The third channel is only available in the Citrix version of VcCom.

Supports

  • VB, VB Script, .Net, VC++, C# and any language that supports Microsoft COM.
  • Citrix Virtual Channels.
  • Terminal Server Virtual Channels.
  • Bi-directional Communications.
  • Large Messages.
  • Citrix XenApp, Citrix Presentation and MetaFrame Servers.
  • Citrix Receiver (Windows PC Platforms), Citrix Win 32 ICA Clients (Program Neighborhood).
  • Remote Desktop Protocol (RDP, Remote Desktop Connection).
  • Windows 2000, 2003, 2008, 2008 R2, 2012 Server.
  • XP, Vista, Windows 7, Window 8, Windows 10

VcCom API Components & Functions

The main purpose of VcCom API is to allow string messages to be passed between applications, the messages you pass is your choice, files may also be transfered. The API provides the transport mechanism to get the messages to your other application(s). 

"Out of Process" Com Servers are used on both the server and client (this is actually the same executable). Several functions are provided to allow applications to:

  • Send messages to all other applications within the Citrix or Terminal Server session that are connected to the VcCom.
  • Send a message to a named application (an application may register a name when it connects to the VcCom). If more than one applications uses the same name, then all the applications with that name will receive the message.
  • Send a message to a specific application Id. A unique Id is provided to an application when it connects to the VcCom, this Id is sent out in each message and may be used to reply to a specific application that sent a message.
  • Receive function to enable applications to receive a message, given the name of the sender, the Id of the sender and the message that was sent.
  • Monitor all messages and type of message on the Server or the Client.

A single "out of process" Com Server is shown below (as ComHub). This allows multiple applications to connect to each other:

ComHub Diagram

These ComHubs are connected together on the server and client which provides a web like connection. The web like connection provides the server and client bi-directional communications.

Direct & Broadcast Functionality

Messages may be sent directly to a named application(s) or broadcast to all applications that are connected to the VcCom API in a given Citrix or Terminal Server session.

Multiple Applications Within A Session

Multiple applications within a given Citrix or Terminal Server session may connect to VcCom on the Server and/or Client. This almost removes the label of Server or Client applications, messages can be sent from any one application on the Server or Client and to other Server and Client applications. Any application that is connected via VcCom within the same session will be able to receive that message (unless the message is sent to a specific application and in which case only that application will get the message).

This ability can be used to allow for example:

  • Multiple Server & Client applications to communicate with each other.
  • Auditing applications. 
  • Listening applications (for support) to provide visual information on the messages sent.

Security

Should security be an issue, messages could be encrypted as VcCom imposes no rules on the messages sent.

Starting Sequence (Server or Client Application)

VcCom API does not impose any sequence in the starting of the applications. Applications that wish to communicate need to be running before messages can be passed between them.

Application Development & Deployment

We have often found that Server applications are not only deployed to a Server but may in some situations also be deployed to traditional desktops (e.g. during development), the reverse of this is where the Client application is moved back to the Server. 

To allow for these conditions, the VcCom API provides the ability (without code change) to allow the applications (Server and Client) to communicate while running on the same machine. 

How To Use VcCom

Please see the Using VcCom API page.

 

VcCom API FAQs

Please see the VcCom API FAQs page.

 

VcCom API Software Downloads

Please see the Downloads page.

 

VcCom API Developers

  • Designed and implemented by Alan MacAree. 
  • COM components by Martin Stuart.

 

Citrix Ready

VcCom API is Citrix Ready and verified with XenApp 6.5.

 

Disclaimers:

CITRIX MAKES AND YOU RECEIVE NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WITH RESPECT TO THE THIRD-PARTY
PRODUCT, ITS FUNCTIONALITY, THE TEST(S) OR THE RESULTS
THEREFROM, WHETHER EXPRESS, IMPLIED, STATUTORY OR
OTHERWISE, INCLUDING WITHOUT LIMITATION THOSE OF
FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY,
NON-INFRINGEMENT OR TITLE. TO THE EXTENT PERMITTED BY
APPLICABLE LAW. IN NO EVENT SHALL CITRIX BE LIABLE FOR
ANY DAMAGES OF ANY KIND WHATSOEVER ARISING OUT OF
YOUR USE OF THE THIRD-PARTY PRODUCT, WHETHER DIRECT,
INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, MULTIPLE,
PUNITIVE OR OTHER DAMAGES.