Skip to content

Commit

Permalink
Marshal callback as function pointer.
Browse files Browse the repository at this point in the history
  • Loading branch information
NN--- committed Feb 9, 2021
1 parent cc4973b commit d904144
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions PInvoke/Ole/Ole32/CtxtCall.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,12 @@ public interface IContextCallback
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/ctxtcall/nf-ctxtcall-icontextcallback-contextcallback
[PreserveSig]
HRESULT ContextCallback(PFNCONTEXTCALL pfnCallback, in ComCallData pParam, in Guid riid, int iMethod, [In, Optional] IntPtr pUnk);
HRESULT ContextCallback(
[MarshalAs(UnmanagedType.FunctionPtr)] PFNCONTEXTCALL pfnCallback,
in ComCallData pParam,
in Guid riid,
int iMethod,
[In, Optional] IntPtr pUnk);
}

/// <summary/>
Expand All @@ -77,7 +82,7 @@ public class ContextSwitcher : IContextCallback
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern HRESULT ContextCallback(
PFNCONTEXTCALL pfnCallback,
[MarshalAs(UnmanagedType.FunctionPtr)] PFNCONTEXTCALL pfnCallback,
in ComCallData pParam,
in Guid riid,
int iMethod,
Expand Down

0 comments on commit d904144

Please sign in to comment.