1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00
wine/include/xamlom.idl
2023-08-14 17:53:17 +02:00

348 lines
9.3 KiB
Plaintext

/*
* 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("#ifndef E_NOTFOUND")
cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")
cpp_quote("#endif")
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(max_bytes_to_copy)] 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);
}