Neil

> Shouldn't you be releasing the pGFilters here so that you  delete
> each of them rather than just the last? 
 
Yes, I understand that now, thank you. That was the last resource 
leak  I couldn't understand, or find. Thank you very much. Without some  
experience, it is difficult to determine which pointers are interfaces or  
just data. There is even a info structure with an interface in it that needs  
to be released. The documentation fusses about releasing each of the  
IPin objects but is less pushy when describing the IFilter objects. The  
Next() statement threw me ?? Newbie hell.
 
> Since you are using COM, you may need to CoInitializeEx or
>  OleInitialize before loading Scintilla so that you can choose the
>  threading model or OLE features. Scintilla does an old-style
>  CoInitialize just to ensure drag and drop is available. 
 
This info sent me in the right direction. My implementation goes 
like  this. 
1. When the Scintilla control is created inside of the current  
thread, it initializes COM for the thread. FilmCutter 
requires the COM  library be initialized for it's direct show 
video player, the current  documentation recommends that 
I not worry about it, just coinitialize the  COM if it is already 
initialized good, if it is not it will be. Because  FilmCutter 
uses CoInitialize before creating the direct show interfaces,  
FilmCutter should CoUnInitialize upon program exit. 
2a Using  OleInitialize before createwindow Scintilla works. 
Using OleInitialize after  createwindow Scintilla works. 
Using OleInitialize in the flow anywhere makes  the damm thing 
work. 
But only after the first call to the direct show  interface. 
After the second call it direct show it stops working again. ??  
Using OleInitialize, OleInitialize, OleInitialize anywhere 
works for  three times then stops. ??? 
It appears that OleInitialize doesn't work the  same as 
CoInitialize. From the documentation. 
"Typically, the COM  library is initialized on an apartment 
only once. Subsequent calls will  succeed, as long as they do 
not attempt to change the concurrency model of  the apartment, 
but will return S_FALSE." 
Adding three makes it work  until they are gone. 
Wrapping the direct show interface with matching  OleInit 
and OleUninit does not work. 
Using OleUninit after creatwindow  Scintilla kills the drag 
and drop. 
I can go on but my direct show  interface is OleUninitializing 
the COM library for this apartment. For the  thread it is good 
but for the apartment, is gone as well as the Ole drag and  drop. 
Fix item 2a 
Use OleInitialize before each call to my direct show  interface. 
This will add one leaving the one Scintilla came with on the  dance 
floor. 
2b Add the OleInitialize at the end of the direct show call  
restoring a COM library object and its many friends to the apartment. 
If  it were your choice, which do you think you would do? 
 
> You should read up on COM with threading. I haven't done any  work
> in this area for years.
 
Ya think ? With threading ? Do you mean it gets worse.
 
> Controls act as thread synchronization objects: SendMessage
>  synchronizes the caller to the target window's thread for the send. 
With all  due respect after the last couple of days, that is more than 
I want to know. 
 
This has been very helpful. 
I have two workable fixes to choose from, a  solution to a problem 
I didn't plan on getting here, and a whole butt load  of understanding 
that I didn't have last week. 
 
Thanks barely covers it, but thank you anyway. 
 
How are you with the windows XP look and feel thing as it relates to  
commonctrl32 and the win 32 api and the XP themes thing. And busted 
or  missing code in commonCtrl32.h and elsewhere that turns the common 
windows  tooltips control into sexy little shawdow without the tip. 
Ever notice that  many programs only have toolbar tooltips. 
 
I am of course joking, you have better things to do. I just like digging  
at Uncle Bill whenever I get the chance. 
 
Robert 
_http://members.aol.com/avsfilmcutter_ (http://members.aol.com/avsfilmcutter) 
 
 
 
 
<BR><BR><BR>**************************************<BR> AOL now offers free 
email to everyone.  Find out more about what's free from AOL at 
http://www.aol.com.
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to