www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - COMSTL and DirectShow

reply Adi Shavit <adish gentech.co.il> writes:
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
parent reply "Matthew" <matthew hat.stlsoft.dot.org> writes:
"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
parent reply Adi Shavit <adish gentech.co.il> writes:
<!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
<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
parent reply Adi Shavit <adish gentech.co.il> writes:
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
next sibling parent "Matthew" <matthew hat.stlsoft.dot.org> writes:
Adi

Thanks for that.

I'll deal with each point individually over the next few days.
Nov 29 2006
prev sibling parent reply "Matthew" <matthew hat.stlsoft.dot.org> writes:
 4. co_create_instance
Have you not seen 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
next sibling parent "Matthew" <matthew hat.stlsoft.dot.org> writes:
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
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
prev sibling parent reply Adi Shavit <adish gentech.co.il> writes:
<!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
<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">&nbsp; 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"

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="">&lt;snip&gt;
  </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
parent reply "Matthew" <matthew hat.stlsoft.dot.org> writes:
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
news:ekunsk$qpe$1 digitaldaemon.com...
 Hi Matthew,


 It'll take me a while to reply to all of your answers, but I will get to
them all (got a busy week).
 Have you not seen
f4636026577579f3d1d ?
 (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,
or that I expected a page for each such function. Thanks.
 <snip>

 and its kin are undocumented.

 What kin? Specifics please.
I think I was referring to comstl::com_init which is also documented on
the same page.
 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 ( ;-) ) are what I expected.
 Adi
Dec 03 2006
parent reply Adi Shavit <adish gentech.co.il> writes:
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
     
news:ekunsk$qpe$1 digitaldaemon.com...
 Hi Matthew,


 It'll take me a while to reply to all of your answers, but I will get to
     
them all (got a busy week).
 Have you not seen

       
f4636026577579f3d1d ?
 (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,
       
or that I expected a page for each such function. Thanks.
 <snip>

 and its kin are undocumented.

     
 What kin? Specifics please.
       
I think I was referring to comstl::com_init which is also documented on
the same page.
 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 ( ;-) ) are what I expected.
 Adi
     
Dec 04 2006
parent reply "Matthew" <matthew hat.stlsoft.dot.org> writes:
"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
parent reply Adi Shavit <adish gentech.co.il> writes:
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>.

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
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
	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>.

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
parent reply Adi Shavit <adish gentech.co.il> writes:
 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 17 2007
next sibling parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
	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
prev sibling parent reply Adi Shavit <adish gentech.co.il> writes:
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?
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.
Mar 06 2007
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
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?
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.
Mar 07 2007
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
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?
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.
Mar 08 2007
parent reply Adi Shavit <adish gentech.co.il> writes:
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?
           
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.
Mar 08 2007
parent Adi Shavit <adish gentech.co.il> writes:
PS,

I'm glad you liked it.

Adi
Mar 08 2007