If you use platform specific functionalilty, of which the Windows Registry is definately one, then you simply cannot use the the functionality "as is".
What you will have to do is abstract away the notion of the underlying mechanism. One way is to have your code talk to either an interface/abstract definition of the functionality that you want. Your other layers of code do not (should not) care about the underlying implementation. Then you can strategise the concrete implementation specific for the platform, it will then be easily extensible should you move to other platforms.
If you don't know about design patterns, you may wish to brush up on the famous patterns (by the "gang-of-four") to gain a better understanding of the mechanisms used and how you can apply them to your problem. Such things as these provide the logical solutions for such problems.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com