|
|||
Version
www.capesoft.com |
|||
CapeSoft Support | |||
support@capesoft.com | |||
Telephone | +27 87 828 0123 | ||
Fax | +27 21 715 2535 | ||
Post | PO Box 511, Plumstead, 7801, Cape Town, South Africa | ||
CapeSoft Sales | |||
Web | www.capesoft.com | ||
![]() |
|||
Telephone | +27 87 828 0123 | ||
Fax | +27 21 715 2535 | ||
Post | PO Box 511, Plumstead, 7801, Cape Town, South Africa | ||
The various File Explorer classes require the following to be installed. While File Explorer (or parts thereof) may work on earlier versions than those indicated below, these are considered to be the minimum system requirements.
Microsoft Internet Explorer 5.5 (or later) |
![]() |
Adobe Acrobat Reader 4 (or later) |
![]() |
Windows Media Player 6.4 (or later) |
![]() |
Macromedia Flash Player |
![]() |
DLLs required (Standalone mode compiles) | |||
Clarion Version | DLL required | ||
Clarion 6.1 | C6 0FEX.DLL and PWUTIL.DLL | ||
Clarion 5.5 | C55FEX.DLL and PWUTIL.DLL | ||
DLLs required (Local mode compiles) | |||
Clarion Version |
DDLL required | ||
Clarion 6.1 | PWUTIL.DLL | ||
Clarion 5.5 | PPWUTIL.DLL | ||
Activate File Explorer | |||
Summary | |||
Global Extension Template Activate CapeSoft File Explorer Features in your application Required |
|||
What does it do? | |||
You must add this template to your app or no other templates / objects will work. This template sets up the File Explorer classes (dll / lib) so that other templates can implement those classes. | |||
Prerequisites | |||
None | |||
How do I implement it? | |||
1. Open your app 2. Select "Global Properties" from the "Application" menu 3. Click the "Extensions" button 4. Click the "Insert" button Select "Activate_File_Explorer" ( found under "Class File Explorer" ) 5. Click the "Select" button ( you can leave all default settings, these are discussed below ) 6. Click "OK" 7. Click "OK" again |
|||
What are my options? |
|||
Folder for temp files Do not generate any code |
|||
Document Viewer | |||
Summary | |||
Control Template View Html, PDF, and SWF files Optional |
|||
What does it do? | |||
Populate this control onto a window in order to be able to view and / or edit HTML, PDF, or SWF files in it. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
|
|||
What are my options? |
|||
"General" Tab Object TypeThis control used to be able to load more than one file type. As the functionality evolved we had to break it up to support only one file type per control. Choose the File Type here. "Common" Tab Initial DocumentIf you want this control to load a file as the window opens, enter the file name here. Tick "Variable?" if you want to enter a variable instead of a filename. Provide 'All Files' Option in File Lookups If the user uses the template's 'File Lookup' button to find files (much like the DOS File Lookup Clarion control), enabling this option will result in the lookup including 'All Files' as a supported file type. "Browse Html" Tab - only available if you choose Html Browsing on the first tab Auto-Resize controlHave the Viewer control automatically resize when the window resizes, selected by default. Implement Callback Events Callback events are handled "internally" by File Explorer, which calls a virtual method called EventCallback each time an event is fired. If you want to enable Callback events, simply tick this option here. (Note: Enabling Callback events will add some overhead to the object, so theoretically it will slow it down, however the speed difference should not be noticeable). "Edit Html" Tab - only available if you choose Html Editing on the first tab Auto-Resize controlHave the Viewer control automatically resize when the window resizes, selected by default. Implement Callback Events Callback events are handled "internally" by File Explorer, which calls a virtual method called EventCallback each time an event is fired. If you want to enable Callback events, simply tick this option here. (Note: Enabling Callback events will add some overhead to the object, so theoretically it will slow it down, however the speed difference should not be noticeable). "PDF" Tab - only available if you choose PDF on the first tab Show ToolbarDecides whether or not the native PDF toolbar is displayed when you view documents. Show Scrollbars Decides whether or not scrollbars are displayed when you view documents. Initial Zoom Sets the initial zoom percentage for the object. Preferred Acrobat Version Because it is possible to have more than one version of Adobe Acrobat installed on your PC, and because some methods only work with Acrobat 4 ( as described in the methods and properties sections of this document ), we enable you to specify which version of Adobe Acrobat should be loaded. If the version you choose here is not installed on the PC, any available version will be loaded. "Flash" Tab - only available if you choose Flash on the first tab Loop FilesPlays the file repeatedly if enabled "Object" Tab Object NameEach Viewer Control instantiates a File Explorer object (from the File Explorer class), which it uses to "work". These File Explorer objects need names. The templates will automatically name the objects for you (typically something like ThisViewer1, ThisViewer2 etc), but you can rename the object here if you have reason to. Var to Disable Optionally create a variable (Byte) which can be set at runtime, which will disable this object if set to 1 (True), and enable it if set to 0 (False). You can point all objects in your app to a single override variable allowing a single 'switch' for the user to disable all controls, or use multiple variables allowing the user 'switches' to disable specific controls or groups of controls at run-time. Don't Generate Any Code No code will be generated for this particular object at compile time. |
|||
Media Viewer | |||
Summary | |||
Control Template Play sound and video files Optional |
|||
What does it do? | |||
Populate this control onto a window in order to be able to play sound and video files | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
|
|||
What are my options? |
|||
"General" Tab ( no options )"Common" Tab ( File Types )The top two sections of this tab allow you to choose which file types this control will be allowed to play. Provide 'All Files' Option in File Lookups If the user uses the template's 'File Lookup' button to find files (much like the DOS File Lookup Clarion control), enabling this option will result in the lookup including 'All Files' as a supported file type. Initial Document If you want this control to load a file as the window opens, enter the file name here. Tick "Variable?" if you want to enter a variable instead of a filename. "Advanced" Tab Auto-Resize controlHave the Viewer control automatically resize when the window resizes, selected by default. Implement Callback Events Callback events are handled "internally" by File Explorer, which calls a virtual method called EventCallback each time an event is fired. If you want to enable Callback events, simply tick this option here. (Note: Enabling Callback events will add some overhead to the object, so theoretically it will slow it down, however the speed difference should not be noticeable). "Other" Tab Auto-Rewind Sets whether the Media Files automatically rewind once they have finished playing. Allow Zoom Changing Sets whether the user can right-click on the media file while it is playing, and adjust the zoom properties. Auto-Start Sets whether the Media Files start playing automatically once loaded. Mute Sound Mute the sound. Times to Play Set the number of times a file plays before stopping. Playback Rate Set the control's playback rate. 100 plays files at their 'normal speed' of 100%. Entering a value of 50 or 200 would play files at 50% or 200% of their 'normal' speed. Zoom SSets the zoom for the video clip. Select one of 50%, 100% or 200% (relative to the default playing size of the media clip); 'Full Screen', 'Fit', '1/16th Screen Size', '1/4 Screen Size' or '1/2 Screen Size'. Note that some zoom sizes (such as 'Full Screen') will only work if the file which you load supports that resolution. Also, note that setting the zoom to 1/2 of the screen size will not work if your FileExplorer control is not large enough to hold that size. Start Time By default, files start playing at the beginning (0.0). Setting this to 10.5 would start playing the file 10 and a half seconds into the clip. There is also a property called 'End At', and 'Duration'. See the 'Properties' section in these docs for notes on how to implement these. Position (Left, Right, Bottom) When loading a file into the MediaViewer control, the ocx may resize itself to fit the size of the file it is loading (visual size). To clean this up you can set these three sizes here. Immediately after the file loads (and the ocx resizes itself), File Explorer will resize the ocx so that there are these units of space between the control's left, right and bottom borders, and the left, right and bottom borders of the parent window. Auto-Resize Set this to true if you want the control to automatically resize itself each time a new file is loaded. The control will increase or decrease in size so that it is large enough to contain the loaded file (assuming your window is large enough!). By default this is set to 'false'. "UI" / "User Interface" Tab Show ToolbarSets whether or not the native Media Viewer toolbar is displayed. Enable Toolbar Enables / disables the toolbar. The 'Show Toolbar' option must be checked to use this. Show Slide Bar Sets whether or not the "Slide Bar" control appears. This is the control which you can use to "move around" inside the playing file. Enable Slide Bar Enables / disables the slide bar. The 'Show Slide Bar' option must be checked to use this. Show Position Controls Sets whether or not the "Position Controls" inside the toolbar are displayed. The 'Enable Toolbar' and the 'Show Toolbar' options must be checked in order to use this. Show Info Window Sets whether or not the 'Additional Information Window' is displayed. This window shows information such as 'Artists Name' and 'Copyright Information'. By default this is not activated. SShow Goto Bar Sets whether or not the "Goto" drop list is displayed. By default this is not activated. Right Click Menu When the user right-clicks on the control (assuming a file has been loaded into it), a popup menu appears, allowing the user to set various options. This is a native Microsoft popup menu. If you want to turn off this menu (so it does not appear), do that here. "Object" Tab Object NameEach Viewer Control instantiates a File Explorer object (from the File Explorer class), which it uses to "work". These File Explorer objects need names. The templates will automatically name the objects for you (typically something like ThisViewer1, ThisViewer2 etc), but you can rename the object here if you have reason to. Var to Disable Optionally create a variable (Byte) which can be set at runtime, which will disable this object if set to 1 (True), and enable it if set to 0 (False). You can point all objects in your app to a single override variable allowing a single 'switch' for the user to disable all controls, or use multiple variables allowing the user 'switches' to disable specific controls or groups of controls at run-time. Don't Generate Any Code NNo code will be generated for this particular object at compile time. |
|||
Background Media Load Button | |||
Summary | |||
( No longer supported - please use the CallFe_MediaAPIMethod ccode template instead ) | |||
Document Print Button | |||
Summary | |||
Control Template Prints the currently loaded document Optional |
|||
What does it do? | |||
This template drops a button onto your window, which prints the loaded document when you click it. You will need to have already populated a Viewer Control onto the window before you can populate this template. It currently supports printing html pages (feBrowser, feHtmlEditor) and also PDF documents (fePDF). | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? |
|||
Don't show "Printer Options" dialog
window |
|||
Flash Control Buttons | |||
Summary | |||
Control Template Used with the Document Viewer template Optional |
|||
What does it do? | |||
This template populates a "Play", "Pause", and "Stop" button onto your window, to control the playing of Flash files in the Document Viewer control. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? |
|||
There are no additional options for this template. |
|||
Background Color Button | |||
Summary | |||
Control Template Used with the Document Viewer control Optional |
|||
What does it do? | |||
Use this template to change the background color of an html document (Html editing, not browsing), using the following steps ( assuming you have already populated a Viewer Control and have set it up to support "Html Editing" ). | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? |
|||
Reload Document After Updating |
|||
Html Edit Buttons | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
To Do | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? |
|||
(( none ) |
|||
Html View Buttons | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
To Do | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? | |||
(( none ) |
|||
Media Buttons | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
To Do | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
1. On the window where you want to use this control, simply choose "Control Template..." from the "Populate" menu. | |||
What are my options? | |||
(( none ) |
|||
CallFe_EditMethod | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
In order to use this code template, you must have already populated one of the Viewer Controls onto your window. Use this template ( typically behind a button ) to implement the File Explorer "Edit" method. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
To Do | |||
What are my options?
|
|||
Parent Object |
|||
CallFe_LoadMethod | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
In order to use this code template, you must have already populated one of the Viewer Controls onto your window. Use this template ( typically in the event::accepted for a button ) to load a file into an existing Viewer Control. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
To Do | |||
What are my options?
|
|||
Parent Object |
|||
CallFe_MediaAPIMethod | |||
Summary | |||
Control Template Optional |
|||
What does it do? | |||
The template is typically used to play MP3 files in the "background" while your app is running (you don't lose focus while the file plays). It is typically used behind a button, but could also be used as your window opens to start playing an MP3 file "automatically" as the window opens. The code generated by this template calls functions in the File Explorer dll, which in turn implement the MCI (Windows Media Control Interface API), so no File Explorer objects need to be instantiated, and you do NOT need to have Windows Media Player installed, as we do not use the Media Player ocx at all here, only standard Win32 API calls. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
See the feMedia_MCIExamples procedure in the feabc.app example application that ships with File Explorer. | |||
What are my options?
|
|||
Option |
|||
CallFe_NavigateMethod | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
In order to use this code template, you must have already populated one of the Viewer Controls onto your window. Use this template ( typically behind a button ) to implement the File Explorer "Navigate" method, and navigate to a specific page within the loaded document. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
To Do | |||
What are my options?
|
|||
Parent Object |
|||
Declare FE Object | |||
Summary | |||
Control Template To Do Optional |
|||
What does it do? | |||
This very simple code template simply instantiates (in code) a new object for the File Explorer class. When you use the "main" control templates (Viewer Controls etc) they create File Explorer objects for you, which you could then reference from your own code ( eg. ThisViewer1, ThisViewer2 ... ). You may want to write code that references the File Explorer class in a procedure which does not already have any File Explorer templates present, in which case you could either make (instantiate / declare) the object yourself, or simply use this template. | |||
Prerequisites | |||
You need to have added the Active_File_Explorer global extension template to your application. | |||
How do I implement it? | |||
To Do | |||
What are my options?
|
|||
Object Name |
|||
fe_ClassVersion
fe_DebugString
fe_GetHtmlGraphicsInfo
fe_GetIEVersionInfo
fe_GetOSVersionInfo
fe_GetRegValue
fe_MCIPlay
fe_MCIStop
fe_OnlineStatus
fe_OnlineStatusConnectionName
fe_ShellExecute
fe_StartIE
feDispose
Dll Functions | |||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||
1.1 When I click on the "Help" button
for a template (Actions tab) I get an error saying "The topic file does
not exist. Contact your application vendor for an updated Help file"...
You have an old copy of the File Explorer help file (c55fex.hlp). Search
for all copies of this file, delete all of them, then reinstall the latest version
of File Explorer.
1.2 "Link Error: Unresolved External Fe..." - how to handle these
(compile) errors...
Several users who are using MultiProj to generate dlls which contain File Explorer
have asked about this. In your app's Global Extensions, go to "Activate
MultiProj Support", to the "Versions" tab, "Properties",
"Resources", and make sure that you've included "c55fex(l).lib"
as a resource.
1.3 Compile errors?
a)
See the section "Considerations if upgrading...".
b) Also, check that your app is 32 bit, that you don't have bits of an old version of FE lying around, and that your redirection file is pointing to the paths where File Explorer is installed (3rdParty/bin, 3rdParty/libsrc etc).
c) Also, there seems to be an issue whereby some C55 installations (only C55 "G"
as far as I know) have a window.tpw file which does not set up the %LocalClassDefinition
embed point, which our templates use. It might be caused by running the
"gold to G" patch, but this has not been confirmed. You can download the
correct version of window.tpw by clicking
here.
1.4 Having multiple Viewer Controls on one window...
No issues, please upgrade to version 2.9 or later.
1.5 Since upgrading my app won't compile - I get a compile error saying "Syntax
error: Illegal data type" FEOLDBROWSER"
If you get this please email us at
.
1.6 Is there a way to see if a user has a live internet connection?
Yes. Have a look at the fe_OnlineStatus
function.
1.7 I have a procedure that contains a File Explorer
control. I pass a filename to this procedure and the control loads it.
It used to work fine, but now it isn't working (loading the file)! What's
happened?
In one of the earlier versions of File Explorer we used to initialize the onjects
in ThisWindow::Init (after the window opens). Due to complications with
some objects we moved this code (template generated) to after the event "after
window opens". We sent out an email to let everyone know at the time..
1.8 On one of my test machines FE runs perfectly.
On another machine the window containing the File Explorer control croaks as
soon as it opens. Any ideas?
A user reported this and it turned out to be that he had an old version of the
Windows "OLEPRO32.DLL" in his testing directory. Once he removed
that dll all was fine.
1.9 I've noticed that in my c55\3rdParty\examples
directory there is one folder called "FileExplorer" and another called
"File Explorer"...
Please delete the one called "FileExplorer" (one word), it is from
an early version of File Explorer - sorry about that..
1.10 I'm getting an error message "Entry Point
Not Found / procedure entry point could not be located in the DLL PWUtil.dll"
Your app is using an old version of the file called "pwutil.dll".
Use whichever version of this dll shipped with the version of File Explorer
that you used when compiling the app.
1.11 I've heard that some Developers are using
File Explorer with a Panel control rather than the Clarion OLE control, what's up with that???
This FAQ is no longer a recommended FAQ, since build 3.70 Gold you
must change all old OLE controls to be PANEL controls or you will get compile
errors. Click here for more information on
this and for instructions on how to do this.
1.12 Is it possible to use SetPosition to move a
File Explorer Viewer control? I can't get it to work...
Yes, but because of how we built File Explorer if you ever move or resize or
hide or unhide the Panel control you need to tell File Explorer that you have
done so, using our Resize method, as follows:
SetPosition (?feControl, 50, 50, 200, 250)
ThisViewer1.Resize()
2.1 When I try to browse a web page File Explorer
does not "trigger" my "dial up networking" window!
It just says that it can't find the webpage.
Enable the Dial Up Networking features from your Global Extension options.
2.2 I need to implement Callback events for the feBrowser object, where do
I start?
Have a look at the "Advanced_feBrowser_SimpleCallbacks" procedure
in the feabc.app example application.
2.3 I need to know when the loading page is done.
Check the feDemo example application the Callbacks examples
for the browser demonstrate the use of the DocumentComplete callback. Also see
DocumentComplete in the feBrowser documentation.
2.4 Can I detect when the control is going to load a new page, then change
the url so it navigates to a different page?
Yes! How cool is that! Have a look at the "Advanced_feBrowser_SimpleCallbacks"
procedure in the feabc.app example application. That example also shows
how to simply cancel navigation to certain urls.
2.5 When I set ?feControl{prop:hide} the WebBrowser control is not hiding...
This is because unlike some of the File Explorer objects, the WebBrowser does
not actually use the Clarion OLE control - we simply get window coordinates
from its position and then create our own control "on top of it".
There are two methods which you can use to hide / unhide a File Explorer control,
but they are not yet documented (work in progress). See the feabc.app
demo application's "Advanced_feBrowser_TwoViewers" procedure to see
how to do this.
2.6 "My app is working great on hundreds of installations,
except one PC, where calling the FE window GPF's the app! Any ideas?"
A client reported this to me and all that fixed the problem was to have the
client install all the latest IE critical updates from Microsoft. The
case mentioned above was an installation of IE 6.0.2800.1106, on a Win 2K box.
2.7 I'm using File Explorer to complete a form...
One of the text fields seems to be "un-settable"...
Use the feabc.app examples' "Accessing the DOM" example procedure
to get a list of all the elements on the page. If the element you're trying
to set is of element type "file" in the list, it is actually an HtmlInputFileElement
(the html around that field will look like this: <INPUT type="file"... ),
which Microsoft seem to have made a read-only object since Internet Explorer
5.0, for "security reasons". If anyone knows a way around this
please let me know, otherwise there's not a lot that we can do here...
2.8 When I browse a webpage I get an "Internet
Explorer Script Error" message popping up... Can I stop this from
happening?
Yes. Have a look at the feBrowser::Update method, for the option called
"SilentMode".
2.9 I have some html in a variable and I want the
user to view it but not edit it. Is this possible?
Absolutely. At this stage only the feHtmlEditor object can load html directly
from a variable (although we are working on the Browser). You will need
to use the feBrowser::VarToFile method to create a temporary file from the html
in the variable, then use the feBrowser::Load method to load that temporary
file into the File Explorer control.
2.10 Is it possible to disable the popup menu in
Internet Explorer (i.e. when a user right-clicks on a page)
Yes. There are two approaches to doing this. The first approach
involves implementing the IDocHostUIHandler interface, which we plan on doing
in a future release (which would enable us to actually add items to the popup
menu, but requires a fair amount of time to code). The second approach
is to simply use javascript. The javascript approach works well, but will
obviously require you to add some script to your html pages. An example
of how to do this can be found in the 3rdParty\Examples\File Explorer\Demo folder,
as an html file called "no_popup_menu.htm".
2.11 In your feGoogle.app example you use File
Explorer to fill in a search string and press the "Search" button on
the Google site. Can I send the search string "directly"
instead?
Yes. Use the Load method as follows:
ThisViewer.Load
('http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=%2BCapeSoft+%2BSoftware&btnG=Google+Search')
2.12 Does the feBrowser.Load method do a HTTP
Post or a HTTP Get?
If you pass a string in the pPostData parameter the method will do a
Post, otherwise it does a Get.
2.13 Is it possible to set which printer the
WebBrowser control prints to without user intervention?
The PrintMe method prints the currently loaded document. If you
call PrintMe(false) the document goes straight to the default printer.
The only way we've found to change this behaviour (i.e. print to another
printer) is by temporarily changing the default Windows printer. This will
affect other software so only do this is you really need to. In the
ThisViewer.PrintMe method, before the parent call, you would code as follows:
TempString =
fe_GetRegValue ('HKEY_CURRENT_USER', 'Software\Microsoft\Windows NT\CurrentVersion\Windows',
'Device')
self.SetRegValue ('HKEY_CURRENT_USER', 'Software\Microsoft\Windows NT\CurrentVersion\Windows',
'Device', 'Fax602,winspool,FAX:')
and then after the parent call you need to restore the default printer to what is what originally, as follows:
self.SetRegValue ('HKEY_CURRENT_USER', 'Software\Microsoft\Windows NT\CurrentVersion\Windows', 'Device', TempString)
Note: This example will not work on all versions of Windows, a google search will reveal where the various versions of Windows store this setting in the Registry.
2.14 The GetInfo method can return the full html
for the loaded page, using OuterHtml as the parameter I pass in. What if I
only want a certain part of the html (for instance, the '<body>' tag) ?
Get the full html using GetInfo, then use INSTRING to get what you need from
that html.
2.15 I want to use FE to fill in a form on a
website, but the page does not appear to have any elements. Any ideas?
Use the feabc.app example's "feBrowser_DOM" procedure to get a list of the
page's elements. If no elements are listed, set the "frame" spinbox on
that example to 1, then 2, then 3 etc to make sure there aren't frames.
Also right-click next to the fields you want to fill in, and choose "Properties"
(in Internet Explorer) and check the URL. Sometimes login screens load
separate html pages "inside" the parent page - if this is the case use that
address (URL).
2.16 I am getting crashes opening certain pages multiple times.
If
you are having problems with pages crashing when closing and then reopening
a web site then please make sure the setting on the FileExplorer Extension "Implement Delayed Close" on the "BrowseHTML" tab
is on. This is now the default option, however for existing controls it should
be set manually when needed.
3.1 How can I get a "new page" when using
the feHtmlEditor object?
Since version 2.4b, there is a method called NewDocument. See the
notes on that method. The Html Editing buttons (control template) also
started including a "new" button from that version, but you'll need
to delete and repopulate the buttons if you populated them before version 2.4b.
3.2 Is it possible to load html into the feHtmlEditor control, where the
html contains images???
Absolutely, bearing in mind that html is just text, and the html contains references
to images which must be located somewhere "else" (hard drive, internet
etc). Have a look at the "Advanced_feHtmlEditor_TabAndRightClick"
procedure in the feabc.app example; specifically at the code under the Load
from Variable button.
3.3 I need to implement Callback events for the feHtmlEditor object, where
do I start?
Have a look at the "Advanced_feHtmlEditor_TabAndRightClick" procedure
in the feabc.app example application.
3.4 Does the FeHtmlEditor object allow me to save the html I'm editing to
a database field? I don't want to have to write to a file and then save
that file in a database.
Yes. Have a look at the "Advanced_feHtmlEditor_EditingFromVariables"
procedure in the feabc.app example application.
3.5 Does the FeHtmlEditor have a "Save As" method?
Not as such. It does have a Save method which takes a filename as a parameter
though, which in essence makes the Save method both a Save and SaveAs method,
depending on how you use it.
3.6 I'm sure my HtmlEditor control used to work,
but now it doesn't...
This is probably becuase you bought File Explorer in the very early days,
when we still used Clarion OLE for this control. In those days, you could
call the Load method for this control, and it would (usually) create the control,
even if you hadn't called the Init method first (even though you should have
been calling the Init method before you call the Load method, as the templates
/ docs have always done). Since version 3.0 of File Explorer, you will
HAVE to call the Init method before the Load method, or the Load method will
not work.. ( The same applies to the NewDocument method ).
3.7 On Win 98 (second edition) Load happens
before NewDocument!
Someone reported that under Win 98 second edition (only), the following lines
of code...
ThisViewer.NewDocument()
ThisViewer.Load (loc:SomeVar, ?feControl, 1)
... actually didn't work, because the NewDocument method returned before the Viewer actually had a new document loaded, and so the Load method failed because there was no new document to work with by the time Load was called! Version 3.0 of File Explorer (when we rewrote the Editor using COM) apparently fixed this..
3.8 Is there a way to check whether a page which
I load has been edited by the user?
Use the GetInfo method immediately after loading the html page to get the OuterHtml
property, which you can then save to a variable. This variable can then
be used as a "snapshot" of what the original html was, and can be
compared against subsequent calls to the GetInfo method (OuterHtml) to see if
the html has changed since the time you opened the page / set the snapshot variable.
3.9 On one machine the FE Editor Control just doesn't work at all, it won't
even display...
The components that File Explorer relies on have been unregistered. You can reregister
these components by doing the following:
4.1 When I load a PDF file I get an error message
saying "There was a version error trying to launch the pdf control, version
error 6.x"
This was an incompatibility between FE and Internet Explorer 6. Fixed
in File Explorer version 2.5c.
4.2 I have the fePDF object on a tab. Each
time I select another tab then return to that one my document has disappeared!
This is an issue with the ole control. In the future we will redo the
PDF object from scratch (which will hopefully take care of this problem); but
until then have a look in the feabc.app example app, at the "MultpileObjects_Example1"
procedure which shows how to fix this until then.
4.3 The PrintMe method does not seem to work!
As documented <g>, this method only works if you set the "Use Acrobat
4" setting in the template. See the docs.
4.4 I can't seem to view PDF files...
If you double-click on a PDF file in Windows Explorer does it open? Can
you view PDF files on your computer using Internet Explorer? If not then
the problem is with your Adobe Acrobat installation, not with File Explorer.
We can't use components that are not installed, or are installed but not
working. Try reinstalling Acrobat Viewer from adobe.com.
5.1 When I type a filename into the Entry control
and press the Tab key it loads, but if I press the Enter key nothing happens...
This can be fixed by simply deleting the feMedia control from the window, closing
the window, reopening the window, and repopulating the feMedia control.
5.2
How do I know when a music file has finished playing so that I can load another
one from code?
Have a look at the feabc.app example --> under the FeMedia menu there is
an example of how to use the EventCallback method to watch for when songs finish
playing.
6.1 I am using NetTalk and File Explorer to write
an email program. I'm having a problem getting something to work...
Have a look for the demo app called "fenetalk.app" that came with
File Explorer. It's a simple app showing the basics of getting File Explorer
and NetTalk to "work together", demonstrating how to use NetTalk to
send and receive emails, and File Explorer to view and edit the emails.
7.1 I'm getting an error saying "Error opening
new file; 5 - Access Denied" when using the Retrieve method over and over...
Upgrade to File Explorer 3.0 or later, and change your code as follows.
Although this class is no longer documented / supported, if you get stuck send
me an email ().
ThisViewer1.Unload() ! new method in FE 3.0
! here you would typically get the feBlobStorage record
if FEB:ParentID = feSF:RecordID ! check range
MyfeStorage1.Retrieve (FEB:BlobHolder, true, 1)
! etc. etc...
"Demo"
- abc, feabc.app
This is the main example application. It is our "bells and whistles"
example, which shows off most of File Explorer's objects and features.
"Demo
Legacy" - legacy, feleg.app
This is similar to the feabc.app example, but is written using the legacy templates
(not ABC), and doesn't show off nearly as many features as the feabc.app example.
"Google"
- abc, fegoogle.app
This example shows how to automate a Google search from within a Clarion app.
You enter a search string and click a button, and File Explorer will load google.com,
enter the search string and trigger the search. Quite cool. Can
easily be adapted for downloading bank statements, forex rates etc etc etc...
( The feGoogle.app example has been moved into the
feabc.app. Please use that app instead. See the feBrowser_Google procedure in
feabc.app. )
"Full
Screen" - abc, fullscrn.app
This example shows how to play a media file (movie) using the entire screen
to show the movie.
"NetTalk"
- abc, fenetalk.app
This example shows the overlap between File Explorer and another CapeSoft product,
called NetTalk (this app will not compile unless you own CapeSoft NetTalk, available
here).
"Office
Inside" - abc, FeOi.app
This app demonstrates how to integrate File Explorer with CapeSoft Office Inside
(this app will not compile unless you own Office Inside, available here).
"The
Storage Example" - abc,
festore.app
Not really documented or supported. Might revisit this app later.
Several Developers are using File Explorer in this way, which is why we wrote
this app. For more info click here.
"Hand
Coded" - abc, feWebBrwsr.prj
An example showing how to implement File Explorer in a hand-coded (no templates)
project. Absolute basic functionality.
"Hand
Coded 2" - abc, feWebBrwsr2.prj
Similar to the feWebBrwsr.prj example, but here we've added a status bar.
"Benchmark"
- abc, fetest.app
This example is used by us when developing the product to test stability and
performance. Here for your interest more than anything else.
Version 2.9 Beta of File Explorer saw the first changes that made the product non backward-compatible.
After two years of evolution, we reached a point where our initial design was
severely restricting future design, so we decided to clean things up and restructure
File Explorer where necessary. Below is a list of what we've changed, the
compile errors you will see, and explanations as to why we changed certain things
and what you need to do to get your code to work. Version 3.70 Gold
was the first Gold build in almost two years, and should see the end of
changes that cause backward-compatibility issues. Below is an outline of
what you need to change in your applications if upgrading from an old version of
File Explorer (prior to 3.70 Gold), and a list of compile errors you could get
and how to correct the code that causes these errors.
We followed the instructions below to convert our feabc.app example app, which
contains over 40 windows which host FileExplorer controls, it took 7 minutes to
make all the necessary changes and get it to compile...
Error:
Syntax error: Unknown identifier: FEPATH
Syntax error: Unknown identifier: FE_APPPATH
Syntax error: Unknown identifier: FE_LASTPATH
Syntax error: Unknown identifier: FE_CURRENTPATH
Syntax error: Unknown identifier: FE_CURRENTCONTROL
Syntax error: Unknown identifier: FEHEIGHT1
Syntax error: Unknown identifier: FEWIDTH1
Syntax error: Unknown identifier: FEHTML1BUSYRECOVERING
Syntax error: Unknown identifier: FEPRIORLASTEVENT
Cause:
You have written code that makes reference to one of the above variables (Fe_AppPath,
Fe_LastPath, Fe_CurrentPath or FePath ) which no longer exist.
Or, in the case of the FEPATH error, you need to run through the section above
titled "What you need to do to your existing apps..."
Fix:
You need to replace any code where you refer to these variables with the new
properties, as shown below:
Replace fe_AppPath with ThisViewer.fe_AppPath
Replace fe_LastPath with ThisViewer.fe_LastPath
Replace fe_CurrentPath with ThisViewer.fe_Path
Replace fePath with ThisViewer.fe_Path
Replace fe_CurrentControl with ThisViewer.fe_CurrentControl
Replace feHeight1 with ThisViewer.fe_Height
Replace feWidth1 with ThisViewer.fe_Width
feHtml1BusyRecovering (global variable) is no longer used, simply delete your code, it is no longer necessary.
fePriorLastEvent (global variable) is no longer used, simply delete your code, it is no longer necessary.
Note: If your object is not called "ThisViewer" you will need to use its name instead. You can find out what an object is called by clicking on the "Object" tab, from the "Actions" tab or your File Explorer control. By default objects are named "ThisViewer1", "ThisViewer2" etc.
Error:
ASSERT: Procedure "(procedure name)" is using an OLE control, not a
panel
Cause:
File Explorer started off using the Clarion OLE control. Due to
stability issues, we eventually moved all code in File Explorer to use the
Plugware OLE container code, so File Explorer no longer uses Clarion's OLE
control at all. Any File Explorer controls that you added to your app
prior to version 2.9 would have populated a Clarion OLE control onto your
window, which now needs to be changed to a PANEL control.
Fix:
First, please backup your app. Once you have done that, simply go to
each procedure that contains an old File Explorer control (which still uses an
OLE control, not a PANEL - the compile errors above will list which procedures
contain the OLE controls), right-click on a procedure, choose Properties,
then click on the ellipsis button immediately to the right of the Window
button, this will let you edit the window definition for that procedure.
Look for the code that looks like this:
OLE,AT(114,101,299,135),USE(?feControl),#SEQ(17),#ORIG(?feControl)
END
This is the OLE control that needs to be changed to a PANEL control. Simply delete the two lines of code (above), and replace them with this single line of code (note, all you're doing is changing OLE to PANEL, and deleting END) :
PANEL,AT(114,101,299,135),USE(?feControl),#SEQ(17),#ORIG(?feControl)
That's it!
( This information was found at http://support.microsoft.com/default.aspx?scid=kb;en-us;164539 )
4.40.308 | Internet Explorer 1.0 (Plus!) |
4.40.520 | Internet Explorer 2.0 |
4.70.1155 | Internet Explorer 3.0 |
4.70.1158 | Internet Explorer 3.0 (OSR2) |
4.70.1215 | Internet Explorer 3.01 |
4.70.1300 | Internet Explorer 3.02 and 3.02a |
4.71.544 | Internet Explorer 4.0 Platform Preview 1.0 (PP1) |
4.71.1008.3 | Internet Explorer 4.0 Platform Preview 2.0 (PP2) |
4.71.1712.6 | Internet Explorer 4.0 |
4.72.2106.8 | Internet Explorer 4.01 |
4.72.3110.8 | Internet Explorer 4.01 Service Pack 1 (SP1) |
4.72.3612.1713 | Internet Explorer 4.01 Service Pack 2 (SP2) |
5.00.0518.10 | Internet Explorer 5 Developer Preview (Beta 1) |
5.00.0910.1309 | Internet Explorer 5 Beta (Beta 2) |
5.00.2014.0216 | Internet Explorer 5 |
5.00.2314.1003 | Internet Explorer 5 (Office 2000) |
5.00.2614.3500 | Internet Explorer 5 (Windows 98 Second Edition) |
5.00.2516.1900 | Internet Explorer 5.01 (Windows 2000 Beta 3, build 5.00.2031) |
5.00.2919.800 | Internet Explorer 5.01 (Windows 2000 RC1, build 5.00.2072) |
5.00.2919.3800 | Internet Explorer 5.01 (Windows 2000 RC2, build 5.00.2128) |
5.00.2919.6307 | Internet Explorer 5.01 (Also included with Office 2000 SR-1, but not installed by default) |
5.00.2920.0000 | Internet Explorer 5.01 (Windows 2000, build 5.00.2195) |
5.00.3103.1000 | Internet Explorer 5.01 SP1 (Windows 2000) |
5.00.3105.0106 | Internet Explorer 5.01 SP1 (Windows 95/98 and Windows NT 4.0) |
5.00.3314.2101 | Internet Explorer 5.01 SP2 (Windows 95/98 and Windows NT 4.0) |
5.00.3315.1000 | Internet Explorer 5.01 SP2 (Windows 2000) |
5.50.3825.1300 | Internet Explorer 5.5 Developer Preview (Beta) |
5.50.4030.2400 | Internet Explorer 5.5 & Internet Tools Beta |
5.50.4134.0100 | Windows Me (4.90.3000) |
5.50.4134.0600 | Internet Explorer 5.5 |
5.50.4308.2900 | Internet Explorer 5.5 Advanced Security Privacy Beta |
5.50.4522.1800 | Internet Explorer 5.5 Service Pack 1 |
5.50.4807.2300 | Internet Explorer 5.5 Service Pack 2 |
6.00.2462.0000 | Internet Explorer 6 Public Preview (Beta) |
6.00.2479.0006 | Internet Explorer 6 Public Preview (Beta) Refresh |
6.00.2600.0000 | Internet Explorer 6 (Windows XP) |
6.00.2800.1106 | Internet Explorer 6 Service Pack 1 (Windows XP SP1) |
6.00.3663.0000 | Internet Explorer 6 for Microsoft Windows Server 2003 RC1 |
6.00.3718.0000 | Internet Explorer 6 for Windows Server 2003 RC2 |
6.00.3790.0000 | Internet Explorer 6 for Windows Server 2003 (released) |
&w | Window Title |
&u | Page address (URL) |
&d | Date in short format |
&D | Date in long format |
&t | Time (as per Control Panel) |
&T | Time in 24-hour format |
&p | Current page number |
&P | Total number of pages |
&& | A single ampersand (&) |
&b | Text to follow is centered |
&b&b | Text after the second "&b" is right-justified |
"DebugView" by SysInternals is an application that lets you monitor debug output on your local system. I use DebugView when developing because it gives an accurate picture as to what's happening in your code (as opposed to "messages" or "stops"). If you start your application (any application into which File Explorer is compiled) with the following command line parameters, debug output will be generated accordingly, which you can then monitor using DebugView.
MyApp.exe | same as MyApp.exe /fedebugoff |
MyApp.exe /fedebugoff | almost no debug output |
MyApp.exe /fedebugmin | minimum amount of debug output |
MyApp.exe /fedebugmax | maximum amount of debug output |
TIP: I'd recommend using debug output only when you're testing something. It can be quite annoying for other programmers to work on a system where there are a dozen different apps generating debug output at the same time! To make life easier, all File Explorer debug messages are prefixed with "FE", as shown below. You can set DebugView to ignore all messages that do not contain "FE". You will also take a performance hit when running an app with debugging turned on.
Top of the list
Middle of the list
Bottom of the list
Please ensure that you are using the latest release of File Explorer and all the current DLLs, including pwutil.dll. The bulk of all support requests regarding FE are a result of old DLLs, LIBs or source files.
pwutil.dll - version 2.5.0.0 (This file must be shipped with all FE application. It is backward compatible, so it is advised that you always ship the most recent release.)
All other files (binaries etc.) will reflect the current version number in the History section.
See the Version History document for the changes made in each release.
[end of document]