eHelp (formerly Blue Sky) and My Own Code

Following are all the posts made to the WinHlp-L list during the incident where Matthew Brown of Blue Sky had used my code in a sample, indicating he'd written it himself. The first email, from Linsey Durway, was originally dated Monday September 20, 1999 12:55 PM. The situation was made clear over the next few days.

Click here to read about a second instance of the same individual from eHelp doing the same thing with more of my code.

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

Does anyone have some code showing how to call my HTML Help (chm) file from visual basic? I need to be able to call it both to open it at the top and to open to a given topic (context-sensitive). I got the HTML Help API info from microsoft, but I hear that it doesn't apply to visual Basic because VB doesn't use the standard windows API. I'm on Windows NT. Any help would be appreciated....

Thanks,
Lindsey
--
Lindsey Durway
durway@pav.com, (512) 438-1514
Customer Documentation
Pavilion Technologies

Matthew,

Please try not to send attachments to the list. I understand it may have not been intentional (I've accidentally done it myself.) Doing so has a tendency to gum up the works (there are 1600 subscribers) and makes some individuals rather irate.

David
Microsoft HTML Help MVP

**David's HTMLHelp Center is at:
http://www.vbexplorer.com/htmlhelp.asp


> -----Original Message-----
> From: Windows Help Compiler (WINHELP) Discussion List
> [mailto:WINHLP-L@ADMIN.HUMBERC.ON.CA]On Behalf Of Matthew Brown
> Sent: Monday, September 20, 1999 4:05 PM
> To: WINHLP-L@ADMIN.HUMBERC.ON.CA
> Subject: Re: got VB code for calling HTML Help chm file?
>
>
> Here's some sample projects I put together:
>
> (I made them in VB6)
>
> Sincerely,
>
> Matthew Brown
> Blue Sky Software Technical Support
>
>
> > -----Original Message-----
> > From: Lindsey Durway [mailto:LDurway@PAV.COM]
> > Sent: Monday, September 20, 1999 12:55 PM
> > To: WINHLP-L@ADMIN.HUMBERC.ON.CA
> > Subject: got VB code for calling HTML Help chm file?
> >
> >
> > Does anyone have some code showing how to call my HTML Help
> > (chm) file from
> > visual basic? I need to be able to call it both to open it
> > at the top and
> > to open to a given topic (context-sensitive). I got the HTML
> > Help API info
> > from microsoft, but I hear that it doesn't apply to visual
> > Basic because VB
> > doesn't use the standard windows API. I'm on Windows NT.
> > Any help would be
> > appreciated....
> >
> > Thanks,
> > Lindsey
> > --
> > Lindsey Durway
> > durway@pav.com, (512) 438-1514
> > Customer Documentation
> > Pavilion Technologies

Matthew,

It's great to know that Blue-Sky likes my HTML Help tutorial so much!

'Your' code:

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 & "\VB HTML Help.chm"
Case 2
' Place other Help file paths in successive Case statements
End Select
End Function

My tutorial:

Public Function SetHTMLHelpStrings_
(ByVal intSelHelpFile As Integer) _
As String

' Set the string variable to
' include the application path
Select Case intSelHelpFile
Case 1
SetHTMLHelpStrings = App.Path & _
"\Library.chm"
Case 2
SetHTMLHelpStrings = App.Path & _
"\HelpTutorial.chm"
End Select

End Function

'Your' code:

Private Sub Form_Load()
' Set the Help file for
' What's This help topics
App.HelpFile = setHTMLHelpStrings & "VB HTML
Help.chm::/WhatsThisHelpTopics.txt"
End Sub

My tutorial:

Private Sub Form_Load()

' Set the Help file for
' What's This help topics
App.HelpFile = SetHTMLHelpStrings(1) & _
"::/Library.txt"

End Sub

Hmmm ... <vbEg!>

David
Microsoft HTML Help MVP

**David's HTMLHelp Center is at:
http://www.vbexplorer.com/htmlhelp.asp

Sorry all,

I'd meant to send that email to Lindsey only.

Sincerely,

Matthew Brown
Blue Sky Software Technical Support

Lindsey,

Take a look at the VB HTML Help class module on my site. It encapsulates the HTML Help API and runs some checks and balances the API doesn't handle by itself. Drop it into your project, set a few properties, and call whatever methods you need to get the job done.

David
Microsoft HTML Help MVP

**David's HTMLHelp Center is at:
http://www.vbexplorer.com/htmlhelp.asp

>>It's great to know that Blue-Sky likes my HTML Help tutorial so much!
>>Hmmm ...

Caught with their pants down! Best laugh I've had all day!

Dana Cline

Hi David,

I pieced together the code in that from everywhere! I spent hours searching tons of web sites for info on calling HTML Help from VB so it's not surprising you see snippets in there! There's not a lot of info out there. The What's This Help? Style gave me the most problems. I tried all sorts of ways to call it using the API command (using HH_TP_HELP_WM_HELP) and finally I realized, why am I putting myself through this? I can just set the help file properties in the Form Load and then force the .txt file name into the pszFile parameter as a string (using & "mychm.chm::/whatsthishelp.txt" as the syntax). So then I thought, if it was this much of a problem for me to figure out, it would have been so much nicer if someone had made a quick demo VB app that showed me EXACTLY how to do it, so I decided to make one for everyone.


Sincerely,

Matthew Brown
Blue Sky Software Technical Support

Matthew,

It just seems to me that the statement "(I made them in VB6)" indicates original work. You might want to start thinking about giving credit where it's due.

BTW, a sampling of some offline comments I've received so far ... and likely more on the way:

"I noticed these, er, similarities as well. Agh!"

"Which happened to look exactly like your code, comments and all, sheesh!"

Nothing in the other direction yet, Matthew. Sorry! ;-)

David

I'm sorry David,

It's just that I couldn't get it to work in a test app here, sorry. I ended up creating my own, adding in code from everywhere, including VB Explorer, and figuring out the What's This myself. There was a What's This Tester
utility, however I could never get that to work in another app other than the original.

I have pointed numerous customers to your tutorial site, however most still couldn't get it to work, so that's why I created the examples. The responses I have received off-list:

"I understand that your attatchment wasn't list-acceptable, but I'm Ok w/ it as I have been having a lot of problems with mapping and the API in HTML HELP, and this really helped!
Thanks!!"

"Thank you so much for including those attachments. I have been trying to get this API call to work for ages now."

"Trying to find this information on Microsoft's site is a nitemare. And the other Visual Basic tutorial sites aren't written with the help author in mind. I am also the programmer, and this really helped me out.

Thanks again."


Sincerely,

Matthew Brown
Blue Sky Software Technical Support

Folks,

I never thought Tom Lehrer would apply to me:

"I am never forget the day I first meet the great Lobachevsky -

In one word he told me secret of success in mathematics: plagiarize!

Plagiarize, let no one else's work evade your eyes,

Remember why the good Lord made your eyes, so don't shade your eyes,

But plagiarize, plagiarize, plagiarize... only be sure always to call it, please, research."

David

David,

I didn't see anything on your tutorial site stating that if we follow parts of your tutorial that we need shouldn't copy your code. That's the part I don't understand. Does this include the API calls? How can we not copy the code? And the API calls come from Microsoft.. Did you want me to include a text file stating that some of the code was taken from web sites? Does this mean that if I declare a variable in the future called SetHTMLHelp strings in any VB project, that I should include a .txt file stating I got the name from your site? I don't have a problem with that, I just don't understand why you would post it up on your web site for everyone to see and use, and then when someone does use it, you have an issue with it? All I thought I was doing was making it easier for people to see how to call HTML Help.

If you look at my original email, which I thought was fine, I didn't say, "I wrote all the code, it's all mine, I thought it up and worked it all out", I said, "Here's some samples - (I wrote them in VB6)". Perhaps I should have been more precise. My meaning was, "I COMPILED them in VB6", meaning, that they work here in VB6, and I am not sure about older versions.

Can you please reply off-list so we can move on and I can respond and resolve this issue with you?

Sincerely,

Matthew Brown
Blue Sky Software Technical Support

On Mon, 20 Sep 1999 16:20:32 -0700, Matthew Brown <MatthewB@BLUE-SKY.COM> wrote:

>I didn't see anything on your tutorial site stating that if we follow parts 
>of your tutorial that we need shouldn't copy your code. That's the part I
>don't understand.

That is very unfortunate. It's bad enough when an individual doesn't understand copyright law, but the harm they are likely to do is limited. When you act on behalf of a corporation, though, you need to keep to a higher standard... especially if you want to keep your job after your corporate counsel hears about your illegal actions.

>Does this include the API calls? How can we not copy the
>code? And the API calls come from Microsoft..

An API, per se, is not copywritable (though the docs on it are). But code that illustrates the use of an API certainly is. Copyright is automatic upon "publication" (which means you let someone else read it, putting it on the Web qualifies easily) and does not require registration or any form of notice.

>Did you want me to include a
>text file stating that some of the code was taken from web sites? Does this
>mean that if I declare a variable in the future called SetHTMLHelp strings
>in any VB project, that I should include a .txt file stating I got the name
>from your site? I don't have a problem with that, I just don't understand
>why you would post it up on your web site for everyone to see and use, and
>then when someone does use it, you have an issue with it? All I thought I
>was doing was making it easier for people to see how to call HTML Help.

No doubt your intentions were positive. That's not good enough; in fact, it's barely relevant. To keep it real simple: Never use anything that you did not write from scratch without asking permission of the person who did write it. Never. If you cannot find the person, don't use their
material, at all. Book publishers have entire departments of people who do nothing but obtain such permissions, in writing on an agreement, from every single person quoted in any way in their books. If a writer uses a line from someone's poem in dialog... the poet gets a letter. And, if the usage is at all significant, a check.

Yes, there is the doctrine of "fair use". If you are repeating part of a news article to a friend, you're cool. But if what you put out is in any way associated with a *commercial* product, just forget about "fair use". It won't save you when the author's attorney calls. And the check will
be lots bigger then.

>If you look at my original email, which I thought was fine, I didn't say, "I 
>wrote all the code, it's all mine, I thought it up and worked it all out", I 
>said, "Here's some samples - (I wrote them in VB6)". Perhaps I should have 
>been more precise. My meaning was, "I COMPILED them in VB6", meaning, that
>they work here in VB6, and I am not sure about older versions.

Doesn't matter what you said. There's only one issue: where is the signedpermission agreement? If you don't have one, get out your wallet.

>Can you please reply off-list so we can move on and I can respond and
>resolve this issue with you?

No, I think this is something we *all* need to be aware of. Just be glad,real glad, that you plagiarized from someone as good-natured as David. ;-)

-- Jeremy H. Griffith, at Omni Systems Inc.
(jeremy@omsys.com) http://www.omsys.com/

Matthew,

One more on-list. If you want to respond off-list, we'll go from there. But you're missing the point, and I want to make sure it's clear.

What you're suggesting is exactly what I do. Take a look at the comment block from the top of my HTML Help class module:

' ****************************************************
' HTML Help class module version 3.0e
' (c)September 1999, Delmar Computing Services
'
' For use with Microsoft Visual Basic(r)
' versions 4 (32-bit), 5 and 6
'
' Developed by David Liske, Tipton, Michigan, USA
' Microsoft HTML Help MVP 1999
' http://www.vbexplorer.com/htmlhelp.asp
'
' Proof-of-concept testing and some HTML Help
' API research provided by Robert Chandler,
' The HelpWare Group, and Varian Corporation,
' Melbourne, Vic, Australia
' Microsoft HTML Help MVP 1999
' http://www.helpware.net
'
' Please send any performance or functionality
' modifications of this file to delmar@tc3net.com
' ________________________________________________________
'
' Full technical review by
' Leonardo Presciuttini, FBM-Hudson Italiana SpA
' Bergamo, Italy
'
' Some registry functionality re-developed from
' original code written by Dave Scarmozzino
' http://www.TheScarms.com
'
' Beta testing (July 1999):
' Lani Hardage, MDL Information Systems, Inc.
' Steve Hsu, TREEV, Inc.
' John Hunt, Lotus Development Corporation
' Shirley Kelly, Corbel, A SunGard Company
' Valerie A. Lipow, Compuware Corporation
' Leyden Martinez, Copextel, S.A., Cuba
' Alejandro Sicilia, Copextel, S.A., Cuba
'
' Further testing by Dana Cline,
' Lucent Technologies, Boulder, Colorado
' Microsoft HTML Help MVP 1998, 1999
'
' GetLongPath_Legacy logic checks and code modifications,
' and all-around support of a programming geek's
' chocolate and strange snacking needs, by:
' Marnella Liske, RN, BSN
' University of Michigan Medical Center
'
' ***************************************************

And yes, this is freeware, so copying it is fine. All I asked was that you give credit where it's due. Why is that so difficult to understand? And yes, in your original posting, you wrote "I made them in VB6", indicating to me and others who've written to me privately, that yes, as you put it, "I wrote all the code, it's all mine, I thought it up and worked it all out".

Blue-Sky's PR practices are questioned regularly on this list, so what you're saying is again instantly being called into question. I'm getting emails in response to your postings like:

"Yeah right. We've all heard that one before too, and if you believe that one I've got some swampland I'd like to sell ya..."

One of the more telling responses was:

"On the net, getting heisted is the sincerest form of flattery..."

Does it matter if you get it from a book or the 'net? No, it doesn't. Giving your references should be the same as when you learned them in middle school. Respecting the work of others does count as part of your grade, even in adulthood. This is the issue ... that a company with the standing of Blue-Sky, who's already having a problem amongst this group due to their PR practices, doesn't respect the work of others enough to mention where the material came from.

David

In a message dated 21/09/99 00:50:36 GMT Daylight Time, jeremy@OMSYS.COM writes:

<< Copyright is
automatic upon "publication" (which means you let someone else read
it, putting it on the Web qualifies easily) and does not require
registration or any form of notice. >>

Are you sure that this is true if the publisher omits a statement to "reserve their rights" when publishing the work. Hand signing an original does this automatically, but I believe that publishing by non-originating methods needs such a statement for absolute reservation of copyright.

It is, of course, grossly ill-mannered arrogance to use anyone's work without attribution, whether that use is a direct copy or a concept. And there is a very fuzzy line of decision in these matters. But this thread is more about the corporate attitude of BS than specific action. And I think that this negative publishing indicates that "any publicity is good advertising" is not valid in technical areas.

In a message dated 21/09/99 00:50:36 GMT Daylight Time, jeremy@OMSYS.COM writes:

<< To keep it real simple: Never use anything that
you did not write from scratch without asking permission of the person
who did write it. Never. If you cannot find the person, don't use their
material, at all. >>

In a message dated 20/09/99 23:50:14 GMT Daylight Time, delmar@TC3NET.COM
writes:

<< I never thought Tom Lehrer would apply to me:

"I am never forget the day I first meet the great Lobachevsky -
In one word he told me <snip>
>>

I'm sure David Liske has a letter from Tom Lehrer (or his estate) <gg>

Alan Lloyd
alanglloyd@aol.com

On Tue, 21 Sep 1999 16:03:41 EDT, Alan Lloyd <AlanGLLoyd@AOL.COM> wrote:

>In a message dated 21/09/99 00:50:36 GMT Daylight Time, jeremy@OMSYS.COM
>writes:
>
><< Copyright is
> automatic upon "publication" (which means you let someone else read
> it, putting it on the Web qualifies easily) and does not require
> registration or any form of notice. >>
>
>Are you sure that this is true if the publisher omits a statement to "reserve
>their rights" when publishing the work. Hand signing an original does this
>automatically, but I believe that publishing by non-originating methods needs
>such a statement for absolute reservation of copyright.

There isn't a single world rule for copyrights yet, so when you get into the details you need professional help. ;-) IIRC, the "All rights reserved" claim is required under the Pan-American copyright convention for protection outside the US. If you are seriously concerned about violations in the US, you should always *register* your copyright; that makes you eligible for statutory punitive damages as well as actual damages (which can be hard to prove).

>It is, of course, grossly ill-mannered arrogance to use anyone's work without 
>attribution, whether that use is a direct copy or a concept. And there is a
>very fuzzy line of decision in these matters. But this thread is more about
>the corporate attitude of BS than specific action. And I think that this
>negative publishing indicates that "any publicity is good advertising" is not
>valid in technical areas.

I certainly hope not! I'm not about to buy any product many people are disgusted with, if I can possibly help it. OK, so I *did* buy Windows... and even Office 97...

>In a message dated 21/09/99 00:50:36 GMT Daylight Time, jeremy@OMSYS.COM
>writes:
>
><< To keep it real simple: Never use anything that
> you did not write from scratch without asking permission of the person
> who did write it. Never. If you cannot find the person, don't use their
> material, at all. >>
>
>In a message dated 20/09/99 23:50:14 GMT Daylight Time, delmar@TC3NET.COM
>writes:
>
><< I never thought Tom Lehrer would apply to me:
>
> "I am never forget the day I first meet the great Lobachevsky -
> In one word he told me <snip>
>>>
>
>I'm sure David Liske has a letter from Tom Lehrer (or his estate) <gg>

No, *that* is clearly Fair Use... it's nonprofit, it's partial, and it's quoted for educational purposes. And don't kill poor Tom off; he's very much alive, right here in Santa Cruz, California, USA! ;-)

-- Jeremy H. Griffith, at Omni Systems Inc.
(jeremy@omsys.com) http://www.omsys.com/