eHelp (formerly Blue Sky) and My Own Code ... Again
April 28, 2002
Last updated April 30, 2002

Following are the posts made to the HATT list in April 2002 when I discovered eHelp had hijacked code from me a second time. (Click here to read about the first instance.)

--On Saturday, April 27, 2002 7:37 AM -0400 David Liske <dliske@umich.edu> wrote:

Folks,

Back in 1999, I had it out with Matthew Brown on WinHlp-L over stealing some of my code for his Blue Sky's HTML Help sample (http://www.mvps.org/htmlhelpcenter/ehelp/code_hijacking.htm). While poking around their web site this morning, I've discovered he did it with my WinHelp tutorial from 1998 as well!

Here are the details ...

If you go to http://www.helpcommunity.ehelp.com/robohelp/downloads/winhelp/ you'll find a sample named VB6 Winhelp Example.zip. Download this sample and look at the code for module1.bas (which you can open in NotePad). What you'll see is this:

#If Win16 Then
Declare Function WinHelp Lib "user" _
(ByVal hWnd As Integer, _
ByVal lpHelpFile As String, _
ByVal wCommand As Integer, _
ByVal dwData As Long) As Integer
Declare Function WinHelpTopic Lib "user" Alias "WinHelp" _
(ByVal hWnd As Integer, _
ByVal lpHelpFile As String, _
ByVal wCommand As Integer, _
ByVal dwData As String) As Integer
#Else
Declare Function WinHelp Lib "user32" Alias "WinHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As Long) As Long
Declare Function WinHelpTopic Lib "user32" Alias "WinHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long
#End If


Public Function SetHelpStrings(ByVal intSelHelpFile As Integer) As String
' Set the string variable to
' include the application path
Select Case intSelHelpFile
Case 1
SetHelpStrings = App.Path & "\vbhelp.hlp"
Case 2
' Place other Help file paths in successive Case statements
End Select
End Function

Public Sub ShowHelpContents(ByVal intHelpFile As Integer)
#If Win16 Then
' Open the help file using the
' 16-bit HELP_CONTENTS constant (3)
WinHelp hWnd, SetHelpStrings(intHelpFile), 3, 0
#Else
' Open the help file using the
' 32-bit HELP_TAB constant (15)
WinHelp hWnd, SetHelpStrings(intHelpFile), 15, 0
#End If
End Sub

Public Sub ShowHelpIndex(ByVal intHelpFile As Integer)
' Open the help file using the
' HELP_PARTIALKEY constant (261)
WinHelpTopic hWnd, SetHelpStrings(intHelpFile), 261, ""
End Sub

Public Sub ShowHelpContextID(ByVal intHelpFile As Integer, lngContextID As Long)
' Open the help file using the
' HELP_CONTEXT constant (1)
WinHelp hWnd, SetHelpStrings(intHelpFile), 1, lngContextID
End Sub

Public Sub ShowHelpKeyword(ByVal intHelpFile As Integer, strTopic As String)
' Open the help file using the
' HELP_KEY constant (&H101)
WinHelpTopic hWnd, SetHelpStrings(intHelpFile), &H101, strTopic
End Sub

Public Sub ShowHelpSecondary(ByVal intHelpFile As Integer, lngContextID As Long)
' Open the help file in a secondary
' window named "Second" using the
' HELP_CONTEXT constant (1)
strHelpWindow = SetHelpStrings(intHelpFile) & ">Second"
WinHelp hWnd, strHelpWindow, 1, lngContextID
End Sub

Once you've done that, go to my WinHelp API tutorial, which I submitted to my buddy Burt Abreu at the VBExplorer web site in August of 1998. You'll find this tutorial at http://www.vbexplorer.com/VBExplorer/winhelpapi.asp.

Compare the code. Then laugh as hard as I did when I found this just before writing this email. :-)

You know what's totally bonkers about this particular load of crap? eHelp paid me good money for some WinHelp and HTML Help tutorials and samples a couple years ago. While those paid-for tutorials and samples no longer exist on their web site, the samples containing code they blatantly stole from me are STILL THERE!!!

I am livid. eHelp ... the crap WILL STOP.

David
--On Saturday, April 27, 2002 8:51 AM -0400 David Liske <dliske@umich.edu> wrote:

Some clarification ...

While eHelp paid me for the one set of tutorials and samples, I never gave them blanket permission to copy for their own use any code I've ever written. I definitely don't work for them and will never accept a contract from them again either.

If you check the About box in "their" WinHelp sample by running the EXE file in the ZIP, you'll see it reads:

Program Written By Matthew Brown

Once again, Mr. Brown (whom I refuse to call Matthew any longer since he obviously has zero respect for me) has written my code. Golly, he must be able to synchronize his mind with my own mind! Yikes!!! 

Grrrrrrrrrrrrrr ...

BTW, if the sample mentioned disappears from the eHelp site, you can still get it from the page I've posted for this new instance of code hijacking (http://www.mvps.org/htmlhelpcenter/ehelp/code_hijacking2.htm). I'm not worried about copyright infringement as it's my own damn code in the first place.

David

 

--On Saturday, April 27, 2002 6:17 AM -0700 Sharon Burton-Hardin wrote:

Geez, David. I am really bummed about this. I am awake early and in one of those nice moods that hits me every now and then in the morning (usually I am a grouch first thing). It is actually starting to get depressing to find that they are stealing more of your code. One more thing.

I told some tech writers friends and a real estate friend last night over dinner about the current eHelp fiasco and the real estate person could not quite get what the corporate strategy of eHelp might be. From a sales point of view, as Ron might say, it makes no sense to continue to shoot the user base in the head. And the damage control efforts are beyond belief.

Since they are, in my opinion, stealing your code AGAIN, I personally think it may be time to sue. Copyright infringement is a big deal legal topic right now. And the more you are nice about this sort of thing, the more permission you give. I think, as unappealing as the idea is, because it will cost so much, I think you need to call your attorney. It is time.

sharon

Sharon Burton-Hardin
CEO, Anthrobytes Consulting
909-369-8590
www.anthrobytes.com

If the sample mentioned above happens to disappear from eHelp's site, you can still download it by clicking here.

I also mention tutorials/samples written by me which eHelp paid for which are no longer on their site. I'm adding these here so folks can see they're not using what they paid for, but rather what they didn't pay for:

 

From VBExplorer's Copyright Notice page:

You can redistribute any source code you find here in executable form only in your own business or personal projects (Please be sure and give credit to the author in your documentation). However, you may not redistribute them in source code form without express written permission. Failure to do so is a violation of copyright laws and International treaties. 

A bit of history about the tutorial at VBExplorer. I had written this in 1997 and submitted it to editor Dominic Shakeshaft of Wrox Press as an initial writing sample. When it became apparent it wouldn't be published, Mr. Shakeshaft returned it and I then turned it over to Burt Abreu of VBExplorer in August 1998.

In the About Box for Matthew Brown's eHelp sample, we find:

Program Written By Matthew Brown

Version 1.0 - April 1999

What's interesting about the code in the three samples I wrote specifically for eHelp vs. the sample currently on the eHelp web site are the target operating systems. In the tutorial from the VBExplorer site, note that the first line of the title block reads "VB3, VB4 16/32, VB5, VB6". Then there's the existence of the following information:

WinHelp is contained in the file user.dll for win16 and user32.dll for win32. The calling conventions differ if you're developing for 16-bit Windows vs. 32-bit, so we'll use conditional compilation to cover both possibilities.

#If Win16 Then
...
#Else
...
#End If

Visual Basic version 3 could target Windows 3.x, which was a 16-bit operating system. Visual Basic 4 came with two versions of itself, a 16-bit version for Windows 3.x and a 32-bit version for the 32-bit Windows 95 and later. Visual Basic versions 5 and 6 were 32-bit only and were unable to compile programs for Windows 3.x.

The code shown above from the tutorial allows for the program to be compiled for either Windows 3.x or Windows 95 and above without causing any problems.

The eHelp sample currently on their web site was obviously written in Visual Basic 6. This can be seen by opening the VBWinHelp.vbp file in NotePad and finding the existence of the following line:

Retained=0

This line will cause problems with even Visual Basic 5, as Visual Basic 5 doesn't know what to do with it.

The code Matthew Brown used from the VBExplorer tutorial was originally intended for use with earlier versions of Visual Basic. The samples I wrote under contract for eHelp were specifically written in Visual Basic 6, so there was no need to include the block of code for #If Win16 Then.

There may also be a question of whether Blue-Sky/eHelp has simply confused one set of paid-for samples with another set of samples which were not paid for. First of all, there's no question Matthew Brown did in fact plagiarize this code from me in April 1999. Beyond that, his code has always been in some area of Support on the Blue-Sky/eHelp web sites. My own code wasn't purchased by the Support group at Blue-Sky/eHelp. When the paid-for items existed on the eHelp web site (the root URL for them was
http://www.ehelp.com/RoboHELP/resources/developers/vb/visualbasic.shtm), the Support group wasn't even aware of them. There was a certain point when I told Matthew Brown about these items. He didn't even know they were there. The group who bought the samples and tutorials from me apparently never told the Support group they were even there.

This particular code, more than any other, has a bit of sentimental attachment for me. Not only did it start me down the path of everything I've done with Wrox Press an the former zdu.com, but it was also marked the beginning of my burgeoning interest in help system technology. I submitted this to VBExplorer at about the same time I began using this same code to explore how to get HTML Help to work with Visual Basic. Without this code, Burt would have had no interest in hosting my original HTML Help Center within the VBExplorer site, I'd have never become a Microsoft MVP, and a lot of other events which have happened since 1998 wouldn't have happened at all.

It turns out I should have no problem with Matthew Brown in this issue whatsoever, as he is no longer with eHelp. This is a problem with eHelp in particular. Matthew is certainly not at fault:

--On Tuesday, April 30, 2002 1:45 AM +0000 matthew_brown777 wrote:

Hello David,

For some reason I don't see my message being posted to the group.

Can you forward this to them please?

P.S. I can't believe how bitter you are and how you've twisted things around! Why on earth would you want to hound some young 24-year old kid from Tech Support (at the time, not anymore)? 

What I can't believe is why my name even exists on your web site, and associated with eHelp, whom I don't even work for any longer, and have not for years, and believe me I have no love for them at all! They seem to lay off all their good employees and keep the cheaper ones. But that's another story.

I just cannot get over you! (If I sound upset, I am). You know FULL well I made those programs to help out other help authors, and you KNOW what I meant when I said I created them in VB6. You KNOW that. We've already been round this table years ago. I wasn't trying to "steal" your code, and you know that.

I love how you twisted everything around to make it seem like I snuck into your office in the dead of night and stole your secret code! Oh no! Upset? Yes I am. I'm no longer the young, naive 24-year old beginning VB programmer. Do you think I created those programs for profit? For my own gain? Even for my own amusement? NOT AT ALL. I created them to help others, because when I tried to create help for my small 1-dialog, 3-command button VB programs that I worked on then, there was an appalling lack of documentation (at the time) on how to hook up Help. And from the countless calls I received when I was in Tech Support, it was obvious this was the case for many like me.

So what is it David? Are you jealous that these programs had more distributions than yours? Or is it your extreme hatred for eHelp that has brought this about. It has to be something? I'm sorry if I seem astounded, it just seems so incredibly petty of you, and to drag my name through the mud, it almost seems like a comedy sitcom from "Whose Line Is It Anyway".

I remember in our conversations you told me I could use your code, you told me you were happy to help out a fellow VB programmer. You had that code on your site for all to see, you said "feel free to use it, here's how I did it", and you put it up to help others too, so WHAT is YOUR PROBLEM? I Apologize if there's still some old examples on eHelp's site that don't give you due credit, they must've missed a couple or are using the wrong versions. However I can't help you with that, I haven't worked for them in years.

And I distincly remember going in and adding your name to the About box of all those samples, and even including a link to your site!! So perhaps someone has altered them or something, I don't know. Don't you remember that David? Come on, I know you remember me putting your name and web site in all the about boxes, at least the ones I created. And you KNOW that I am not that type of person. Go back to the old RoboHelp lists, and please try to read my responses without your "I HATE EHELP" glasses on. And you will realize what a mistake have made.

And again, I am very sensitive to these sorts of things, I always try to be friends with everyone. So sorry for the bad grammar of this email, and thank you for getting me all upset tonight. 

Here is the message, please post it, as I don't see it on the list. And the above email, if you feel like it.

Hi everyone,

Before I begin let me say hi to everyone from the old RoboHelp lists! It's been ages since I've done anything with RoboHelp or help authoring at all actually. I will always remember cutting my teeth at eHelp.

I'm going to give everyone a quick background -

First, I started at eHelp as a Tech Support Analyst years ago, and through hard work and perserverance, as well as due to my unwritten rule of always trying to be friends with everyone and to help others, I was promoted to RoboHelp list moderator as well as other titles and positions at eHelp, ending up as QA Engineer. 

I've long since left eHelp, and the only reason I am here is that a friend whom I keep in touch with and is still there happened to mention that my name was brought up here in a negative light.

For those of you that remember or had the chance to talk with me in person or in email, I know you will understand that I am NOT the kind of person that David makes me out to be (thank you for that, David). 

It's kind of funny actually. David must've forgotten the emails and conversations he had specifically stating I could use his code, that he didn't mind at all, and that he was glad to help out a beginning VB programmer (at that time).

I even saved them. If eHelp keeps long enough backups (which I doubt they do - however you never know) of their employees computers, you can find David's email to me in Outlook saved in one of my personal folders, where he gives me explicit permission to copy his code and use it to help others.

So David, when you said I obviously had Zero respect for you, you must have been looking into the future - today specifically. Because I USED to have respect for you. However, now I am quite ANGRY at how you have attempted to tarnish my reputation, as I am someone who has ALWAYS done nothing but try to help others! That's the whole reason behind those sample programs!

So again, David Liske, thank you for not remembering your emails to me as well as our conversations, and thank you for ruining my evening. 

To the rest of you, Hi! :) Long time no write! I hope everyone has a good week/weekend. I'm not sure if I'll be back on this list or even read the responses to this message, as my current qa/programming job does not warrant my subsctiption to this list, plus I get enough emails as it is, what with all my friends and of course, all of our personal favorite - spam! :)

Take care,

- Matthew

P.S., I'm married now and have a lovely wife and a 6 months old daughter named Lauren Ashton Brown =)
--On Tuesday, April 30, 2002 4:52 AM -0400 David Liske wrote:

Matthew,

> > For some reason I don't see my message being posted to the group.

I understand that, because of spam the group was receiving, initial messages from new subscribers are sent to the moderators first. They can then decide if the subscriber has a real interest in the list. Your message is probably in that state right now.

> > P.S. I can't believe how bitter you are and how you've twisted things
> > around! Why on earth would you want to hound some young 24-year old
> > kid from Tech Support (at the time, not anymore)?

That last bit, "(at the time, not anymore)" is the difference. I hadn't known you'd left. Understand that I'm "hounding" eHelp. I honestly thought you were still there.

> > What I can't believe is why my name even exists on your web site, and
> > associated with eHelp, whom I don't even work for any longer, and
> > have not for years, and believe me I have no love for them at all!
> > They seem to lay off all their good employees and keep the cheaper
> > ones. But that's another story.

Your name exists on my web site because your name still exists on their web site. The look is that you're still with them. Obviously, this isn't your fault whatsoever.

> > I just cannot get over you! (If I sound upset, I am). You know FULL
> > well I made those programs to help out other help authors, and you
> > KNOW what I meant when I said I created them in VB6. You KNOW that.
> > We've already been round this table years ago. I wasn't trying
> > to "steal" your code, and you know that.

Yes, we went around this years ago. But the fact is one sample was changed and the other wasn't. Whether or not you stole someone else's work isn't the question. It happened, and the WinHlp-L list agreed with me. Whether or not you were just trying to help someone doesn't matter. The fact is, you were paid, albeit possibly hourly, for making a sample using code I was never paid for.

> > I love how you twisted everything around to make it seem like I snuck
> > into your office in the dead of night and stole your secret code! Oh
> > no! Upset? Yes I am. I'm no longer the young, naive 24-year old
> > beginning VB programmer. Do you think I created those programs for
> > profit? For my own gain? Even for my own amusement? NOT AT ALL. I
> > created them to help others, because when I tried to create help for
> > my small 1-dialog, 3-command button VB programs that I worked on
> > then, there was an appalling lack of documentation (at the time) on
> > how to hook up Help. And from the countless calls I received when I
> > was in Tech Support, it was obvious this was the case for many like
> > me.

I'm not twisting anything around at all. Developers should be paid for any work they do for a company. Let me clarify: You were paid as an employee of eHelp for this specific code and I wasn't even consulted on it. The code I was paid for is now gone from the eHelp web site. Think about publishing for a moment. If a publishing company pays for one work from an author, and then no longer publishes that work, is it alright for them to go back to something else the author wrote and publish it without the author's permission? No, it isn't. That's what's happened here.

> > So what is it David? Are you jealous that these programs had more
> > distributions than yours? Or is it your extreme hatred for eHelp that
> > has brought this about. It has to be something? I'm sorry if I seem
> > astounded, it just seems so incredibly petty of you, and to drag my
> > name through the mud, it almost seems like a comedy sitcom
> > from "Whose Line Is It Anyway".

I have no "extreme hatred for eHelp". I don't even have regular hatred for eHelp. What I despise is their attitude toward this community. As I wrote in an earlier post:

============================================

At issue is now 5 years of the corporate attitude the help community has endured (I was recently sent pages indicating they copyrighted the term WinHelp in 1997). There are frequent discussions on this list, as there were on WinHlp-L, about how no one at all appreciates eHelp's marketing practices, the blatant copyright infringements, and many other problems that have occured since 1997.

Let me clarify a bit more: This is nothing like what the remaining nine states are trying to do to Microsoft. I have no desire to stop the production of RoboHelp or have the product changed. Nor do I want eHelp Corporation to go out of business. All I want to see is the nonsense stopped once and for all.

Frankly, I'd love to see eHelp become a healthy corporation with no skeletons in the closet. If they'd put more of their energy toward fixing bugs than in doing the things I've listed at http://www.mvps.org/htmlhelpcenter/ehelp/incident_4_02.htm, this community will function much better overall.

============================================

You asked "what is it?" It's my wanting eHelp to clean up their act after witnessing five years of them not treating this particular community correctly.

> > I remember in our conversations you told me I could use your code,
> > you told me you were happy to help out a fellow VB programmer. You
> > had that code on your site for all to see, you said "feel free to use
> > it, here's how I did it", and you put it up to help others too, so
> > WHAT is YOUR PROBLEM? I Apologize if there's still some old examples
> > on eHelp's site that don't give you due credit, they must've missed a
> > couple or are using the wrong versions. However I can't help you with
> > that, I haven't worked for them in years.

I wasn't aware you were no longer there. Think about that for a moment: In thinking you were still there, this looks like the same issue as in 1999 ... that while being a paid employee of eHelp, you've posted my code on the eHelp site without asking my permission or crediting me or giving me payment of any kind.

However, you're no longer there. Turns out this isn't your fault. Man, am I ever wrong in this one when it comes to you in particular.

> > And I distincly remember going in and adding your name to the About
> > box of all those samples, and even including a link to your site!! So
> > perhaps someone has altered them or something, I don't know. Don't
> > you remember that David? Come on, I know you remember me putting your
> > name and web site in all the about boxes, at least the ones I
> > created. And you KNOW that I am not that type of person. Go back to
> > the old RoboHelp lists, and please try to read my responses without
> > your "I HATE EHELP" glasses on. And you will realize what a mistake
> > have made.

There was one sample I was aware of, the HTML Help sample which is still at http://www.helpcommunity.ehelp.com/robohelp/downloads/htmlhelp/.

Yes, my mistake was in assuming you were still there. eHelp is once again clearly at fault here, *NOT* you. I want to make that perfectly clear.

> > And again, I am very sensitive to these sorts of things, I always try
> > to be friends with everyone. So sorry for the bad grammar of this
> > email, and thank you for getting me all upset tonight.

I'm definitely sorry for upsetting you, Matthew. If you still worked for eHelp I would have a valid gripe against you. Since you don't work for them now, that gripe clearly cannot stand.

> > Here is the message, please post it, as I don't see it on the list.
> > And the above email, if you feel like it.

Absolutely. It wouldn't be fair for me to do otherwise.

> > Hi everyone,
> >
> > Before I begin let me say hi to everyone from the old RoboHelp lists!
> > It's been ages since I've done anything with RoboHelp or help
> > authoring at all actually. I will always remember cutting my teeth at
> > eHelp.
> >
> > I'm going to give everyone a quick background -
> >
> > First, I started at eHelp as a Tech Support Analyst years ago, and
> > through hard work and perserverance, as well as due to my unwritten
> > rule of always trying to be friends with everyone and to help others,
> > I was promoted to RoboHelp list moderator as well as other titles and
> > positions at eHelp, ending up as QA Engineer.
> >
> > I've long since left eHelp, and the only reason I am here is that a
> > friend whom I keep in touch with and is still there happened to
> > mention that my name was brought up here in a negative light.

Make sure you thank that friend for me.

> > For those of you that remember or had the chance to talk with me in
> > person or in email, I know you will understand that I am NOT the kind
> > of person that David makes me out to be (thank you for that, David).
> >
> > It's kind of funny actually. David must've forgotten the emails and
> > conversations he had specifically stating I could use his code, that
> > he didn't mind at all, and that he was glad to help out a beginning
> > VB programmer (at that time).

I never mind giving code if proper credit is given. This issue was the whole point of our conversations in 1999.

Now, if you still worked for eHelp, the present issue against you in particular would be a valid one. However, I can see it's not valid.

> > I even saved them. If eHelp keeps long enough backups (which I doubt
> > they do - however you never know) of their employees computers, you
> > can find David's email to me in Outlook saved in one of my personal
> > folders, where he gives me explicit permission to copy his code and
> > use it to help others.
> >
> > So David, when you said I obviously had Zero respect for you, you
> > must have been looking into the future - today specifically. Because
> > I USED to
> > have respect for you. However, now I am quite ANGRY at how you have
> > attempted to tarnish my reputation, as I am someone who has ALWAYS
> > done nothing but try to help others! That's the whole reason behind
> > those sample programs!

That anger is justified. No argument there. But again, eHelp needs to go through and clean up their site. They need to post the samples containing the code they actually paid for, not what they didn't pay for.

> > So again, David Liske, thank you for not remembering your emails to
> > me as well as our conversations, and thank you for ruining my
> > evening.

Well, eHelp has ruined the past week-and-a-half, and many other evenings of mine prior to that. However, as you no longer work for them, my attack on you wasn't justified whatsoever. I obviously have an evening to make up to 
you.

> > To the rest of you, Hi! :) Long time no write! I hope everyone has a
> > good week/weekend. I'm not sure if I'll be back on this list or even
> > read the responses to this message, as my current qa/programming job
> > does not warrant my subsctiption to this list, plus I get enough
> > emails as it is, what with all my friends and of course, all of our
> > personal favorite - spam! :)

I've cc'd you on this so you get a copy.

> > P.S., I'm married now and have a lovely wife and a 6 months old
> > daughter named Lauren Ashton Brown =)

Please pass my heartfelt apologies on to them as well.

David