>>I think that you basically have the following options, the most important of which have already been suggested:
>>
>>1. Use ShellExecute() or a wrapper. This will give you the greatest flexibility, but you won't have control over user actions once the external program is opened.
>>
>
>Can you open file readonly using this method or you should change file attributes back and forth?
>
>
This is a suggestion in Russian website to open a file in readonly mode using ShellExecute.
ShellExecute(0, 'open', 'Explorer',filename, '', 1)
>>2. Use the Web browser control, to open many different file types.
>>
>>3. Continue searching for other controls, that offer you more options.
>>
>>4. Possibly use a combination of controls - e.g., if you detect a Word or Excel document, dynamically activate a control specifically designed for that file type.
If it's not broken, fix it until it is.
My Blog