J'ai pas trop compris, mais si ta conception est bien fait, tu as une classe de base à tous ces objets (que je nommerai Toto).
Il te suffit de récupérer en paramètre un Toto, puis de tester des downcasting. Pour cela, il y a le mot-clé dynamic_cast.
Toto * pObjet;
TotoImage * pImage;
TotoVideo * pVideo;
if (pImage= dynamic_cast<TotoImage *>(pObjet)) {
// pObjet est une image, cast dans pImage
}
else if (pVideo= dynamic_cast<TotoVideo *>(pObjet)) {
// pObjet est une video, cast dans pVideo
}
Le dynamic_cast retourne NULL si ce n'est pas de la bonne classe.