c++.stlsoft - COMSTL and DirectShow
- Adi Shavit <adish gentech.co.il> Nov 23 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Nov 23 2006
- Adi Shavit <adish gentech.co.il> Nov 23 2006
- Adi Shavit <adish gentech.co.il> Nov 29 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Nov 29 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Dec 02 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Dec 02 2006
- Adi Shavit <adish gentech.co.il> Dec 03 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Dec 03 2006
- Adi Shavit <adish gentech.co.il> Dec 04 2006
- "Matthew" <matthew hat.stlsoft.dot.org> Dec 04 2006
- Adi Shavit <adish gentech.co.il> Dec 05 2006
- "Matthew Wilson" <matthew hat.stlsoft.dot.org> Feb 16 2007
- Adi Shavit <adish gentech.co.il> Feb 17 2007
- "Matthew Wilson" <matthew hat.stlsoft.dot.org> Feb 26 2007
- Adi Shavit <adish gentech.co.il> Mar 06 2007
- "Matthew Wilson" <matthew hat.stlsoft.dot.org> Mar 07 2007
- "Matthew Wilson" <matthew hat.stlsoft.dot.org> Mar 08 2007
- Adi Shavit <adish gentech.co.il> Mar 08 2007
- Adi Shavit <adish gentech.co.il> Mar 08 2007
Hi,
I'm trying to use COMSTL with DirectShow, and I'm having compilation
problems right from the start.
I took a simple working DirectShow (which is based on COM) program (on
MSVC++ 6.0), and tried adding a single line to see COMSTL in action.
My code snippet:
//...
IGraphBuilder *pGraph;
IMediaEvent *pEvent;
//...
using namespace comstl;
CoInitialize(NULL);
pGraph= 0;
if (!FAILED(
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
IID_IGraphBuilder, (void **)&pGraph))) {
//...
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
if (interface_cast_test<IMediaEvent>(pGraph)) //<< COMSTL usage
int j=0; //dummy code
//...
uses of interface_case_addref<> give similar problems.
Here's a sample of my errors:
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: error C2259: 'IMediaEvent' : cannot instantiate abstract class due to
following members:
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(662) :
see declaration of 'IMediaEvent'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IUnknown::QueryInterface(const struct
_GUID &,void ** )' : pure virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\unknwn.h(109) : see declaration of 'QueryInterface'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'unsigned long __stdcall IUnknown::AddRef(void)' : pure
virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\unknwn.h(113) : see declaration of 'AddRef'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'unsigned long __stdcall IUnknown::Release(void)' :
pure virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\unknwn.h(115) : see declaration of 'Release'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IDispatch::GetTypeInfoCount(unsigned
int *)' : pure virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\oaidl.h(2697) : see declaration of 'GetTypeInfoCount'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IDispatch::GetTypeInfo(unsigned
int,unsigned long,struct ITypeInfo ** )' : pure virtual function was not
defined
c:\program files\microsoft visual
studio\vc98\include\oaidl.h(2700) : see declaration of 'GetTypeInfo'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IDispatch::GetIDsOfNames(const struct
_GUID &,unsigned short ** ,unsigned int,unsigned long,long *)' : pure
virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\oaidl.h(2705) : see declaration of 'GetIDsOfNames'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IDispatch::Invoke(long,const struct
_GUID &,unsigned long,unsigned short,struct tagDISPPARAMS *,struct
tagVARIANT *,struct tagEXCEPINFO *,unsign
ed int *)' : pure virtual function was not defined
c:\program files\microsoft visual
studio\vc98\include\oaidl.h(2712) : see declaration of 'Invoke'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IMediaEvent::GetEventHandle(long *)' :
pure virtual function was not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(665) :
see declaration of 'GetEventHandle'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall IMediaEvent::GetEvent(long *,long
*,long *,long)' : pure virtual function was not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(668) :
see declaration of 'GetEvent'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall
IMediaEvent::WaitForCompletion(long,long *)' : pure virtual function was
not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(674) :
see declaration of 'WaitForCompletion'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall
IMediaEvent::CancelDefaultHandling(long)' : pure virtual function was
not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(678) :
see declaration of 'CancelDefaultHandling'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall
IMediaEvent::RestoreDefaultHandling(long)' : pure virtual function was
not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(681) :
see declaration of 'RestoreDefaultHandling'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302)
: warning C4259: 'long __stdcall
IMediaEvent::FreeEventParams(long,long,long)' : pure virtual function
was not defined
c:\users\adish\gentech\libs\iplreader\directx8\include\control.h(684) :
see declaration of 'FreeEventParams'
c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(515)
: see reference to class template instantiation
'stlsoft::comstl_project::interface_cast_base<struct IMediaEvent,struct
stlsoft::comstl_project::noaddref_release<struct
IMediaEvent>,struct
stlsoft::comstl_project::ignore_interface_cast_exception>' being compiled
c:\users\adish\tests\cvision2\cvapp.h(79) : see reference to
class template instantiation
'stlsoft::comstl_project::interface_cast_test<struct IMediaEvent>' being
compiled
Am I doing something wrong?
Thanks,
Adi
Nov 23 2006
"Adi Shavit" <adish gentech.co.il> wrote in message news:ek3o74$rfu$1 digitaldaemon.com...Hi, I'm trying to use COMSTL with DirectShow, and I'm having compilation problems right from the start. I took a simple working DirectShow (which is based on COM) program (on MSVC++ 6.0), and tried adding a single line to see COMSTL in action. My code snippet: //... IGraphBuilder *pGraph; IMediaEvent *pEvent; //... using namespace comstl; CoInitialize(NULL); pGraph= 0; if (!FAILED( CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph))) { //... pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); if (interface_cast_test<IMediaEvent>(pGraph)) //<< COMSTL usage int j=0; //dummy code //... uses of interface_case_addref<> give similar problems. Here's a sample of my errors: c:\users\adish\gentech\otherlibs\stlsoft\comstl\interface_cast.hpp(302) : error C2259: 'IMediaEvent' : cannot instantiate abstract class due to following members:
<snip>Am I doing something wrong?
I believe you are. The cast is implemented to resemble cast-like syntax/semantics, not smart pointer. Hence, you need to cast to the type you want, i.e. IMediaEvent* not IMediaEvent. :-) Matthew
Nov 23 2006
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000066">
<small><br>
</small>
<blockquote cite="midek3rit$ure$1 digitaldaemon.com" type="cite">
<blockquote type="cite">
<pre wrap="">Am I doing something wrong?
</pre>
</blockquote>
<pre wrap=""><!---->
I believe you are. The cast is implemented to resemble cast-like
syntax/semantics, not smart pointer. Hence, you need to cast to the type you
want, i.e. IMediaEvent* not IMediaEvent.
</pre>
</blockquote>
<small>Gah!<br>
Got it, it works.<br>
Thanks,<br>
Adi</small><br>
<br>
</body>
</html>
Nov 23 2006
Hi, I've been playing with DirectShow and COMSTL. Essentially, I took a simple working DirectShow app. and converting it into COMSTL and adding features. I have some questions/remarks etc. regarding COMSTL, that I'd like to bring up. I am a complete COM (and DirectShow) novice, so everything I say may be complete non-sense. Please feel free to tell me so. Heres what I have so far... 1. I guess this is no surprise but the documentation is horrible! I use a combination of reading the source, searching the source for text and Google [Code Search]) for various versions of the documentation. The auto generated docs are often disconnected and it is hard to reach some module/functions/classes even from the project main page. For example, there are 2 pages for interface_ptr<> one is essentially empty (the latest one [http://tinyurl.com/y39cfw]) and the other contains the docs (a version I found on through Google [http://tinyurl.com/uwa6q]) The CHM has similar problems. The frame version of the docs. is impossible to use, it take minutes to properly load on my machine (if it doesn't hang). 2. In the spirit of RAII, maybe throw an exception (or report some error) if the interface_ptr<> is initialized with NULL/0. This will save a lot of error checking, and make the code clearer. Or maybe make an alternate type that does this, or a policy... <heresy alert!> 3. Maybe allow automatic conversion to the underlying pointer type? Passing x.get_interface_ptr() to functions is ugly typing </heresy alert!> 4. co_create_instance and its kin are undocumented. 5. Functions like co_create_instance and other initialization functions expect an address of a pointer as the second argument. This means that when used with interface_ptr, a temporary bare pointer must be used to be given like so: // Create a source filter specified by filename interface_ptr<IBaseFilter> pSource; // The interface_ptr<> object { IBaseFilter* ppSource= NULL; // temporary bare pointer if(FAILED(pGraph->AddSourceFilter(a2w(c_str_ptr(filename)),0,&ppSource))) { //... return 0; } pSource.set(ppSource, false); // setting the smart pointer. } It would be useful to have a method that exposes the internal member so it can be used directly in such functions. I know it might be dangerous (although there is an option to get the referent anyway) but maybe it should be considered. 6. Allow interface_cast_addref<>() to accept interface_ptr arguments instead of just bare pointers. This would allow more readable code. 7. Consider making the second argument of interface_ptr<> default to false. It seems to me that this would be in the spirit of RAII too. This would be the case when directly moving the newly received pointer (say from into the interface_ptr<>, without keeping an extra "bare" copy. (This is also related to 5 above). 8. A somewhat more general question. Do you have any suggestions regarding error checking? Having: if(FAILED(...)) { ::MessageBox( ...); return 0; } all over the code is awful. I think that's enough for now. Despite this issues, I find COMSTL makes things easier, and certainly resource management is improved. Thanks, Adi
Nov 29 2006
Adi Thanks for that. I'll deal with each point individually over the next few days.
Nov 29 2006
4. co_create_instance
Have you not seen http://www.synesis.com.au/software/stlsoft/doc-1.9/namespacecomstl.html#19f6baeb98ad f4636026577579f3d1d ? (Maybe because it's in the doc-1.9 area) Or are you saying that's not good enough? FTR: I've enhanced that a bit now, so that the overloads have the following examples: 1. With CLSID const CLSID CLSID_pantheios_COM_LoggerManager = { 0x4E7D5C47, 0x8F96, 0x45DE, { 0x90, 0x5D, 0xAA, 0x3E, 0x9E, 0x59, 0x2D, 0xE3 } }; IDispatch *logmgr; if(SUCCEEDED(comstl::co_create_instance(CLSID_pantheios_com_LoggerManager, &logmgr))) { logmgr->Release(); } 2. With string form CLSID IDispatch *logmgr; if(SUCCEEDED(comstl::co_create_instance("{4E7D5C47-8F96-45DE-905D-AA3E9E592D E3}", &logmgr))) { logmgr->Release(); } 3. With ProgId IDispatch *logmgr; if(SUCCEEDED(comstl::co_create_instance("pantheios.COM.LoggerManager", &logmgr))) { logmgr->Release(); }and its kin are undocumented.
What kin? Specifics please. Cheers Matthew
Dec 02 2006
Correction:
Example 1: The identifier is CLSID_pantheios_COM_LoggerManager, not
CLSID_pantheios_com_LoggerManager
Examples 2 & 3: the strings must be prefixed with L
Silly me.
"Matthew" <matthew hat.stlsoft.dot.org> wrote in message
news:ekt3dc$1te6$1 digitaldaemon.com...
4. co_create_instance
Have you not seen
(Maybe because it's in the doc-1.9 area)
Or are you saying that's not good enough?
FTR: I've enhanced that a bit now, so that the overloads have the
examples:
1. With CLSID
const CLSID CLSID_pantheios_COM_LoggerManager = { 0x4E7D5C47, 0x8F96,
0x45DE, { 0x90, 0x5D, 0xAA, 0x3E, 0x9E, 0x59, 0x2D, 0xE3 } };
IDispatch *logmgr;
if(SUCCEEDED(comstl::co_create_instance(CLSID_pantheios_com_LoggerManager,
&logmgr)))
{
logmgr->Release();
}
2. With string form CLSID
IDispatch *logmgr;
E3}", &logmgr)))
{
logmgr->Release();
}
3. With ProgId
IDispatch *logmgr;
if(SUCCEEDED(comstl::co_create_instance("pantheios.COM.LoggerManager",
&logmgr)))
{
logmgr->Release();
}
and its kin are undocumented.
What kin? Specifics please.
Cheers
Matthew
Dec 02 2006
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body dir="ltr" bgcolor="#ffffff" text="#000066"> <p style="margin-bottom: 0cm; margin-top: 0pt;"><font size="-1"><font face="Verdana">Hi Matthew,</font></font></p> <p style="margin-bottom: 0cm; margin-top: 0pt;"><br> <span style="font-size: 13px;"></span></p> <p style="margin-bottom: 0cm; margin-top: 0pt;"><span style="font-size: 13px;"><font face="Verdana"> It'll take me a while to reply to all of your answers, but I <i>will</i> get to them all (got a busy week).<br> </font></span><span style="font-size: 13px;"></span></p> <span style="font-size: 13px;"></span><span style="font-size: 13px;"></span> <p style="margin-bottom: 0cm; margin-top: 0pt;"><span style="font-size: 13px;"><font face="Verdana"></font></span></p> <blockquote cite="midekt3dc$1te6$1 digitaldaemon.com" type="cite"> <pre wrap="">Have you not seen <a class="moz-txt-link-freetext" href="http://www.synesis.com.au/software/stlsoft/doc-1.9/namespacecomstl.html#19f6baeb98ad4f4636026577579f3d1d">http://www.synesis.com.au/software/stlsoft/doc-1.9/namespacecomstl.html#19f6baeb98ad4f46 6026577579f3d1d</a> ? (Maybe because it's in the doc-1.9 area) Or are you saying that's not good enough?</pre> </blockquote> <span style="font-size: 13px;"><font face="Verdana">Anyway, I guess I either missed this section, looked in the wrong place, or that I expected a page for each such function. Thanks.</font></span> <p style="margin-bottom: 0cm; margin-top: 0pt;"><br> </p> <blockquote cite="midekt3dc$1te6$1 digitaldaemon.com" type="cite"> <pre wrap=""><snip> </pre> <blockquote type="cite"> <pre wrap=""> and its kin are undocumented. </pre> </blockquote> <pre wrap=""><!---->What kin? Specifics please. </pre> </blockquote> <font size="-1"><font face="Verdana">I think I was referring to comstl::com_init which is also documented on the same page.<br> <br> </font></font><font size="-1"><font face="Verdana">I guess what I was saying is that a simple tutorial/sample app to show how to use the various COMSTL tools would be very informative. Maybe equivalent long-hand and short-hand versions (<span class="moz-smiley-s3"><span> ;-) </span></span>) are what I expected.<br> <br> Adi<br> <br> <br> </font></font> </body> </html>
Dec 03 2006
I'll have a go at com_init. The tutorial *and* sample app are both great ideas. Please remind me of this, if I forget, when we get to the point (within two weeks, hopefully) of declaring COMSTL ready for 1.9.1. Cheers"Adi Shavit" <adish gentech.co.il> wrote in message
Hi Matthew, It'll take me a while to reply to all of your answers, but I will get to
Have you not seen
(Maybe because it's in the doc-1.9 area) Or are you saying that's not good enough? Anyway, I guess I either missed this section, looked in the wrong place,
<snip> and its kin are undocumented.What kin? Specifics please.
I think I was referring to comstl::com_init which is also documented on
I guess what I was saying is that a simple tutorial/sample app to show how
long-hand and short-hand versions ( ;-) ) are what I expected.Adi
Dec 03 2006
If you want my silly little DirectShow app, I can send/post that, thoug I guess most COM users would have different uses than DirectShow. Adi Matthew wrote:I'll have a go at com_init. The tutorial *and* sample app are both great ideas. Please remind me of this, if I forget, when we get to the point (within two weeks, hopefully) of declaring COMSTL ready for 1.9.1. Cheers"Adi Shavit" <adish gentech.co.il> wrote in message
Hi Matthew, It'll take me a while to reply to all of your answers, but I will get to
Have you not seen
(Maybe because it's in the doc-1.9 area) Or are you saying that's not good enough? Anyway, I guess I either missed this section, looked in the wrong place,
<snip> and its kin are undocumented.What kin? Specifics please.
I guess what I was saying is that a simple tutorial/sample app to show how
long-hand and short-hand versions ( ;-) ) are what I expected.Adi
Dec 04 2006
"Adi Shavit" <adish gentech.co.il> wrote in message news:4573DD25.1010903 gentech.co.il...If you want my silly little DirectShow app, I can send/post that, thoug I guess most COM users would have different uses than DirectShow.
Sure, that'd be a good idea. I can maybe make some changes, and that'll be a more concentrated mechanism for knowledge transfer. (And identify to me where I'm failing in the documentation.) Cheers Matthew
Dec 04 2006
Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Mathew, My code is taken from here <http://www.site.uottawa.ca/%7Elaganier/tutorial/opencv+dire tshow/cvision.htm>: <http://www.site.uottawa.ca/~laganier/tutorial/opencv+directshow/cvision.htm>. I started from Check point #2 and worked by manually changing and refactoring the code from there. (You don't really need OpenCV for this project, just remove any references to it and you should be fine). Adi Matthew wrote:"Adi Shavit" <adish gentech.co.il> wrote in message news:4573DD25.1010903 gentech.co.il...If you want my silly little DirectShow app, I can send/post that, thoug I guess most COM users would have different uses than DirectShow.
Sure, that'd be a good idea. I can maybe make some changes, and that'll be a more concentrated mechanism for knowledge transfer. (And identify to me where I'm failing in the documentation.) Cheers Matthew
Dec 05 2006
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
How did you go with your COM travels?
Any final requests for 1.9.1?
"Adi Shavit" <adish gentech.co.il> wrote in message =
news:4575C56C.5010200 gentech.co.il...
Hi Mathew,
My code is taken from here: =
<http://www.site.uottawa.ca/~laganier/tutorial/opencv+directshow/cvision.=
htm>.
I started from Check point #2 and worked by manually changing and =
refactoring the code from there.
(You don't really need OpenCV for this project, just remove any =
references to it and you should be fine).
Adi
Matthew wrote:=20
"Adi Shavit" <adish gentech.co.il> wrote in message
news:4573DD25.1010903 gentech.co.il...
If you want my silly little DirectShow app, I can send/post that, =
thoug
I guess most COM users would have different uses than DirectShow.
=20
Sure, that'd be a good idea. I can maybe make some changes, and that'll =
be a
more concentrated mechanism for knowledge transfer. (And identify to me
where I'm failing in the documentation.)
Cheers
Matthew
Feb 16 2007
Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bitHow did you go with your COM travels?
to it sometime soon. However, I did use the same mechanisms in another little project I did, about which I'll post a short article on CodeProject soon. It saved me all the COM hassle and made for a beautiful little Extended STL project :-). I'll probably post it in about 2 weeks, as I'm off to a vacation tomorrow. I'll post the link here when its up on CodeProject. I think you'll like it.Any final requests for 1.9.1?
When I last used it it did every thing I wanted, needed and more*. Adi ** 'more' *means that after I wrote my class that contains a COM resource I needed to use it in another API that needed it to be copy-constructible, something I hadn't notice before. Naturally, the automatic ref-counting allowed that without any changes so I was home free, and everything worked as planned.
Feb 17 2007
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Good to hear to all of the above (er, below).
Looking forward to seeing your article.
Have a nice holiday. :-)
"Adi Shavit" <adish gentech.co.il> wrote in message =
news:er7mbv$192d$1 digitalmars.com...
How did you go with your COM travels?
Well, I actually got stuck with that one, though I'll probably come =
back to it sometime soon.
However, I did use the same mechanisms in another little project I =
did, about which I'll post a short article on CodeProject soon.
It saved me all the COM hassle and made for a beautiful little =
Extended STL project :-).
I'll probably post it in about 2 weeks, as I'm off to a vacation =
tomorrow.
I'll post the link here when its up on CodeProject. I think you'll =
like it.
Any final requests for 1.9.1?
None at the moment.
When I last used it it did every thing I wanted, needed and more*.
Adi
* 'more' means that after I wrote my class that contains a COM =
resource I needed to use it in another API that needed it to be =
copy-constructible, something I hadn't notice before. Naturally, the =
automatic ref-counting allowed that without any changes so I was home =
free, and everything worked as planned.
Feb 26 2007
Hi, My article was just posted, you can read it here *audio_ostream - A Text-to-Speech ostream* <http://www.codeproject.com/audio/audio_ostream.asp>. Enjoy, Adi P.S. There seems to be some problem with the files, which I'll sort out with the site, but the meat is in the article anyway. ** Adi Shavit wrote:How did you go with your COM travels?
back to it sometime soon. However, I did use the same mechanisms in another little project I did, about which I'll post a short article on CodeProject soon. It saved me all the COM hassle and made for a beautiful little Extended STL project :-). I'll probably post it in about 2 weeks, as I'm off to a vacation tomorrow. I'll post the link here when its up on CodeProject. I think you'll like it.Any final requests for 1.9.1?
When I last used it it did every thing I wanted, needed and more*. Adi ** 'more' *means that after I wrote my class that contains a COM resource I needed to use it in another API that needed it to be copy-constructible, something I hadn't notice before. Naturally, the automatic ref-counting allowed that without any changes so I was home free, and everything worked as planned.
Mar 06 2007
Cool! I might use this in a little tool I fancy building. Cheers Matthew "Adi Shavit" <adish gentech.co.il> wrote in message news:eslobt$11hj$1 digitalmars.com...Hi, My article was just posted, you can read it here *audio_ostream - A Text-to-Speech ostream* <http://www.codeproject.com/audio/audio_ostream.asp>. Enjoy, Adi P.S. There seems to be some problem with the files, which I'll sort out with the site, but the meat is in the article anyway. ** Adi Shavit wrote:How did you go with your COM travels?
back to it sometime soon. However, I did use the same mechanisms in another little project I did, about which I'll post a short article on CodeProject soon. It saved me all the COM hassle and made for a beautiful little Extended STL project :-). I'll probably post it in about 2 weeks, as I'm off to a vacation
I'll post the link here when its up on CodeProject. I think you'll like it.Any final requests for 1.9.1?
When I last used it it did every thing I wanted, needed and more*. Adi ** 'more' *means that after I wrote my class that contains a COM resource I needed to use it in another API that needed it to be copy-constructible, something I hadn't notice before. Naturally, the automatic ref-counting allowed that without any changes so I was home free, and everything worked as planned.
Mar 07 2007
btw, you should probably stipulate that you need "STLSoft version 1.9.1 beta 44, or later". I've had a lot of downloads of 1.8.9 in the last 24 hours, and I fear they may have been disappointed readers of your article. ;-/ Cheers Matthew "Matthew Wilson" <matthew hat.stlsoft.dot.org> wrote in message news:esn8uh$j06$3 digitalmars.com...Cool! I might use this in a little tool I fancy building. Cheers Matthew "Adi Shavit" <adish gentech.co.il> wrote in message news:eslobt$11hj$1 digitalmars.com...Hi, My article was just posted, you can read it here *audio_ostream - A Text-to-Speech ostream* <http://www.codeproject.com/audio/audio_ostream.asp>. Enjoy, Adi P.S. There seems to be some problem with the files, which I'll sort out with the site, but the meat is in the article anyway. ** Adi Shavit wrote:How did you go with your COM travels?
back to it sometime soon. However, I did use the same mechanisms in another little project I did, about which I'll post a short article on CodeProject soon. It saved me all the COM hassle and made for a beautiful little Extended STL project :-). I'll probably post it in about 2 weeks, as I'm off to a vacation
I'll post the link here when its up on CodeProject. I think you'll like it.Any final requests for 1.9.1?
When I last used it it did every thing I wanted, needed and more*. Adi ** 'more' *means that after I wrote my class that contains a COM resource I needed to use it in another API that needed it to be copy-constructible, something I hadn't notice before. Naturally, the automatic ref-counting allowed that without any changes so I was home free, and everything worked as planned.
Mar 08 2007
Ah! Thanks. Adi Matthew Wilson wrote:btw, you should probably stipulate that you need "STLSoft version 1.9.1 beta 44, or later". I've had a lot of downloads of 1.8.9 in the last 24 hours, and I fear they may have been disappointed readers of your article. ;-/ Cheers Matthew "Matthew Wilson" <matthew hat.stlsoft.dot.org> wrote in message news:esn8uh$j06$3 digitalmars.com...Cool! I might use this in a little tool I fancy building. Cheers Matthew "Adi Shavit" <adish gentech.co.il> wrote in message news:eslobt$11hj$1 digitalmars.com...Hi, My article was just posted, you can read it here *audio_ostream - A Text-to-Speech ostream* <http://www.codeproject.com/audio/audio_ostream.asp>. Enjoy, Adi P.S. There seems to be some problem with the files, which I'll sort out with the site, but the meat is in the article anyway. ** Adi Shavit wrote:How did you go with your COM travels?
back to it sometime soon. However, I did use the same mechanisms in another little project I did, about which I'll post a short article on CodeProject soon. It saved me all the COM hassle and made for a beautiful little Extended STL project :-). I'll probably post it in about 2 weeks, as I'm off to a vacation
I'll post the link here when its up on CodeProject. I think you'll like it.Any final requests for 1.9.1?
When I last used it it did every thing I wanted, needed and more*. Adi ** 'more' *means that after I wrote my class that contains a COM resource I needed to use it in another API that needed it to be copy-constructible, something I hadn't notice before. Naturally, the automatic ref-counting allowed that without any changes so I was home free, and everything worked as planned.
Mar 08 2007









"Matthew" <matthew hat.stlsoft.dot.org> 