mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
943 lines
35 KiB
C#
943 lines
35 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Microsoft.Iris.OS.NativeApi
|
|
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
|
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
|
|
// Assembly location: C:\Program Files\Zune\UIX.dll
|
|
|
|
using Microsoft.Iris.CodeModel.Cpp;
|
|
using Microsoft.Iris.Drawing;
|
|
using Microsoft.Iris.Render;
|
|
using Microsoft.Iris.RenderAPI;
|
|
using Microsoft.Iris.RenderAPI.Drawing;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security;
|
|
using System.Text;
|
|
|
|
namespace Microsoft.Iris.OS
|
|
{
|
|
[SuppressUnmanagedCodeSecurity]
|
|
internal static unsafe class NativeApi
|
|
{
|
|
private const string s_stRenderDll = "UIXRender.dll";
|
|
private const string s_stSupportDll = "UIXsup.dll";
|
|
public const int DOWNLOAD_ERROR_GENERALFAILURE = -1;
|
|
public const int DOWNLOAD_ERROR_NONE = 0;
|
|
internal const uint WM_IME_STARTCOMPOSITION = 269;
|
|
internal const uint WM_IME_ENDCOMPOSITION = 270;
|
|
internal const uint FM_DEFERRED_IME_DISASSOCIATE_CONTEXT = 1032;
|
|
public const int HTTPDOWNLOAD_ERROR_INVALIDURI = 1;
|
|
public const int HTTPDOWNLOAD_ERROR_HOSTCONNECTIONFAILED = 2;
|
|
|
|
public static bool SUCCEEDED(uint hr) => (int)hr >= 0;
|
|
|
|
public static bool FAILED(uint hr) => (int)hr < 0;
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern void SpInitializeTracing();
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern void SpUninitializeTracing();
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpUpdateTraceSettings(
|
|
string debugTraceFile,
|
|
string writeLinePrefix,
|
|
bool sendOutputToDebugger,
|
|
bool showCategories,
|
|
bool timedWriteLines);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpLogTrace(string categoryName, string message, int indentLevel);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
private static extern IntPtr SpDownloadGetBuffer(IntPtr handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDownloadClose(IntPtr handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpFileDownload(
|
|
string path,
|
|
NativeApi.DownloadCompleteHandler handler,
|
|
IntPtr context,
|
|
out IntPtr handle);
|
|
|
|
public static IntPtr DownloadGetBuffer(IntPtr handle)
|
|
{
|
|
IntPtr buffer = SpDownloadGetBuffer(handle);
|
|
return !(buffer == IntPtr.Zero) ? buffer : throw new OutOfMemoryException();
|
|
}
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern bool SpLoadBinaryResource(
|
|
string moduleBaseName,
|
|
string resourceName,
|
|
bool allowLoadAsCode,
|
|
out IntPtr pBits,
|
|
out uint size);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern bool SpLoadFontResource(string moduleBaseName, string resourceName);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
private static extern IntPtr SpMemAlloc(uint cb, bool zeroMemory);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
private static extern void SpMemFree(IntPtr pv);
|
|
|
|
public static IntPtr MemAlloc(uint cb, bool zeroMemory)
|
|
{
|
|
IntPtr num = SpMemAlloc(cb, zeroMemory);
|
|
return !(num == IntPtr.Zero) ? num : throw new OutOfMemoryException();
|
|
}
|
|
|
|
public static void MemFree(IntPtr pv) => SpMemFree(pv);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern void SpFreeDib(IntPtr hdib);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern int SpGetDpi();
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpLoadDll(string uri, out IntPtr moduleHandle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpFreeDll(IntPtr moduleHandle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpCreateDllLoadResultFactory(
|
|
IntPtr moduleHandle,
|
|
out IntPtr schemaFactory);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpCreateDllLoadResult(
|
|
IntPtr schemaFactory,
|
|
string qualifier,
|
|
out IntPtr loadResult);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpSendDllSchemaUnloadNotification(IntPtr moduleHandle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpSetSchemaID(IntPtr schema, ushort id);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryTypeCount(IntPtr schema, out uint typeCount);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEnumCount(IntPtr schema, out uint enumCount);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetTypeSchema(
|
|
IntPtr schema,
|
|
uint index,
|
|
out IntPtr type,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetEnumSchema(
|
|
IntPtr schema,
|
|
uint index,
|
|
out IntPtr enumType,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryTypeName(IntPtr typeSchema, out char* name);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpIsRuntimeImmutable(IntPtr typeSchema, out bool isRuntimeImmutable);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryBaseType(IntPtr typeSchema, out uint baseTypeID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetMarshalAs(IntPtr typeSchema, out uint interopEquivalent);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryConstructorCount(IntPtr typeSchema, out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetConstructorSchema(
|
|
IntPtr typeSchema,
|
|
uint index,
|
|
out IntPtr constructor,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyCount(IntPtr typeSchema, out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetPropertySchema(
|
|
IntPtr typeSchema,
|
|
uint index,
|
|
out IntPtr property,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryMethodCount(IntPtr typeSchema, out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetMethodSchema(
|
|
IntPtr typeSchema,
|
|
uint index,
|
|
out IntPtr method,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEventCount(IntPtr typeSchema, out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetEventSchema(
|
|
IntPtr typeSchema,
|
|
uint index,
|
|
out IntPtr eventObj,
|
|
out uint ID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpInvokeConstructor(
|
|
IntPtr typeSchema,
|
|
uint constructorID,
|
|
UIXVariant* parameters,
|
|
uint parameterCount,
|
|
out IntPtr nativeObject);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetPropertyValue(
|
|
IntPtr typeSchema,
|
|
IntPtr nativeObject,
|
|
uint propertyID,
|
|
out UIXVariant propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpSetPropertyValue(
|
|
IntPtr typeSchema,
|
|
IntPtr nativeObject,
|
|
uint propertyID,
|
|
UIXVariant* propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpInvokeMethod(
|
|
IntPtr typeSchema,
|
|
IntPtr nativeObject,
|
|
uint methodID,
|
|
UIXVariant* parameters,
|
|
uint parameterCount,
|
|
out UIXVariant returnValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpInvokeToString(
|
|
IntPtr typeSchema,
|
|
IntPtr nativeObject,
|
|
out IntPtr value);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryConstructorParameterCount(
|
|
IntPtr constructorSchema,
|
|
out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetConstructorParameterTypes(
|
|
IntPtr constructorSchema,
|
|
uint[] IDs,
|
|
uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyName(IntPtr propertySchema, out char* name);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyType(IntPtr propertySchema, out uint type);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyCanRead(IntPtr propertySchema, out bool canRead);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyCanWrite(IntPtr propertySchema, out bool canWrite);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyIsStatic(IntPtr propertySchema, out bool isStatic);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryPropertyNotifiesOnChange(
|
|
IntPtr propertySchema,
|
|
out bool notifiesOnChange);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryMethodName(IntPtr methodSchema, out char* name);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryMethodReturnType(IntPtr methodSchema, out uint type);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryMethodParameterCount(IntPtr methodSchema, out uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetMethodParameterTypes(
|
|
IntPtr methodSchema,
|
|
uint[] IDs,
|
|
uint count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryMethodIsStatic(IntPtr methodSchema, out bool isStatic);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEventName(IntPtr eventSchema, out char* name);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEventIsStatic(IntPtr eventSchema, out bool isStatic);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpAddRefExternalObject(IntPtr nativeObject);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpReleaseExternalObject(IntPtr nativeObject);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetTypeID(IntPtr nativeObject, out uint typeID);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryForMarshalAsInterface(
|
|
IntPtr nativeObject,
|
|
uint interfaceID,
|
|
out IntPtr interfaceImpl);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpSetStateCache(IntPtr nativeObject, ulong state);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpGetStateCache(IntPtr nativeObject, out ulong state);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListRegisterCallbacks(
|
|
IntPtr nativeList,
|
|
IUIXListCallbacks listener);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListUnregisterCallbacks(
|
|
IntPtr nativeList,
|
|
IUIXListCallbacks listener);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpUIXListAdd(
|
|
IntPtr nativeList,
|
|
UIXVariant* item,
|
|
out int count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListClear(IntPtr nativeList);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpUIXListIndexOf(
|
|
IntPtr nativeList,
|
|
UIXVariant* item,
|
|
out int index);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpUIXListInsert(
|
|
IntPtr nativeList,
|
|
int index,
|
|
UIXVariant* item);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpUIXListRemove(IntPtr nativeList, UIXVariant* item);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListRemoveAt(IntPtr nativeList, int index);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListGetItem(IntPtr nativeList, int index, out UIXVariant item);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpUIXListSetItem(
|
|
IntPtr nativeList,
|
|
int index,
|
|
UIXVariant* item);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListGetCount(IntPtr nativeList, out int count);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListMove(IntPtr nativeList, int oldIndex, int newIndex);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListIsItemAvailable(
|
|
IntPtr nativeList,
|
|
int index,
|
|
out bool isAvailable);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListFetchSlowData(IntPtr nativeList, int index);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListWantSlowDataRequests(
|
|
IntPtr nativeList,
|
|
out bool wantSlowDataRequests);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListNotifyVisualsCreated(IntPtr nativeList, int index);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpUIXListNotifyVisualsReleased(IntPtr nativeList, int index);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEnumName(IntPtr nativeObject, out char* name);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEnumIsFlags(IntPtr nativeObject, out bool isFlags);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpQueryEnumValueCount(IntPtr nativeObject, out uint valueCount);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpGetEnumNameValue(
|
|
IntPtr nativeObject,
|
|
uint index,
|
|
out char* name,
|
|
out int value);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpInvokeEnumToString(
|
|
IntPtr nativeObject,
|
|
int value,
|
|
out IntPtr result);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpDataBaseObjectGetTypeHandle(
|
|
IntPtr nativeQuery,
|
|
out ulong typeHandle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataBaseObjectGetProperty(
|
|
IntPtr nativeQuery,
|
|
string propertyName,
|
|
out UIXVariant propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpDataBaseObjectSetProperty(
|
|
IntPtr nativeQuery,
|
|
string propertyName,
|
|
UIXVariant* propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataBaseObjectSetInternalHandle(
|
|
IntPtr nativeQuery,
|
|
ulong frameworkQuery);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataBaseObjectGetInternalHandle(
|
|
IntPtr nativeQuery,
|
|
out ulong frameworkQuery);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataProviderConstructQuery(
|
|
IntPtr nativeFactory,
|
|
string providerName,
|
|
ulong queryTypeHandle,
|
|
ulong resultTypeHandle,
|
|
ulong queryHandle,
|
|
out IntPtr query);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQueryNotifyInitialized(IntPtr nativeQuery);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQueryRefresh(IntPtr nativeQuery);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQueryGetEnabledProperty(
|
|
IntPtr nativeQuery,
|
|
out bool propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQuerySetEnabledProperty(IntPtr nativeQuery, bool propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQueryGetStatusProperty(
|
|
IntPtr nativeQuery,
|
|
out DataProviderQueryStatus propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQuerySetStatusProperty(
|
|
IntPtr nativeQuery,
|
|
DataProviderQueryStatus propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataQueryGetResultProperty(
|
|
IntPtr nativeQuery,
|
|
out UIXVariant propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe uint SpDataQuerySetResultProperty(
|
|
IntPtr nativeQuery,
|
|
UIXVariant* propertyValue);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpDataProviderReportDataMapping(
|
|
IntPtr nativeCallback,
|
|
string providerName,
|
|
ulong typeHandle,
|
|
uint entryCount,
|
|
[MarshalAs(UnmanagedType.LPArray)] NativeApi.NativeDataMappingEntry[] entries);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpRegisterNativeServicesCallbacks([MarshalAs(UnmanagedType.Interface)] IRawUIXServices rawServices);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpUnregisterNativeServicesCallbacks();
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpCallDeferredInvokeProc(IntPtr pfnCallback, IntPtr pvCallbackData);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpGetStringHandle(IntPtr nativeString, out ulong handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpConvertStringToManaged(IntPtr nativeString, out ulong handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern bool SpCreateNativeString(
|
|
ulong handle,
|
|
int length,
|
|
out IntPtr nativeString);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern unsafe void SpCopyString(string source, char* destintation, uint length);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpGetImageHandle(IntPtr nativeImage, out ulong handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern HRESULT SpConvertImageToManaged(
|
|
IntPtr nativeImage,
|
|
out ulong handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern HRESULT SpCreateNativeImage(
|
|
ulong handle,
|
|
string source,
|
|
out IntPtr nativeImage);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern HRESULT SpCreateNotifyWindow(
|
|
out IntPtr handle,
|
|
NativeApi.NotifyWindowCallback callback);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern void SpDestroyNotifyWindow();
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextBuildObject(
|
|
bool fRichTextMode,
|
|
Size sizeMaximumSurface,
|
|
[MarshalAs(UnmanagedType.Interface)] IRichTextCallbacks pCallbacks,
|
|
out Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern void SpRichTextDestroyObject(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern void SpRichTextDestroyGlyphRunInfo(IntPtr hGlyphRunInfo);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextForwardKeyCharacter(
|
|
Win32Api.HANDLE hRto,
|
|
uint message,
|
|
int character,
|
|
int scanCode,
|
|
int repeatCount,
|
|
uint modifierState,
|
|
ushort flags,
|
|
out bool handled);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextForwardKeyState(
|
|
Win32Api.HANDLE hRto,
|
|
uint message,
|
|
int virtualKey,
|
|
int scanCode,
|
|
int repeatCount,
|
|
uint modifierState,
|
|
ushort flags,
|
|
out bool handled);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextForwardMouseInput(
|
|
Win32Api.HANDLE hRto,
|
|
uint message,
|
|
uint modifierState,
|
|
int mouseButton,
|
|
int x,
|
|
int y,
|
|
int mouseWheelDelta,
|
|
out bool handled);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextForwardImeMessage(
|
|
Win32Api.HANDLE hRto,
|
|
uint message,
|
|
UIntPtr wParam,
|
|
UIntPtr lParam);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextGetNaturalBounds(
|
|
Win32Api.HANDLE hRto,
|
|
out int cWidth,
|
|
out int cHeight);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextGetSimpleContent(
|
|
Win32Api.HANDLE hRto,
|
|
StringBuilder textBuffer,
|
|
int cchBuffer);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextGetSimpleContentLength(
|
|
Win32Api.HANDLE hRto,
|
|
out int textLength);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextMeasure(
|
|
Win32Api.HANDLE hRto,
|
|
ref TextMeasureParams.MarshalledData measureParams,
|
|
NativeApi.ReportRunCallback rrcb,
|
|
IntPtr pvData);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextRasterize(
|
|
IntPtr hGlyphRunInfo,
|
|
int fOutlineMode,
|
|
Color clrText,
|
|
int fShadowMode,
|
|
out IntPtr phTextBitmap,
|
|
out IntPtr ppvBits,
|
|
out Size psizeBitmap);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetFocus(
|
|
Win32Api.HANDLE hRto,
|
|
bool gainingFocus);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetContent(
|
|
Win32Api.HANDLE hRto,
|
|
string pszContent);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetWordWrap(
|
|
Win32Api.HANDLE hRto,
|
|
bool fWordWrap);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetMaximumLength(
|
|
Win32Api.HANDLE hRto,
|
|
int maximumLength);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetDetectUrls(
|
|
Win32Api.HANDLE hRto,
|
|
bool detectUrls);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetOversampleMode(
|
|
Win32Api.HANDLE hRto,
|
|
bool fOversample);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextCut(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextCopy(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextPaste(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextDelete(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextCanUndo(Win32Api.HANDLE hRto, out bool canUndo);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextUndo(Win32Api.HANDLE hRto);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetReadOnly(Win32Api.HANDLE hRto, bool readOnly);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextSetScale(Win32Api.HANDLE hRto, float flScale);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextSetSelectionRange(
|
|
Win32Api.HANDLE hRto,
|
|
int selectionStart,
|
|
int selectionEnd);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern HRESULT SpRichTextOnTimerTick(Win32Api.HANDLE hRto, uint timerId);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern bool SpSimpleTextIsAvailable();
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpSimpleTextBuildObject(
|
|
Size sizeMaximumSurface,
|
|
out Win32Api.HANDLE hSto);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern void SpSimpleTextDestroyObject(Win32Api.HANDLE hSto);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern unsafe HRESULT SpSimpleTextMeasure(
|
|
Win32Api.HANDLE hSto,
|
|
string pszRef,
|
|
short wAlignment,
|
|
TextStyle.MarshalledData* textStyle,
|
|
Size sizeConstraint,
|
|
out IntPtr hGlyphRunInfo,
|
|
NativeApi.RasterizeRunPacket* pRun);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
internal static extern unsafe HRESULT SpSimpleTextMeasurePossible(
|
|
Win32Api.HANDLE hSto,
|
|
string pszRef,
|
|
TextStyle.MarshalledData* textStyle,
|
|
out bool fPossible);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextScroll(
|
|
Win32Api.HANDLE hRto,
|
|
int whichBar,
|
|
int scrollType);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextScrollToPosition(
|
|
Win32Api.HANDLE hRto,
|
|
int whichBar,
|
|
int whereTo);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRichTextSetScrollbars(
|
|
Win32Api.HANDLE hRto,
|
|
bool allowVertical,
|
|
bool allowHorizontal);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpRegisterImeCallbacks(
|
|
[MarshalAs(UnmanagedType.Interface)] IImeCallbacks pImeCallbacks,
|
|
out uint dwToken);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpUnregisterImeCallbacks(uint dwToken);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
internal static extern HRESULT SpPostDeferredImeMessage(
|
|
uint message,
|
|
UIntPtr wParam,
|
|
UIntPtr lParam);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern int SpExtractDroppedFileNames(
|
|
IntPtr punk,
|
|
NativeApi.ExtractDroppedFileNamesCallback callback);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteCreateXmlReader(
|
|
IntPtr buffer,
|
|
int length,
|
|
bool isFragment,
|
|
out IntPtr xmlReader);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpXmlLiteDeleteXmlReader(IntPtr xmlReader);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteRead(IntPtr xmlReader, out NativeXmlNodeType nodeType);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteMoveToFirstAttribute(IntPtr xmlReader);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteMoveToNextAttribute(IntPtr xmlReader);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern bool SpXmlLiteIsEmptyElement(IntPtr xmlReader);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetQualifiedName(
|
|
IntPtr xmlReader,
|
|
out IntPtr name,
|
|
out uint length);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetLocalName(
|
|
IntPtr xmlReader,
|
|
out IntPtr name,
|
|
out uint length);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetPrefix(
|
|
IntPtr xmlReader,
|
|
out IntPtr prefix,
|
|
out uint length);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetValue(
|
|
IntPtr xmlReader,
|
|
out IntPtr value,
|
|
out uint length);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetLinePosition(IntPtr xmlReader, out uint linePosition);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpXmlLiteGetLineNumber(IntPtr xmlReader, out uint lineNumber);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern HRESULT SpRegNotifyChangeKey(
|
|
IntPtr hkey,
|
|
string wszPath,
|
|
NativeApi.RegChangeCallback callback,
|
|
out IntPtr handle);
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern HRESULT SpRegRevokeNotifyChangeKey(IntPtr handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpHttpStartup();
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern uint SpHttpDownload(
|
|
string url,
|
|
NativeApi.DownloadCompleteHandler handler,
|
|
IntPtr context,
|
|
out IntPtr handle);
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpHttpShutdown();
|
|
|
|
[DllImport("UIXRender.dll")]
|
|
public static extern void SpHttpFlushProxyCache();
|
|
|
|
[DllImport("UIXRender.dll", CharSet = CharSet.Unicode)]
|
|
public static extern void SpGetMouseCursorInfo(out int height, out int hotY);
|
|
|
|
public static string PtrToStringUni(IntPtr psz, int length) => length == 0 ? "" : Marshal.PtrToStringUni(psz, length);
|
|
|
|
public delegate void DownloadCompleteHandler(
|
|
IntPtr handle,
|
|
int error,
|
|
uint length,
|
|
IntPtr context);
|
|
|
|
[ComVisible(false)]
|
|
public struct NativeDataMappingEntry
|
|
{
|
|
[MarshalAs(UnmanagedType.LPWStr)]
|
|
public string Source;
|
|
[MarshalAs(UnmanagedType.LPWStr)]
|
|
public string Target;
|
|
[MarshalAs(UnmanagedType.LPWStr)]
|
|
public string PropertyName;
|
|
public ulong PropertyTypeHandle;
|
|
[MarshalAs(UnmanagedType.LPWStr)]
|
|
public string PropertyTypeName;
|
|
public ulong UnderlyingCollectionTypeHandle;
|
|
[MarshalAs(UnmanagedType.LPWStr)]
|
|
public string UnderlyingCollectionTypeName;
|
|
public UIXVariant DefaultValue;
|
|
}
|
|
|
|
[ComVisible(false)]
|
|
public struct IMAGE_DECODE_PARAMS
|
|
{
|
|
public const uint UIX_IMAGE_OPT_FLIPPABLE = 1;
|
|
public const uint UIX_IMAGE_OPT_ANTIALIAS_EDGES = 2;
|
|
public int maximumWidth;
|
|
public int maximumHeight;
|
|
public uint options;
|
|
|
|
public bool Flippable => ((int)options & 1) == 1;
|
|
|
|
public bool AntialiasEdges => ((int)options & 2) == 2;
|
|
}
|
|
|
|
[ComVisible(false)]
|
|
public struct UIX_RAW_IMAGE_INFO
|
|
{
|
|
public int width;
|
|
public int height;
|
|
public int stride;
|
|
public RawImageFormat format;
|
|
public IntPtr bits;
|
|
}
|
|
|
|
public enum NotificationType
|
|
{
|
|
GetObject,
|
|
}
|
|
|
|
public delegate IntPtr NotifyWindowCallback(
|
|
NativeApi.NotificationType notification,
|
|
int param1,
|
|
int param2);
|
|
|
|
[ComVisible(false)]
|
|
public struct RasterizeRunPacket
|
|
{
|
|
public Rectangle rcLayoutBounds;
|
|
public RectangleF rcfRenderBounds;
|
|
public int naturalX;
|
|
public int naturalY;
|
|
public int rasterizeX;
|
|
public int rasterizeY;
|
|
public byte AAConfig;
|
|
public Color clrText;
|
|
public Color clrBackground;
|
|
public int fontFaceUniqueId;
|
|
public Win32Api.LOGFONTW_STRUCT lf;
|
|
public Size sizeRasterizeRun;
|
|
public Size sizeNatural;
|
|
public int ascenderInset;
|
|
public int baselineInset;
|
|
public int nLineNumber;
|
|
public int dwEffects;
|
|
public NativeApi.UnderlineStyle usUnderlineStyle;
|
|
public Rectangle rcUnderlineBounds;
|
|
}
|
|
|
|
public enum UnderlineStyle
|
|
{
|
|
None,
|
|
Solid,
|
|
Thick,
|
|
Dotted,
|
|
Dash,
|
|
DashDot,
|
|
DashDotDot,
|
|
}
|
|
|
|
internal unsafe delegate HRESULT ReportRunCallback(
|
|
IntPtr hGlyphRunInfo,
|
|
NativeApi.RasterizeRunPacket* pRun,
|
|
IntPtr lpString,
|
|
uint nChars,
|
|
IntPtr pvData);
|
|
|
|
internal enum ScrollNotification
|
|
{
|
|
LineUp,
|
|
LineDown,
|
|
PageUp,
|
|
PageDown,
|
|
}
|
|
|
|
public delegate void ExtractDroppedFileNamesCallback(
|
|
uint totalFileCount,
|
|
uint currentIndex,
|
|
[MarshalAs(UnmanagedType.LPWStr)] string filename);
|
|
|
|
public delegate void RegChangeCallback();
|
|
}
|
|
}
|