in reply to Internet Explorer Frames - Win32::OLE

You appear correct, you *cannot* access arbitrary COM interfaces, only IDispatch with Win32::OLE.

You should check out CreatePerlObject/ReleasePerlObject in OLE.xs

return sv_2mortal(sv_bless(newRV(INT2PTR(SV*, SvIV(*svp))), stash));

Win32-GUI-AxWindow and Wx-ActiveX also seem relevant

CreatePerlObject site:perlmonks.org:
Creating COM and DCOM objects with Perl
Win32: Get COM object (for IE in this case) from HWND

Replies are listed 'Best First'.
Re^2: Internet Explorer Frames - Win32::OLE
by Anonymous Monk on Jul 03, 2010 at 07:44 UTC

    Aha! That's a start - that lets me return the new Win32::OLE object. I had already seen CreatePerlObject, but I didn't think of a way to call it without recompiling the XS. Since it just makes a DLL... DynaLoader/calling it with Win32::API is clever.

    For that matter, I -may- be able to change that "Get COM object from HWND" to get me the original document inside the XS. From there, it's just a small leap to getting the right interface.

    This may well be enough to get me started. Thanks!