This MR introduces a few minor changes to widl to support generating proxy code for WinRT's parameterized interfaces:
* Use the mangled, C-friendly interface name for naming variables `FormatStringOffsetTable`, `StubThunkTable`, etc) in proxy and stub code. * Use the default interface of a runtime class while creating type format strings in `write_ip_tfs`. * When proxy generation is enabled, also compute UUIDs for all specialized parameterized interface declarations in imported files.
Finally, I have also enabled proxy generation and registration for wintypes.dll as an example. We use the `PROXY_CLSID_IS` define as WinRT IDLs cannot use `coclass` to declare the `PSFactoryBuffer` class for the DLL.
-- v4: wintypes: Register proxies for interfaces. include: Add size and length annotations for IVector(View) and IIterator method params. include: Remove duplicate interface declarations. widl: While generating proxies, compute UUIDs for specialized interface declarations in imported IDL files. widl: Use the default interface UUID while generating type format strings for runtime classes. widl: If available, use the mangled C name for naming variables while generating proxies/stubs.