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

Exceptions in PassthruAPP

64 views
Skip to first unread message

spidy

unread,
Aug 14, 2009, 8:37:41 PM8/14/09
to
I downloaded PassThruAPP and while running I am getting exceptions..

Is there an new version of it, looks like I am having very old
version.

Also is there some explanation of its code?

Igor Tandetnik

unread,
Aug 14, 2009, 9:06:15 PM8/14/09
to
spidy <alien...@gmail.com> wrote:
> I downloaded PassThruAPP and while running I am getting exceptions..
>
> Is there an new version of it, looks like I am having very old
> version.

I lost interest and stoped development on it a long time ago. That old
version is all there is. Having said that, it's still working for me.
You are probably doing something wrong.

> Also is there some explanation of its code?

No, not really. You can ask here, and I'll do my best to answer. In case
it's not clear, I'm the author.
--
With best wishes,
Igor Tandetnik

With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925


spidy

unread,
Aug 15, 2009, 4:51:48 PM8/15/09
to
On Aug 15, 6:06 am, "Igor Tandetnik" <itandet...@mvps.org> wrote:

Okay so here is exception

---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: C:\Program Files\Internet Explorer\iexplore.exe
File: c:\program files\microsoft visual studio 8\vc\atlmfc\include
\atlcore.h
Line: 182

Expression: m_bInitialized

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
---------------------------
Abort Retry Ignore
---------------------------

call stack shows it originates from

inline HRESULT CComClassFactoryProtocol::SetTargetClassFactory(
IClassFactory* pCF)
{
HRESULT hr = (pCF ? pCF->LockServer(TRUE) : S_OK);
if (SUCCEEDED(hr))
{
ObjectLock lock(this);-------------------------> Exception
if (m_spTargetCF)
{
// LockServer(FALSE) is assumed to always succeed. Otherwise,
// it is impossible to implement correct semantics
HRESULT hr1 = m_spTargetCF->LockServer(FALSE);
hr1;
ATLASSERT(SUCCEEDED(hr1));
}
m_spTargetCF = pCF;
}
return hr;
}

spidy

unread,
Aug 15, 2009, 5:04:54 PM8/15/09
to


Even If I comment Object Lock(this) , some more exceptions appear
triggered by ASSERT statements

inline HRESULT WINAPI QueryInterfaceDebug(void* pv, REFIID riid,
LPVOID* ppv, DWORD_PTR dw, IUnknown* punkTarget)
{
ATLASSERT(pv != 0);
ATLASSERT(ppv != 0);
ATLASSERT(punkTarget != 0);

CComPtr<IUnknown> spUnk;
HRESULT hr = punkTarget->QueryInterface(riid,
reinterpret_cast<void**>(&spUnk));
ATLASSERT(FAILED(hr) || spUnk != 0);
if (SUCCEEDED(hr))
{
ATLTRACE(_T("Unrecognized interface supported by target unknown"));
ATLASSERT(false);
---------------------------------------------------------------------------
> exception..
}

// We don't support this interface, so return an error.
// The operations above are for debugging purposes only,
// this function is not supposed to ever return success
return E_NOINTERFACE;
}

Igor Tandetnik

unread,
Aug 15, 2009, 10:37:00 PM8/15/09
to
spidy wrote:
> Okay so here is exception
>
> ---------------------------
> Microsoft Visual C++ Debug Library
> ---------------------------
> Debug Assertion Failed!
>
> Program: C:\Program Files\Internet Explorer\iexplore.exe
> File: c:\program files\microsoft visual studio 8\vc\atlmfc\include
> \atlcore.h
> Line: 182
>
> Expression: m_bInitialized

http://groups.google.com/group/microsoft.public.inetsdk.programming.urlmonikers/browse_frm/thread/9bffbf023cb51d98

Igor Tandetnik

unread,
Aug 15, 2009, 10:44:09 PM8/15/09
to
spidy wrote:
> Even If I comment Object Lock(this) , some more exceptions appear
> triggered by ASSERT statements
>
> inline HRESULT WINAPI QueryInterfaceDebug(void* pv, REFIID riid,
> LPVOID* ppv, DWORD_PTR dw, IUnknown* punkTarget)
> {
> ATLASSERT(pv != 0);
> ATLASSERT(ppv != 0);
> ATLASSERT(punkTarget != 0);
>
> CComPtr<IUnknown> spUnk;
> HRESULT hr = punkTarget->QueryInterface(riid,
> reinterpret_cast<void**>(&spUnk));
> ATLASSERT(FAILED(hr) || spUnk != 0);
> if (SUCCEEDED(hr))
> {
> ATLTRACE(_T("Unrecognized interface supported by target unknown"));
> ATLASSERT(false);

Simply comment out ATLASSERT(false) line. Or, you could add support for
a couple new interfaces (one is IInternetProtocolEx, I forgot what the
other one is).

0 new messages