Sat May 05 06:10:07 2012: Request 43574 was acted upon.
Transaction: Correspondence added by patcat88
Queue: Win32-OLE
Subject: Could't use default event source if it begins with underscore
character
Broken in: 0.1709
Severity: Important
Owner: Nobody
Requestors: [email protected]
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=43574 >
On Tue Feb 24 07:17:28 2009, Erny wrote:
> If default event source name begins with underscore character (as
> autocreated by Visual Studio) than events not arrive.
>
> Patch for this bug:
>
> 4405,4406c4409,4415
> < if (isalpha(pszItf[0]))
> < hr = FindIID(aTHX_ pObj, pszItf, &iid, &pTypeInfo, cp,
> lcid);
> ---
> > //PE:
> > if (pszItf[0]=='{') {
> > OLECHAR Buffer[OLE_BUF_SIZ];
> > OLECHAR *pBuffer = GetWideChar(aTHX_ itf,
> Buffer, OLE_BUF_SIZ, cp);
> > hr = IIDFromString(pBuffer, &iid);
> > ReleaseBuffer(aTHX_ pBuffer, Buffer);
> > }
> 4408,4411c4417
> < OLECHAR Buffer[OLE_BUF_SIZ];
> < OLECHAR *pBuffer = GetWideChar(aTHX_ itf, Buffer,
> OLE_BUF_SIZ, cp);
> < hr = IIDFromString(pBuffer, &iid);
> < ReleaseBuffer(aTHX_ pBuffer, Buffer);
> ---
> > hr = FindIID(aTHX_ pObj, pszItf, &iid,
> &pTypeInfo, cp, lcid);
Yep, this is a bug. I encountered it just now. You can't use WithEvents
on interface that beings with '_'. 3 years for a bug with a patch is too
long.