[PATCH 0/1] MR3436: include: Add xamlom.idl file.
Continuation of https://gitlab.winehq.org/wine/wine/-/merge_requests/2773 I tried to address all comments. @zfigura please take a look. cc @Biswa96 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3436
From: Paul Jackson <mailnew4ster(a)gmail.com> --- include/Makefile.in | 1 + include/xamlom.idl | 345 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 346 insertions(+) create mode 100644 include/xamlom.idl diff --git a/include/Makefile.in b/include/Makefile.in index b810f7e8442..c85df829c74 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -981,6 +981,7 @@ SOURCES = \ xact2wb.h \ xact3.h \ xact3wb.h \ + xamlom.idl \ xapo.idl \ xapofx.h \ xaudio2.idl \ diff --git a/include/xamlom.idl b/include/xamlom.idl new file mode 100644 index 00000000000..3d02968f2d9 --- /dev/null +++ b/include/xamlom.idl @@ -0,0 +1,345 @@ +/* + * Copyright (C) 2023 Biswapriyo Nath + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; +import "ocidl.idl"; +import "inspectable.idl"; +import "dxgi1_2.idl"; + +cpp_quote("#define E_NOTFOUND _HRESULT_TYPEDEF_(0x80070490)") +cpp_quote("#define E_UNKNOWNTYPE _HRESULT_TYPEDEF_(0x802b0028)") +cpp_quote("HRESULT WINAPI InitializeXamlDiagnostic(PCWSTR, DWORD, PCWSTR, PCWSTR, CLSID);") +cpp_quote("HRESULT WINAPI InitializeXamlDiagnosticsEx(PCWSTR, DWORD, PCWSTR, PCWSTR, CLSID, PCWSTR);") + +typedef unsigned hyper InstanceHandle; + +typedef enum VisualMutationType +{ + Add, + Remove +} VisualMutationType; + +typedef enum BaseValueSource +{ + BaseValueSourceUnknown, + BaseValueSourceDefault, + BaseValueSourceBuiltInStyle, + BaseValueSourceStyle, + BaseValueSourceLocal, + Inherited, + DefaultStyleTrigger, + TemplateTrigger, + StyleTrigger, + ImplicitStyleReference, + ParentTemplate, + ParentTemplateTrigger, + Animation, + Coercion, + BaseValueSourceVisualState +} BaseValueSource; + +typedef struct SourceInfo +{ + BSTR FileName; + unsigned int LineNumber; + unsigned int ColumnNumber; + unsigned int CharPosition; + BSTR Hash; +} SourceInfo; + +typedef struct ParentChildRelation +{ + InstanceHandle Parent; + InstanceHandle Child; + unsigned int ChildIndex; +} ParentChildRelation; + +typedef struct VisualElement +{ + InstanceHandle Handle; + SourceInfo SrcInfo; + BSTR Type; + BSTR Name; + unsigned int NumChildren; +} VisualElement; + +typedef struct PropertyChainSource +{ + InstanceHandle Handle; + BSTR TargetType; + BSTR Name; + BaseValueSource Source; + SourceInfo SrcInfo; +} PropertyChainSource; + +typedef enum MetadataBit +{ + None = 0x0, + IsValueHandle = 0x1, + IsPropertyReadOnly = 0x2, + IsValueCollection = 0x4, + IsValueCollectionReadOnly = 0x8, + IsValueBindingExpression = 0x10, + IsValueNull = 0x20, + IsValueHandleAndEvaluatedValue = 0x40, +} MetadataBit; + +typedef struct PropertyChainValue +{ + unsigned int Index; + BSTR Type; + BSTR DeclaringType; + BSTR ValueType; + BSTR ItemType; + BSTR Value; + BOOL Overridden; + hyper MetadataBits; + BSTR PropertyName; + unsigned int PropertyChainIndex; +} PropertyChainValue; + +typedef struct EnumType +{ + BSTR Name; + SAFEARRAY(int) ValueInts; + SAFEARRAY(BSTR) ValueStrings; +} EnumType; + +typedef struct CollectionElementValue +{ + unsigned int Index; + BSTR ValueType; + BSTR Value; + hyper MetadataBits; +} CollectionElementValue; + +typedef enum RenderTargetBitmapOptions +{ + RenderTarget, + RenderTargetAndChildren +} RenderTargetBitmapOptions; + +typedef struct BitmapDescription +{ + unsigned int Width; + unsigned int Height; + DXGI_FORMAT Format; + DXGI_ALPHA_MODE AlphaMode; +} BitmapDescription; + +typedef enum ResourceType +{ + ResourceTypeStatic, + ResourceTypeTheme +} ResourceType; + +typedef enum VisualElementState +{ + ErrorResolved, + ErrorResourceNotFound, + ErrorInvalidResource, +} VisualElementState; + +[ + object, + uuid(aa7a8931-80e4-4fec-8f3b-553f87b4966e) +] +interface IVisualTreeServiceCallback : IUnknown +{ + HRESULT OnVisualTreeChange( + [in] ParentChildRelation relation, + [in] VisualElement element, + [in] VisualMutationType mutation_type); +} + +[ + object, + uuid(bad9eb88-ae77-4397-b948-5fa2db0a19ea) +] +interface IVisualTreeServiceCallback2 : IVisualTreeServiceCallback +{ + HRESULT OnElementStateChanged( + [in] InstanceHandle element, + [in] VisualElementState element_state, + [in] LPCWSTR context); +} + +[ + object, + uuid(a593b11a-d17f-48bb-8f66-83910731c8a5) +] +interface IVisualTreeService : IUnknown +{ + HRESULT AdviseVisualTreeChange([in] IVisualTreeServiceCallback *callback); + + HRESULT UnadviseVisualTreeChange([in] IVisualTreeServiceCallback *callback); + + HRESULT GetEnums( + [out] unsigned int *count, + [out, size_is(, *count)] EnumType **enums); + + HRESULT CreateInstance( + [in] BSTR type_name, + [in] BSTR value, + [out, retval] InstanceHandle *instance_handle); + + HRESULT GetPropertyValuesChain( + [in] InstanceHandle instance_handle, + [out] unsigned int *source_count, + [out, size_is(, *source_count)] PropertyChainSource **property_sources, + [out] unsigned int *property_count, + [out, size_is(, *property_count)] PropertyChainValue **property_values); + + HRESULT SetProperty( + [in] InstanceHandle instance_handle, + [in] InstanceHandle value, + [in] unsigned int property_index); + + HRESULT ClearProperty( + [in] InstanceHandle instance_handle, + [in] unsigned int property_index); + + HRESULT GetCollectionCount( + [in] InstanceHandle instance_handle, + [out] unsigned int *collection_size); + + HRESULT GetCollectionElements( + [in] InstanceHandle instance_handle, + [in] unsigned int start_index, + [in, out] unsigned int *element_count, + [out, size_is(, *element_count)] CollectionElementValue **element_values); + + HRESULT AddChild( + [in] InstanceHandle parent, + [in] InstanceHandle child, + [in] unsigned int index); + + HRESULT RemoveChild( + [in] InstanceHandle parent, + [in] unsigned int index); + + HRESULT ClearChildren([in] InstanceHandle parent); +} + +[ + object, + uuid(18c9e2b6-3f43-4116-9f2b-ff935d7770d2) +] +interface IXamlDiagnostics : IUnknown +{ + HRESULT GetDispatcher([out, retval] IInspectable **dispatcher); + + HRESULT GetUiLayer([out, retval] IInspectable **layer); + + HRESULT GetApplication([out, retval] IInspectable **application); + + HRESULT GetIInspectableFromHandle( + [in] InstanceHandle instance_handle, + [out, retval] IInspectable **instance); + + HRESULT GetHandleFromIInspectable( + [in] IInspectable *instance, + [out, retval] InstanceHandle *handle); + + HRESULT HitTest( + [in] RECT rect, + [out] unsigned int *count, + [out, size_is(, *count)] InstanceHandle **instance_handles); + + HRESULT RegisterInstance( + [in] IInspectable *instance, + [out, retval] InstanceHandle *instance_handle); + + HRESULT GetInitializationData([out, retval] BSTR *initialization_data); +} + +[ + object, + uuid(d1a34ef2-cad8-4635-a3d2-fcda8d3f3caf) +] +interface IBitmapData : IUnknown +{ + HRESULT CopyBytesTo( + [in] unsigned int source_offset_in_bytes, + [in] unsigned int max_bytes_to_copy, + [out, size_is(maxBytesToCopy)] byte *bytes, + [out] unsigned int *number_of_bytes_copied); + + HRESULT GetStride([out] unsigned int *stride); + + HRESULT GetBitmapDescription([out] BitmapDescription *bitmap_description); + + HRESULT GetSourceBitmapDescription([out] BitmapDescription *bitmap_description); +} + +[ + object, + uuid(130f5136-ec43-4f61-89c7-9801a36d2e95) +] +interface IVisualTreeService2 : IVisualTreeService +{ + HRESULT GetPropertyIndex( + [in] InstanceHandle object, + [in] LPCWSTR property_name, + [out] unsigned int *property_index); + + HRESULT GetProperty( + [in] InstanceHandle object, + [in] unsigned int property_index, + [out] InstanceHandle *value); + + HRESULT ReplaceResource( + [in] InstanceHandle resource_dictionary, + [in] InstanceHandle key, + [in] InstanceHandle new_value); + + HRESULT RenderTargetBitmap( + [in] InstanceHandle handle, + [in] RenderTargetBitmapOptions options, + [in] unsigned int max_pixel_width, + [in] unsigned int max_pixel_height, + [out] IBitmapData **bitmap_data); +} + +[ + object, + uuid(0e79c6e0-85a0-4be8-b41a-655cf1fd19bd) +] +interface IVisualTreeService3 : IVisualTreeService2 +{ + HRESULT ResolveResource( + [in] InstanceHandle resource_context, + [in] LPCWSTR resource_name, + [in] ResourceType resource_type, + [in] unsigned int property_index); + + HRESULT GetDictionaryItem( + [in] InstanceHandle dictionary_handle, + [in] LPCWSTR resource_name, + [in] BOOL resource_is_implicit_style, + [out] InstanceHandle *resource_handle); + + HRESULT AddDictionaryItem( + [in] InstanceHandle dictionary_handle, + [in] InstanceHandle resource_key, + [in] InstanceHandle resource_handle); + + HRESULT RemoveDictionaryItem( + [in] InstanceHandle dictionary_handle, + [in] InstanceHandle resource_key); +} -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3436
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=135350 Your paranoid android. === debian11 (build log) === ../wine/include/xamlom.idl:280:50: error: identifier maxBytesToCopy cannot be resolved in expression for attribute size_is Task: The win32 Wine build failed === debian11b (build log) === ../wine/include/xamlom.idl:280:50: error: identifier maxBytesToCopy cannot be resolved in expression for attribute size_is Task: The wow64 Wine build failed
participants (3)
-
Marvin -
Paul Jackson -
Paul Jackson (@mailnew4ster)