On 15.11.2017 17:25, Alex Henrie wrote:
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif

In this case ns_prefix should no be used AFAICS. Just winrt.

+import "wtypes.idl";
+
+typedef void *ROPARAMIIDHANDLE;
+
+[
+    object
+]
+interface IRoSimpleMetaDataBuilder
+{
+    HRESULT SetDelegate(
+        GUID iid
+    );
+
+    HRESULT SetEnum(
+        const WCHAR *typename,
+        const WCHAR *basetype
+    );
+
+    HRESULT SetInterfaceGroupParameterizedDefault(
+        const WCHAR *typename,
+        UINT32 name_element_count,
+        const WCHAR **name_elements
+    );
+
+    HRESULT SetInterfaceGroupSimpleDefault(
+        const WCHAR *typename,
+        const WCHAR *default_name,
+        const GUID *default_iid
+    );
+
+    HRESULT SetParameterizedDelegate(
+        GUID iid,
+        UINT32 arg_count
+    );
+
+    HRESULT SetParameterizedInterface(
+        GUID iid,
+        UINT32 arg_count
+    );
+
+    HRESULT SetRuntimeClassParameterizedDefault(
+        GUID iid,
+        UINT32 name_element_count,
+        const WCHAR **name_elements
+    );
+
+    HRESULT SetRuntimeClassSimpleDefault(
+        const WCHAR *typename,
+        const WCHAR *default_name,
+        const GUID *default_iid
+    );
+
+    HRESULT SetStruct(
+        const WCHAR *typename,
+        UINT32 field_count,
+        const WCHAR **field_typenames
+    );
+
+    HRESULT SetWinRtInterface(
+        GUID iid
+    );

Order of functions is wrong.

Thanks,
Jacek