M
Nun, am Wochenende habe ich einige Experimente und genaue Analysen durchgeführt (uff, etliche Stunden um genau zu sein ).
Die Methode, die Jochen mit "WM_APP + x" vorgeschlagen hat, scheint 100%ig zuverlässig zu sein. Nochmal Danke dafür!
(Anmerkung: nicht mit "WM_USER + x" wie ich weiter oben geschrieben hab!)
Am besten eine systemweit eindeutige Nachricht mit RegisterWindowMessage() von Windows generieren lassen!
Mein anfänglicher Workaround mit der Timer-Variante ist zwar nicht mehr nötig, hab ihn aber für zukünftige Überraschungen (z.B. andere unerwartete WMI-Fehlermeldungen) dringelassen. So quasi als "doppelter Boden".
Übrigens, von meiner (zugegeben gewagten) Idee mit der Systemnachricht WM_DEVICECHANGE an mich selbst zu senden, bin ich wieder abgekommen.
Denn PostMessage() liefert mir den Rückgabewert 0, und GetLastError() den Wert 1159:
1159 (0x487) ERROR_MESSAGE_SYNC_ONLY The message can be used only with synchronous operations.
Von der MSDN hätte ich mir ein schon ein wenig mehr Dokumentation in solchen Sonderfällen wie RPC_E_CANTCALLOUT_ININPUTSYNCCALL gewünscht.
So, nun kann ich mich wieder anderen (Alltags-)Aufgaben widmen.
Martin