以下のフォーラムの投稿を読んで、SHGetInstanceExplorerを使ってみたのですが、どうしても 80004005(Unspecified error)が出てしまいます。
http://forums.belution.com/ja/vc/000/089/87.shtml
コード: 全て選択
Declare Function SHGetInstanceExplorer Lib "shell32.dll" (ByRef ppunk As *IUnknown) As Long
'--------------------------------------------------------------------------------
Dim hr As Long
Dim piu As *IUnknown
Dim pMalloc As *IMalloc
hr = CoInitialize(0)
hr = CoGetMalloc(1, pMalloc)
hr =SHGetInstanceExplorer(piu)
debug
pMalloc->Release()
CoUninitialize()
Declare Function SHGetInstanceExplorer Lib "shell32.dll" (ppunk As **IUnknown) As Long
hr =SHGetInstanceExplorer(VarPtr(piu))
にしてもやっぱり同じエラーです。
MSDN2を参照してみると、
と書いてあるので、ExplorerかIEの内部から呼ぶ必要がある?のだと思うのですが、そのやり方がさっぱり分かりません。
それ以前に、この考え方が正しいのかどうかもわかりません。MSDN2には
SHGetInstanceExplorer fails if the component is running in the default Explorer.exe process.
とも書いてあるんですが・・・
以下のフォーラムの投稿を読んで、SHGetInstanceExplorerを使ってみたのですが、どうしても 80004005(Unspecified error)が出てしまいます。
http://forums.belution.com/ja/vc/000/089/87.shtml
[code]Declare Function SHGetInstanceExplorer Lib "shell32.dll" (ByRef ppunk As *IUnknown) As Long
'--------------------------------------------------------------------------------
Dim hr As Long
Dim piu As *IUnknown
Dim pMalloc As *IMalloc
hr = CoInitialize(0)
hr = CoGetMalloc(1, pMalloc)
hr =SHGetInstanceExplorer(piu)
debug
pMalloc->Release()
CoUninitialize()[/code]
Declare Function SHGetInstanceExplorer Lib "shell32.dll" (ppunk As **IUnknown) As Long
hr =SHGetInstanceExplorer(VarPtr(piu))
にしてもやっぱり同じエラーです。
MSDN2を参照してみると、
[quote]SHGetInstanceExplorer succeeds only if it is called from within an Explorer.exe or Iexplorer.exe process.
[url]http://msdn2.microsoft.com/en-us/ms647769.aspx[/url][/quote]
と書いてあるので、ExplorerかIEの内部から呼ぶ必要がある?のだと思うのですが、そのやり方がさっぱり分かりません。
それ以前に、この考え方が正しいのかどうかもわかりません。MSDN2には
[quote]SHGetInstanceExplorer fails if the component is running in the default Explorer.exe process.[/quote]
とも書いてあるんですが・・・