Browse Source

Merge pull request #4492 from AvaloniaUI/fix-ci2

dont generate sharpgen sources.
danwalmsley 5 years ago
parent
commit
8f5e9dfe75

+ 1 - 1
src/Avalonia.Native/Avalonia.Native.csproj

@@ -19,7 +19,7 @@
   
   <ItemGroup>
     <SharpGenMapping Include="Mappings.xml" />
-    <PackageReference Include="SharpGenTools.Sdk" Version="1.2.1" PrivateAssets="all" />
+    <!--<PackageReference Include="SharpGenTools.Sdk" Version="1.2.1" PrivateAssets="all" />-->
     <PackageReference Include="SharpGen.Runtime" Version="1.2.1" />
     <PackageReference Include="SharpGen.Runtime.COM" Version="1.2.0" />
     <ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />

+ 628 - 0
src/Avalonia.Native/Generated/Enumerations.cs

@@ -0,0 +1,628 @@
+// <auto-generated/>
+
+namespace Avalonia.Native.Interop
+{
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnDragDropEffects</unmanaged>
+    /// <unmanaged-short>AvnDragDropEffects</unmanaged-short>
+    public enum AvnDragDropEffects : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>None</unmanaged>
+        /// <unmanaged-short>None</unmanaged-short>
+        None = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Copy</unmanaged>
+        /// <unmanaged-short>Copy</unmanaged-short>
+        Copy = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Move</unmanaged>
+        /// <unmanaged-short>Move</unmanaged-short>
+        Move = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Link</unmanaged>
+        /// <unmanaged-short>Link</unmanaged-short>
+        Link = unchecked ((System.Int32)(4))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnDragEventType</unmanaged>
+    /// <unmanaged-short>AvnDragEventType</unmanaged-short>
+    public enum AvnDragEventType : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Enter</unmanaged>
+        /// <unmanaged-short>Enter</unmanaged-short>
+        Enter = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Over</unmanaged>
+        /// <unmanaged-short>Over</unmanaged-short>
+        Over = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Leave</unmanaged>
+        /// <unmanaged-short>Leave</unmanaged-short>
+        Leave = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Drop</unmanaged>
+        /// <unmanaged-short>Drop</unmanaged-short>
+        Drop = unchecked ((System.Int32)(3))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnExtendClientAreaChromeHints</unmanaged>
+    /// <unmanaged-short>AvnExtendClientAreaChromeHints</unmanaged-short>
+    public enum AvnExtendClientAreaChromeHints : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnNoChrome</unmanaged>
+        /// <unmanaged-short>AvnNoChrome</unmanaged-short>
+        AvnNoChrome = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnSystemChrome</unmanaged>
+        /// <unmanaged-short>AvnSystemChrome</unmanaged-short>
+        AvnSystemChrome = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnPreferSystemChrome</unmanaged>
+        /// <unmanaged-short>AvnPreferSystemChrome</unmanaged-short>
+        AvnPreferSystemChrome = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnOSXThickTitleBar</unmanaged>
+        /// <unmanaged-short>AvnOSXThickTitleBar</unmanaged-short>
+        AvnOSXThickTitleBar = unchecked ((System.Int32)(8)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnDefaultChrome</unmanaged>
+        /// <unmanaged-short>AvnDefaultChrome</unmanaged-short>
+        AvnDefaultChrome = unchecked ((System.Int32)(1))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnInputModifiers</unmanaged>
+    /// <unmanaged-short>AvnInputModifiers</unmanaged-short>
+    public enum AvnInputModifiers : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>AvnInputModifiersNone</unmanaged>
+        /// <unmanaged-short>AvnInputModifiersNone</unmanaged-short>
+        AvnInputModifiersNone = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Alt</unmanaged>
+        /// <unmanaged-short>Alt</unmanaged-short>
+        Alt = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Control</unmanaged>
+        /// <unmanaged-short>Control</unmanaged-short>
+        Control = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Shift</unmanaged>
+        /// <unmanaged-short>Shift</unmanaged-short>
+        Shift = unchecked ((System.Int32)(4)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Windows</unmanaged>
+        /// <unmanaged-short>Windows</unmanaged-short>
+        Windows = unchecked ((System.Int32)(8)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>LeftMouseButton</unmanaged>
+        /// <unmanaged-short>LeftMouseButton</unmanaged-short>
+        LeftMouseButton = unchecked ((System.Int32)(16)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>RightMouseButton</unmanaged>
+        /// <unmanaged-short>RightMouseButton</unmanaged-short>
+        RightMouseButton = unchecked ((System.Int32)(32)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>MiddleMouseButton</unmanaged>
+        /// <unmanaged-short>MiddleMouseButton</unmanaged-short>
+        MiddleMouseButton = unchecked ((System.Int32)(64)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton1MouseButton</unmanaged>
+        /// <unmanaged-short>XButton1MouseButton</unmanaged-short>
+        XButton1MouseButton = unchecked ((System.Int32)(128)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton2MouseButton</unmanaged>
+        /// <unmanaged-short>XButton2MouseButton</unmanaged-short>
+        XButton2MouseButton = unchecked ((System.Int32)(256))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnMenuItemToggleType</unmanaged>
+    /// <unmanaged-short>AvnMenuItemToggleType</unmanaged-short>
+    public enum AvnMenuItemToggleType : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>None</unmanaged>
+        /// <unmanaged-short>None</unmanaged-short>
+        None = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CheckMark</unmanaged>
+        /// <unmanaged-short>CheckMark</unmanaged-short>
+        CheckMark = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Radio</unmanaged>
+        /// <unmanaged-short>Radio</unmanaged-short>
+        Radio = unchecked ((System.Int32)(2))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnPixelFormat</unmanaged>
+    /// <unmanaged-short>AvnPixelFormat</unmanaged-short>
+    public enum AvnPixelFormat : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>kAvnRgb565</unmanaged>
+        /// <unmanaged-short>kAvnRgb565</unmanaged-short>
+        KAvnRgb565 = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>kAvnRgba8888</unmanaged>
+        /// <unmanaged-short>kAvnRgba8888</unmanaged-short>
+        KAvnRgba8888 = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>kAvnBgra8888</unmanaged>
+        /// <unmanaged-short>kAvnBgra8888</unmanaged-short>
+        KAvnBgra8888 = unchecked ((System.Int32)(2))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnRawKeyEventType</unmanaged>
+    /// <unmanaged-short>AvnRawKeyEventType</unmanaged-short>
+    public enum AvnRawKeyEventType : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>KeyDown</unmanaged>
+        /// <unmanaged-short>KeyDown</unmanaged-short>
+        KeyDown = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>KeyUp</unmanaged>
+        /// <unmanaged-short>KeyUp</unmanaged-short>
+        KeyUp = unchecked ((System.Int32)(1))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnRawMouseEventType</unmanaged>
+    /// <unmanaged-short>AvnRawMouseEventType</unmanaged-short>
+    public enum AvnRawMouseEventType : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>LeaveWindow</unmanaged>
+        /// <unmanaged-short>LeaveWindow</unmanaged-short>
+        LeaveWindow = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>LeftButtonDown</unmanaged>
+        /// <unmanaged-short>LeftButtonDown</unmanaged-short>
+        LeftButtonDown = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>LeftButtonUp</unmanaged>
+        /// <unmanaged-short>LeftButtonUp</unmanaged-short>
+        LeftButtonUp = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>RightButtonDown</unmanaged>
+        /// <unmanaged-short>RightButtonDown</unmanaged-short>
+        RightButtonDown = unchecked ((System.Int32)(3)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>RightButtonUp</unmanaged>
+        /// <unmanaged-short>RightButtonUp</unmanaged-short>
+        RightButtonUp = unchecked ((System.Int32)(4)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>MiddleButtonDown</unmanaged>
+        /// <unmanaged-short>MiddleButtonDown</unmanaged-short>
+        MiddleButtonDown = unchecked ((System.Int32)(5)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>MiddleButtonUp</unmanaged>
+        /// <unmanaged-short>MiddleButtonUp</unmanaged-short>
+        MiddleButtonUp = unchecked ((System.Int32)(6)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton1Down</unmanaged>
+        /// <unmanaged-short>XButton1Down</unmanaged-short>
+        XButton1Down = unchecked ((System.Int32)(7)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton1Up</unmanaged>
+        /// <unmanaged-short>XButton1Up</unmanaged-short>
+        XButton1Up = unchecked ((System.Int32)(8)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton2Down</unmanaged>
+        /// <unmanaged-short>XButton2Down</unmanaged-short>
+        XButton2Down = unchecked ((System.Int32)(9)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>XButton2Up</unmanaged>
+        /// <unmanaged-short>XButton2Up</unmanaged-short>
+        XButton2Up = unchecked ((System.Int32)(10)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Move</unmanaged>
+        /// <unmanaged-short>Move</unmanaged-short>
+        Move = unchecked ((System.Int32)(11)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Wheel</unmanaged>
+        /// <unmanaged-short>Wheel</unmanaged-short>
+        Wheel = unchecked ((System.Int32)(12)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>NonClientLeftButtonDown</unmanaged>
+        /// <unmanaged-short>NonClientLeftButtonDown</unmanaged-short>
+        NonClientLeftButtonDown = unchecked ((System.Int32)(13)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>TouchBegin</unmanaged>
+        /// <unmanaged-short>TouchBegin</unmanaged-short>
+        TouchBegin = unchecked ((System.Int32)(14)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>TouchUpdate</unmanaged>
+        /// <unmanaged-short>TouchUpdate</unmanaged-short>
+        TouchUpdate = unchecked ((System.Int32)(15)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>TouchEnd</unmanaged>
+        /// <unmanaged-short>TouchEnd</unmanaged-short>
+        TouchEnd = unchecked ((System.Int32)(16)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>TouchCancel</unmanaged>
+        /// <unmanaged-short>TouchCancel</unmanaged-short>
+        TouchCancel = unchecked ((System.Int32)(17))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnStandardCursorType</unmanaged>
+    /// <unmanaged-short>AvnStandardCursorType</unmanaged-short>
+    public enum AvnStandardCursorType : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorArrow</unmanaged>
+        /// <unmanaged-short>CursorArrow</unmanaged-short>
+        CursorArrow = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorIbeam</unmanaged>
+        /// <unmanaged-short>CursorIbeam</unmanaged-short>
+        CursorIbeam = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorWait</unmanaged>
+        /// <unmanaged-short>CursorWait</unmanaged-short>
+        CursorWait = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorCross</unmanaged>
+        /// <unmanaged-short>CursorCross</unmanaged-short>
+        CursorCross = unchecked ((System.Int32)(3)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorUpArrow</unmanaged>
+        /// <unmanaged-short>CursorUpArrow</unmanaged-short>
+        CursorUpArrow = unchecked ((System.Int32)(4)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorSizeWestEast</unmanaged>
+        /// <unmanaged-short>CursorSizeWestEast</unmanaged-short>
+        CursorSizeWestEast = unchecked ((System.Int32)(5)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorSizeNorthSouth</unmanaged>
+        /// <unmanaged-short>CursorSizeNorthSouth</unmanaged-short>
+        CursorSizeNorthSouth = unchecked ((System.Int32)(6)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorSizeAll</unmanaged>
+        /// <unmanaged-short>CursorSizeAll</unmanaged-short>
+        CursorSizeAll = unchecked ((System.Int32)(7)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorNo</unmanaged>
+        /// <unmanaged-short>CursorNo</unmanaged-short>
+        CursorNo = unchecked ((System.Int32)(8)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorHand</unmanaged>
+        /// <unmanaged-short>CursorHand</unmanaged-short>
+        CursorHand = unchecked ((System.Int32)(9)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorAppStarting</unmanaged>
+        /// <unmanaged-short>CursorAppStarting</unmanaged-short>
+        CursorAppStarting = unchecked ((System.Int32)(10)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorHelp</unmanaged>
+        /// <unmanaged-short>CursorHelp</unmanaged-short>
+        CursorHelp = unchecked ((System.Int32)(11)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorTopSide</unmanaged>
+        /// <unmanaged-short>CursorTopSide</unmanaged-short>
+        CursorTopSide = unchecked ((System.Int32)(12)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorBottomSize</unmanaged>
+        /// <unmanaged-short>CursorBottomSize</unmanaged-short>
+        CursorBottomSize = unchecked ((System.Int32)(13)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorLeftSide</unmanaged>
+        /// <unmanaged-short>CursorLeftSide</unmanaged-short>
+        CursorLeftSide = unchecked ((System.Int32)(14)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorRightSide</unmanaged>
+        /// <unmanaged-short>CursorRightSide</unmanaged-short>
+        CursorRightSide = unchecked ((System.Int32)(15)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorTopLeftCorner</unmanaged>
+        /// <unmanaged-short>CursorTopLeftCorner</unmanaged-short>
+        CursorTopLeftCorner = unchecked ((System.Int32)(16)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorTopRightCorner</unmanaged>
+        /// <unmanaged-short>CursorTopRightCorner</unmanaged-short>
+        CursorTopRightCorner = unchecked ((System.Int32)(17)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorBottomLeftCorner</unmanaged>
+        /// <unmanaged-short>CursorBottomLeftCorner</unmanaged-short>
+        CursorBottomLeftCorner = unchecked ((System.Int32)(18)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorBottomRightCorner</unmanaged>
+        /// <unmanaged-short>CursorBottomRightCorner</unmanaged-short>
+        CursorBottomRightCorner = unchecked ((System.Int32)(19)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorDragMove</unmanaged>
+        /// <unmanaged-short>CursorDragMove</unmanaged-short>
+        CursorDragMove = unchecked ((System.Int32)(20)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorDragCopy</unmanaged>
+        /// <unmanaged-short>CursorDragCopy</unmanaged-short>
+        CursorDragCopy = unchecked ((System.Int32)(21)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorDragLink</unmanaged>
+        /// <unmanaged-short>CursorDragLink</unmanaged-short>
+        CursorDragLink = unchecked ((System.Int32)(22)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>CursorNone</unmanaged>
+        /// <unmanaged-short>CursorNone</unmanaged-short>
+        CursorNone = unchecked ((System.Int32)(23))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnWindowEdge</unmanaged>
+    /// <unmanaged-short>AvnWindowEdge</unmanaged-short>
+    public enum AvnWindowEdge : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeNorthWest</unmanaged>
+        /// <unmanaged-short>WindowEdgeNorthWest</unmanaged-short>
+        WindowEdgeNorthWest = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeNorth</unmanaged>
+        /// <unmanaged-short>WindowEdgeNorth</unmanaged-short>
+        WindowEdgeNorth = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeNorthEast</unmanaged>
+        /// <unmanaged-short>WindowEdgeNorthEast</unmanaged-short>
+        WindowEdgeNorthEast = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeWest</unmanaged>
+        /// <unmanaged-short>WindowEdgeWest</unmanaged-short>
+        WindowEdgeWest = unchecked ((System.Int32)(3)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeEast</unmanaged>
+        /// <unmanaged-short>WindowEdgeEast</unmanaged-short>
+        WindowEdgeEast = unchecked ((System.Int32)(4)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeSouthWest</unmanaged>
+        /// <unmanaged-short>WindowEdgeSouthWest</unmanaged-short>
+        WindowEdgeSouthWest = unchecked ((System.Int32)(5)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeSouth</unmanaged>
+        /// <unmanaged-short>WindowEdgeSouth</unmanaged-short>
+        WindowEdgeSouth = unchecked ((System.Int32)(6)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WindowEdgeSouthEast</unmanaged>
+        /// <unmanaged-short>WindowEdgeSouthEast</unmanaged-short>
+        WindowEdgeSouthEast = unchecked ((System.Int32)(7))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnWindowState</unmanaged>
+    /// <unmanaged-short>AvnWindowState</unmanaged-short>
+    public enum AvnWindowState : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Normal</unmanaged>
+        /// <unmanaged-short>Normal</unmanaged-short>
+        Normal = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Minimized</unmanaged>
+        /// <unmanaged-short>Minimized</unmanaged-short>
+        Minimized = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Maximized</unmanaged>
+        /// <unmanaged-short>Maximized</unmanaged-short>
+        Maximized = unchecked ((System.Int32)(2)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>FullScreen</unmanaged>
+        /// <unmanaged-short>FullScreen</unmanaged-short>
+        FullScreen = unchecked ((System.Int32)(3))}
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>SystemDecorations</unmanaged>
+    /// <unmanaged-short>SystemDecorations</unmanaged-short>
+    public enum SystemDecorations : System.Int32
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SystemDecorationsNone</unmanaged>
+        /// <unmanaged-short>SystemDecorationsNone</unmanaged-short>
+        SystemDecorationsNone = unchecked ((System.Int32)(0)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SystemDecorationsBorderOnly</unmanaged>
+        /// <unmanaged-short>SystemDecorationsBorderOnly</unmanaged-short>
+        SystemDecorationsBorderOnly = unchecked ((System.Int32)(1)),
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SystemDecorationsFull</unmanaged>
+        /// <unmanaged-short>SystemDecorationsFull</unmanaged-short>
+        SystemDecorationsFull = unchecked ((System.Int32)(2))}
+}

+ 5 - 0
src/Avalonia.Native/Generated/Functions.cs

@@ -0,0 +1,5 @@
+// <auto-generated/>
+
+namespace Avalonia.Native.Interop
+{
+}

+ 3092 - 0
src/Avalonia.Native/Generated/Interfaces.cs

@@ -0,0 +1,3092 @@
+// <auto-generated/>
+
+namespace Avalonia.Native.Interop
+{
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f01")]
+    public partial class IAvaloniaNativeFactory : SharpGen.Runtime.ComObject
+    {
+        public IAvaloniaNativeFactory(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvaloniaNativeFactory(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvaloniaNativeFactory(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetMacOptions</unmanaged>
+        /// <unmanaged-short>GetMacOptions</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnMacOptions MacOptions
+        {
+            get => GetMacOptions();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetAppMenu</unmanaged>
+        /// <unmanaged-short>SetAppMenu</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnMenu AppMenu
+        {
+            set => SetAppMenu(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "deallocator">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::Initialize([In] IAvnGCHandleDeallocatorCallback* deallocator)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::Initialize</unmanaged-short>
+        public unsafe void Initialize(Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallback deallocator)
+        {
+            System.IntPtr deallocator_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            deallocator_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallback>(deallocator);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)deallocator_, (*(void ***)this._nativePointer)[3]);
+            System.GC.KeepAlive(deallocator);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>IAvnMacOptions* IAvaloniaNativeFactory::GetMacOptions()</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::GetMacOptions</unmanaged-short>
+        internal unsafe Avalonia.Native.Interop.IAvnMacOptions GetMacOptions()
+        {
+            Avalonia.Native.Interop.IAvnMacOptions __result__;
+            System.IntPtr __result__native = System.IntPtr.Zero;
+            __result__native = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (*(void ***)this._nativePointer)[4]);
+            if (__result__native != System.IntPtr.Zero)
+                __result__ = new Avalonia.Native.Interop.IAvnMacOptions(__result__native);
+            else
+                __result__ = null;
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cb">No documentation.</param>
+        /// <param name = "gl">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateWindow([In] IAvnWindowEvents* cb,[In] IAvnGlContext* gl,[In] IAvnWindow** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateWindow</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnWindow CreateWindow(Avalonia.Native.Interop.IAvnWindowEvents cb, Avalonia.Native.Interop.IAvnGlContext gl)
+        {
+            System.IntPtr cb_ = System.IntPtr.Zero;
+            System.IntPtr gl_ = System.IntPtr.Zero;
+            Avalonia.Native.Interop.IAvnWindow vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            cb_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindowEvents>(cb);
+            gl_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnGlContext>(gl);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)cb_, (void *)gl_, &vOut_, (*(void ***)this._nativePointer)[5]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnWindow(vOut_);
+            else
+                vOut = null;
+            System.GC.KeepAlive(cb);
+            System.GC.KeepAlive(gl);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cb">No documentation.</param>
+        /// <param name = "gl">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreatePopup([In] IAvnWindowEvents* cb,[In] IAvnGlContext* gl,[In] IAvnPopup** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreatePopup</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnPopup CreatePopup(Avalonia.Native.Interop.IAvnWindowEvents cb, Avalonia.Native.Interop.IAvnGlContext gl)
+        {
+            System.IntPtr cb_ = System.IntPtr.Zero;
+            System.IntPtr gl_ = System.IntPtr.Zero;
+            Avalonia.Native.Interop.IAvnPopup vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            cb_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindowEvents>(cb);
+            gl_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnGlContext>(gl);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)cb_, (void *)gl_, &vOut_, (*(void ***)this._nativePointer)[6]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnPopup(vOut_);
+            else
+                vOut = null;
+            System.GC.KeepAlive(cb);
+            System.GC.KeepAlive(gl);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreatePlatformThreadingInterface([In] IAvnPlatformThreadingInterface** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreatePlatformThreadingInterface</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnPlatformThreadingInterface CreatePlatformThreadingInterface()
+        {
+            Avalonia.Native.Interop.IAvnPlatformThreadingInterface vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[7]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnPlatformThreadingInterface(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateSystemDialogs([In] IAvnSystemDialogs** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateSystemDialogs</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnSystemDialogs CreateSystemDialogs()
+        {
+            Avalonia.Native.Interop.IAvnSystemDialogs vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[8]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnSystemDialogs(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateScreens([In] IAvnScreens** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateScreens</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnScreens CreateScreens()
+        {
+            Avalonia.Native.Interop.IAvnScreens vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[9]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnScreens(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateClipboard([In] IAvnClipboard** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateClipboard</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnClipboard CreateClipboard()
+        {
+            Avalonia.Native.Interop.IAvnClipboard vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[10]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnClipboard(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateDndClipboard([In] IAvnClipboard** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateDndClipboard</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnClipboard CreateDndClipboard()
+        {
+            Avalonia.Native.Interop.IAvnClipboard vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[11]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnClipboard(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateCursorFactory([In] IAvnCursorFactory** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateCursorFactory</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnCursorFactory CreateCursorFactory()
+        {
+            Avalonia.Native.Interop.IAvnCursorFactory vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[12]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnCursorFactory(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::ObtainGlDisplay([In] IAvnGlDisplay** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::ObtainGlDisplay</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnGlDisplay ObtainGlDisplay()
+        {
+            Avalonia.Native.Interop.IAvnGlDisplay vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[13]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnGlDisplay(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "menu">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::SetAppMenu([In] IAvnMenu* menu)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::SetAppMenu</unmanaged-short>
+        internal unsafe void SetAppMenu(Avalonia.Native.Interop.IAvnMenu menu)
+        {
+            System.IntPtr menu_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            menu_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenu>(menu);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)menu_, (*(void ***)this._nativePointer)[14]);
+            System.GC.KeepAlive(menu);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cb">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateMenu([In] IAvnMenuEvents* cb,[In] IAvnMenu** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateMenu</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnMenu CreateMenu(Avalonia.Native.Interop.IAvnMenuEvents cb)
+        {
+            System.IntPtr cb_ = System.IntPtr.Zero;
+            Avalonia.Native.Interop.IAvnMenu vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            cb_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenuEvents>(cb);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)cb_, &vOut_, (*(void ***)this._nativePointer)[15]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnMenu(vOut_);
+            else
+                vOut = null;
+            System.GC.KeepAlive(cb);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateMenuItem([In] IAvnMenuItem** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateMenuItem</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnMenuItem CreateMenuItem()
+        {
+            Avalonia.Native.Interop.IAvnMenuItem vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[16]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnMenuItem(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvaloniaNativeFactory::CreateMenuItemSeperator([In] IAvnMenuItem** ppv)</unmanaged>
+        /// <unmanaged-short>IAvaloniaNativeFactory::CreateMenuItemSeperator</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnMenuItem CreateMenuItemSeperator()
+        {
+            Avalonia.Native.Interop.IAvnMenuItem vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[17]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnMenuItem(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+    }
+
+    class IAvnActionCallbackShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnActionCallbackVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnActionCallbackVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new RunDelegate(Run));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void RunDelegate(System.IntPtr thisObject);
+            private static unsafe void Run(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnActionCallback @this = (IAvnActionCallback)ToShadow<Avalonia.Native.Interop.IAvnActionCallbackShadow>(thisObject).Callback;
+                    @this.Run();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnActionCallback @this = (IAvnActionCallback)ToShadow<Avalonia.Native.Interop.IAvnActionCallbackShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnActionCallbackShadow.IAvnActionCallbackVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f08"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnActionCallbackShadow))]
+    public partial interface IAvnActionCallback : SharpGen.Runtime.IUnknown
+    {
+        void Run();
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0f")]
+    public partial class IAvnClipboard : SharpGen.Runtime.ComObject
+    {
+        public IAvnClipboard(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnClipboard(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnClipboard(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "type">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::GetText([In] char* type,[In] IAvnString** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::GetText</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnString GetText(System.String type)
+        {
+            System.IntPtr type_;
+            Avalonia.Native.Interop.IAvnString vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            type_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(type);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)type_, &vOut_, (*(void ***)this._nativePointer)[3]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnString(vOut_);
+            else
+                vOut = null;
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(type_);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "type">No documentation.</param>
+        /// <param name = "utf8Text">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::SetText([In] char* type,[In] void* utf8Text)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::SetText</unmanaged-short>
+        public unsafe void SetText(System.String type, System.IntPtr utf8Text)
+        {
+            System.IntPtr type_;
+            SharpGen.Runtime.Result __result__;
+            type_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(type);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)type_, (void *)utf8Text, (*(void ***)this._nativePointer)[4]);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(type_);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::ObtainFormats([In] IAvnStringArray** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::ObtainFormats</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnStringArray ObtainFormats()
+        {
+            Avalonia.Native.Interop.IAvnStringArray vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[5]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnStringArray(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "type">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::GetStrings([In] char* type,[In] IAvnStringArray** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::GetStrings</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnStringArray GetStrings(System.String type)
+        {
+            System.IntPtr type_;
+            Avalonia.Native.Interop.IAvnStringArray vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            type_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(type);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)type_, &vOut_, (*(void ***)this._nativePointer)[6]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnStringArray(vOut_);
+            else
+                vOut = null;
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(type_);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "type">No documentation.</param>
+        /// <param name = "utf8Text">No documentation.</param>
+        /// <param name = "len">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::SetBytes([In] char* type,[In] void* utf8Text,[In] int len)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::SetBytes</unmanaged-short>
+        public unsafe void SetBytes(System.String type, System.IntPtr utf8Text, System.Int32 len)
+        {
+            System.IntPtr type_;
+            SharpGen.Runtime.Result __result__;
+            type_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(type);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)type_, (void *)utf8Text, len, (*(void ***)this._nativePointer)[7]);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(type_);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "type">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::GetBytes([In] char* type,[In] IAvnString** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::GetBytes</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnString GetBytes(System.String type)
+        {
+            System.IntPtr type_;
+            Avalonia.Native.Interop.IAvnString vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            type_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(type);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)type_, &vOut_, (*(void ***)this._nativePointer)[8]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnString(vOut_);
+            else
+                vOut = null;
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(type_);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnClipboard::Clear()</unmanaged>
+        /// <unmanaged-short>IAvnClipboard::Clear</unmanaged-short>
+        public unsafe void Clear()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[9]);
+            __result__.CheckError();
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f10")]
+    public partial class IAvnCursor : SharpGen.Runtime.ComObject
+    {
+        public IAvnCursor(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnCursor(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnCursor(nativePtr);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f11")]
+    public partial class IAvnCursorFactory : SharpGen.Runtime.ComObject
+    {
+        public IAvnCursorFactory(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnCursorFactory(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnCursorFactory(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cursorType">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnCursorFactory::GetCursor([In] AvnStandardCursorType cursorType,[Out] IAvnCursor** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnCursorFactory::GetCursor</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnCursor GetCursor(Avalonia.Native.Interop.AvnStandardCursorType cursorType)
+        {
+            Avalonia.Native.Interop.IAvnCursor retOut;
+            System.IntPtr retOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)cursorType), &retOut_, (*(void ***)this._nativePointer)[3]);
+            if (retOut_ != System.IntPtr.Zero)
+                retOut = new Avalonia.Native.Interop.IAvnCursor(retOut_);
+            else
+                retOut = null;
+            __result__.CheckError();
+            return retOut;
+        }
+    }
+
+    class IAvnDndResultCallbackShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnDndResultCallbackVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnDndResultCallbackVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new OnDragAndDropCompleteDelegate(OnDragAndDropComplete));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void OnDragAndDropCompleteDelegate(System.IntPtr thisObject, int arg0);
+            private static unsafe void OnDragAndDropComplete(System.IntPtr thisObject, int param0)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnDragDropEffects effecct = default (Avalonia.Native.Interop.AvnDragDropEffects);
+                    effecct = (Avalonia.Native.Interop.AvnDragDropEffects)param0;
+                    IAvnDndResultCallback @this = (IAvnDndResultCallback)ToShadow<Avalonia.Native.Interop.IAvnDndResultCallbackShadow>(thisObject).Callback;
+                    @this.OnDragAndDropComplete(effecct);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnDndResultCallback @this = (IAvnDndResultCallback)ToShadow<Avalonia.Native.Interop.IAvnDndResultCallbackShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnDndResultCallbackShadow.IAvnDndResultCallbackVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f21"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnDndResultCallbackShadow))]
+    public partial interface IAvnDndResultCallback : SharpGen.Runtime.IUnknown
+    {
+        void OnDragAndDropComplete(Avalonia.Native.Interop.AvnDragDropEffects effecct);
+    }
+
+    class IAvnGCHandleDeallocatorCallbackShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnGCHandleDeallocatorCallbackVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnGCHandleDeallocatorCallbackVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new FreeGCHandleDelegate(FreeGCHandle));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void FreeGCHandleDelegate(System.IntPtr thisObject, void *arg0);
+            private static unsafe void FreeGCHandle(System.IntPtr thisObject, void *param0)
+            {
+                try
+                {
+                    System.IntPtr handle = default (System.IntPtr);
+                    handle = (System.IntPtr)param0;
+                    IAvnGCHandleDeallocatorCallback @this = (IAvnGCHandleDeallocatorCallback)ToShadow<Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallbackShadow>(thisObject).Callback;
+                    @this.FreeGCHandle(handle);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnGCHandleDeallocatorCallback @this = (IAvnGCHandleDeallocatorCallback)ToShadow<Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallbackShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallbackShadow.IAvnGCHandleDeallocatorCallbackVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f22"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnGCHandleDeallocatorCallbackShadow))]
+    public partial interface IAvnGCHandleDeallocatorCallback : SharpGen.Runtime.IUnknown
+    {
+        void FreeGCHandle(System.IntPtr handle);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f14")]
+    public partial class IAvnGlContext : SharpGen.Runtime.ComObject
+    {
+        public IAvnGlContext(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnGlContext(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnGlContext(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetSampleCount</unmanaged>
+        /// <unmanaged-short>GetSampleCount</unmanaged-short>
+        public System.Int32 SampleCount
+        {
+            get => GetSampleCount();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetStencilSize</unmanaged>
+        /// <unmanaged-short>GetStencilSize</unmanaged-short>
+        public System.Int32 StencilSize
+        {
+            get => GetStencilSize();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetNativeHandle</unmanaged>
+        /// <unmanaged-short>GetNativeHandle</unmanaged-short>
+        public System.IntPtr NativeHandle
+        {
+            get => GetNativeHandle();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlContext::MakeCurrent([In] IUnknown** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnGlContext::MakeCurrent</unmanaged-short>
+        public unsafe SharpGen.Runtime.IUnknown MakeCurrent()
+        {
+            SharpGen.Runtime.IUnknown vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &vOut_, (*(void ***)this._nativePointer)[3]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new SharpGen.Runtime.ComObject(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlContext::LegacyMakeCurrent()</unmanaged>
+        /// <unmanaged-short>IAvnGlContext::LegacyMakeCurrent</unmanaged-short>
+        public unsafe void LegacyMakeCurrent()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>int IAvnGlContext::GetSampleCount()</unmanaged>
+        /// <unmanaged-short>IAvnGlContext::GetSampleCount</unmanaged-short>
+        internal unsafe System.Int32 GetSampleCount()
+        {
+            System.Int32 __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[5]);
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>int IAvnGlContext::GetStencilSize()</unmanaged>
+        /// <unmanaged-short>IAvnGlContext::GetStencilSize</unmanaged-short>
+        internal unsafe System.Int32 GetStencilSize()
+        {
+            System.Int32 __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[6]);
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>void* IAvnGlContext::GetNativeHandle()</unmanaged>
+        /// <unmanaged-short>IAvnGlContext::GetNativeHandle</unmanaged-short>
+        internal unsafe System.IntPtr GetNativeHandle()
+        {
+            System.IntPtr __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (*(void ***)this._nativePointer)[7]);
+            return __result__;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f13")]
+    public partial class IAvnGlDisplay : SharpGen.Runtime.ComObject
+    {
+        public IAvnGlDisplay(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnGlDisplay(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnGlDisplay(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "share">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlDisplay::CreateContext([In] IAvnGlContext* share,[In] IAvnGlContext** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnGlDisplay::CreateContext</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnGlContext CreateContext(Avalonia.Native.Interop.IAvnGlContext share)
+        {
+            System.IntPtr share_ = System.IntPtr.Zero;
+            Avalonia.Native.Interop.IAvnGlContext vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            share_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnGlContext>(share);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)share_, &vOut_, (*(void ***)this._nativePointer)[3]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnGlContext(vOut_);
+            else
+                vOut = null;
+            System.GC.KeepAlive(share);
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>void IAvnGlDisplay::LegacyClearCurrentContext()</unmanaged>
+        /// <unmanaged-short>IAvnGlDisplay::LegacyClearCurrentContext</unmanaged-short>
+        public unsafe void LegacyClearCurrentContext()
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (*(void ***)this._nativePointer)[4]);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "native">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlDisplay::WrapContext([In] void* native,[In] IAvnGlContext** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnGlDisplay::WrapContext</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnGlContext WrapContext(System.IntPtr native)
+        {
+            Avalonia.Native.Interop.IAvnGlContext vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)native, &vOut_, (*(void ***)this._nativePointer)[5]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnGlContext(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "rocRef">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>void* IAvnGlDisplay::GetProcAddress([In] char* proc)</unmanaged>
+        /// <unmanaged-short>IAvnGlDisplay::GetProcAddress</unmanaged-short>
+        public unsafe System.IntPtr GetProcAddress(System.String rocRef)
+        {
+            System.IntPtr rocRef_;
+            System.IntPtr __result__;
+            rocRef_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(rocRef);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (void *)rocRef_, (*(void ***)this._nativePointer)[6]);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(rocRef_);
+            return __result__;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f16")]
+    public partial class IAvnGlSurfaceRenderingSession : SharpGen.Runtime.ComObject
+    {
+        public IAvnGlSurfaceRenderingSession(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnGlSurfaceRenderingSession(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnGlSurfaceRenderingSession(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlSurfaceRenderingSession::GetPixelSize([In] AvnPixelSize* ret)</unmanaged>
+        /// <unmanaged-short>IAvnGlSurfaceRenderingSession::GetPixelSize</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnPixelSize GetPixelSize()
+        {
+            Avalonia.Native.Interop.AvnPixelSize ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlSurfaceRenderingSession::GetScaling([In] double* ret)</unmanaged>
+        /// <unmanaged-short>IAvnGlSurfaceRenderingSession::GetScaling</unmanaged-short>
+        public unsafe System.Double GetScaling()
+        {
+            System.Double ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+            return ret;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f15")]
+    public partial class IAvnGlSurfaceRenderTarget : SharpGen.Runtime.ComObject
+    {
+        public IAvnGlSurfaceRenderTarget(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnGlSurfaceRenderTarget(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnGlSurfaceRenderTarget(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnGlSurfaceRenderTarget::BeginDrawing([In] IAvnGlSurfaceRenderingSession** ret)</unmanaged>
+        /// <unmanaged-short>IAvnGlSurfaceRenderTarget::BeginDrawing</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnGlSurfaceRenderingSession BeginDrawing()
+        {
+            Avalonia.Native.Interop.IAvnGlSurfaceRenderingSession ret;
+            System.IntPtr ret_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret_, (*(void ***)this._nativePointer)[3]);
+            if (ret_ != System.IntPtr.Zero)
+                ret = new Avalonia.Native.Interop.IAvnGlSurfaceRenderingSession(ret_);
+            else
+                ret = null;
+            __result__.CheckError();
+            return ret;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0a")]
+    public partial class IAvnLoopCancellation : SharpGen.Runtime.ComObject
+    {
+        public IAvnLoopCancellation(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnLoopCancellation(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnLoopCancellation(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>void IAvnLoopCancellation::Cancel()</unmanaged>
+        /// <unmanaged-short>IAvnLoopCancellation::Cancel</unmanaged-short>
+        public unsafe void Cancel()
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (*(void ***)this._nativePointer)[3]);
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f07")]
+    public partial class IAvnMacOptions : SharpGen.Runtime.ComObject
+    {
+        public IAvnMacOptions(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnMacOptions(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnMacOptions(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetShowInDock</unmanaged>
+        /// <unmanaged-short>SetShowInDock</unmanaged-short>
+        public System.Int32 ShowInDock
+        {
+            set => SetShowInDock(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetApplicationTitle</unmanaged>
+        /// <unmanaged-short>SetApplicationTitle</unmanaged-short>
+        public System.IntPtr ApplicationTitle
+        {
+            set => SetApplicationTitle(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "show">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMacOptions::SetShowInDock([In] int show)</unmanaged>
+        /// <unmanaged-short>IAvnMacOptions::SetShowInDock</unmanaged-short>
+        internal unsafe void SetShowInDock(System.Int32 show)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, show, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "utf8string">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMacOptions::SetApplicationTitle([In] void* utf8string)</unmanaged>
+        /// <unmanaged-short>IAvnMacOptions::SetApplicationTitle</unmanaged-short>
+        internal unsafe void SetApplicationTitle(System.IntPtr utf8string)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)utf8string, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f17")]
+    public partial class IAvnMenu : SharpGen.Runtime.ComObject
+    {
+        public IAvnMenu(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnMenu(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnMenu(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetTitle</unmanaged>
+        /// <unmanaged-short>SetTitle</unmanaged-short>
+        public System.IntPtr Title
+        {
+            set => SetTitle(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "index">No documentation.</param>
+        /// <param name = "item">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenu::InsertItem([In] int index,[In] IAvnMenuItem* item)</unmanaged>
+        /// <unmanaged-short>IAvnMenu::InsertItem</unmanaged-short>
+        public unsafe void InsertItem(System.Int32 index, Avalonia.Native.Interop.IAvnMenuItem item)
+        {
+            System.IntPtr item_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            item_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenuItem>(item);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, index, (void *)item_, (*(void ***)this._nativePointer)[3]);
+            System.GC.KeepAlive(item);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "item">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenu::RemoveItem([In] IAvnMenuItem* item)</unmanaged>
+        /// <unmanaged-short>IAvnMenu::RemoveItem</unmanaged-short>
+        public unsafe void RemoveItem(Avalonia.Native.Interop.IAvnMenuItem item)
+        {
+            System.IntPtr item_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            item_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenuItem>(item);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)item_, (*(void ***)this._nativePointer)[4]);
+            System.GC.KeepAlive(item);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "utf8String">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenu::SetTitle([In] void* utf8String)</unmanaged>
+        /// <unmanaged-short>IAvnMenu::SetTitle</unmanaged-short>
+        internal unsafe void SetTitle(System.IntPtr utf8String)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)utf8String, (*(void ***)this._nativePointer)[5]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenu::Clear()</unmanaged>
+        /// <unmanaged-short>IAvnMenu::Clear</unmanaged-short>
+        public unsafe void Clear()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[6]);
+            __result__.CheckError();
+        }
+    }
+
+    class IAvnMenuEventsShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnMenuEventsVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnMenuEventsVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new NeedsUpdateDelegate(NeedsUpdate));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void NeedsUpdateDelegate(System.IntPtr thisObject);
+            private static unsafe void NeedsUpdate(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnMenuEvents @this = (IAvnMenuEvents)ToShadow<Avalonia.Native.Interop.IAvnMenuEventsShadow>(thisObject).Callback;
+                    @this.NeedsUpdate();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnMenuEvents @this = (IAvnMenuEvents)ToShadow<Avalonia.Native.Interop.IAvnMenuEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnMenuEventsShadow.IAvnMenuEventsVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f1A"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnMenuEventsShadow))]
+    public partial interface IAvnMenuEvents : SharpGen.Runtime.IUnknown
+    {
+        void NeedsUpdate();
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f19")]
+    public partial class IAvnMenuItem : SharpGen.Runtime.ComObject
+    {
+        public IAvnMenuItem(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnMenuItem(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnMenuItem(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetSubMenu</unmanaged>
+        /// <unmanaged-short>SetSubMenu</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnMenu SubMenu
+        {
+            set => SetSubMenu(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetTitle</unmanaged>
+        /// <unmanaged-short>SetTitle</unmanaged-short>
+        public System.IntPtr Title
+        {
+            set => SetTitle(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetIsChecked</unmanaged>
+        /// <unmanaged-short>SetIsChecked</unmanaged-short>
+        public System.Boolean IsChecked
+        {
+            set => SetIsChecked(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetToggleType</unmanaged>
+        /// <unmanaged-short>SetToggleType</unmanaged-short>
+        public Avalonia.Native.Interop.AvnMenuItemToggleType ToggleType
+        {
+            set => SetToggleType(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "menu">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetSubMenu([In] IAvnMenu* menu)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetSubMenu</unmanaged-short>
+        internal unsafe void SetSubMenu(Avalonia.Native.Interop.IAvnMenu menu)
+        {
+            System.IntPtr menu_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            menu_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenu>(menu);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)menu_, (*(void ***)this._nativePointer)[3]);
+            System.GC.KeepAlive(menu);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "utf8String">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetTitle([In] void* utf8String)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetTitle</unmanaged-short>
+        internal unsafe void SetTitle(System.IntPtr utf8String)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)utf8String, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "utf8String">No documentation.</param>
+        /// <param name = "modifiers">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetGesture([In] void* utf8String,[In] AvnInputModifiers modifiers)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetGesture</unmanaged-short>
+        public unsafe void SetGesture(System.IntPtr utf8String, Avalonia.Native.Interop.AvnInputModifiers modifiers)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)utf8String, unchecked ((System.Int32)modifiers), (*(void ***)this._nativePointer)[5]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "redicateRef">No documentation.</param>
+        /// <param name = "callback">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetAction([In] IAvnPredicateCallback* predicate,[In] IAvnActionCallback* callback)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetAction</unmanaged-short>
+        public unsafe void SetAction(Avalonia.Native.Interop.IAvnPredicateCallback redicateRef, Avalonia.Native.Interop.IAvnActionCallback callback)
+        {
+            System.IntPtr redicateRef_ = System.IntPtr.Zero;
+            System.IntPtr callback_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            redicateRef_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnPredicateCallback>(redicateRef);
+            callback_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnActionCallback>(callback);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)redicateRef_, (void *)callback_, (*(void ***)this._nativePointer)[6]);
+            System.GC.KeepAlive(redicateRef);
+            System.GC.KeepAlive(callback);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "isChecked">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetIsChecked([In] bool isChecked)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetIsChecked</unmanaged-short>
+        internal unsafe void SetIsChecked(System.Boolean isChecked)
+        {
+            System.Byte isChecked_;
+            SharpGen.Runtime.Result __result__;
+            isChecked_ = (System.Byte)(isChecked ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, isChecked_, (*(void ***)this._nativePointer)[7]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "toggleType">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetToggleType([In] AvnMenuItemToggleType toggleType)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetToggleType</unmanaged-short>
+        internal unsafe void SetToggleType(Avalonia.Native.Interop.AvnMenuItemToggleType toggleType)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)toggleType), (*(void ***)this._nativePointer)[8]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "data">No documentation.</param>
+        /// <param name = "length">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnMenuItem::SetIcon([In] void* data,[In] size_t length)</unmanaged>
+        /// <unmanaged-short>IAvnMenuItem::SetIcon</unmanaged-short>
+        public unsafe void SetIcon(System.IntPtr data, SharpGen.Runtime.PointerSize length)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)data, (void *)length, (*(void ***)this._nativePointer)[9]);
+            __result__.CheckError();
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f20")]
+    public partial class IAvnNativeControlHost : SharpGen.Runtime.ComObject
+    {
+        public IAvnNativeControlHost(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnNativeControlHost(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnNativeControlHost(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "arentRef">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnNativeControlHost::CreateDefaultChild([In] void* parent,[Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHost::CreateDefaultChild</unmanaged-short>
+        public unsafe System.IntPtr CreateDefaultChild(System.IntPtr arentRef)
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)arentRef, &retOut, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>IAvnNativeControlHostTopLevelAttachment* IAvnNativeControlHost::CreateAttachment()</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHost::CreateAttachment</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnNativeControlHostTopLevelAttachment CreateAttachment()
+        {
+            Avalonia.Native.Interop.IAvnNativeControlHostTopLevelAttachment __result__;
+            System.IntPtr __result__native = System.IntPtr.Zero;
+            __result__native = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (*(void ***)this._nativePointer)[4]);
+            if (__result__native != System.IntPtr.Zero)
+                __result__ = new Avalonia.Native.Interop.IAvnNativeControlHostTopLevelAttachment(__result__native);
+            else
+                __result__ = null;
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "child">No documentation.</param>
+        /// <unmanaged>void IAvnNativeControlHost::DestroyDefaultChild([In] void* child)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHost::DestroyDefaultChild</unmanaged-short>
+        public unsafe void DestroyDefaultChild(System.IntPtr child)
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (void *)child, (*(void ***)this._nativePointer)[5]);
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f21")]
+    public partial class IAvnNativeControlHostTopLevelAttachment : SharpGen.Runtime.ComObject
+    {
+        public IAvnNativeControlHostTopLevelAttachment(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnNativeControlHostTopLevelAttachment(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnNativeControlHostTopLevelAttachment(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetParentHandle</unmanaged>
+        /// <unmanaged-short>GetParentHandle</unmanaged-short>
+        public System.IntPtr ParentHandle
+        {
+            get => GetParentHandle();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>void* IAvnNativeControlHostTopLevelAttachment::GetParentHandle()</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::GetParentHandle</unmanaged-short>
+        internal unsafe System.IntPtr GetParentHandle()
+        {
+            System.IntPtr __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (*(void ***)this._nativePointer)[3]);
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "child">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnNativeControlHostTopLevelAttachment::InitializeWithChildHandle([In] void* child)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::InitializeWithChildHandle</unmanaged-short>
+        public unsafe void InitializeWithChildHandle(System.IntPtr child)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)child, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "host">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnNativeControlHostTopLevelAttachment::AttachTo([In] IAvnNativeControlHost* host)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::AttachTo</unmanaged-short>
+        public unsafe void AttachTo(Avalonia.Native.Interop.IAvnNativeControlHost host)
+        {
+            System.IntPtr host_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            host_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnNativeControlHost>(host);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)host_, (*(void ***)this._nativePointer)[5]);
+            System.GC.KeepAlive(host);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "x">No documentation.</param>
+        /// <param name = "y">No documentation.</param>
+        /// <param name = "width">No documentation.</param>
+        /// <param name = "height">No documentation.</param>
+        /// <unmanaged>void IAvnNativeControlHostTopLevelAttachment::ShowInBounds([In] float x,[In] float y,[In] float width,[In] float height)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::ShowInBounds</unmanaged-short>
+        public unsafe void ShowInBounds(System.Single x, System.Single y, System.Single width, System.Single height)
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, x, y, width, height, (*(void ***)this._nativePointer)[6]);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "width">No documentation.</param>
+        /// <param name = "height">No documentation.</param>
+        /// <unmanaged>void IAvnNativeControlHostTopLevelAttachment::HideWithSize([In] float width,[In] float height)</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::HideWithSize</unmanaged-short>
+        public unsafe void HideWithSize(System.Single width, System.Single height)
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, width, height, (*(void ***)this._nativePointer)[7]);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>void IAvnNativeControlHostTopLevelAttachment::ReleaseChild()</unmanaged>
+        /// <unmanaged-short>IAvnNativeControlHostTopLevelAttachment::ReleaseChild</unmanaged-short>
+        public unsafe void ReleaseChild()
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (*(void ***)this._nativePointer)[8]);
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0b")]
+    public partial class IAvnPlatformThreadingInterface : SharpGen.Runtime.ComObject
+    {
+        public IAvnPlatformThreadingInterface(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnPlatformThreadingInterface(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnPlatformThreadingInterface(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetCurrentThreadIsLoopThread</unmanaged>
+        /// <unmanaged-short>GetCurrentThreadIsLoopThread</unmanaged-short>
+        public System.Boolean CurrentThreadIsLoopThread
+        {
+            get => GetCurrentThreadIsLoopThread();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetSignaledCallback</unmanaged>
+        /// <unmanaged-short>SetSignaledCallback</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnSignaledCallback SignaledCallback
+        {
+            set => SetSignaledCallback(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>bool IAvnPlatformThreadingInterface::GetCurrentThreadIsLoopThread()</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::GetCurrentThreadIsLoopThread</unmanaged-short>
+        internal unsafe System.Boolean GetCurrentThreadIsLoopThread()
+        {
+            System.Boolean __result__;
+            System.Byte __result__native;
+            __result__native = Avalonia.Native.LocalInterop.CalliThisCallSystemByte(this._nativePointer, (*(void ***)this._nativePointer)[3]);
+            __result__ = __result__native != 0;
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cb">No documentation.</param>
+        /// <unmanaged>void IAvnPlatformThreadingInterface::SetSignaledCallback([In] IAvnSignaledCallback* cb)</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::SetSignaledCallback</unmanaged-short>
+        internal unsafe void SetSignaledCallback(Avalonia.Native.Interop.IAvnSignaledCallback cb)
+        {
+            System.IntPtr cb_ = System.IntPtr.Zero;
+            cb_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnSignaledCallback>(cb);
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (void *)cb_, (*(void ***)this._nativePointer)[4]);
+            System.GC.KeepAlive(cb);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>IAvnLoopCancellation* IAvnPlatformThreadingInterface::CreateLoopCancellation()</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::CreateLoopCancellation</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnLoopCancellation CreateLoopCancellation()
+        {
+            Avalonia.Native.Interop.IAvnLoopCancellation __result__;
+            System.IntPtr __result__native = System.IntPtr.Zero;
+            __result__native = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, (*(void ***)this._nativePointer)[5]);
+            if (__result__native != System.IntPtr.Zero)
+                __result__ = new Avalonia.Native.Interop.IAvnLoopCancellation(__result__native);
+            else
+                __result__ = null;
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cancel">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnPlatformThreadingInterface::RunLoop([In] IAvnLoopCancellation* cancel)</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::RunLoop</unmanaged-short>
+        public unsafe void RunLoop(Avalonia.Native.Interop.IAvnLoopCancellation cancel)
+        {
+            System.IntPtr cancel_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            cancel_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnLoopCancellation>(cancel);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)cancel_, (*(void ***)this._nativePointer)[6]);
+            System.GC.KeepAlive(cancel);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "priority">No documentation.</param>
+        /// <unmanaged>void IAvnPlatformThreadingInterface::Signal([In] int priority)</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::Signal</unmanaged-short>
+        public unsafe void Signal(System.Int32 priority)
+        {
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, priority, (*(void ***)this._nativePointer)[7]);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "priority">No documentation.</param>
+        /// <param name = "ms">No documentation.</param>
+        /// <param name = "callback">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>IUnknown* IAvnPlatformThreadingInterface::StartTimer([In] int priority,[In] int ms,[In] IAvnActionCallback* callback)</unmanaged>
+        /// <unmanaged-short>IAvnPlatformThreadingInterface::StartTimer</unmanaged-short>
+        public unsafe SharpGen.Runtime.ComObject StartTimer(System.Int32 priority, System.Int32 ms, Avalonia.Native.Interop.IAvnActionCallback callback)
+        {
+            System.IntPtr callback_ = System.IntPtr.Zero;
+            SharpGen.Runtime.ComObject __result__;
+            System.IntPtr __result__native = System.IntPtr.Zero;
+            callback_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnActionCallback>(callback);
+            __result__native = Avalonia.Native.LocalInterop.CalliThisCallSystemIntPtr(this._nativePointer, priority, ms, (void *)callback_, (*(void ***)this._nativePointer)[8]);
+            if (__result__native != System.IntPtr.Zero)
+                __result__ = new SharpGen.Runtime.ComObject(__result__native);
+            else
+                __result__ = null;
+            System.GC.KeepAlive(callback);
+            return __result__;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f03")]
+    public partial class IAvnPopup : Avalonia.Native.Interop.IAvnWindowBase
+    {
+        public IAvnPopup(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnPopup(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnPopup(nativePtr);
+    }
+
+    class IAvnPredicateCallbackShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnPredicateCallbackVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnPredicateCallbackVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new EvaluateDelegate(Evaluate));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate System.Byte EvaluateDelegate(System.IntPtr thisObject);
+            private static unsafe System.Byte Evaluate(System.IntPtr thisObject)
+            {
+                try
+                {
+                    System.Boolean __result__ = default (System.Boolean);
+                    System.Byte __result__native;
+                    IAvnPredicateCallback @this = (IAvnPredicateCallback)ToShadow<Avalonia.Native.Interop.IAvnPredicateCallbackShadow>(thisObject).Callback;
+                    __result__ = @this.Evaluate();
+                    __result__native = (System.Byte)(__result__ ? 1 : 0);
+                    return __result__native;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnPredicateCallback @this = (IAvnPredicateCallback)ToShadow<Avalonia.Native.Interop.IAvnPredicateCallbackShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return default (System.Byte);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnPredicateCallbackShadow.IAvnPredicateCallbackVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f18"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnPredicateCallbackShadow))]
+    public partial interface IAvnPredicateCallback : SharpGen.Runtime.IUnknown
+    {
+        System.Boolean Evaluate();
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0e")]
+    public partial class IAvnScreens : SharpGen.Runtime.ComObject
+    {
+        public IAvnScreens(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnScreens(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnScreens(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnScreens::GetScreenCount([In] int* ret)</unmanaged>
+        /// <unmanaged-short>IAvnScreens::GetScreenCount</unmanaged-short>
+        public unsafe System.Int32 GetScreenCount()
+        {
+            System.Int32 ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "index">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnScreens::GetScreen([In] int index,[In] AvnScreen* ret)</unmanaged>
+        /// <unmanaged-short>IAvnScreens::GetScreen</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnScreen GetScreen(System.Int32 index)
+        {
+            Avalonia.Native.Interop.AvnScreen ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, index, &ret, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+            return ret;
+        }
+    }
+
+    class IAvnSignaledCallbackShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnSignaledCallbackVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnSignaledCallbackVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new SignaledDelegate(Signaled));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void SignaledDelegate(System.IntPtr thisObject, int arg0, System.Byte arg1);
+            private static unsafe void Signaled(System.IntPtr thisObject, int param0, System.Byte param1)
+            {
+                try
+                {
+                    System.Int32 priority = default (System.Int32);
+                    priority = (System.Int32)param0;
+                    System.Boolean priorityContainsMeaningfulValue = default (System.Boolean);
+                    System.Byte priorityContainsMeaningfulValue_ = (System.Byte)param1;
+                    IAvnSignaledCallback @this = (IAvnSignaledCallback)ToShadow<Avalonia.Native.Interop.IAvnSignaledCallbackShadow>(thisObject).Callback;
+                    priorityContainsMeaningfulValue = priorityContainsMeaningfulValue_ != 0;
+                    @this.Signaled(priority, priorityContainsMeaningfulValue);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnSignaledCallback @this = (IAvnSignaledCallback)ToShadow<Avalonia.Native.Interop.IAvnSignaledCallbackShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnSignaledCallbackShadow.IAvnSignaledCallbackVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f09"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnSignaledCallbackShadow))]
+    public partial interface IAvnSignaledCallback : SharpGen.Runtime.IUnknown
+    {
+        void Signaled(System.Int32 priority, System.Boolean priorityContainsMeaningfulValue);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f17")]
+    public partial class IAvnString : SharpGen.Runtime.ComObject
+    {
+        public IAvnString(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnString(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnString(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnString::Pointer([Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnString::Pointer</unmanaged-short>
+        public unsafe System.IntPtr Pointer()
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnString::Length([In] int* ret)</unmanaged>
+        /// <unmanaged-short>IAvnString::Length</unmanaged-short>
+        public unsafe System.Int32 Length()
+        {
+            System.Int32 ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+            return ret;
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f20")]
+    public partial class IAvnStringArray : SharpGen.Runtime.ComObject
+    {
+        public IAvnStringArray(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnStringArray(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnStringArray(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>GetCount</unmanaged>
+        /// <unmanaged-short>GetCount</unmanaged-short>
+        public System.UInt32 Count
+        {
+            get => GetCount();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>unsigned int IAvnStringArray::GetCount()</unmanaged>
+        /// <unmanaged-short>IAvnStringArray::GetCount</unmanaged-short>
+        internal unsafe System.UInt32 GetCount()
+        {
+            System.UInt32 __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallSystemUInt32(this._nativePointer, (*(void ***)this._nativePointer)[3]);
+            return __result__;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "index">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnStringArray::Get([In] unsigned int index,[In] IAvnString** ppv)</unmanaged>
+        /// <unmanaged-short>IAvnStringArray::Get</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnString Get(System.UInt32 index)
+        {
+            Avalonia.Native.Interop.IAvnString vOut;
+            System.IntPtr vOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, index, &vOut_, (*(void ***)this._nativePointer)[4]);
+            if (vOut_ != System.IntPtr.Zero)
+                vOut = new Avalonia.Native.Interop.IAvnString(vOut_);
+            else
+                vOut = null;
+            __result__.CheckError();
+            return vOut;
+        }
+    }
+
+    class IAvnSystemDialogEventsShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnSystemDialogEventsVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnSystemDialogEventsVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 1)
+            {
+                AddMethod(new OnCompletedDelegate(OnCompleted));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void OnCompletedDelegate(System.IntPtr thisObject, int arg0, void *arg1);
+            private static unsafe void OnCompleted(System.IntPtr thisObject, int param0, void *param1)
+            {
+                try
+                {
+                    System.Int32 numResults = default (System.Int32);
+                    numResults = (System.Int32)param0;
+                    System.IntPtr trFirstResultRef = default (System.IntPtr);
+                    trFirstResultRef = (System.IntPtr)param1;
+                    IAvnSystemDialogEvents @this = (IAvnSystemDialogEvents)ToShadow<Avalonia.Native.Interop.IAvnSystemDialogEventsShadow>(thisObject).Callback;
+                    @this.OnCompleted(numResults, trFirstResultRef);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnSystemDialogEvents @this = (IAvnSystemDialogEvents)ToShadow<Avalonia.Native.Interop.IAvnSystemDialogEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnSystemDialogEventsShadow.IAvnSystemDialogEventsVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0c"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnSystemDialogEventsShadow))]
+    public partial interface IAvnSystemDialogEvents : SharpGen.Runtime.IUnknown
+    {
+        void OnCompleted(System.Int32 numResults, System.IntPtr trFirstResultRef);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f0d")]
+    public partial class IAvnSystemDialogs : SharpGen.Runtime.ComObject
+    {
+        public IAvnSystemDialogs(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnSystemDialogs(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnSystemDialogs(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "arentWindowHandleRef">No documentation.</param>
+        /// <param name = "events">No documentation.</param>
+        /// <param name = "title">No documentation.</param>
+        /// <param name = "initialPath">No documentation.</param>
+        /// <unmanaged>void IAvnSystemDialogs::SelectFolderDialog([In] IAvnWindow* parentWindowHandle,[In] IAvnSystemDialogEvents* events,[In] const char* title,[In] const char* initialPath)</unmanaged>
+        /// <unmanaged-short>IAvnSystemDialogs::SelectFolderDialog</unmanaged-short>
+        public unsafe void SelectFolderDialog(Avalonia.Native.Interop.IAvnWindow arentWindowHandleRef, Avalonia.Native.Interop.IAvnSystemDialogEvents events, System.String title, System.String initialPath)
+        {
+            System.IntPtr arentWindowHandleRef_ = System.IntPtr.Zero;
+            System.IntPtr events_ = System.IntPtr.Zero;
+            System.IntPtr title_;
+            System.IntPtr initialPath_;
+            arentWindowHandleRef_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindow>(arentWindowHandleRef);
+            events_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnSystemDialogEvents>(events);
+            title_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(title);
+            initialPath_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(initialPath);
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (void *)arentWindowHandleRef_, (void *)events_, (void *)title_, (void *)initialPath_, (*(void ***)this._nativePointer)[3]);
+            System.GC.KeepAlive(arentWindowHandleRef);
+            System.GC.KeepAlive(events);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(title_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(initialPath_);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "arentWindowHandleRef">No documentation.</param>
+        /// <param name = "events">No documentation.</param>
+        /// <param name = "allowMultiple">No documentation.</param>
+        /// <param name = "title">No documentation.</param>
+        /// <param name = "initialDirectory">No documentation.</param>
+        /// <param name = "initialFile">No documentation.</param>
+        /// <param name = "filters">No documentation.</param>
+        /// <unmanaged>void IAvnSystemDialogs::OpenFileDialog([In] IAvnWindow* parentWindowHandle,[In] IAvnSystemDialogEvents* events,[In] bool allowMultiple,[In] const char* title,[In] const char* initialDirectory,[In] const char* initialFile,[In] const char* filters)</unmanaged>
+        /// <unmanaged-short>IAvnSystemDialogs::OpenFileDialog</unmanaged-short>
+        public unsafe void OpenFileDialog(Avalonia.Native.Interop.IAvnWindow arentWindowHandleRef, Avalonia.Native.Interop.IAvnSystemDialogEvents events, System.Boolean allowMultiple, System.String title, System.String initialDirectory, System.String initialFile, System.String filters)
+        {
+            System.IntPtr arentWindowHandleRef_ = System.IntPtr.Zero;
+            System.IntPtr events_ = System.IntPtr.Zero;
+            System.Byte allowMultiple_;
+            System.IntPtr title_;
+            System.IntPtr initialDirectory_;
+            System.IntPtr initialFile_;
+            System.IntPtr filters_;
+            arentWindowHandleRef_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindow>(arentWindowHandleRef);
+            events_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnSystemDialogEvents>(events);
+            allowMultiple_ = (System.Byte)(allowMultiple ? 1 : 0);
+            title_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(title);
+            initialDirectory_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(initialDirectory);
+            initialFile_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(initialFile);
+            filters_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(filters);
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (void *)arentWindowHandleRef_, (void *)events_, allowMultiple_, (void *)title_, (void *)initialDirectory_, (void *)initialFile_, (void *)filters_, (*(void ***)this._nativePointer)[4]);
+            System.GC.KeepAlive(arentWindowHandleRef);
+            System.GC.KeepAlive(events);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(title_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(initialDirectory_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(initialFile_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(filters_);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "arentWindowHandleRef">No documentation.</param>
+        /// <param name = "events">No documentation.</param>
+        /// <param name = "title">No documentation.</param>
+        /// <param name = "initialDirectory">No documentation.</param>
+        /// <param name = "initialFile">No documentation.</param>
+        /// <param name = "filters">No documentation.</param>
+        /// <unmanaged>void IAvnSystemDialogs::SaveFileDialog([In] IAvnWindow* parentWindowHandle,[In] IAvnSystemDialogEvents* events,[In] const char* title,[In] const char* initialDirectory,[In] const char* initialFile,[In] const char* filters)</unmanaged>
+        /// <unmanaged-short>IAvnSystemDialogs::SaveFileDialog</unmanaged-short>
+        public unsafe void SaveFileDialog(Avalonia.Native.Interop.IAvnWindow arentWindowHandleRef, Avalonia.Native.Interop.IAvnSystemDialogEvents events, System.String title, System.String initialDirectory, System.String initialFile, System.String filters)
+        {
+            System.IntPtr arentWindowHandleRef_ = System.IntPtr.Zero;
+            System.IntPtr events_ = System.IntPtr.Zero;
+            System.IntPtr title_;
+            System.IntPtr initialDirectory_;
+            System.IntPtr initialFile_;
+            System.IntPtr filters_;
+            arentWindowHandleRef_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindow>(arentWindowHandleRef);
+            events_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnSystemDialogEvents>(events);
+            title_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(title);
+            initialDirectory_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(initialDirectory);
+            initialFile_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(initialFile);
+            filters_ = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(filters);
+            Avalonia.Native.LocalInterop.CalliThisCallvoid(this._nativePointer, (void *)arentWindowHandleRef_, (void *)events_, (void *)title_, (void *)initialDirectory_, (void *)initialFile_, (void *)filters_, (*(void ***)this._nativePointer)[5]);
+            System.GC.KeepAlive(arentWindowHandleRef);
+            System.GC.KeepAlive(events);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(title_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(initialDirectory_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(initialFile_);
+            System.Runtime.InteropServices.Marshal.FreeHGlobal(filters_);
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f04")]
+    public partial class IAvnWindow : Avalonia.Native.Interop.IAvnWindowBase
+    {
+        public IAvnWindow(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnWindow(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnWindow(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetEnabled</unmanaged>
+        /// <unmanaged-short>SetEnabled</unmanaged-short>
+        public System.Boolean Enabled
+        {
+            set => SetEnabled(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetParent</unmanaged>
+        /// <unmanaged-short>SetParent</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnWindow Parent
+        {
+            set => SetParent(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetCanResize</unmanaged>
+        /// <unmanaged-short>SetCanResize</unmanaged-short>
+        public System.Boolean CanResize
+        {
+            set => SetCanResize(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetDecorations</unmanaged>
+        /// <unmanaged-short>SetDecorations</unmanaged-short>
+        public Avalonia.Native.Interop.SystemDecorations Decorations
+        {
+            set => SetDecorations(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetTitle</unmanaged>
+        /// <unmanaged-short>SetTitle</unmanaged-short>
+        public System.IntPtr Title
+        {
+            set => SetTitle(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetTitleBarColor</unmanaged>
+        /// <unmanaged-short>SetTitleBarColor</unmanaged-short>
+        public Avalonia.Native.Interop.AvnColor TitleBarColor
+        {
+            set => SetTitleBarColor(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetExtendClientArea</unmanaged>
+        /// <unmanaged-short>SetExtendClientArea</unmanaged-short>
+        public System.Boolean ExtendClientArea
+        {
+            set => SetExtendClientArea(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetExtendClientAreaHints</unmanaged>
+        /// <unmanaged-short>SetExtendClientAreaHints</unmanaged-short>
+        public Avalonia.Native.Interop.AvnExtendClientAreaChromeHints ExtendClientAreaHints
+        {
+            set => SetExtendClientAreaHints(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "enable">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetEnabled([In] bool enable)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetEnabled</unmanaged-short>
+        internal unsafe void SetEnabled(System.Boolean enable)
+        {
+            System.Byte enable_;
+            SharpGen.Runtime.Result __result__;
+            enable_ = (System.Byte)(enable ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, enable_, (*(void ***)this._nativePointer)[30]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "arentRef">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetParent([In] IAvnWindow* parent)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetParent</unmanaged-short>
+        internal unsafe void SetParent(Avalonia.Native.Interop.IAvnWindow arentRef)
+        {
+            System.IntPtr arentRef_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            arentRef_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnWindow>(arentRef);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)arentRef_, (*(void ***)this._nativePointer)[31]);
+            System.GC.KeepAlive(arentRef);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "value">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetCanResize([In] bool value)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetCanResize</unmanaged-short>
+        internal unsafe void SetCanResize(System.Boolean value)
+        {
+            System.Byte value_;
+            SharpGen.Runtime.Result __result__;
+            value_ = (System.Byte)(value ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, value_, (*(void ***)this._nativePointer)[32]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "value">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetDecorations([In] SystemDecorations value)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetDecorations</unmanaged-short>
+        internal unsafe void SetDecorations(Avalonia.Native.Interop.SystemDecorations value)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)value), (*(void ***)this._nativePointer)[33]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "utf8Title">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetTitle([In] void* utf8Title)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetTitle</unmanaged-short>
+        internal unsafe void SetTitle(System.IntPtr utf8Title)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)utf8Title, (*(void ***)this._nativePointer)[34]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "color">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetTitleBarColor([In] AvnColor color)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetTitleBarColor</unmanaged-short>
+        internal unsafe void SetTitleBarColor(Avalonia.Native.Interop.AvnColor color)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, color, (*(void ***)this._nativePointer)[35]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "state">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetWindowState([In] AvnWindowState state)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetWindowState</unmanaged-short>
+        public unsafe void SetWindowState(Avalonia.Native.Interop.AvnWindowState state)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)state), (*(void ***)this._nativePointer)[36]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::GetWindowState([In] AvnWindowState* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::GetWindowState</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnWindowState GetWindowState()
+        {
+            Avalonia.Native.Interop.AvnWindowState ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[37]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::TakeFocusFromChildren()</unmanaged>
+        /// <unmanaged-short>IAvnWindow::TakeFocusFromChildren</unmanaged-short>
+        public unsafe void TakeFocusFromChildren()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[38]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "enable">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetExtendClientArea([In] bool enable)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetExtendClientArea</unmanaged-short>
+        internal unsafe void SetExtendClientArea(System.Boolean enable)
+        {
+            System.Byte enable_;
+            SharpGen.Runtime.Result __result__;
+            enable_ = (System.Byte)(enable ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, enable_, (*(void ***)this._nativePointer)[39]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "hints">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetExtendClientAreaHints([In] AvnExtendClientAreaChromeHints hints)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetExtendClientAreaHints</unmanaged-short>
+        internal unsafe void SetExtendClientAreaHints(Avalonia.Native.Interop.AvnExtendClientAreaChromeHints hints)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)hints), (*(void ***)this._nativePointer)[40]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::GetExtendTitleBarHeight([In] double* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::GetExtendTitleBarHeight</unmanaged-short>
+        public unsafe System.Double GetExtendTitleBarHeight()
+        {
+            System.Double ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[41]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "value">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindow::SetExtendTitleBarHeight([In] double value)</unmanaged>
+        /// <unmanaged-short>IAvnWindow::SetExtendTitleBarHeight</unmanaged-short>
+        public unsafe void SetExtendTitleBarHeight(System.Double value)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, value, (*(void ***)this._nativePointer)[42]);
+            __result__.CheckError();
+        }
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f02")]
+    public partial class IAvnWindowBase : SharpGen.Runtime.ComObject
+    {
+        public IAvnWindowBase(System.IntPtr nativePtr): base (nativePtr)
+        {
+        }
+
+        public static explicit operator IAvnWindowBase(System.IntPtr nativePtr) => nativePtr == System.IntPtr.Zero ? null : new IAvnWindowBase(nativePtr);
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetTopMost</unmanaged>
+        /// <unmanaged-short>SetTopMost</unmanaged-short>
+        public System.Boolean TopMost
+        {
+            set => SetTopMost(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetCursor</unmanaged>
+        /// <unmanaged-short>SetCursor</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnCursor Cursor
+        {
+            set => SetCursor(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetMainMenu</unmanaged>
+        /// <unmanaged-short>SetMainMenu</unmanaged-short>
+        public Avalonia.Native.Interop.IAvnMenu MainMenu
+        {
+            set => SetMainMenu(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>SetBlurEnabled</unmanaged>
+        /// <unmanaged-short>SetBlurEnabled</unmanaged-short>
+        public System.Boolean BlurEnabled
+        {
+            set => SetBlurEnabled(value);
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Show()</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Show</unmanaged-short>
+        public unsafe void Show()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[3]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Hide()</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Hide</unmanaged-short>
+        public unsafe void Hide()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[4]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Close()</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Close</unmanaged-short>
+        public unsafe void Close()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[5]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Activate()</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Activate</unmanaged-short>
+        public unsafe void Activate()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[6]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::GetClientSize([In] AvnSize* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::GetClientSize</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnSize GetClientSize()
+        {
+            Avalonia.Native.Interop.AvnSize ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[7]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::GetScaling([In] double* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::GetScaling</unmanaged-short>
+        public unsafe System.Double GetScaling()
+        {
+            System.Double ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[8]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "minSize">No documentation.</param>
+        /// <param name = "maxSize">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetMinMaxSize([In] AvnSize minSize,[In] AvnSize maxSize)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetMinMaxSize</unmanaged-short>
+        public unsafe void SetMinMaxSize(Avalonia.Native.Interop.AvnSize minSize, Avalonia.Native.Interop.AvnSize maxSize)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, minSize, maxSize, (*(void ***)this._nativePointer)[9]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "width">No documentation.</param>
+        /// <param name = "height">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Resize([In] double width,[In] double height)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Resize</unmanaged-short>
+        public unsafe void Resize(System.Double width, System.Double height)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, width, height, (*(void ***)this._nativePointer)[10]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "rect">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::Invalidate([In] AvnRect rect)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::Invalidate</unmanaged-short>
+        public unsafe void Invalidate(Avalonia.Native.Interop.AvnRect rect)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, rect, (*(void ***)this._nativePointer)[11]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::BeginMoveDrag()</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::BeginMoveDrag</unmanaged-short>
+        public unsafe void BeginMoveDrag()
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (*(void ***)this._nativePointer)[12]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "edge">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::BeginResizeDrag([In] AvnWindowEdge edge)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::BeginResizeDrag</unmanaged-short>
+        public unsafe void BeginResizeDrag(Avalonia.Native.Interop.AvnWindowEdge edge)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, unchecked ((System.Int32)edge), (*(void ***)this._nativePointer)[13]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::GetPosition([In] AvnPoint* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::GetPosition</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnPoint GetPosition()
+        {
+            Avalonia.Native.Interop.AvnPoint ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret, (*(void ***)this._nativePointer)[14]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "point">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetPosition([In] AvnPoint point)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetPosition</unmanaged-short>
+        public unsafe void SetPosition(Avalonia.Native.Interop.AvnPoint point)
+        {
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, point, (*(void ***)this._nativePointer)[15]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "point">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::PointToClient([In] AvnPoint point,[In] AvnPoint* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::PointToClient</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnPoint PointToClient(Avalonia.Native.Interop.AvnPoint point)
+        {
+            Avalonia.Native.Interop.AvnPoint ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, point, &ret, (*(void ***)this._nativePointer)[16]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "point">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::PointToScreen([In] AvnPoint point,[In] AvnPoint* ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::PointToScreen</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.AvnPoint PointToScreen(Avalonia.Native.Interop.AvnPoint point)
+        {
+            Avalonia.Native.Interop.AvnPoint ret;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, point, &ret, (*(void ***)this._nativePointer)[17]);
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "fb">No documentation.</param>
+        /// <param name = "dispose">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::ThreadSafeSetSwRenderedFrame([In] AvnFramebuffer* fb,[In] IUnknown* dispose)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::ThreadSafeSetSwRenderedFrame</unmanaged-short>
+        public unsafe void ThreadSafeSetSwRenderedFrame(ref Avalonia.Native.Interop.AvnFramebuffer fb, SharpGen.Runtime.IUnknown dispose)
+        {
+            System.IntPtr dispose_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            dispose_ = SharpGen.Runtime.CppObject.ToCallbackPtr<SharpGen.Runtime.IUnknown>(dispose);
+            fixed (void *fb_ = &fb)
+                __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, fb_, (void *)dispose_, (*(void ***)this._nativePointer)[18]);
+            System.GC.KeepAlive(dispose);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "value">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetTopMost([In] bool value)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetTopMost</unmanaged-short>
+        internal unsafe void SetTopMost(System.Boolean value)
+        {
+            System.Byte value_;
+            SharpGen.Runtime.Result __result__;
+            value_ = (System.Byte)(value ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, value_, (*(void ***)this._nativePointer)[19]);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "cursor">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetCursor([In] IAvnCursor* cursor)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetCursor</unmanaged-short>
+        internal unsafe void SetCursor(Avalonia.Native.Interop.IAvnCursor cursor)
+        {
+            System.IntPtr cursor_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            cursor_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnCursor>(cursor);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)cursor_, (*(void ***)this._nativePointer)[20]);
+            System.GC.KeepAlive(cursor);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::CreateGlRenderTarget([In] IAvnGlSurfaceRenderTarget** ret)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::CreateGlRenderTarget</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnGlSurfaceRenderTarget CreateGlRenderTarget()
+        {
+            Avalonia.Native.Interop.IAvnGlSurfaceRenderTarget ret;
+            System.IntPtr ret_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &ret_, (*(void ***)this._nativePointer)[21]);
+            if (ret_ != System.IntPtr.Zero)
+                ret = new Avalonia.Native.Interop.IAvnGlSurfaceRenderTarget(ret_);
+            else
+                ret = null;
+            __result__.CheckError();
+            return ret;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "menu">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetMainMenu([In] IAvnMenu* menu)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetMainMenu</unmanaged-short>
+        internal unsafe void SetMainMenu(Avalonia.Native.Interop.IAvnMenu menu)
+        {
+            System.IntPtr menu_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            menu_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnMenu>(menu);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, (void *)menu_, (*(void ***)this._nativePointer)[22]);
+            System.GC.KeepAlive(menu);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::ObtainNSWindowHandle([Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::ObtainNSWindowHandle</unmanaged-short>
+        public unsafe System.IntPtr ObtainNSWindowHandle()
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut, (*(void ***)this._nativePointer)[23]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::ObtainNSWindowHandleRetained([Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::ObtainNSWindowHandleRetained</unmanaged-short>
+        public unsafe System.IntPtr ObtainNSWindowHandleRetained()
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut, (*(void ***)this._nativePointer)[24]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::ObtainNSViewHandle([Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::ObtainNSViewHandle</unmanaged-short>
+        public unsafe System.IntPtr ObtainNSViewHandle()
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut, (*(void ***)this._nativePointer)[25]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::ObtainNSViewHandleRetained([Out] void** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::ObtainNSViewHandleRetained</unmanaged-short>
+        public unsafe System.IntPtr ObtainNSViewHandleRetained()
+        {
+            System.IntPtr retOut;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut, (*(void ***)this._nativePointer)[26]);
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::CreateNativeControlHost([Out] IAvnNativeControlHost** retOut)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::CreateNativeControlHost</unmanaged-short>
+        public unsafe Avalonia.Native.Interop.IAvnNativeControlHost CreateNativeControlHost()
+        {
+            Avalonia.Native.Interop.IAvnNativeControlHost retOut;
+            System.IntPtr retOut_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, &retOut_, (*(void ***)this._nativePointer)[27]);
+            if (retOut_ != System.IntPtr.Zero)
+                retOut = new Avalonia.Native.Interop.IAvnNativeControlHost(retOut_);
+            else
+                retOut = null;
+            __result__.CheckError();
+            return retOut;
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "effects">No documentation.</param>
+        /// <param name = "point">No documentation.</param>
+        /// <param name = "clipboard">No documentation.</param>
+        /// <param name = "cb">No documentation.</param>
+        /// <param name = "sourceHandle">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::BeginDragAndDropOperation([In] AvnDragDropEffects effects,[In] AvnPoint point,[In] IAvnClipboard* clipboard,[In] IAvnDndResultCallback* cb,[In] void* sourceHandle)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::BeginDragAndDropOperation</unmanaged-short>
+        public unsafe void BeginDragAndDropOperation(Avalonia.Native.Interop.AvnDragDropEffects effects, Avalonia.Native.Interop.AvnPoint point, Avalonia.Native.Interop.IAvnClipboard clipboard, Avalonia.Native.Interop.IAvnDndResultCallback cb, System.IntPtr sourceHandle)
+        {
+            System.IntPtr clipboard_ = System.IntPtr.Zero;
+            System.IntPtr cb_ = System.IntPtr.Zero;
+            SharpGen.Runtime.Result __result__;
+            clipboard_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnClipboard>(clipboard);
+            cb_ = SharpGen.Runtime.CppObject.ToCallbackPtr<Avalonia.Native.Interop.IAvnDndResultCallback>(cb);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint0(this._nativePointer, unchecked ((System.Int32)effects), point, (void *)clipboard_, (void *)cb_, (void *)sourceHandle, (*(void ***)this._nativePointer)[28]);
+            System.GC.KeepAlive(clipboard);
+            System.GC.KeepAlive(cb);
+            __result__.CheckError();
+        }
+
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <param name = "enable">No documentation.</param>
+        /// <returns>No documentation.</returns>
+        /// <unmanaged>HRESULT IAvnWindowBase::SetBlurEnabled([In] bool enable)</unmanaged>
+        /// <unmanaged-short>IAvnWindowBase::SetBlurEnabled</unmanaged-short>
+        internal unsafe void SetBlurEnabled(System.Boolean enable)
+        {
+            System.Byte enable_;
+            SharpGen.Runtime.Result __result__;
+            enable_ = (System.Byte)(enable ? 1 : 0);
+            __result__ = Avalonia.Native.LocalInterop.CalliThisCallint(this._nativePointer, enable_, (*(void ***)this._nativePointer)[29]);
+            __result__.CheckError();
+        }
+    }
+
+    class IAvnWindowBaseEventsShadow : SharpGen.Runtime.ComObjectShadow
+    {
+        protected unsafe class IAvnWindowBaseEventsVtbl : SharpGen.Runtime.ComObjectShadow.ComObjectVtbl
+        {
+            public IAvnWindowBaseEventsVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 13)
+            {
+                AddMethod(new PaintDelegate(Paint));
+                AddMethod(new ClosedDelegate(Closed));
+                AddMethod(new ActivatedDelegate(Activated));
+                AddMethod(new DeactivatedDelegate(Deactivated));
+                AddMethod(new ResizedDelegate(Resized));
+                AddMethod(new PositionChangedDelegate(PositionChanged));
+                AddMethod(new RawMouseEventDelegate(RawMouseEvent));
+                AddMethod(new RawKeyEventDelegate(RawKeyEvent));
+                AddMethod(new RawTextInputEventDelegate(RawTextInputEvent));
+                AddMethod(new ScalingChangedDelegate(ScalingChanged));
+                AddMethod(new RunRenderPriorityJobsDelegate(RunRenderPriorityJobs));
+                AddMethod(new LostFocusDelegate(LostFocus));
+                AddMethod(new DragEventDelegate(DragEvent));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate int PaintDelegate(System.IntPtr thisObject);
+            private static unsafe int Paint(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.Paint();
+                    return SharpGen.Runtime.Result.Ok.Code;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return SharpGen.Runtime.Result.GetResultFromException(__exception__).Code;
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void ClosedDelegate(System.IntPtr thisObject);
+            private static unsafe void Closed(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.Closed();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void ActivatedDelegate(System.IntPtr thisObject);
+            private static unsafe void Activated(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.Activated();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void DeactivatedDelegate(System.IntPtr thisObject);
+            private static unsafe void Deactivated(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.Deactivated();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void ResizedDelegate(System.IntPtr thisObject, void *arg0);
+            private static unsafe void Resized(System.IntPtr thisObject, void *param0)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnSize size = System.Runtime.CompilerServices.Unsafe.AsRef<Avalonia.Native.Interop.AvnSize>(param0);
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.Resized(size);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void PositionChangedDelegate(System.IntPtr thisObject, Avalonia.Native.Interop.AvnPoint arg0);
+            private static unsafe void PositionChanged(System.IntPtr thisObject, Avalonia.Native.Interop.AvnPoint param0)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnPoint position = default (Avalonia.Native.Interop.AvnPoint);
+                    position = (Avalonia.Native.Interop.AvnPoint)param0;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.PositionChanged(position);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void RawMouseEventDelegate(System.IntPtr thisObject, int arg0, System.UInt32 arg1, int arg2, Avalonia.Native.Interop.AvnPoint arg3, Avalonia.Native.Interop.AvnVector arg4);
+            private static unsafe void RawMouseEvent(System.IntPtr thisObject, int param0, System.UInt32 param1, int param2, Avalonia.Native.Interop.AvnPoint param3, Avalonia.Native.Interop.AvnVector param4)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnRawMouseEventType type = default (Avalonia.Native.Interop.AvnRawMouseEventType);
+                    type = (Avalonia.Native.Interop.AvnRawMouseEventType)param0;
+                    System.UInt32 timeStamp = default (System.UInt32);
+                    timeStamp = (System.UInt32)param1;
+                    Avalonia.Native.Interop.AvnInputModifiers modifiers = default (Avalonia.Native.Interop.AvnInputModifiers);
+                    modifiers = (Avalonia.Native.Interop.AvnInputModifiers)param2;
+                    Avalonia.Native.Interop.AvnPoint point = default (Avalonia.Native.Interop.AvnPoint);
+                    point = (Avalonia.Native.Interop.AvnPoint)param3;
+                    Avalonia.Native.Interop.AvnVector delta = default (Avalonia.Native.Interop.AvnVector);
+                    delta = (Avalonia.Native.Interop.AvnVector)param4;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.RawMouseEvent(type, timeStamp, modifiers, point, delta);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate System.Byte RawKeyEventDelegate(System.IntPtr thisObject, int arg0, System.UInt32 arg1, int arg2, System.UInt32 arg3);
+            private static unsafe System.Byte RawKeyEvent(System.IntPtr thisObject, int param0, System.UInt32 param1, int param2, System.UInt32 param3)
+            {
+                try
+                {
+                    System.Boolean __result__ = default (System.Boolean);
+                    System.Byte __result__native;
+                    Avalonia.Native.Interop.AvnRawKeyEventType type = default (Avalonia.Native.Interop.AvnRawKeyEventType);
+                    type = (Avalonia.Native.Interop.AvnRawKeyEventType)param0;
+                    System.UInt32 timeStamp = default (System.UInt32);
+                    timeStamp = (System.UInt32)param1;
+                    Avalonia.Native.Interop.AvnInputModifiers modifiers = default (Avalonia.Native.Interop.AvnInputModifiers);
+                    modifiers = (Avalonia.Native.Interop.AvnInputModifiers)param2;
+                    System.UInt32 key = default (System.UInt32);
+                    key = (System.UInt32)param3;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    __result__ = @this.RawKeyEvent(type, timeStamp, modifiers, key);
+                    __result__native = (System.Byte)(__result__ ? 1 : 0);
+                    return __result__native;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return default (System.Byte);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate System.Byte RawTextInputEventDelegate(System.IntPtr thisObject, System.UInt32 arg0, void *arg1);
+            private static unsafe System.Byte RawTextInputEvent(System.IntPtr thisObject, System.UInt32 param0, void *param1)
+            {
+                try
+                {
+                    System.Boolean __result__ = default (System.Boolean);
+                    System.Byte __result__native;
+                    System.UInt32 timeStamp = default (System.UInt32);
+                    timeStamp = (System.UInt32)param0;
+                    System.String text = default (System.String);
+                    System.IntPtr text_ = (System.IntPtr)param1;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    text = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(text_);
+                    __result__ = @this.RawTextInputEvent(timeStamp, text);
+                    __result__native = (System.Byte)(__result__ ? 1 : 0);
+                    return __result__native;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return default (System.Byte);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void ScalingChangedDelegate(System.IntPtr thisObject, double arg0);
+            private static unsafe void ScalingChanged(System.IntPtr thisObject, double param0)
+            {
+                try
+                {
+                    System.Double scaling = default (System.Double);
+                    scaling = (System.Double)param0;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.ScalingChanged(scaling);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void RunRenderPriorityJobsDelegate(System.IntPtr thisObject);
+            private static unsafe void RunRenderPriorityJobs(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.RunRenderPriorityJobs();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void LostFocusDelegate(System.IntPtr thisObject);
+            private static unsafe void LostFocus(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    @this.LostFocus();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate Avalonia.Native.Interop.AvnDragDropEffects DragEventDelegate(System.IntPtr thisObject, int arg0, Avalonia.Native.Interop.AvnPoint arg1, int arg2, int arg3, void *arg4, void *arg5);
+            private static unsafe Avalonia.Native.Interop.AvnDragDropEffects DragEvent(System.IntPtr thisObject, int param0, Avalonia.Native.Interop.AvnPoint param1, int param2, int param3, void *param4, void *param5)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnDragDropEffects __result__ = default (Avalonia.Native.Interop.AvnDragDropEffects);
+                    Avalonia.Native.Interop.AvnDragEventType type = default (Avalonia.Native.Interop.AvnDragEventType);
+                    type = (Avalonia.Native.Interop.AvnDragEventType)param0;
+                    Avalonia.Native.Interop.AvnPoint position = default (Avalonia.Native.Interop.AvnPoint);
+                    position = (Avalonia.Native.Interop.AvnPoint)param1;
+                    Avalonia.Native.Interop.AvnInputModifiers modifiers = default (Avalonia.Native.Interop.AvnInputModifiers);
+                    modifiers = (Avalonia.Native.Interop.AvnInputModifiers)param2;
+                    Avalonia.Native.Interop.AvnDragDropEffects effects = default (Avalonia.Native.Interop.AvnDragDropEffects);
+                    effects = (Avalonia.Native.Interop.AvnDragDropEffects)param3;
+                    Avalonia.Native.Interop.IAvnClipboard clipboard = default (Avalonia.Native.Interop.IAvnClipboard);
+                    System.IntPtr clipboard_ = (System.IntPtr)param4;
+                    System.IntPtr dataObjectHandle = default (System.IntPtr);
+                    dataObjectHandle = (System.IntPtr)param5;
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    if (clipboard_ != System.IntPtr.Zero)
+                        clipboard = new Avalonia.Native.Interop.IAvnClipboard(clipboard_);
+                    else
+                        clipboard = null;
+                    __result__ = @this.DragEvent(type, position, modifiers, effects, clipboard, dataObjectHandle);
+                    return __result__;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowBaseEvents @this = (IAvnWindowBaseEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowBaseEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return default (Avalonia.Native.Interop.AvnDragDropEffects);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnWindowBaseEventsShadow.IAvnWindowBaseEventsVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f05"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnWindowBaseEventsShadow))]
+    public partial interface IAvnWindowBaseEvents : SharpGen.Runtime.IUnknown
+    {
+        void Paint();
+        void Closed();
+        void Activated();
+        void Deactivated();
+        void Resized(Avalonia.Native.Interop.AvnSize size);
+        void PositionChanged(Avalonia.Native.Interop.AvnPoint position);
+        void RawMouseEvent(Avalonia.Native.Interop.AvnRawMouseEventType type, System.UInt32 timeStamp, Avalonia.Native.Interop.AvnInputModifiers modifiers, Avalonia.Native.Interop.AvnPoint point, Avalonia.Native.Interop.AvnVector delta);
+        System.Boolean RawKeyEvent(Avalonia.Native.Interop.AvnRawKeyEventType type, System.UInt32 timeStamp, Avalonia.Native.Interop.AvnInputModifiers modifiers, System.UInt32 key);
+        System.Boolean RawTextInputEvent(System.UInt32 timeStamp, System.String text);
+        void ScalingChanged(System.Double scaling);
+        void RunRenderPriorityJobs();
+        void LostFocus();
+        Avalonia.Native.Interop.AvnDragDropEffects DragEvent(Avalonia.Native.Interop.AvnDragEventType type, Avalonia.Native.Interop.AvnPoint position, Avalonia.Native.Interop.AvnInputModifiers modifiers, Avalonia.Native.Interop.AvnDragDropEffects effects, Avalonia.Native.Interop.IAvnClipboard clipboard, System.IntPtr dataObjectHandle);
+    }
+
+    class IAvnWindowEventsShadow : Avalonia.Native.Interop.IAvnWindowBaseEventsShadow
+    {
+        protected unsafe class IAvnWindowEventsVtbl : Avalonia.Native.Interop.IAvnWindowBaseEventsShadow.IAvnWindowBaseEventsVtbl
+        {
+            public IAvnWindowEventsVtbl(int numberOfCallbackMethods): base (numberOfCallbackMethods + 3)
+            {
+                AddMethod(new ClosingDelegate(Closing));
+                AddMethod(new WindowStateChangedDelegate(WindowStateChanged));
+                AddMethod(new GotInputWhenDisabledDelegate(GotInputWhenDisabled));
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate System.Byte ClosingDelegate(System.IntPtr thisObject);
+            private static unsafe System.Byte Closing(System.IntPtr thisObject)
+            {
+                try
+                {
+                    System.Boolean __result__ = default (System.Boolean);
+                    System.Byte __result__native;
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    __result__ = @this.Closing();
+                    __result__native = (System.Byte)(__result__ ? 1 : 0);
+                    return __result__native;
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                    return default (System.Byte);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void WindowStateChangedDelegate(System.IntPtr thisObject, int arg0);
+            private static unsafe void WindowStateChanged(System.IntPtr thisObject, int param0)
+            {
+                try
+                {
+                    Avalonia.Native.Interop.AvnWindowState state = default (Avalonia.Native.Interop.AvnWindowState);
+                    state = (Avalonia.Native.Interop.AvnWindowState)param0;
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    @this.WindowStateChanged(state);
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+
+            [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.ThisCall)]
+            private delegate void GotInputWhenDisabledDelegate(System.IntPtr thisObject);
+            private static unsafe void GotInputWhenDisabled(System.IntPtr thisObject)
+            {
+                try
+                {
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    @this.GotInputWhenDisabled();
+                }
+                catch (System.Exception __exception__)
+                {
+                    IAvnWindowEvents @this = (IAvnWindowEvents)ToShadow<Avalonia.Native.Interop.IAvnWindowEventsShadow>(thisObject).Callback;
+                    (@this as SharpGen.Runtime.IExceptionCallback)?.RaiseException(__exception__);
+                }
+            }
+        }
+
+        protected override SharpGen.Runtime.CppObjectVtbl Vtbl
+        {
+            get;
+        }
+
+        = new Avalonia.Native.Interop.IAvnWindowEventsShadow.IAvnWindowEventsVtbl(0);
+    }
+
+    [System.Runtime.InteropServices.GuidAttribute("2e2cda0a-9ae5-4f1b-8e20-081a04279f06"), SharpGen.Runtime.ShadowAttribute(typeof (Avalonia.Native.Interop.IAvnWindowEventsShadow))]
+    public partial interface IAvnWindowEvents : Avalonia.Native.Interop.IAvnWindowBaseEvents
+    {
+        System.Boolean Closing();
+        void WindowStateChanged(Avalonia.Native.Interop.AvnWindowState state);
+        void GotInputWhenDisabled();
+    }
+}

+ 202 - 0
src/Avalonia.Native/Generated/LocalInterop.cs

@@ -0,0 +1,202 @@
+// <auto-generated/>
+
+namespace Avalonia.Native
+{
+    internal static partial class LocalInterop
+    {
+        public static unsafe int CalliThisCallint(void *thisObject, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, void *param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid0(void *thisObject, Avalonia.Native.Interop.AvnPoint param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid0(void *thisObject, int param0, System.UInt32 param1, int param2, Avalonia.Native.Interop.AvnPoint param3, Avalonia.Native.Interop.AvnVector param4, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.Byte CalliThisCallSystemByte(void *thisObject, int param0, System.UInt32 param1, int param2, System.UInt32 param3, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.Byte CalliThisCallSystemByte(void *thisObject, System.UInt32 param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, double param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe Avalonia.Native.Interop.AvnDragDropEffects CalliThisCallAvaloniaNativeInteropAvnDragDropEffects0(void *thisObject, int param0, Avalonia.Native.Interop.AvnPoint param1, int param2, int param3, void *param4, void *param5, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.Byte CalliThisCallSystemByte(void *thisObject, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, int param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, void *param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, Avalonia.Native.Interop.AvnSize param0, Avalonia.Native.Interop.AvnSize param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, double param0, double param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, Avalonia.Native.Interop.AvnRect param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, int param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, Avalonia.Native.Interop.AvnPoint param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, Avalonia.Native.Interop.AvnPoint param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, void *param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, System.Byte param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, int param0, Avalonia.Native.Interop.AvnPoint param1, void *param2, void *param3, void *param4, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint0(void *thisObject, Avalonia.Native.Interop.AvnColor param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, double param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.IntPtr CalliThisCallSystemIntPtr(void *thisObject, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.IntPtr CalliThisCallSystemIntPtr(void *thisObject, int param0, int param1, void *param2, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, int param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, void *param0, void *param1, void *param2, void *param3, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, void *param0, void *param1, System.Byte param2, void *param3, void *param4, void *param5, void *param6, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, void *param0, void *param1, void *param2, void *param3, void *param4, void *param5, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, int param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, void *param0, void *param1, int param2, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.IntPtr CalliThisCallSystemIntPtr(void *thisObject, void *param0, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, void *param0, int param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe System.UInt32 CalliThisCallSystemUInt32(void *thisObject, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, System.UInt32 param0, void *param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, float param0, float param1, float param2, float param3, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, float param0, float param1, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe int CalliThisCallint(void *thisObject, void *param0, void *param1, void *param2, void *methodPtr)
+        {
+            throw null;
+        }
+
+        public static unsafe void CalliThisCallvoid(void *thisObject, int param0, System.Byte param1, void *methodPtr)
+        {
+            throw null;
+        }
+    }
+}

+ 246 - 0
src/Avalonia.Native/Generated/Structures.cs

@@ -0,0 +1,246 @@
+// <auto-generated/>
+
+namespace Avalonia.Native.Interop
+{
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnColor</unmanaged>
+    /// <unmanaged-short>AvnColor</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnColor
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Alpha</unmanaged>
+        /// <unmanaged-short>Alpha</unmanaged-short>
+        public System.Byte Alpha;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Red</unmanaged>
+        /// <unmanaged-short>Red</unmanaged-short>
+        public System.Byte Red;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Green</unmanaged>
+        /// <unmanaged-short>Green</unmanaged-short>
+        public System.Byte Green;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Blue</unmanaged>
+        /// <unmanaged-short>Blue</unmanaged-short>
+        public System.Byte Blue;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnFramebuffer</unmanaged>
+    /// <unmanaged-short>AvnFramebuffer</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnFramebuffer
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Data</unmanaged>
+        /// <unmanaged-short>Data</unmanaged-short>
+        public System.IntPtr Data;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Width</unmanaged>
+        /// <unmanaged-short>Width</unmanaged-short>
+        public System.Int32 Width;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Height</unmanaged>
+        /// <unmanaged-short>Height</unmanaged-short>
+        public System.Int32 Height;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Stride</unmanaged>
+        /// <unmanaged-short>Stride</unmanaged-short>
+        public System.Int32 Stride;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Dpi</unmanaged>
+        /// <unmanaged-short>Dpi</unmanaged-short>
+        public Avalonia.Native.Interop.AvnVector Dpi;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>PixelFormat</unmanaged>
+        /// <unmanaged-short>PixelFormat</unmanaged-short>
+        public Avalonia.Native.Interop.AvnPixelFormat PixelFormat;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnPixelSize</unmanaged>
+    /// <unmanaged-short>AvnPixelSize</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnPixelSize
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Width</unmanaged>
+        /// <unmanaged-short>Width</unmanaged-short>
+        public System.Int32 Width;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Height</unmanaged>
+        /// <unmanaged-short>Height</unmanaged-short>
+        public System.Int32 Height;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnPoint</unmanaged>
+    /// <unmanaged-short>AvnPoint</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnPoint
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>X</unmanaged>
+        /// <unmanaged-short>X</unmanaged-short>
+        public System.Double X;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Y</unmanaged>
+        /// <unmanaged-short>Y</unmanaged-short>
+        public System.Double Y;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnRect</unmanaged>
+    /// <unmanaged-short>AvnRect</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnRect
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>X</unmanaged>
+        /// <unmanaged-short>X</unmanaged-short>
+        public System.Double X;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Y</unmanaged>
+        /// <unmanaged-short>Y</unmanaged-short>
+        public System.Double Y;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Width</unmanaged>
+        /// <unmanaged-short>Width</unmanaged-short>
+        public System.Double Width;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Height</unmanaged>
+        /// <unmanaged-short>Height</unmanaged-short>
+        public System.Double Height;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnScreen</unmanaged>
+    /// <unmanaged-short>AvnScreen</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnScreen
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Bounds</unmanaged>
+        /// <unmanaged-short>Bounds</unmanaged-short>
+        public Avalonia.Native.Interop.AvnRect Bounds;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>WorkingArea</unmanaged>
+        /// <unmanaged-short>WorkingArea</unmanaged-short>
+        public Avalonia.Native.Interop.AvnRect WorkingArea;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>PixelDensity</unmanaged>
+        /// <unmanaged-short>PixelDensity</unmanaged-short>
+        public System.Single PixelDensity;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Primary</unmanaged>
+        /// <unmanaged-short>Primary</unmanaged-short>
+        public bool Primary
+        {
+            get => 0 != _Primary;
+            set => _Primary = (System.Byte)(value ? 1 : 0);
+        }
+
+        internal System.Byte _Primary;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnSize</unmanaged>
+    /// <unmanaged-short>AvnSize</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnSize
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Width</unmanaged>
+        /// <unmanaged-short>Width</unmanaged-short>
+        public System.Double Width;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Height</unmanaged>
+        /// <unmanaged-short>Height</unmanaged-short>
+        public System.Double Height;
+    }
+
+    /// <summary>
+    /// No documentation.
+    /// </summary>
+    /// <unmanaged>AvnVector</unmanaged>
+    /// <unmanaged-short>AvnVector</unmanaged-short>
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 0, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+    public partial struct AvnVector
+    {
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>X</unmanaged>
+        /// <unmanaged-short>X</unmanaged-short>
+        public System.Double X;
+        /// <summary>
+        /// No documentation.
+        /// </summary>
+        /// <unmanaged>Y</unmanaged>
+        /// <unmanaged-short>Y</unmanaged-short>
+        public System.Double Y;
+    }
+}