Реализуйте метод Initialize интерфейса IShellExtInit, в нём получите путь до файлов:
HRESULT STDMETHODCALLTYPE XXX::Initialize(
LPCITEMIDLIST pidlFolder,
LPDATAOBJECT lpdobj,
HKEY hkeyProgID)
{
STGMEDIUM medium;
FORMATETC fe = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
if(SUCCEEDED(lpdobj->GetData(&fe,&medium))) {
UINT n = DragQueryFile((HDROP)medium.hGlobal,~0,NULL,0);
for (UINT i = 0; i < n; ++i) {
char filePath[MAX_PATH];
DragQueryFile((HDROP)medium.hGlobal,i,filePath,MAX_PATH);
printf("%s\n", filePath);
}
ReleaseStgMedium(&medium);
}
return S_OK;
}
Откройте файл и вызовите GetFileInformationByHandle, оно вернёт вам и размер и дату создания. От пути последний компонент сами отрежете?