• View Communities
    • Citrix Communities
      Visit the Citrix Communities to get and share technical information and best practices about desktop delivery, datacenter, networking and cloud computing solutions.
    • Citrix Blogs
      Learn the latest from the Citrix employees who are building the future of virtual computing.
    • Citrix Developer Network
      The place for unfiltered straight talk on Citrix products. Find related blogs, best practices, code downloads, APIs and more.
    • Citrix Ready Community Verified
      Does it work with Citrix? Application compatibility questions are a thing of the past with the new Citrix Community Verified site.
  •  Sign In
Default

Windows

Welcome to the Receiver Plug-in SDK

Use this SDK to develop your Receiver for Windows integrated plug-ins.

Summary of Receiver Integration

There are 3 levels of integration: Ideally full integration will be achieved but consider which of these is most appropriate for your plug-in

  • Install: metadata is prepared that describes the install process and install time configuration for the plug-in to Receiver. See the Metadata Files section for more details.
  • Registration: when the plug-in executes, it Registers its presence with Receiver and keeps basic state up to date.
  • Full GUI Orchestration: the plug-in devolves the control of its systray menu and user notifications to Receiver.

Registration - Check for Receiver Environment

The plug-in needs to check whether Receiver is active and able to provide SDK services. If Receiver is not present, a plug-in should work standalone as before. To detect Receiver, the ARRegister() function is used. The return value from this function will indicate whether Receiver is active in which case the plug-in should use the remaining functions to pass activities on. If Receiver is not active then the plug-in should function as before. The ARRegister() function can be passed callbacks that help monitor ongoing Receiver state but there are also ancilliary functions to help this; Checks for Receiver being installed, running & whether a plug-in is already registered. Once registered, a plug-in should keep Receiver updated on any changes in its state via the ARUpdateStatus() call. See the Registration API section for more details.

User Notifications

The Receiver User Experience module tries to bring consistency to the feedback a user will receive from the plug-ins. To that end, Receiver provides a series of Notification functions for the plug-ins to call. See the Notifications API section for more details. Note: It is not expected that Receiver will draw the complex controls required for say Property Pages & plug-ins should continue to draw these as before.

Systray Menu Integration

In general Receiver will own the only systray (notification area) menu that the user will use to interact with the plug-ins. The exception to this is where a plug-in mostly operates as an application rather than a piece of infrastructure (an example of this is the Citrix Communications plug-in). In this case, where a user may drive that application via the systray menu, the plug-in should maintain its own systray identity (though it can also have a presence within the Receiver environment for more advanced functions if this seems appropriate).

Non-App plug-ins will devolve their menu entries to Receiver via the Client SDK. The active Receiver User Experience modules will determine how to present that menu functionality to the users. As a general rule Receiver will choose to take functionality that an average user would not use unless talking to the helpdesk and relocate it away from immediate systray menu access. The plug-in team should examine their menu entries and consider carefully what is relevant for the ordinary user before marking it for display. It is also useful to consider that such menu entries will be displayed out of context to the plug-in and it may be useful to reword them to be more generally descriptive. For example: 'Disconnect' on a Secure Access plug-in menu may make sense in context but if exposed by itself on an Receiver menu, rewording to something like 'Release Secure Connection' may be more appropriate (and wouldn't be out of place in the original menu). Some menu entries may be only suitable for Advanced users. From Receiver 1.1, these entries can be marked for optional inclusion on the systray menu, with the actual visibility controlled by user or administrative configuration.

See the Systray API Integration section for more details.

Enter tags to add to this page:
Please wait 
Looking for a tag? Just start typing.
Related Links