Napisałem plugin do mojego outlook express, by zmieniał linki w podglądzie wiadomości z click.email.microsoftemail.com, go.microsoft.com, clk.atdmt.com... na prawdziwe lokalizacje.

Za pomocą standardowego enumeratora z mshtml.h dobieram się kolejno do każdego linku, i z lokalnej bazy danych, lub poprzez winsock pobieram właściwy URL podmieniając poprzedni.

Problemem jest to, że póki nie kliknę <body>, anchor::get_href zwraca pusty string. Gdy najadę kursorem na anchor, to na statusbarze wyświetla się co powinno. Nawet całkiem osobny program typu HTML Picker, nie pokazuje HREF. Gdy pobiorę innerHTML, to href jest w zwróconym stringu.

Co to za utrudnienie?
Sprawa wygląda podobnie do wyłączonego ambient'a "wyświetlaj obrazki" DLCTL_DLIMAGES - tutaj wystarczy odpalić IDM_SHOWPICTURE poprzez IOleCommandTarget::Exec by obrazek się ściągnął i pokazał, ale nie ma żadnego ambienta dla <A>.

Gdyby to było ważne, to do dokumentu dobieram się poprzez WM_HTML_GETOBJECT + ObjectFromLresult.