2010-09-02 115 views
0

我創建了一個ATL/COM項目,並實現了IShellExtInit接口。在Initialize方法中,我使用DrapDropFile函數來獲取文件夾中所選文件的文件名。如何獲取右鍵單擊事件對象文件名?

例如

1.In文件夾C:\ WINDOWS \ MyFolder文件\包含的文件:

a.png, b.bmp, c.jpg 

2.右鍵點擊 「b.bmp」。

3.在Initialize方法中,我得到一個文件名列表。

fileNames[0] = C:\WINDOWS\MyFolder\b.bmp 

fileNames[1] = C:\WINDOWS\MyFolder\c.jpg 

fileNames[2] = C:\WINDOWS\MyFolder\a.png 

問:

我怎樣才能得到文件的實際順序(A/B/C不是B/C/A)

期待:

1.右鍵點擊「b.bmp」。

I get the file name: C:\WINDOWS\MyFolder\a.png 

2.右鍵單擊「a.png」。

I get the file name: C:\WINDOWS\MyFolder\a.png 
+0

您以任何順序獲取源文件填充IDataObject的文件;沒有在目標上執行自己的排序,我不認爲你可以對此做任何事情。 – Luke 2010-09-02 20:26:46

+0

我需要實際點擊的對象。 – 2010-09-04 06:03:16

+0

我認爲資源管理器作爲IDataObject中的第一個項目傳遞選定的對象(有一段時間,所以我可能是錯的)。無論如何,我認爲沒有一種簡單的方法可以做到這一點。我唯一能想到的就是試圖找到相關文件夾的IShellFolderView(或其他),並試圖確定該文件夾中的焦點對象。 – Luke 2010-09-06 15:24:38

回答

0

點擊的項目總是第一個。其餘項目的順序是未定義的和不確定的。