Version: 2.9.4.1
Use controls to create, send, retrieve, preview and edit Internet email messages.
Frequently Asked Questions
Q: Can I compose and send HTML mail?
A: Yes. Using the AddHtml method, you can create an HTML email message with only a single line of code.
Back to Top
Q: Can I include images that are referenced in the HTML part?
A: Yes. An ASP sample that demonstrates this is available on our website.
Back to Top
Q: Do you support progress bars?
A: Yes, just put code within the Progress Event to update status information.
Back to Top
Q: Extensibility to experimental headers and proprietary SMTP servers is important to me. How far can I go using PowerTCP, before I find things it can’t do?
A: You can go pretty far. The SMTP control, for example, allows you to send any propriety command to your server. Another good example is the HeaderFields object, that allows you to add experimental headers to you mail message. PowerTCP is designed for optimal flexibility.
Back to Top
Q: Forgive my ignorance, but what do you mean by encoding/decoding anyway?
A: Mail started out as simple 7-bit ASCII messages (as defined in RFC 822). When we decided we had to shoe-horn in binary documents, UUENCODING was invented, but it wasn’t very flexible, so MIME was invented. But to be backward-compatible with RFC 822, we have to encode 8-bit binary bytes into 7-bit ASCII. So now, whenever we send or receive mail messages, encoding or decoding is part of the process. Not too difficult to understand, but the technical details can be pretty ugly (which is why you use our product instead of writing it yourself).
Back to Top
Q: How do I deploy Excel spreadsheets that use PowerTCP ActiveX controls?
A: Unfortunately, there is no consistent model for 3rd party component support across Office products and versions. The recommended usage in Excel is to use the product as a reference rather than inserting it as a control. Also, if the spreadsheet ever had a PowerTCP control inserted at any previous time, that data was cached by Excel and a new spreadsheet will be required. When deploying to users, please refer to "Distribution under Internet Information Server" in the documentation for instructions as the technique is the same.
Back to Top
Q: How do I verify email addresses?
A: The SMTP control exposes the Verify method that first queries your DNS for the mail server address, then connects to the server directly to validate the email address(es).
Back to Top
Q: How does encoding/decoding “on-the-fly” make PowerTCP a better product?
A: Most of our competitors (and most applications, for that matter), buffer received messages into a temporary file and decode it in one post-processing step. Similarly, new messages are encoded into a temporary file before sending. So these products cause processing delays while encoding/decoding, and slow things down with additional disk access. PowerTCP eliminates these delays by eliminating the temporary file…all encoding/decoding takes place “just in time” without using a temporary file, so your application operates more smoothly.
Back to Top
Q: How will I be affected if I have installed Windows XP SP2?
A: Microsoft Windows XP SP2 is a large update to the Windows XP operating system. The focus of this update is to tighten system security. One of those features is the built-in firewall. By default, Microsoft will turn on the firewall and block all applications from communicating over the Internet. As most PowerTCP products are designed for building Internet applications, those applications may be blocked from accessing the network. The solution to this problem, as it is for any application that needs to access the network, is to grant permission using Microsoft’s configuration utility. Instructions on using the Microsoft firewall are at http://www.microsoft.com/windowsxp/using/security/internet/sp2_wfintro.mspx, and more information about manual network security configuration is available by reading Microsoft Knowledge Base Article - 842242 . Also, Microsoft will disallow using ActiveX controls in Internet Explorer by default. It your web application uses PowerTCP ActiveX controls in IE, your users will have to manually adjust their security settings to allow ActiveX usage. If you find any other problems with SP2 and PowerTCP products, please contact Dart support at support@dart.com.
Back to Top
Q: I am dynamically instantiating your ActiveX control in .NET but when I deploy my application I am always getting a trial message.
A: There is a known bug in the .NET Framework that prevents ActiveX components from being licensed properly when they are dynamically instantiated. Currently, the workaround is to place the control on a form and instantiate an instance of that form without actually showing it. Microsoft is aware of the problem and we are currently looking at other workarounds for the problem.
Back to Top
Q: I am having a problem using your ActiveX Controls in .NET. Are there any issues I should know about?
A: The following error has been experienced by some customers:

"The referenced component could not be found. Invalid Primitive Type: System.Reflection.Missing. Only CLS compliant primitive types can be used. Consider using CodeObjectCreateExpression."

SP3 for Framework 1.0 and SP1 for Framework 1.1 broke compatibility with some ActiveX controls. You need to download a hotfix from Microsoft.

Anyone you distribute your app to will also have to run this hotfix until Microsoft releases SP4 for Framework 1.0 and SP2 for Framework 1.1


Back to Top
Q: I have a web page that embeds your ActiveX control that works on my development machine. On another machine, a red 'X' appears or the controls shows the Trial Message.
A: The problem is that a runtime license needs to be provided for the control. Resolution: Get LPK_TOOL.EXE from Microsoft. You can find it in their Cabinet Development kit. It is also on one of the CDs that comes with Visual Studio. Use the LPK_TOOL to create an .lpk file for YOUR control. We can't stress YOUR control enough. In other words, let's say that you have a control called MyControl that contains several Dart controls. When choosing the control in the LPK_TOOL listbox, choose MyControl, NOT the Dart Controls. Again, we can't stress this part enough as it is ALWAYS the part that is missed. Add the following to your document BEFORE any other objects are declared. Make sure LPKNAME.LPK is the name of YOUR lpk: <OBJECT CLASSID=clsid:5220cb21-c88d-11cf-b347-00aa00a28331> <PARAM NAME='LPKPath' VALUE='LPKNAME.LPK'>
Back to Top
Q: I want to use your control in a non-VB environment (e.g. Sybase or Borland) AND create it dynamically. It works on my development machine, but elsewhere it throws a license error.
A: PowerTCP uses what is known as ClassFactory2 licensing. This is a system developed by Microsoft as part of the COM architecture. All of the major development environments that we use support this type of licensing when a control is placed on a form, however, only VB or VBA type environments support it when the control is 'created' without a form. By created, this means Dimming as New, not CreateObject. Of the other environments, we currently only provide direct support only for dynamic usage in Visual C++. See the component wrappers for the code needed to instantiate an object with a license. ( Example: ITcp.h and ITcp.cpp included with the sample projects ) If you absolutely HAVE to use our products in a project without a form, you will need to get direction from the company that makes the environment ( Example: Borland, Sybase ) on how to use COM objects that require ClassFactory2 licensing. If contacting them is not an option or is too costly, we may be able to assist you if you have one of the higher level support options or purchase incident support.
Back to Top
Q: I work in non-Microsoft environments. Can your product help me?
A: Absolutely! We ship samples written in Delphi, PowerBuilder and PowerBuilder (in addition to Visual Basic 6, Visual Basic 7 (.NET), C++, and ASP). In addition, we have customers using our products in FoxPro, Cold Fusion, Java Script, and other “COM-enabled” environments.
Back to Top
Q: In Powerbuilder, the hourglass cursor does not persist when the Dart control is busy. How can I keep the hourglass?
A: Unlike other environments, the interface is automatically disabled when the cursor changes to an hourglass in Powerbuilder.

Including the code below will allow the hourglass to persist, but it will not automatically disable the interface. To produce the usual hourglass behavior, the interface must be explicitely disabled and enabled by the user.

//In the external global function declarations
FUNCTION ulong SetCapture(ulong a) LIBRARY "user32.dll"
FUNCTION boolean ReleaseCapture()
LIBRARY "user32.dll"

//In the script
ulong ll_handle, ll_rc
ll_handle = Handle(this)
ll_rc = SetCapture(ll_handle)
SetPointer(hourglass!)

//after done
ReleaseCapture()

Back to Top
Q: Is the free trial a 'full version'?
A: Yes. Your trial download is identical to the purchased product. The only difference is the trial download will only work for 30 days (in the case of ActiveX products) or will work for 7 days between each rebuild (for .NET products).
Back to Top
Q: Is this product interoperable with the .NET framework?
A: .NET COM interop is used to utilize this control within .NET, and a Visual Basic 7 sample is provided.
Back to Top
Q: Other products support only synchronous (blocking) or asynchronous (non-blocking) operation. Why do you provide both?
A: When developing a client application, our customers will typically start using our product synchronously because it is easiest to implement. Later, the application may be changed to use asynchronous communications as the application is optimized. Eventually, the application may even be ported to ASP, where synchronous operation is required. Our customers like the flexibility we provide with these two models incorporated into the same product.
Back to Top
Q: What’s ESMTP, and what do I need to know to use it?
A: Enhanced (or extended) SMTP is automatically sensed and transparently used as appropriate. The PIPELINING capability, for example, greatly improves throughput under typical conditions.
Back to Top
Q: Why am I getting a Type Mismatch error in VBScript?
A: When using our controls in VBScript, you must specify optional parameters to prevent Type Mismatch errors.
For example, to zip a file with the FileStore, you need to create a SpanSettings instance:

Dim span
Set span = CreateObject("Dart.SpanSettings.1")
...
Zip1.FileStore.Zip("c:\Test\test.zip", span)

Back to Top
Q: Can I use an ActiveX control in a .NET Windows Service?
A:

Yes, with reservations, particularly for server-side controls. Dart ActiveX controls require a message pump to process events. Unfortunately, .NET services do not implement a message pump. Therefore, server-side controls (Server, WebServer, FtpServer, etc) that require events to function cannot be used effectively in .NET services.

It may be possible for the user to implement a message pump on the application level in a .NET service.  We encourage our users to post working solutions on our forum.

Also, licensing of ActiveX controls in .NET requires the presence of the development license in the registry of the machine running the service.  The registry location of the license is:
HKEY_LOCAL_MACHINE / SOFTWARE / Dart / PowerTCP / License
This requirement is the same as for ASP deployment, and is further outlined on the Distribution page of the help file, under the heading "Distribution Under IIS."

As always, Dart controls can be used in a COM environment to develop Windows services (for example, with the PowerTCP Service control).

 


Back to Top
Q: Can I use the ActiveX controls in a scripting language such as VBScript?
A:

Yes, in most environments the ActiveX controls can be used in a scripting engine such as VBScript.

 

However, while the controls will work on 64 bit machines in compiled environments such as VB6 and VC++, they are limited to 32 bit Operating Systems in scripting environments.


Back to Top