Μετέφερα εδώ την ερώτηση σου γιατί το COM+ δεν έχει σχέση με το DirectShow. Το COM+ είναι τεχνολογία καθαρά για transaction management και distributed εφαρμογές. Τώρα, θα μου πεις γιατί το ονομάσανε COM+? Άλλη μία ατυχής ονομασία από το marketing της Microsoft.
Όσον αφορά την ερώτηση σου ... ομολογώ ότι δεν πολυκατάλαβα τί ρωτάς. Όταν λες "εγκαθιστώ" εννοείς Initialize? Οπότε η ερώτηση σου είναι "Πως κάνω initialize το COM σε διαφορετικά threads?". Απ' όσο θυμάμαι, το COM πρέπει να το κάνεις Initialize σε κάθε thread που θα το χρησιμοποιήσει, όχι μόνο στο κυρίως thread. Από εκεί και πέρα ... δεν έχω ασχοληθεί παραπάνω με COM και multithreading. Είναι εξαιρετικά δύσκολο μανίκι να το κάνεις μόνος σου και θέλει διάβασμα. Το ATL Library της Visual C++ μπορεί να βοηθήσει πάντως.
Γιατί δεν χρησιμοποιείς τις αντίστοιχες κλάσεις του .NET για DirectX? Το multithreading είναι πολύ ευκολότερο εκεί, άσε που για COM δεν πρόκειται πλέον να βρεις και πολλά βιβλία ή άρθρα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos