Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: OLE action?

3 views
Skip to first unread message

Rob Bovey

unread,
Feb 27, 2005, 1:10:05 PM2/27/05
to
"Fredrik Wahlgren" <fredrik.p...@mailbox.swipnet.se> wrote in message
news:eC5bWRPH...@TK2MSFTNGP12.phx.gbl...
> "choice" <cho...@discussions.microsoft.com> wrote in message
> news:0917B6C1-CB73-496F...@microsoft.com...
>> i have a macro that opens a webpage, 99.9% of the time it works, for some
>> reason this time the webpage did not open and i got a message that
>> says...Microsoft Excel is waiting for another application to complete an
> OLE
>> action.
>> is there any way to get around this or at least be able to save excel
> before
>> i close it?
>>
>> thanks in advance
>>
> This doesn't necessarily mean that your macro won't be able to open the
> webpage at some point. It's an OLE timeout. I don't know an easy way to
> change the default value to something higher. In C/C++ you can use the
> CoRegisterMessageFilter to avoid this message. Here's an article where
> this
> API call is used:
> http://www.adapdev.com/blogs/smccormack/CategoryView,category,VS.NET.aspx

Hi Fredrik,

You can do the same thing in an Excel app like so:

Declare Function CoRegisterMessageFilter Lib "OLE32.DLL" _
(ByVal lFilterIn As Long, ByRef lPreviousFilter) As Long

Private mlPreviousFilter As Long

Sub Auto_Open()

CoRegisterMessageFilter 0&, mlPreviousFilter

''' Do your stuff here.

End Sub

Sub Auto_Close()
''' Restore the message filter.
CoRegisterMessageFilter mlPreviousFilter, 0&
End Sub

I use this all the time when my business logic is in a DLL and I'm
debugging into the DLL. Otherwise Excel times out in a manner exactly like
that described by the OP if I'm debugging for more than 30 seconds or so. It
works fine, but I don't fully understand why. I've never seen any value
other than zero returned to the mlPreviousFilter variable, so I don't know
what exactly is being unregistered and reregistered.

--
Rob Bovey, Excel MVP
Application Professionals
http://www.appspro.com/

* Take your Excel development skills to the next level.
* Professional Excel Development
http://www.appspro.com/Books/Books.htm


Fredrik Wahlgren

unread,
Feb 27, 2005, 12:43:05 PM2/27/05
to

"choice" <cho...@discussions.microsoft.com> wrote in message
news:0917B6C1-CB73-496F...@microsoft.com...
> i have a macro that opens a webpage, 99.9% of the time it works, for some
> reason this time the webpage did not open and i got a message that
> says...Microsoft Excel is waiting for another application to complete an
OLE
> action.
> is there any way to get around this or at least be able to save excel
before
> i close it?
>
> thanks in advance
>
This doesn't necessarily mean that your macro won't be able to open the
webpage at some point. It's an OLE timeout. I don't know an easy way to
change the default value to something higher. In C/C++ you can use the
CoRegisterMessageFilter to avoid this message. Here's an article where this
API call is used:
http://www.adapdev.com/blogs/smccormack/CategoryView,category,VS.NET.aspx

/Fredrik

0 new messages