Highlighted

Calling CSH Multiscreen HTML5 help file from C++ API

Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

We have a C++ desktop application requiring context-sensitive help.  We have been using the RoboHelp WebHelp format for years; now we are migrating to the newer Multiscreen HTML5 help, using the Desktop profile only.

1) Is it possible to do this?  Can a C++ desktop application call context-sensitive help using the Multiscreen HTML5 format?

2) If so, how do we call the Multiscreen HTML5 help file from the C++ API?  We have been using the RH_ShowHelp API call in the C++ code provided with RoboHelp, but this call does not work with our Multiscreen HTML5 file.  The RH_ShowHelp method seems to work by appending “#<id=XXXX” (where XXXX is the Map ID) to the HTML file name we call, but this does not produce a pop-up help topic using the Multiscreen HTML5, as it does using the WebHelp file.

3) Do we need to do anything special when generating the Multiscreen HTML5 help file to make it work from the C++ interface?

4) Is there another C++ API method we should be using?  The available APIs in the C++ interface are:

RH_ShowHelp

RH_AssociateOfflineHelp

RH_AssociateQuickStart

RH_RegisterTopicBrowser

RH_UnregisterTopicBrowser

RH_AIR_ShowHelp

RH_OpenHelpTopic

I found this forum post, API for calling responsive/multiscreen help , but it references only a JavaScript API, and suggests that maybe the C++ API was not updated.

Thank you very much for any information you can provide!

Jim Whitehead

Principal Software Developer

IMCS - Abacus Technology Corp.

Kennedy Space Center, Florida 32899                           

Community Beginner
Correct answer by jswtp | Community Beginner

From our testing, it appears the new HTML5 Responsive format and Multiscreen formats are incompatible with the RoboHelp C++ API and the .NET API provided by Adobe.  Only the WebHelp format works with these native Windows application APIs.  Please correct me if I am missing something here, and I will unmark this answer as correct.

[There also seems to be a bug in recent versions of the RoboHelp C++ API that prevents the display of multiple CSH help topics during a single calling program invocation.  Each time you close the calling program and then restart it, you can display one CSH help topic.  We are able to work around this bug by using an earlier version of the RoboHelp C++ API that we have modified and corrected.]

Thank you again!

Jim

TOPICS
HTML5 layout

Views

542

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Calling CSH Multiscreen HTML5 help file from C++ API

Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

We have a C++ desktop application requiring context-sensitive help.  We have been using the RoboHelp WebHelp format for years; now we are migrating to the newer Multiscreen HTML5 help, using the Desktop profile only.

1) Is it possible to do this?  Can a C++ desktop application call context-sensitive help using the Multiscreen HTML5 format?

2) If so, how do we call the Multiscreen HTML5 help file from the C++ API?  We have been using the RH_ShowHelp API call in the C++ code provided with RoboHelp, but this call does not work with our Multiscreen HTML5 file.  The RH_ShowHelp method seems to work by appending “#<id=XXXX” (where XXXX is the Map ID) to the HTML file name we call, but this does not produce a pop-up help topic using the Multiscreen HTML5, as it does using the WebHelp file.

3) Do we need to do anything special when generating the Multiscreen HTML5 help file to make it work from the C++ interface?

4) Is there another C++ API method we should be using?  The available APIs in the C++ interface are:

RH_ShowHelp

RH_AssociateOfflineHelp

RH_AssociateQuickStart

RH_RegisterTopicBrowser

RH_UnregisterTopicBrowser

RH_AIR_ShowHelp

RH_OpenHelpTopic

I found this forum post, API for calling responsive/multiscreen help , but it references only a JavaScript API, and suggests that maybe the C++ API was not updated.

Thank you very much for any information you can provide!

Jim Whitehead

Principal Software Developer

IMCS - Abacus Technology Corp.

Kennedy Space Center, Florida 32899                           

Community Beginner
Correct answer by jswtp | Community Beginner

From our testing, it appears the new HTML5 Responsive format and Multiscreen formats are incompatible with the RoboHelp C++ API and the .NET API provided by Adobe.  Only the WebHelp format works with these native Windows application APIs.  Please correct me if I am missing something here, and I will unmark this answer as correct.

[There also seems to be a bug in recent versions of the RoboHelp C++ API that prevents the display of multiple CSH help topics during a single calling program invocation.  Each time you close the calling program and then restart it, you can display one CSH help topic.  We are able to work around this bug by using an earlier version of the RoboHelp C++ API that we have modified and corrected.]

Thank you again!

Jim

TOPICS
HTML5 layout

Views

543

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Aug 14, 2017 0
LEGEND ,
Aug 14, 2017

Copy link to clipboard

Copied

Hi there

Point of curiosity. Why Multiscreen? Why not opt instead for Responsive HTML5?

After all, Adobe is highly unlikely to do anything further with Multiscreen and Responsive HTML 5 is likely where all future development will be for the foreseeable future.

I hate to see folks paint themselves into corners.

Cheers... Rick

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Adobe Community Professional ,
Aug 15, 2017

Copy link to clipboard

Copied

I agree entirely with Rick that Responsive is where Adobe are progressing things so you will see new layouts as time progresses. Multiscreen was good if you wanted to choose entirely different layouts for each device but it wasn't as popular so responsive is the way to go. With that, each layout morphs for each device, there is no further configuration. There's more on my site and in the RoboHelp Tour that you can access from there.

I can't help you much with calling this form of help. There is information on Willam van Weelden's site and my pages on calling help have links to that.


See www.grainge.org for RoboHelp and Authoring information

@petergrainge

www.grainge.org for free RoboHelp & Authoring info. Use the blue Reply button at the top to help me help you.
The black Reply link nests replies and they sort out of order.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 15, 2017 0
Community Beginner ,
Aug 15, 2017

Copy link to clipboard

Copied

Thank you, Peter and Rick.  Based on your advice, we will go with the Responsive format.

But we are left with the same question: How do we call it from the C++ API?  The links to Willam van Weelden's web site are now all broken, but I seem to recall from those pages an emphasis on the JavaScript API...

Any other ideas on how to call Responsive CSH from the C++ API?

Thank you!

Jim

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 15, 2017 0
Adobe Community Professional ,
Aug 15, 2017

Copy link to clipboard

Copied

There's this post which says Adobe Support advised there was a mistake in the 2015 help. So it sounds like according to Adobe it should work. Maybe the referenced pdf and page number will tell you something new.
Linking F1 to ResponsiveHTML help -missing files

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 15, 2017 0
LEGEND ,
Aug 15, 2017

Copy link to clipboard

Copied

Have you seen the link below?

Click here to view

Cheers... Rick

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 15, 2017 0
Adobe Community Professional ,
Aug 16, 2017

Copy link to clipboard

Copied

I have alerted Willam to the broken links and will post again when they have been fixed.

I am assuming that you either cannot or do not wish to use good old URLs to call the help.


See www.grainge.org for RoboHelp and Authoring information

@petergrainge

www.grainge.org for free RoboHelp & Authoring info. Use the blue Reply button at the top to help me help you.
The black Reply link nests replies and they sort out of order.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 16, 2017 0
Community Beginner ,
Aug 16, 2017

Copy link to clipboard

Copied

Thank you, Amebr.  I follwed your link to this Adobe manual (http://help.adobe.com/en_US/robohelp/2015/robohtml/robohelp_help.pdf ) which suggests (on page 343) that what we are doing should work with the Responsive format, and that we are using the correct API call (RH_ShowHelp).

Thank you also, Rick, for the updated link to Willam van Weelden's article.  It looks like a different API than we have available in C++, and the references to localhost in the HTTP address suggest the use of a local web server that we do not have. So, I don't think it applies to us.

Thank you, also, Peter.  Using the actual file names (direct URLs) with hundreds of CSH help topics would be an inordinate amount of extra work for us, so we strongly prefer to use the Map IDs.

What we are doing works great with our old WebHelp files; and it works great if we switch our new files back to WebHelp format; but it does not work with the Responsive format.  It seems as if the Responsive format is not working the way it should be with the documented API calls.

On page 330 of the PDF document referenced above, I found references to WebHelp and merged WebHelp* (along with a reference to your website, Peter :-)). Perhaps  the documented methods work only with the WebHelp format?

* "From page 330 of http://help.adobe.com/en_US/robohelp/2015/robohtml/robohelp_help.pdf :On the Authoring home page of Peter Grainge’s website, you can find information about four methods of calling WebHelp:

...

• Using map IDs in merged WebHelp"

Thank you again!

Jim

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 16, 2017 0
Community Beginner ,
Aug 17, 2017

Copy link to clipboard

Copied

From our testing, it appears the new HTML5 Responsive format and Multiscreen formats are incompatible with the RoboHelp C++ API and the .NET API provided by Adobe.  Only the WebHelp format works with these native Windows application APIs.  Please correct me if I am missing something here, and I will unmark this answer as correct.

[There also seems to be a bug in recent versions of the RoboHelp C++ API that prevents the display of multiple CSH help topics during a single calling program invocation.  Each time you close the calling program and then restart it, you can display one CSH help topic.  We are able to work around this bug by using an earlier version of the RoboHelp C++ API that we have modified and corrected.]

Thank you again!

Jim

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 17, 2017 0
Adobe Community Professional ,
Aug 18, 2017

Copy link to clipboard

Copied

In case it helps, the links to Willam's topics were redirecting but incorrectly. The redirects have now been removed and the original links on my site work. You may need to clear your browser cache to stop the redirect.


See www.grainge.org for RoboHelp and Authoring information

@petergrainge

www.grainge.org for free RoboHelp & Authoring info. Use the blue Reply button at the top to help me help you.
The black Reply link nests replies and they sort out of order.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 18, 2017 0
LEGEND ,
Aug 18, 2017

Copy link to clipboard

Copied

I don't normally use the RoboHelp API's. But you can always create the URL yourself and that works like a charm for me.

The article simply shows how to build a URL that RoboHelp uses for context sensitivity. The localhost in the example is just that: an example. You can use any URL as long as the URL parameters work for you.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 18, 2017 0
Community Beginner ,
Aug 23, 2017

Copy link to clipboard

Copied

Thank you, Peter for the corrected links; and thank you William for the content at those links, and for the additional information. 🙂

I see now, William, that we could avoid the C++ API altogether, and craft our own URLs based on the guidance that you provide in your article (https://www.helpessentials.com/2017/08/05/context-sensitivity-in-responsive-and-multiscreen-html5/).

If we did this:

1) Is there any way to retain the features that the integrated API provides? In particular, we would like to keep the the "Show" link at the top of each CSH help topic.  Clicking this link splits the help topic window, with the entire help table of contents in a pane at the left, pre-opened to the location of the CSH topic being viewed. We have something similar with the responsive help, but the table of contents is not pre-opened to the help topic being displayed.

2) If we requested a new window (using rhnewwnd=1), our customers would be subject to the pop-blocking settings of their browsers. They would need to know to enable pop-ups for the help file location we are using.  How do you handle this situation?  Can this requirement be avoided for our customers?


Thank you both so much!

Regards,

Jim

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 23, 2017 0
LEGEND ,
Aug 25, 2017

Copy link to clipboard

Copied

Hi Jim,

The show link is part of the RoboHelp output. So using URL's won't matter for that. The only thing the API does is integrate with your project and build the URL in the background. There is no restriction when using your own API.

2) I don't normally use popups. I think it's a bad practice and doesn't offer anything above simply opening a help window. The only thing you can do with popups is that you can open new help calls in the same window as the help. But I've never found this worth the effort as I wouldn't want people to whitelist my help. I normally just launch the URL in a new browser window and that works fine. (Avoiding the newwnd=1 altogether.) From a browser, just a window.open (in JavaScript) or in code, a new execute of the URL to open it in the deafult browser.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 25, 2017 0