IDataObjectAsyncCapability
using System;
using System.CodeDom.Compiler;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using Windows.Win32.Foundation;
using Windows.Win32.System.Com;
namespace Windows.Win32.UI.Shell
{
[Guid("3D8B0590-F691-11D2-8EA9-006097DF5BD4")]
[SupportedOSPlatform("windows8.0")]
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
internal struct IDataObjectAsyncCapability : IVTable<IDataObjectAsyncCapability, IDataObjectAsyncCapability.Vtbl>, IVTable, IComIID
{
internal struct Vtbl
{
internal IntPtr QueryInterface_1;
internal IntPtr AddRef_2;
internal IntPtr Release_3;
internal IntPtr SetAsyncMode_4;
internal IntPtr GetAsyncMode_5;
internal IntPtr StartOperation_6;
internal IntPtr InOperation_7;
internal IntPtr EndOperation_8;
}
[ComImport]
[Guid("3D8B0590-F691-11D2-8EA9-006097DF5BD4")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SupportedOSPlatform("windows8.0")]
internal interface Interface
{
[PreserveSig]
HRESULT SetAsyncMode(BOOL fDoOpAsync);
[PreserveSig]
unsafe HRESULT GetAsyncMode(BOOL* pfIsOpAsync);
[PreserveSig]
unsafe HRESULT StartOperation(IBindCtx* pbcReserved = default(IBindCtx*));
[PreserveSig]
unsafe HRESULT InOperation(BOOL* pfInAsyncOp);
[PreserveSig]
unsafe HRESULT EndOperation(HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects);
}
private unsafe void** lpVtbl;
internal static readonly Guid IID_Guid = new Guid(1032521104, 63121, 4562, 142, 169, 0, 96, 151, 223, 91, 212);
[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>.0DF14A13295FE8E012F31F17660BDFB674EC8BFCD443078FCBB3E04A2AAE6ED7, 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);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT SetAsyncMode(IDataObjectAsyncCapability* pThis, BOOL fDoOpAsync)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object);
if (!result.Failed)
return object.SetAsyncMode(fDoOpAsync);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT SetAsyncMode(BOOL fDoOpAsync)
{
IntPtr intPtr = (IntPtr)lpVtbl[3];
return (HRESULT);
}
internal unsafe HRESULT GetAsyncMode(out BOOL pfIsOpAsync)
{
fixed (BOOL* pfIsOpAsync2 = &pfIsOpAsync) {
return GetAsyncMode(pfIsOpAsync2);
}
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT GetAsyncMode(IDataObjectAsyncCapability* pThis, BOOL* pfIsOpAsync)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object);
if (!result.Failed)
return object.GetAsyncMode(pfIsOpAsync);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT GetAsyncMode(BOOL* pfIsOpAsync)
{
IntPtr intPtr = (IntPtr)lpVtbl[4];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT StartOperation(IDataObjectAsyncCapability* pThis, IBindCtx* pbcReserved = default(IBindCtx*))
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object);
if (!result.Failed)
return object.StartOperation(pbcReserved);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT StartOperation(IBindCtx* pbcReserved = default(IBindCtx*))
{
IntPtr intPtr = (IntPtr)lpVtbl[5];
return (HRESULT);
}
internal unsafe HRESULT InOperation(out BOOL pfInAsyncOp)
{
fixed (BOOL* pfInAsyncOp2 = &pfInAsyncOp) {
return InOperation(pfInAsyncOp2);
}
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT InOperation(IDataObjectAsyncCapability* pThis, BOOL* pfInAsyncOp)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object);
if (!result.Failed)
return object.InOperation(pfInAsyncOp);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT InOperation(BOOL* pfInAsyncOp)
{
IntPtr intPtr = (IntPtr)lpVtbl[6];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT EndOperation(IDataObjectAsyncCapability* pThis, HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object);
if (!result.Failed)
return object.EndOperation(hResult, pbcReserved, dwEffects);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT EndOperation(HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects)
{
IntPtr intPtr = (IntPtr)lpVtbl[7];
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->SetAsyncMode_4 = (IntPtr)(void*);
vtable->GetAsyncMode_5 = (IntPtr)(void*);
vtable->StartOperation_6 = (IntPtr)(void*);
vtable->InOperation_7 = (IntPtr)(void*);
vtable->EndOperation_8 = (IntPtr)(void*);
}
unsafe void IVTable<IDataObjectAsyncCapability, Vtbl>.PopulateVTable(Vtbl* vtable)
{
this.PopulateVTable(vtable);
}
}
}