Hello Everyone,
We distribute a chm help file with our LAN-based FiveWin application. Nothing is installed on the workstations except a desktop launch icon. I know that Microsoft no longer allows chm help files to be opened across a network share for security reasons. From what I've read there are two approaches to supporting network-based chm access. One is to make registry changes for each workstation, and the other is simply to make a copy of the chm file on each workstation's local drive. I think I'm tending toward the second approach because making registry changes on customer's machines just to get our help to work is a bit much. Each time our FiveWin application launches on a workstation it could always check the network share it is running across for a newer chm file than what is on the workstation drive, and update the workstation copy as needed.
Since some network administrators severely limit each user's access to their own machine's hard drive, it would be best to use one of the pre-defined Windows folders meant to store application data files, such as c:\Documents And Settings\. But of course it's not a good idea to hard code folder paths because these folders could be different in the various versions of Windows, or even spelled differently for localized versions of Windows.
Does anyone know if there is a way in FiveWin to query the Window's internals to get literal strings for the pre-defined Windows folders on the current machine? There is a function in Windows called SHGetFolderPath(). If you pass it a constant like CSIDL_COMMON_APPDATA it will return a pointer to a string that is a folder on the local machine which can be used for shared application data. I guess I'm looking for something like that but at the FiveWin/Harbour level.
Thanks!