Online licensing of controls will continue to use the IClassFactory2 mechanism that is implemented by existing licensed controls. An HTML page with licensed controls requires a single associated license package which stores the run-time licenses for all the controls used on the page. The license package (.LPK file) stores an array of (CLSID, license) tuples. The HTML page points to the license package via a relative URL reference inside the HTML. At design-time, authoring tools or utilities should use IClassFactory2::RequestLicKey to create the .LPK file and the associated HTML element (tag) that refers to it. At run-time, web browsers should extract the necessary run-time licenses from the license package in order to instantiate licensed controls embedded in the HTML page using IClassFactory2::CreateInstanceLic. In this model the HTML page is analogous to a Visual Basic form, HTML-authoring tools or helper utilities play the role of the VB Design Environment, and the web browser plays the role of the VB run-time (VBRUN.DLL).
It is important to note that the URL reference to the license package (.LPK) must be relative only. This makes it inconvenient to pirate licensed controls. Certainly it's less possible to accidentally pirate controls, because one can't copy an HTML page with a relative URL to a .LPK file and expect the page to still work. Since the URL to the .LPK file must be relative, in order to pirate a control one would have to copy the .LPK file knowingly. By using a plain-text format for the .LPK file, it is possible to include a legal copyright statement at the top of the file, dissuading anybody who downloads this file in order to copy it to a pirated site.
Web browsers can support this licensing scheme by posing additional obstacles for pirates who wish to copy .LPK files - for example making it difficult to download and save such files, or obscuring the cached copies of such files. Such obstacles do not make piracy impossible, but they make it even more inconvenient. Implementation of such obstacles is optional for web browsers, and is not a requirement of the proposed licensing scheme.