Alternativen für einen Aufruf

01/02/2011 - 08:50 von Hermie | Report spam
Hallo alle!

Ich möchte gerne mal unbefangen Eure Meinungen hören:

Option Explicit

Private m_Sapi5 As SpVoice

Private Sub Command1_Click()

Set m_Sapi5 = New SpVoice

If Not m_Sapi5 Is Nothing Then

Dim nVoice As ISpeechObjectTokens

''Fails with error Error -2147467259 (80004005)
'It says "Method 'GetVoices' for ISpeechVoice failed"

For Each nVoice In m_Sapi5.GetVoices

Debug.Print nVoice.Item(0).GetDescription

Next nVoice

End If

End Sub

Sagen wir mal, der oben genannte Fehler tritt bei mir auf, aber in einer
anderen Anwendung (der meiner Konkurrenz :-) nicht, was würdet ihr denn
dann machen?

Der Fehler tritt auf, sobald ich eine andere Software installiert habe
(eine Spracherkennung).
Wenn dann auch das Konkurrenzprodukt nicht mehr gehen würde, wàre für
mich alles klar, aber das geht auch weiterhin :-)

Es liegt nicht an "CreateObject". Das habe ich alles schon ausprobiert,
da kommt dann derselbe Fehler.
Alle Bibliotheken sind bei mir vorhanden, und sowohl das
Konkurrenzprodukt als auch meine Software greifen auf dieselben
Bibliotheken zu.

Ich komme nicht darauf, was die Konkurrenz anders macht als ich.

Ich habe auch schon mit depends.exe mein Programm und das
Konkurrenzprogramm verglichen.

Falls jemand so einen Log auswerten kann und mir helfen kann, würde ich
mich über eine Rückmeldung sehr freuen.

Liebe Grüße,
Hermie
 

Lesen sie die antworten

#1 W. Wolf
01/02/2011 - 10:14 | Warnen spam
"Hermie" schrieb im
[...]

''Fails with error Error -2147467259 (80004005)


und was bedeutet dieser Fehler?

Es scheint folgendes passiert zu sein: Bei der
Komponente wurde GetVoices "abgeschaltet", der
Aufruf erzeugt den Fehler. In der Schnittstellen-
definition scheint die Methode noch aus
Kompatibilitàtsgründen der Schnittstelle enthalten
zu sein. Die Konkurrenz hat von diesem "Update"
rechtzeitig erfahren und verwendet inzwischen
die neuen Methoden (welche auch immer das sein
mögen) um an die Items zu kommen.

Ohne Dokumentation des Updates kommst Du kaum
weiter. Dass solche Updates überhaupt entstehen
ist schon eine Sauerei, ist aber kaum zu àndern.
Alternativ könntest dir per Object-Manager
die alte und neue Schnittstelle vergleichen.
Eventuell sind die neuen Ersatz-Methoden so
rauszufinden.

Alles hier geschriebene ist reine Spekulation! ;-)

Schönen Gruß
W. Wolf

Ähnliche fragen