シェル拡張でIShellFolder :: EnumObjectsを外部的に呼び出す方法

shell-extensions
GoogleのGDriveに似たWindowsシェル拡張を作成しました。 それでは、IShellViewを継承したListViewに別のビューを追加したいと思います。 3つのビュー(詳細、小さいアイコン、大きいアイコン)を表示するための新しいコンテキストメニューが追加されました。 コンテキストメニューを使用してビューを変更した場合は、変更したビューを表示するために現在のウィンドウを更新/作成する必要があります。 私のIShellFolder

EnumObjectsでは、新しいListViewオブジェクトが作成され、OnCreateが自動的に呼び出されます。 コンテキストメニューを使用してビューを変更するときにもこのメソッドを呼び出す必要があります。 すべてのEnumObjects()を自動的に実行できるSHChangeNotify()のようなAPIがあると、ビューが変更された新しいIShellViewウィンドウが作成されます。

  1  0


ベストアンサー

私があなたの質問から理解したように、あなたはリストビューで見るのと同じ内容を必要としますが、新しいビューで。

新しいビューモードを選択した後でListviewオブジェクトを再作成する必要はありません。ListViewのスタイルを* LVS_REPORT LVS_SMALLICON 、または LVS_ICON *に設定するだけです。

ListViewではなくツリーペインへの変更を反映するには、 SHChangeNotifyを使用します。

1


タイトルとURLをコピーしました