What is Dolphin?

On this page you’ll learn:

  • API Compatibility.

  • The Duck Test.

  • How StoryServer is both an EccoPro-Client and EccoPro-Server.

  • How to configure StoryServer to be an EccoPro-Client or EccoPro-Server.

  • What is Dolphin.

How is the API made?

Copyright law allows interoperability of different systems, provided their implementations are totally different.

StoryServer implements both a client and server API that is compatible with EccoPro and EccoExt.

In other words, the developers had to implement, based on publicly available information, a server that reads/writes EccoPro API commands, along with all the fixes the community made in EccoExt.

Duck Test

An analogy is a HTTP server. If you want to substitute Apache with a different web-server, you have to replace all the Apache commands with a compatible command-set that serves web-pages.

"If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck."

What is Dolphin?

Dolphin is an implementation of EccoPro’s DDE Server API ("DDE Server", "DDE Master") and EccoPro DDE Client API ("DDE Client", "DDE Slave").

This allows StoryServer to inter-operate with VB, AHK, C#, Python and applications such as MyPhoneExplorer, FreeMind.

StoryServer supports Lua natively and does not require DDE to be used.

Dolphin also includes an implementation of Auto-Assign Rules and Script API.

EccoPro DDE Architecture

In the image below, this is the DDE Architecture without StoryServer present -

  • EccoPro DDE Server responds to client requests.

  • Slang’s EccoExt implements a Auto-Assign API and allows Auto-Assign Rules "SRules" to be processed.

  • Slang’s EccoExt implements a Lua Script API and allows Lua Scripts to be processed.

  • Without Slang’s EccoExt, Auto-Assign and Lua Scripts cannot be used with EccoPro.

  • EccoPro does not implement a client API as it would cause an infinite loop.

Diagnostics
Figure 1. EccoPro DDE Architecture

EccoPro DDE Architecture, with StoryServer DDE Server turned OFF.

  • StoryServer acts as a client to import data from EccoPro.

  • StoryServer implements a DDE server API, it is not functional as it is turned OFF.

  • StoryServer implements a SRule or Auto-Assigns Rules API.

  • StoryServer implements a Lua Script API.

MM
Figure 2. EccoPro DDE Architecture with StoryServer DDE Server turned off

EccoPro DDE Architecture, with StoryServer DDE Server turned ON.

  • StoryServer implements a DDE server API, and intercepts DDE requests meant for EccoPro, when DDE Server is turned ON.

  • StoryServer implements a DDE client, it is non-functional.

  • StoryServer implements a SRule or Auto-Assigns Rules API.

  • StoryServer implements a Lua Script API.

MM
Figure 3. EccoPro DDE Architecture with StoryServer DDE Server turned on

What happens when StoryServer DDE Server turned ON and DDE-Client is started?

  • When both StoryServer DDE-Server and DDE-Client is turned on, it turns to an infinite loop.

  • Thus, the DDE Server either ON or OFF.

  • When DDE Server is turned OFF, it turns into a DDE-Client.

MM
Figure 4. StoryServer DDE Server turned on and Import - a loop occurs

What is Ecco32.exe doing in \StoryServer\ directory?

StoryServer’s unique architecture allows it to flip between acting as EccoPro DDE Server for other apps and as a DDE EccoPro client to import data from EccoPro.

This is StoryServer’s DDE Server. This .exe has been written from the ground up and allows StoryServer to communicate with third-party applications as an EccoPro DDE Server.

How do I enable or disable Dolphin?

Diagnostics
Figure 5. Configuration Wizard
  1. Run the configuration wizard. Check or uncheck [x] Enable Dolphin (DDE Server).

How does it work?

External third-party applications are looking for certain detection before starting DDE inter-op with EccoPro.

Application Comments

MyPhoneExplorer

Requires ecco.exe to be running before DDE starts.Also detects Registry keys, EccoExt.ini files

XTNDComments

Requires 'MainEccoFrame' hidden class to be registered before DDE starts

Python DDE

Detects via DDE

Last updated: 2019 Jan 19th 05:08:06