0

当我尝试使用SHGetInstanceExplorer函数时,它返回一个E_FAIL HRESULT

我已经用不同的参数定义了这两个函数(以测试它们),两个定义都返回相同的错误:

<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应用程序中尝试过,也许问题出在哪里?

4

1 回答 1

1

您可能想使用<Out>属性,ByRef因为 VB.Net 没有outC# 中的关键字。

<DllImport("shell32.dll", SetLastError:=False)>
Private Shared Function SHGetInstanceExplorer(
    <Out()> ByRef ppunk As stdole.IUnknown
) As Integer
End Function
于 2016-05-17T12:36:53.243 回答