See the question and my original answer on StackOverflow

Importing a DLL like this does not mean you're linking in any way to the DLL in question. It just means it will import the Type Library the DLL contains. The Type Library will describe the COM component you want to use: interfaces, coclasses, guids, iids, enums, etc.

At runtime when you instantiate a COM class, COM will create an instance of it from the component that is marked as the one that serves it. So in the Office case, if you have installed only Office 14 for example, Office 14 will be marked as the COM server for this class and you don't even know what DLL will in fact be loaded.

Even if you hardcode the version of the Office Type Library you're relying on, it should work with the subsequent versions of Office, because COM relies on binary contracts that should never change.

Of course if you import the Office 10 library, you won't be able to use say Office 14 newer components.