when a new association is created, the first thing you want to do is to see if it already exists
i.e., you want the file extension to be unique
this is why the long extension - you can imagine how difficult it might be to come up with one that's unique

creating one association on your own machine is very different from doing so programmatically
i would give a few pointers....
first, the registry entries are either private (per user name) or public (machine-wide)
generally, best to make it public if you want to avoid potential conflicts
the registry is deeply layered in virtualization
to examine entries,
read from the HKCR hive - this gives you the layered view
to create them,
write to HKLM\SOFTWARE\Classes (public) or HKCU\Software\Classes (private)this is the source from which the layered view is created
there are other sources, if a user decides to get into "hardware profiles"
most users have one hardware profile :P
finally, when you read the documentation, you will see the term, "ProgID"
this is a poorly selected abbreviation for "programmatic identifer" - not "program ID" :P
that will help reduce the confusion factor - lol