IFolderViewインターフェイスの取得について
Posted: 2007年2月26日(月) 04:09
IWebBrowser2の取得はなんとかできたようなのですが、IFolderViewの取得ができません。
アイコンの表示状態を取得設定したいので
IFolderViewインターフェイスを使って GetCurrentViewModeとSetCurrentViewModeで実装しようと思ったのですが、
イグトランス様のCOMオブジェクト作成のモジュール
http://www.activebasic.com/forum/viewtopic.php?t=774 を使用して、
ProgID = "Shell.Explorer"
ClsID = IID_IFolderView ←自分で定義しました
とすると、HRESULTに&H80004002を返っているようなので、インターフェースをサポートしていないようなんです。
ProgID をそれ以外("Shell.FolderView"とか)にしても、今度はHRESULT = &H80040154でCOMがオブジェクトを作成できないようです。
IFolderViewはXPからサポートしている筈だし、どう考えても Shell.FolderView か Shell.Explorer ぐらいしか
IFolderViewインターフェイスをサポートしていないと思うのですが、どうやったら取得できるようになるのでしょうか?
定義の仕方は下記のトピックやブログなどを参考にしました。
http://www.activebasic.com/forum/viewtopic.php?t=1281
http://www.activebasic.com/forum/viewtopic.php?t=1110
http://www.activebasic.com/forum/viewto ... =1076#4806
http://www.noppi.jp/diary/?date=20041220
エラーコード (HRESULT)は下記のサイトを参考にしました。
http://hyons.hp.infoseek.co.jp/ref/hresult.shtml
アイコンの表示状態を取得設定したいので
IFolderViewインターフェイスを使って GetCurrentViewModeとSetCurrentViewModeで実装しようと思ったのですが、
イグトランス様のCOMオブジェクト作成のモジュール
http://www.activebasic.com/forum/viewtopic.php?t=774 を使用して、
ProgID = "Shell.Explorer"
ClsID = IID_IFolderView ←自分で定義しました
とすると、HRESULTに&H80004002を返っているようなので、インターフェースをサポートしていないようなんです。
ProgID をそれ以外("Shell.FolderView"とか)にしても、今度はHRESULT = &H80040154でCOMがオブジェクトを作成できないようです。
IFolderViewはXPからサポートしている筈だし、どう考えても Shell.FolderView か Shell.Explorer ぐらいしか
IFolderViewインターフェイスをサポートしていないと思うのですが、どうやったら取得できるようになるのでしょうか?
コード: 全て選択
hr = CoInitialize(0)
hr = CoGetMalloc(1, pMalloc)
Dim hr As Long
Dim pMalloc As *IMalloc
' <<
Dim WBins As *IWebBrowser2
Dim ProgID_WB As String
Dim ClsID_WB As GUID
ProgID_WB ="Shell.Explorer" ' == {8856F961-340A-11D0-A96B-00C04FD705A2}
hr =egtrGUIDFromString_Str(ProgID_WB, ClsID_WB)
hr =egtrCoCreateInstance_ClsID(ClsID_WB, IID_IWebBrowser2, VarPtr(WBins))
' >>
' hrに0が返る
' <<
Dim FVins As *IFolderView
Dim ProgID_FV As String
Dim ClsID_FV As GUID
ProgID_FV ="Shell.Explorer.2" ' == "Shell.Explorer"
hr =egtrGUIDFromString_Str(ProgID_FV, ClsID_FV)
hr =egtrCoCreateInstance_ClsID(ClsID_FV, IID_IFolderView, VarPtr(FVins))
' >>
' hrに&H80004002(No such interface supported)が返る
pMalloc->Release()
CoUninitialize()
http://www.activebasic.com/forum/viewtopic.php?t=1281
http://www.activebasic.com/forum/viewtopic.php?t=1110
http://www.activebasic.com/forum/viewto ... =1076#4806
http://www.noppi.jp/diary/?date=20041220
エラーコード (HRESULT)は下記のサイトを参考にしました。
http://hyons.hp.infoseek.co.jp/ref/hresult.shtml