|
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{
namespace UI.Shell
{
[Guid("973510DB-7D7F-452B-8975-74A85828D354")]
[SupportedOSPlatform("windows6.0.6000")]
[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
internal unsafe partial struct IFileDialogEvents
:IVTable<IFileDialogEvents,IFileDialogEvents.Vtbl>,IComIID {
/// <inheritdoc cref="QueryInterface(global::System.Guid*, void**)"/>
internal unsafe winmdroot.Foundation.HRESULT QueryInterface(in global::System.Guid riid, out void* ppvObject)
{
fixed (void** ppvObjectLocal = &ppvObject)
{
fixed (global::System.Guid* riidLocal = &riid)
{
winmdroot.Foundation.HRESULT __result = this.QueryInterface(riidLocal, ppvObjectLocal);
return __result;
}
}
}
public unsafe winmdroot.Foundation.HRESULT QueryInterface(global::System.Guid* riid, void** ppvObject)
{
return ((delegate *unmanaged [Stdcall]<IFileDialogEvents*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT>)lpVtbl[0])((IFileDialogEvents*)Unsafe.AsPointer(ref this), riid, ppvObject);
}
public uint AddRef()
{
return ((delegate *unmanaged [Stdcall]<IFileDialogEvents*,uint>)lpVtbl[1])((IFileDialogEvents*)Unsafe.AsPointer(ref this));
}
public uint Release()
{
return ((delegate *unmanaged [Stdcall]<IFileDialogEvents*,uint>)lpVtbl[2])((IFileDialogEvents*)Unsafe.AsPointer(ref this));
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnFileOk(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnFileOk(pfd);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called just before the dialog is about to return with a result.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfileok#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> Implementations should return <b>S_OK</b> to accept the current result in the dialog or <b>S_FALSE</b> to refuse it. In the case of <b>S_FALSE</b>, the dialog should remain open.</para>
/// </returns>
/// <remarks>
/// <para>When this method is called, the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getresult">IFileDialog::GetResult</a> and <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifileopendialog-getresults">GetResults</a> methods can be called. The application can use this callback method to perform additional validation before the dialog closes, or to prevent the dialog from closing. If the application prevents the dialog from closing, it should display a UI to indicate a cause. To obtain a parent <b>HWND</b> for the UI, obtain the <a href="https://docs.microsoft.com/windows/desktop/api/oleidl/nn-oleidl-iolewindow">IOleWindow</a> interface through <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nf-unknwn-iunknown-queryinterface(q)">IFileDialog::QueryInterface</a> and call <a href="https://docs.microsoft.com/windows/desktop/api/oleidl/nf-oleidl-iolewindow-getwindow">IOleWindow::GetWindow</a>. An application can also use this method to perform all of its work surrounding the opening or saving of files.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfileok#">Read more on docs.microsoft.com</see>.</para>
/// </remarks>
public unsafe void OnFileOk(winmdroot.UI.Shell.IFileDialog* pfd)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT>)lpVtbl[3])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd).ThrowOnFailure();
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnFolderChanging(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psiFolder)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnFolderChanging(pfd, psiFolder);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called before IFileDialogEvents::OnFolderChange. This allows the implementer to stop navigation to a particular location.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfolderchanging#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <param name="psiFolder">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ishellitem">IShellItem</a>*</b> A pointer to an interface that represents the folder to which the dialog is about to navigate.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfolderchanging#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> Returns S_OK if successful, or an error value otherwise. A return value of S_OK or E_NOTIMPL indicates that the folder change can proceed.</para>
/// </returns>
/// <remarks>
/// <para>The calling application can call <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfolder">IFileDialog::SetFolder</a> during this callback to redirect navigation to an alternate folder. The actual navigation does not occur until <b>IFileDialogEvents::OnFolderChanging</b> has returned. If the calling application simply prevents navigation to a particular folder, UI should be displayed with an explanation of the restriction. To obtain a parent <b>HWND</b> for the UI, obtain the <a href="https://docs.microsoft.com/windows/desktop/api/oleidl/nn-oleidl-iolewindow">IOleWindow</a> interface through <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a> and call <a href="https://docs.microsoft.com/windows/desktop/api/oleidl/nf-oleidl-iolewindow-getwindow">IOleWindow::GetWindow</a>.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfolderchanging#">Read more on docs.microsoft.com</see>.</para>
/// </remarks>
public unsafe void OnFolderChanging(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psiFolder)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.Foundation.HRESULT>)lpVtbl[4])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd, psiFolder).ThrowOnFailure();
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnFolderChange(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnFolderChange(pfd);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called when the user navigates to a new folder.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onfolderchange#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
/// </returns>
/// <remarks><b>IFileDialogEvents::OnFolderChange</b> is called when the dialog is opened.</remarks>
public unsafe void OnFolderChange(winmdroot.UI.Shell.IFileDialog* pfd)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT>)lpVtbl[5])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd).ThrowOnFailure();
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnSelectionChange(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnSelectionChange(pfd);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called when the user changes the selection in the dialog's view.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onselectionchange#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
/// </returns>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onselectionchange">Learn more about this API from docs.microsoft.com</see>.</para>
/// </remarks>
public unsafe void OnSelectionChange(winmdroot.UI.Shell.IFileDialog* pfd)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT>)lpVtbl[6])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd).ThrowOnFailure();
}
/// <inheritdoc cref="OnShareViolation(winmdroot.UI.Shell.IFileDialog*, winmdroot.UI.Shell.IShellItem*, winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE*)"/>
internal unsafe void OnShareViolation(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, out winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE pResponse)
{
fixed (winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* pResponseLocal = &pResponse)
{
this.OnShareViolation(pfd, psi, pResponseLocal);
}
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnShareViolation(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* pResponse)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnShareViolation(pfd, psi, pResponse);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Enables an application to respond to sharing violations that arise from Open or Save operations.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onshareviolation#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <param name="psi">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ishellitem">IShellItem</a>*</b> A pointer to the interface that represents the item that has the sharing violation.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onshareviolation#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <param name="pResponse">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/ne-shobjidl_core-fde_shareviolation_response">FDE_SHAREVIOLATION_RESPONSE</a>*</b> A pointer to a value from the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/ne-shobjidl_core-fde_shareviolation_response">FDE_SHAREVIOLATION_RESPONSE</a> enumeration indicating the response to the sharing violation.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onshareviolation#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> The implementer should return E_NOTIMPL if this method is not implemented; S_OK or an appropriate error code otherwise.</para>
/// </returns>
/// <remarks>
/// <para>The <b>FOS_SHAREAWARE</b> flag must be set through <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setoptions">IFileDialog::SetOptions</a> before this method is called. A sharing violation could possibly arise when the application attempts to open a file, because the file could have been locked between the time that the dialog tested it and the application opened it.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onshareviolation#">Read more on docs.microsoft.com</see>.</para>
/// </remarks>
public unsafe void OnShareViolation(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* pResponse)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* ,winmdroot.Foundation.HRESULT>)lpVtbl[7])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd, psi, pResponse).ThrowOnFailure();
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnTypeChange(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnTypeChange(pfd);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called when the dialog is opened to notify the application of the initial chosen filetype.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-ontypechange#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
/// </returns>
/// <remarks>This method is called when the dialog is opened to notify the application of the initially chosen filetype. If the application has code in <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialogevents">IFileDialogEvents</a> that responds to type changes, it can respond to the type. For example, it could hide certain controls. The application controls the initial file type and could do its own checks, so this method is provided as a convenience.</remarks>
public unsafe void OnTypeChange(winmdroot.UI.Shell.IFileDialog* pfd)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT>)lpVtbl[8])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd).ThrowOnFailure();
}
/// <inheritdoc cref="OnOverwrite(winmdroot.UI.Shell.IFileDialog*, winmdroot.UI.Shell.IShellItem*, winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE*)"/>
internal unsafe void OnOverwrite(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, out winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE pResponse)
{
fixed (winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* pResponseLocal = &pResponse)
{
this.OnOverwrite(pfd, psi, pResponseLocal);
}
}
[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
private static winmdroot.Foundation.HRESULT OnOverwrite(IFileDialogEvents* pThis, winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* pResponse)
{
try
{
winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
if (__hr.Failed)
{
return __hr;
}
return __object.OnOverwrite(pfd, psi, pResponse);
}
catch (Exception ex)
{
return (winmdroot.Foundation.HRESULT)ex.HResult;
}
}
/// <summary>Called from the save dialog when the user chooses to overwrite a file.</summary>
/// <param name="pfd">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialog">IFileDialog</a>*</b> A pointer to the interface that represents the dialog.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onoverwrite#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <param name="psi">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ishellitem">IShellItem</a>*</b> A pointer to the interface that represents the item that will be overwritten.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onoverwrite#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <param name="pResponse">
/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/ne-shobjidl_core-fde_overwrite_response">FDE_OVERWRITE_RESPONSE</a>*</b> A pointer to a value from the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/ne-shobjidl_core-fde_overwrite_response">FDE_OVERWRITE_RESPONSE</a> enumeration indicating the response to the potential overwrite action.</para>
/// <para><see href="https://learn.microsoft.com/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialogevents-onoverwrite#parameters">Read more on docs.microsoft.com</see>.</para>
/// </param>
/// <returns>
/// <para>Type: <b>HRESULT</b> The implementer should return E_NOTIMPL if this method is not implemented; S_OK or an appropriate error code otherwise.</para>
/// </returns>
/// <remarks>The <b>FOS_OVERWRITEPROMPT</b> flag must be set through <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setoptions">IFileDialog::SetOptions</a> before this method is called.</remarks>
public unsafe void OnOverwrite(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* pResponse)
{
((delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* ,winmdroot.Foundation.HRESULT>)lpVtbl[9])((IFileDialogEvents*)Unsafe.AsPointer(ref this), pfd, psi, pResponse).ThrowOnFailure();
}
internal unsafe global::Windows.Win32.Foundation.HRESULT QueryInterface<T>(out T* ppv)
where T : unmanaged
{
var hr = this.QueryInterface(typeof(T).GUID, out void* pv);
if (hr.Succeeded)
{
ppv = (T*)pv;
}
else
{
ppv = null;
}
return hr;
}
internal struct Vtbl
{
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT> QueryInterface_1;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,uint> AddRef_2;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,uint> Release_3;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT> OnFileOk_4;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.Foundation.HRESULT> OnFolderChanging_5;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT> OnFolderChange_6;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT> OnSelectionChange_7;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* ,winmdroot.Foundation.HRESULT> OnShareViolation_8;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.Foundation.HRESULT> OnTypeChange_9;
internal delegate *unmanaged [Stdcall]<IFileDialogEvents*,winmdroot.UI.Shell.IFileDialog* ,winmdroot.UI.Shell.IShellItem* ,winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* ,winmdroot.Foundation.HRESULT> OnOverwrite_10;
}
public static void PopulateVTable(Vtbl* vtable)
{
vtable->OnFileOk_4 = &OnFileOk;
vtable->OnFolderChanging_5 = &OnFolderChanging;
vtable->OnFolderChange_6 = &OnFolderChange;
vtable->OnSelectionChange_7 = &OnSelectionChange;
vtable->OnShareViolation_8 = &OnShareViolation;
vtable->OnTypeChange_9 = &OnTypeChange;
vtable->OnOverwrite_10 = &OnOverwrite;
}
private void** lpVtbl;
/// <summary>The IID guid for this interface.</summary>
/// <value>{973510db-7d7f-452b-8975-74a85828d354}</value>
internal static readonly Guid IID_Guid = new Guid(0x973510DB, 0x7D7F, 0x452B, 0x89, 0x75, 0x74, 0xA8, 0x58, 0x28, 0xD3, 0x54);
static ref readonly Guid IComIID.Guid {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
ReadOnlySpan<byte> data = new byte[] {
0xDB,0x10,0x35,0x97,0x7F,0x7D,0x2B,0x45,0x89,0x75,0x74,0xA8,0x58,0x28,0xD3,0x54 };
return ref Unsafe.As<byte,Guid>(ref MemoryMarshal.GetReference(data));
}
}
[Guid("973510DB-7D7F-452B-8975-74A85828D354"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown),ComImport()]
[SupportedOSPlatform("windows6.0.6000")]
internal interface Interface
{
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnFileOk(winmdroot.UI.Shell.IFileDialog* pfd);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnFolderChanging(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psiFolder);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnFolderChange(winmdroot.UI.Shell.IFileDialog* pfd);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnSelectionChange(winmdroot.UI.Shell.IFileDialog* pfd);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnShareViolation(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_SHAREVIOLATION_RESPONSE* pResponse);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnTypeChange(winmdroot.UI.Shell.IFileDialog* pfd);
[PreserveSig()]
unsafe winmdroot.Foundation.HRESULT OnOverwrite(winmdroot.UI.Shell.IFileDialog* pfd, winmdroot.UI.Shell.IShellItem* psi, winmdroot.UI.Shell.FDE_OVERWRITE_RESPONSE* pResponse);
}
}
}
}
|