Rob:
The direct show interface, when released, effectively performs an
OleUninitialize, if it actually does or not I do not know.
It really shouldn't. I went and looked at some demonstration
DirectShow code and that called CoInitialize and CoUninitialize around
the use of direct show. Perhaps there is another reference counting
issue. You could try and use a debugging tool like BoundsChecker to
look for problems.
Would you add a OleInitialize() statement before you
bring up the direct show interface and call OleInitialize() after
releasing the last direct show object?
I'd try adding an OleInitialize() or CoInitialize() before starting
DirectShow but adding one after may just be masking the real problem.
My question, which part provides that drop target objects Scintilla or
SciTE?
Scintilla provides a drop target for text (::RegisterDragDrop) and
SciTE provides a drop target for files (::DragAcceptFiles).
What I discovered in his example uncovers another question regarding
my original problem with Scintilla loosing its drag and drop.
Mr. Brown uses the function CoLockObjectExternal to lock and unlock
his drop target objects, which begs the question.
Could using "CoLockObjectExternal" protect the Scintilla com library
objects from whatever direct show does to them?
Scintilla doesn't free itself (and the drag and drop objects apart
from the format enumerator are subobjects of Scintilla) when released
since there is a strong ownership implied by the container creating
the window:
STDMETHODIMP_(ULONG) ScintillaWin::Release() {
return 1;
}
Neil
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest