<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.6.25358.103" />

IDispatchEx

using System; using System.CodeDom.Compiler; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Windows.Win32.Foundation; using Windows.Win32.System.Com; using Windows.Win32.System.Variant; namespace Windows.Win32.System.Ole { [Guid("A6EF9860-C720-11D0-9337-00A0C90DCAA9")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IDispatchEx : IVTable<IDispatchEx, IDispatchEx.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr GetTypeInfoCount_4; internal IntPtr GetTypeInfo_5; internal IntPtr GetIDsOfNames_6; internal IntPtr Invoke_7; internal IntPtr GetDispID_8; internal IntPtr InvokeEx_9; internal IntPtr DeleteMemberByName_10; internal IntPtr DeleteMemberByDispID_11; internal IntPtr GetMemberProperties_12; internal IntPtr GetMemberName_13; internal IntPtr GetNextDispID_14; internal IntPtr GetNameSpaceParent_15; } [ComImport] [Guid("A6EF9860-C720-11D0-9337-00A0C90DCAA9")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface Interface { [PreserveSig] unsafe HRESULT GetDispID(BSTR bstrName, uint grfdex, int* pid); [PreserveSig] unsafe HRESULT InvokeEx(int id, uint lcid, ushort wFlags, DISPPARAMS* pdp, VARIANT* pvarRes = default(VARIANT*), EXCEPINFO* pei = default(EXCEPINFO*), IServiceProvider* pspCaller = default(IServiceProvider*)); [PreserveSig] HRESULT DeleteMemberByName(BSTR bstrName, uint grfdex); [PreserveSig] HRESULT DeleteMemberByDispID(int id); [PreserveSig] unsafe HRESULT GetMemberProperties(int id, uint grfdexFetch, FDEX_PROP_FLAGS* pgrfdex); [PreserveSig] unsafe HRESULT GetMemberName(int id, BSTR* pbstrName); [PreserveSig] unsafe HRESULT GetNextDispID(uint grfdex, int id, int* pid); [PreserveSig] unsafe HRESULT GetNameSpaceParent(IUnknown** ppunk); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(2800719968, 50976, 4560, 147, 55, 0, 160, 201, 13, 202, 169); [IsReadOnly] static unsafe ref Guid IComIID.Guid { [MethodImpl(MethodImplOptions.AggressiveInlining)] [return: IsReadOnly] get { return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(new ReadOnlySpan<byte>(&global::<PrivateImplementationDetails>.7DFE7DF9726FC5790714F7B4A3AB980052B7375776696718DE7CC17E34C2ED50, 16))); } } internal unsafe HRESULT QueryInterface([In] [IsReadOnly] ref Guid riid, out void* ppvObject) { fixed (void** ppvObject2 = &ppvObject) { fixed (Guid* riid2 = &riid) { return QueryInterface(riid2, ppvObject2); } } } public unsafe HRESULT QueryInterface(Guid* riid, void** ppvObject) { IntPtr intPtr = (IntPtr)(*lpVtbl); return (HRESULT); } public unsafe uint AddRef() { IntPtr intPtr = (IntPtr)lpVtbl[1]; return (uint); } public unsafe uint Release() { IntPtr intPtr = (IntPtr)lpVtbl[2]; return (uint); } internal unsafe HRESULT GetTypeInfoCount(out uint pctinfo) { fixed (uint* pctinfo2 = &pctinfo) { return GetTypeInfoCount(pctinfo2); } } public unsafe HRESULT GetTypeInfoCount(uint* pctinfo) { IntPtr intPtr = (IntPtr)lpVtbl[3]; return (HRESULT); } public unsafe HRESULT GetTypeInfo(uint iTInfo, uint lcid, ITypeInfo** ppTInfo) { IntPtr intPtr = (IntPtr)lpVtbl[4]; return (HRESULT); } internal unsafe HRESULT GetIDsOfNames([In] [IsReadOnly] ref Guid riid, ReadOnlySpan<PWSTR> rgszNames, uint lcid, Span<int> rgDispId) { fixed (int* rgDispId2 = &rgDispId.GetPinnableReference()) { fixed (PWSTR* rgszNames2 = &rgszNames.GetPinnableReference()) { fixed (Guid* riid2 = &riid) { if (rgszNames.Length != rgDispId.Length) throw new ArgumentException(); return GetIDsOfNames(riid2, rgszNames2, (uint)rgDispId.Length, lcid, rgDispId2); } } } } public unsafe HRESULT GetIDsOfNames(Guid* riid, PWSTR* rgszNames, uint cNames, uint lcid, int* rgDispId) { IntPtr intPtr = (IntPtr)lpVtbl[5]; return (HRESULT); } internal unsafe HRESULT Invoke(int dispIdMember, [In] [IsReadOnly] ref Guid riid, uint lcid, DISPATCH_FLAGS wFlags, [In] [IsReadOnly] ref DISPPARAMS pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, uint* puArgErr) { fixed (DISPPARAMS* pDispParams2 = &pDispParams) { fixed (Guid* riid2 = &riid) { return Invoke(dispIdMember, riid2, lcid, wFlags, pDispParams2, pVarResult, pExcepInfo, puArgErr); } } } public unsafe HRESULT Invoke(int dispIdMember, Guid* riid, uint lcid, DISPATCH_FLAGS wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult = default(VARIANT*), EXCEPINFO* pExcepInfo = default(EXCEPINFO*), uint* puArgErr = default(uint*)) { IntPtr intPtr = (IntPtr)lpVtbl[6]; return (HRESULT); } internal unsafe HRESULT GetDispID(BSTR bstrName, uint grfdex, out int pid) { fixed (int* pid2 = &pid) { return GetDispID(bstrName, grfdex, pid2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetDispID(IDispatchEx* pThis, BSTR bstrName, uint grfdex, int* pid) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.GetDispID(bstrName, grfdex, pid); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetDispID(BSTR bstrName, uint grfdex, int* pid) { IntPtr intPtr = (IntPtr)lpVtbl[7]; return (HRESULT); } internal unsafe HRESULT InvokeEx(int id, uint lcid, ushort wFlags, [In] [IsReadOnly] ref DISPPARAMS pdp, VARIANT* pvarRes, EXCEPINFO* pei, IServiceProvider* pspCaller) { fixed (DISPPARAMS* pdp2 = &pdp) { return InvokeEx(id, lcid, wFlags, pdp2, pvarRes, pei, pspCaller); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT InvokeEx(IDispatchEx* pThis, int id, uint lcid, ushort wFlags, DISPPARAMS* pdp, VARIANT* pvarRes = default(VARIANT*), EXCEPINFO* pei = default(EXCEPINFO*), IServiceProvider* pspCaller = default(IServiceProvider*)) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.InvokeEx(id, lcid, wFlags, pdp, pvarRes, pei, pspCaller); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT InvokeEx(int id, uint lcid, ushort wFlags, DISPPARAMS* pdp, VARIANT* pvarRes = default(VARIANT*), EXCEPINFO* pei = default(EXCEPINFO*), IServiceProvider* pspCaller = default(IServiceProvider*)) { IntPtr intPtr = (IntPtr)lpVtbl[8]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT DeleteMemberByName(IDispatchEx* pThis, BSTR bstrName, uint grfdex) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.DeleteMemberByName(bstrName, grfdex); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT DeleteMemberByName(BSTR bstrName, uint grfdex) { IntPtr intPtr = (IntPtr)lpVtbl[9]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT DeleteMemberByDispID(IDispatchEx* pThis, int id) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.DeleteMemberByDispID(id); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT DeleteMemberByDispID(int id) { IntPtr intPtr = (IntPtr)lpVtbl[10]; return (HRESULT); } internal unsafe HRESULT GetMemberProperties(int id, uint grfdexFetch, out FDEX_PROP_FLAGS pgrfdex) { fixed (FDEX_PROP_FLAGS* pgrfdex2 = &pgrfdex) { return GetMemberProperties(id, grfdexFetch, pgrfdex2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetMemberProperties(IDispatchEx* pThis, int id, uint grfdexFetch, FDEX_PROP_FLAGS* pgrfdex) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.GetMemberProperties(id, grfdexFetch, pgrfdex); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetMemberProperties(int id, uint grfdexFetch, FDEX_PROP_FLAGS* pgrfdex) { IntPtr intPtr = (IntPtr)lpVtbl[11]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetMemberName(IDispatchEx* pThis, int id, BSTR* pbstrName) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.GetMemberName(id, pbstrName); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetMemberName(int id, BSTR* pbstrName) { IntPtr intPtr = (IntPtr)lpVtbl[12]; return (HRESULT); } internal unsafe HRESULT GetNextDispID(uint grfdex, int id, out int pid) { fixed (int* pid2 = &pid) { return GetNextDispID(grfdex, id, pid2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetNextDispID(IDispatchEx* pThis, uint grfdex, int id, int* pid) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.GetNextDispID(grfdex, id, pid); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetNextDispID(uint grfdex, int id, int* pid) { IntPtr intPtr = (IntPtr)lpVtbl[13]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetNameSpaceParent(IDispatchEx* pThis, IUnknown** ppunk) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDispatchEx, Interface>(pThis, out object); if (!result.Failed) return object.GetNameSpaceParent(ppunk); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetNameSpaceParent(IUnknown** ppunk) { IntPtr intPtr = (IntPtr)lpVtbl[14]; return (HRESULT); } internal unsafe HRESULT QueryInterface<[IsUnmanaged] T>(out T* ppv) where T : struct { Guid riid = typeof(T).GUID; void* ppvObject; HRESULT result = QueryInterface(ref riid, out ppvObject); if (result.Succeeded) ppv = (T*)ppvObject; else ppv = null; return result; } public unsafe static void PopulateVTable(Vtbl* vtable) { vtable->GetDispID_8 = (IntPtr)(void*); vtable->InvokeEx_9 = (IntPtr)(void*); vtable->DeleteMemberByName_10 = (IntPtr)(void*); vtable->DeleteMemberByDispID_11 = (IntPtr)(void*); vtable->GetMemberProperties_12 = (IntPtr)(void*); vtable->GetMemberName_13 = (IntPtr)(void*); vtable->GetNextDispID_14 = (IntPtr)(void*); vtable->GetNameSpaceParent_15 = (IntPtr)(void*); } unsafe void IVTable<IDispatchEx, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }