>>251 すべてXPの場合だが
エクスプローラのウインドウ(クラス名ExploreWClassかCabinetWClass)をEnumWindowsなどを利用して検出、
その子ウインドウのクラス名SHELLDLL_DefViewをFindWindowExを利用して検出
そのまた子ウインドウのクラス名SysListView32のウインドウがフォルダービューのウインドウとなるので
同じくFindWindowExを利用して取得。

int Selected=ListView_GetSelectedCount(ハンドル);
関数を利用すれば選択されているファイル数が取得できる。

while(1)
{
i = ListView_GetNextItem(ハンドル,i,LVNI_ALL|LVNI_SELECTED);
if(LvItem->iItem == -1)
break;
}
と回せば、選択されているアイテムのインデックスが次々に返る。

しかし、残念ながらそのアイテムのテキストを取得する方法がどうしてもわからん。
恐らくListView_GetItemかListView_GetItemTextを使用すると思われるが、
ことごとく失敗するのでその先は自分で調べてください