Come determinare il modello di thread supportato di un server COM out-of-process?
-
20-08-2019 - |
Domanda
Domanda :
-
Come trovare i modelli di threading supportati da un server out-of-process (basato su EXE) predefinito :
-
Utilizzo di OLEVIEW ?
-
O altri metodi validi?
Nota:
- Tentativo di connettersi al server sopra descritto per ricevere le notifiche degli eventi
Soluzione
Temo che la domanda sia sbagliata.
I modelli di threading (STA, MTA, ecc.) sono un male necessario che si applicano solo agli oggetti COM in-process, in cui oggetti e client devono coesistere nello stesso processo e in qualche modo devono impedire di calpestarsi l'un l'altro (un divertimento e argomento lungo).
I server COM out-of-process (EXE) vivono nel proprio processo e gestiscono il proprio threading come ritengono opportuno. COM non lo sa - e non gli importa.
Quindi non esiste alcun " modello di threading " (in senso COM) associato a un EXE.
Sembra che tu abbia un problema specifico: se pubblichi più dettagli, io / qualcuno / potremmo essere in grado di aiutarti.
Altri suggerimenti
La quantità assoluta minima di voci di registro per una classe è:
- LocalServer32 \ (percorso dell'eseguibile): posizione del server EXE fuori processo locale
- InprocServer32 \ (percorso della DLL) - Posizione del server DLL in-process locale
Nota:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
{CLSID}\LocalServer32 = <full path>ServerExecutable