SHGetInstanceExplorer 函数 returns E_FAIL
SHGetInstanceExplorer function returns E_FAIL
当我尝试使用 SHGetInstanceExplorer 函数时,它 returns 一个 E_FAIL
HRESULT
我用不同的参数定义了这两个函数(以测试它们),这两个定义 returns 相同的错误:
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
<MarshalAs(UnmanagedType.IUnknown)> ByRef ppunk As Object
) As Integer
End Function
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
ByRef ppunk As stdole.IUnknown
) As Integer
End Function
我不太确定除了 shell ext. 之外的哪些组件可以使用此功能,我从 WinForms 应用程序,也许是这个问题?.
您可能希望将 <Out>
属性与 ByRef
一起使用,因为 VB.Net 没有 C# 中的 out
关键字。
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
<Out()> ByRef ppunk As stdole.IUnknown
) As Integer
End Function
- http://www.pinvoke.net/default.aspx/shell32.shgetinstanceexplorer
- Is there a VB.NET equivalent of C# out parameters
当我尝试使用 SHGetInstanceExplorer 函数时,它 returns 一个 E_FAIL
HRESULT
我用不同的参数定义了这两个函数(以测试它们),这两个定义 returns 相同的错误:
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
<MarshalAs(UnmanagedType.IUnknown)> ByRef ppunk As Object
) As Integer
End Function
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
ByRef ppunk As stdole.IUnknown
) As Integer
End Function
我不太确定除了 shell ext. 之外的哪些组件可以使用此功能,我从 WinForms 应用程序,也许是这个问题?.
您可能希望将 <Out>
属性与 ByRef
一起使用,因为 VB.Net 没有 C# 中的 out
关键字。
<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
<Out()> ByRef ppunk As stdole.IUnknown
) As Integer
End Function
- http://www.pinvoke.net/default.aspx/shell32.shgetinstanceexplorer
- Is there a VB.NET equivalent of C# out parameters