0

SHGetInstanceExplorer関数を使用しようとすると、 E_FAIL HRESULTが返されます

これら 2 つの関数を異なるパラメーターで定義しました (テストするため)。両方の定義は同じエラーを返します。

<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

シェル ext以外のコンポーネントの種類はよくわかりません。この機能の使用が許可されている場合、WinFormsアプリケーションから試してみましたが、問題はそれでしょうか?.

4

1 に答える 1

1

VB.Net にはC# のようなキーワード がないため、<Out>属性を一緒に使用することをお勧めします。ByRefout

<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 に答える